The public-record platform blueprint: how FOI data was structured to be citable
Most public-interest data is published. Very little of it is citable. The gap between those two states is architectural, and this is an account of how one platform was built to close it.
End The Wait Ontario turns freedom-of-information responses and government records on Ontario's autism waitlist into a structured public resource. Its figures have been cited by a major public-sector union, a national workplace guide, and national news coverage — with no press campaign behind any of it. The case study covers what was built and why. This is how.
The rule that shaped everything
One constraint drove the rest of the design:
No figure appears on the platform unless it carries a dated, retrievable source. Not "should carry" — the build fails rather than publishing an uncited number.
Making that a build-time constraint rather than an editorial guideline is the single highest-leverage decision in the whole system. Editorial guidelines erode under deadline pressure. A build that refuses to compile does not.
The consequence is that the platform is smaller than it could be. Claims that could not be sourced were cut rather than softened. That trade — less coverage, no unsupported claims — is what makes the remaining material usable by someone whose own reputation is on the line when they cite it.
The data model: records, not numbers
The instinct with FOI responses is to extract the interesting number and move on. That produces a figure with no provenance, which is how contradictory statistics end up circulating with nobody able to reconcile them.
Instead, each response is treated as a dated record. An entry carries:
- the figure itself, in the units the source used
- the date the figure describes, distinct from the date it was released
- the issuing body
- the request or publication it answers
- a status field, so superseded figures are marked rather than deleted
- the source reference, resolvable to the underlying document
Pages render from those entries. That inversion matters: because the page is generated from a structured record, a figure physically cannot appear without its provenance travelling alongside it. The source chain is not a discipline someone has to remember — it is a property of the data structure.
Keeping superseded figures with a status rather than deleting them turned out to be quietly important. When a ministry revises a number, the platform can show both the revision and the prior figure with its date. That is exactly the material a journalist or researcher needs and rarely finds.
Publishing architecture: one claim, one stable URL
The second design rule: each load-bearing claim gets its own page with a stable URL, and the claim is stated in a self-contained sentence near the top.
This is written for two audiences that turn out to want the same thing:
- A researcher on deadline who needs to confirm one figure, cite it, and move on without reading a 3,000-word narrative.
- A retrieval system that lifts passages. A sentence needing three paragraphs of preceding context to make sense will not survive extraction; a sentence carrying its own subject, figure, date, and source will.
Practically this means writing "As of December 2025, 67,509 children were waiting for core clinical services under the Ontario Autism Program, per [source]" rather than "the waitlist has grown substantially since then." The second sentence is fine prose and useless as a citation.
Stable URLs matter for the same reason. A citation that 404s in eighteen months damages the citer, which teaches them not to cite you again.
Structured data: centralized, not inlined
Schema markup is where most sites accumulate quiet inconsistency — each page hand-rolling its own JSON-LD until the entity relationships contradict each other.
The approach here, mirrored in Prior Signal's own build, is a single set of schema builders that every page calls. Entity identifiers are declared once and composed by reference, so the organization, the site, the author, and each article resolve to the same nodes across roughly 220 pages. Pages do not invent their own entities; they reference the canonical ones.
The payoff is coherence. A retrieval system encountering five pages from the site sees one consistent entity graph rather than five loosely related ones, which is what allows it to attribute a claim to a source rather than to a URL.
Search architecture as access infrastructure
The information architecture was built around the questions people actually type — families asking what the wait is, journalists asking for the current figure, researchers asking how the program is administered — rather than around internal categories.
That is a content decision more than a technical one, but it has a technical expression: page titles, headings, and URL structure all mirror the question rather than the topic. "How long is the Ontario autism waitlist" is a page. "Program Overview" is not.
Freshness signals were tied to the underlying data rather than to publication dates, so that when a data file changes, the affected pages report as modified. Freshness claims that are not tied to real content changes are noise, and search systems increasingly treat them as such.
What actually happened
Without outreach:
- OPSEU/SEFPO cited the platform's data — including the figure of 67,509 children waiting for core services — in its June 2026 Worth Fighting For report.
- CCRW cited the platform's public resource in its May 2026 Neurodiversity in the Workplace guide.
- CBC News and other national outlets picked up the FOI-verified figures.
- As of mid-2026, the platform holds the first Google position for the primary Ontario autism waitlist query.
The relevant observation is not the list. It is that in each case an organization with its own editorial standards chose this record over more prominent alternatives, because it could be checked.
What we would do differently
Three things, stated plainly:
- Type the data at ingress from the start. Early entries were loosely typed, which meant validation lived in review rather than in the compiler. Generating types from the source data — or writing schemas at the boundary — would have caught more before it reached a page.
- Version the figures explicitly. The status field handles supersession, but a first-class version history per figure would make the revision story easier to render and easier to cite.
- Instrument retrieval earlier. We measured search rankings before we measured whether AI answer systems were reaching the right pages. Those are different questions with different fixes, and the second one is now the one that moves.
The transferable part
The subject matter does not transfer. The discipline does.
Any organization holding filings, regulatory submissions, program data, or internal records has the same underlying problem: the record exists, and it is not structured to be found, verified, or cited. The four properties above — sourced at build time, one claim per stable URL, self-contained statements, centralized structured data — apply without modification.
If you want to know where your own record currently stands in AI answers before rebuilding anything, an AI Retrieval Audit measures it. If the records themselves are the problem, that is the work we do.
SHARE