Skip to content

Add Nettie — verified attendance data for women's sport in England - #53

Open
nettie-online wants to merge 1 commit into
openactive:masterfrom
nettie-online:master
Open

Add Nettie — verified attendance data for women's sport in England#53
nettie-online wants to merge 1 commit into
openactive:masterfrom
nettie-online:master

Conversation

@nettie-online

@nettie-online nettie-online commented Jul 24, 2026

Copy link
Copy Markdown

Nettie (nettie.online) is the first and only platform dedicated to verified attendance data for women's sport in England, through anonymous QR code check-ins at live fixtures. We cover all levels from elite to grassroots across football, rugby union, rugby league, netball, basketball, and handball.

The platform is currently onboarding founding clubs ahead of Season 1 in September 2026. The feed will grow significantly as club and fixture data is added over the coming weeks.

Fans can also check in directly via the Nettie website at nettie.online without needing a QR code at the venue.

Publishing Checklist

I confirm the following:

Maintenance Checklist

Feed has been built and is live. Formal validator testing is in progress and will be completed before Season 1 launches in September 2026.

Our organisation is committed to:

  • [x ] Ensuring activity providers are aware of the OpenActive initiative on an ongoing basis
  • [x ] Providing high quality opportunity data that meets user needs, as specified in OpenActive's Data Quality reporting framework
  • [x ] Resolving issues that are raised on the GitHub Issues Board(s)

@nettie-online

Copy link
Copy Markdown
Author

The validate-new-dataset workflow appears to have completed with no jobs. Happy to provide any additional information needed for manual review. Dataset Site is live at https://nettie.online/openactive and RPDE feed at https://nettie.online/api/public/openactive/scheduled-sessions.

@hkir-dev
hkir-dev requested review from hkir-dev and howaskew July 24, 2026 14:15
@nettie-online

Copy link
Copy Markdown
Author

The validate-new-dataset workflow is failing with exit code 1 but the errors appear to be infrastructure-related rather than issues with Nettie's dataset site. Specifically the workflow is reporting Node.js 20 deprecation warnings and no test results files were found at ./tests/results/.

The dataset site at https://nettie.online/openactive is live and returning valid JSON-LD. The RPDE feed at https://nettie.online/api/public/openactive/scheduled-sessions is live and returning correctly formatted data. Happy to provide any additional information to assist with manual review.

@howaskew

Copy link
Copy Markdown
Contributor

Hi @nettie-online

Downloading Dataset Site JSON-LD from "https://nettie.online/openactive"...
Dataset Site JSON-LD: {
  "@context": "https://schema.org/",
  "@type": "Organization",
  "name": "Nettie",
  "alternateName": "Nettie Group Ltd",
  "url": "https://nettie.online/",
  "slogan": "Find women's sport near you",
  "description": "Discover grassroots women's sport near you — clubs, fixtures, and verified attendance.",
  "email": "teams@nettie.online",
  "sameAs": []
}

Error: Dataset Site JSON-LD contained validation errors. Please try loading the
Dataset Site URL in validator.openactive.io to confirm that the content of
<script type="application/ld+json"> ... </script> within the HTML is valid.

Validation errors found in Dataset Site JSON-LD:
- $.logo: Required property `logo` is missing from `Organization`.
- $.legalName: Required property `legalName` is missing from `Organization`.
- $.sameAs: Invalid type, expected `Array` of [`strings` containing a url](https://schema.org/URL) but found `Array`.
- $.sameAs: Properties must be omitted when they contain empty arrays.
- $["@context"]: For a Dataset Site, the `@context` property must be present in the root object and contain the schema.org context (`"https://schema.org/"`) and OpenActive context (`"https://openactive.io/"`) as the first and second elements in an array, respectively.


Error: Unable to read valid JSON-LD from Dataset Site.
    at startPolling (/home/runner/work/data-catalogs/data-catalogs/tests/packages/openactive-broker-microservice/src/core.js:1074:11)
    at async Server.<anonymous> (/home/runner/work/data-catalogs/data-catalogs/tests/packages/openactive-broker-microservice/app.js:116:5)
Error: Process completed with exit code 1.

I noticed you're not using the dataset site template? See examples at status.openactive.io That would help with formatting.
Instructions, using mustache file, here
Any feedback welcomed.

Pasting your URL into the RPDE page in the validator throws up some issues tor review - check that out.

@nettie-online

Copy link
Copy Markdown
Author

Hi @howaskew ,

Thank you for the detailed feedback. I have fixed all three errors:

The sentinel item has been removed, the cursor now advances correctly at microsecond precision, and Cache-Control: public, max-age=3600 is now set on non-tail pages.

The validator is now returning only two warnings — no deleted items detected, which will resolve naturally once cancelled fixtures exist in the feed, and the last page Cache-Control, which I understand is correct RPDE behaviour for long-polling.

Really appreciate your help getting this right.

All the best,

Nic

@hkir-dev

Copy link
Copy Markdown
Contributor

Hi, as Howard mentioned, we'll need to update the dataset website as well, as it's currently raising some validation errors.

You can validate it by selecting ModeDataset Site (top right corner) in the validator and then load your website URL via the LOAD URL link, or by using this direct link:
https://data-model-validator.herokuapp.com/?url=https%3A%2F%2Fnettie.online%2Fopenactive&version=2.0&validationMode=DatasetSite

The main issue is that the page contains multiple application/ld+json tags. The validator only processes the first one and can't find some required elements. Other scrapers are likely to behave the same way.

Most publishers use the dataset website template to avoid such issues:
https://developer.openactive.io/publishing-data/dataset-sites#step-1-build-dataset-sites-into-your-system

If you'd prefer to keep the current website structure, we could start by keeping only the Dataset JSON-LD and removing the Organization and WebSite JSON-LD entries.

There are also a few validation errors within the Dataset entity itself. You can compare your output with this example to see what's required.

Screenshot 2026-07-28 at 14 44 10

@nettie-online

Copy link
Copy Markdown
Author

Hi @hkir-dev and @howaskew

Thank you again, massively appreciate the guidance.

I have fixed all the Dataset Site issues. The page now has a single application/ld+json script tag containing the Dataset JSON-LD only — the Organisation and WebSite JSON-LD tags have been removed. The Dataset JSON-LD now passes the OpenActive validator in Dataset Site mode with no issues.

I have also created a GitHub Issues Board at https://github.com/nettie-online/openactive/issues as required.

Please let me know if there is anything else needed for the PR to be approved.

Thanks,

Nic

@hkir-dev

Copy link
Copy Markdown
Contributor

Great progress!

The next step is to validate the feed. You can use this direct link:

https://data-model-validator.herokuapp.com/?url=https%3A%2F%2Fnettie.online%2Fapi%2Fpublic%2Fopenactive%2Fscheduled-sessions&version=2.x&validationMode=RPDEFeed

(You can also edit the JSON directly in the validator to help debug any errors.)

The initial issue is related to the @context. For each opportunity, @context should appear only once, on the top-level data object (not in the superEvent ). As we're not using schema, let's keep it simply as"@context": "https://openactive.io/". The data should look like this example:
https://openactive.io/modelling-opportunity-data/#regular-sessions-sessionseries-and-scheduledsession-

Once that's fixed, we'll be able to see any remaining data-related validation issues.

In addition to this UI-based test (which only validates a sample of the data), we'll also need to run a final end-to-end validation using the OpenActive Test Suite's deep validation:
https://developer.openactive.io/publishing-data/data-feeds/testing-feeds#openactive-test-suite

Thank you for the quick progress so far. Please do let us know if any of the tools or documentation could provide better guidance or be improved—we're always keen to make the publishing process easier.

@nettie-online

Copy link
Copy Markdown
Author

Hi @hkir-dev

The feed is now passing the model validator with zero errors. Here is where things stand:

The remaining warnings are all for recommended optional fields that Nettie does not currently collect from clubs — leader names, capacity figures, telephone numbers, opening hours, and age ranges. These will improve naturally as the platform grows and club data becomes richer over the season.

The isAccessibleForFree field is correctly applied where cost is explicitly zero. Some fixtures have variable pricing so this field is intentionally absent on those items rather than incorrectly set to true.

The Dataset Site at https://nettie.online/openactive also passes the validator in Dataset Site mode with no issues.

Please let me know if there is anything else needed for the PR to be approved.

All the best,

Nic

@hkir-dev

Copy link
Copy Markdown
Contributor

The Test Suite is still reporting the errors shown in the attached report. Could you please take a look at those and see if they can be addressed?
validation-errors.html

@nettie-online

Copy link
Copy Markdown
Author

Hi @hkir-dev — I've worked through the Test Suite validation errors. The two issues flagged have been resolved:

streetAddress and addressLocality are now present on all PostalAddress objects — venue is used for streetAddress falling back to club name, and county is used for addressLocality.

Clubs with no postcode or county data are now correctly emitted as state: deleted items so incomplete addresses never appear in the feed.

The model validator is now returning zero errors on the RPDE feed. The Dataset Site also continues to pass in Dataset Site mode with no issues.

The remaining messages are all warnings for recommended optional fields such as leader, capacity, telephone, and age range, which Nettie does not currently collect from clubs — these will improve as club data becomes richer over the season.

Please let me know if you are able to re-run the Test Suite and whether there is anything else needed for approval.

Thanks,

Nic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants