How the record was read
This site reads a single database built by the insight-bridge pipeline from the inquiry’s page on the Parliament’s site: 88 submitters, 150 submission documents, 1,789 passages, 264 submitter–topic memberships, 264 submitter-level stances, 32 sector perspectives.
Everything on every page is a live query against Cloudflare D1 (the run's own tables, copied whole) and Vectorize (the embeddings), through fully-typed Drizzle. The same data is exposed to agents over an MCP server at /mcp.
What was done, in order
Each step below is a stage this run actually executed, read from the run's own record of itself; a stage the run was configured to skip is not listed.
- Collection
Every document on the inquiry’s page on the Parliament’s site was downloaded: the numbered submissions with their supplementaries and attachments, and the official Hansard transcripts of the public hearings. Each transcript was cut to the turns attributed to one submitter’s witnesses, so a submitter’s hearing evidence is a document of its own under the same stable id as their submission; the committee’s questions and other witnesses are left to the linked full transcript. Text was extracted from the PDFs, with OCR on image-only pages.
- Reading in the submission documents
Every submission document was stored whole under its submitter, its text cut into passages small enough to compare — 1,789 of them across 150 submission documents from 88 submitters — and each passage embedded with text-embedding-3-large, which is what makes a search by meaning, and the grouping below, possible at all. Each submitter carries what the inquiry records about them (submission number, whether they wrote, whether they appeared and when) and one classification the pipeline made: their sector, from a six-value vocabulary. Sector is the one comparative lens in this app; every comparison is by who is speaking. Each document carries its type, the Parliament’s own descriptor, the hearing’s date, place and witnesses, and the link to the original file.
- Reading each submission document end to end
A language model read every submission document in full against this run's profile and recorded what it found as key points, each with the verbatim quotes that support it: 1,514 key points and 4,134 quotes. Every quotation is verbatim from the source submission document: each is verified against the submission document's text before it is stored, and one that cannot be found there is never presented as verified. 100% verify, and a quote that does not is never shown here. Claims a submitter makes are distinguished from views they merely quote; form boilerplate and procedural material are left out.
- Settling what counts as one submitter
The names the model inferred were put to a person beside the names the record carries, before anything was counted, so that one submitter appearing under two spellings is counted once in every figure on this site. The record's name stands; the model's reading is kept beside it.
- Grouping the passages into topics
Topics are found from the passages themselves, bottom-up, by grouping the passages across the corpus that say the same thing; nothing supplies a list of themes beforehand. A topic has to be raised by more than one submitter to form: one submitter's volume cannot make a topic on its own, and the rare topic that only one submitter carries is flagged as such. A group had to hold at least 3 passages to count as a topic. Where those settings found nothing, they were relaxed a step at a time until they did. Each passage, and each submitter, is then placed against every topic at a graded strength (exemplar, high-value, member), so a submitter that touches a topic in passing is recorded as well as the submitters that define it, and a passage can belong to more than one topic. 8 topics resulted, over 1,789 passages.
- Writing each topic up and reading positions against it
Each topic is written up as a proposition with key points, and every exemplar and high-value submitter's position is recorded against that proposition, on this run's own scale, Supports, Builds on, Mixed, Redirects, Opposes and Unclear. Positions are relative to the topic's own framing, never absolute agreement, and every submitter is measured against the same proposition. 264 positions were written, and the same was done for each value of source sector: 32 perspectives. A position here records how a submitter stands against one topic's particular framing, and is never a verdict on the subject in general.
- Removing the groups that carry nothing
A model flagged topics whose synthesis reported no substantive shared content, and a person confirmed or rejected each flag — and could confirm a topic the model had not flagged. 1 topic was confirmed and is excluded from every figure on this site. The flag alone never removes anything.
- Offering the topics upward into themes
The topics were grouped again, generation by generation, each generation clustering the one below it until it stopped merging. A topic with no theme above the attachment threshold stands on its own. This site reads the tree as the run left it, however many generations that turned out to be, and where nothing merged the topics simply stand on their own.
- Placing the topics in a sky
Each topic's place in the galaxy was computed once and stored with the run, seeded so it is the same sky every time. That is what lets these pages draw the constellation as plain graphics, with no WebGPU and nothing solved in your browser.
- Loading this site
Outside the pipeline, before loading: the run database was copied whole to the cloud — every table as the pipeline wrote it, with the passage embeddings moved to a vector index — and two facts were derived from it for these pages, each document’s and each passage’s dominant topic. Nothing was flattened, re-verified or re-classified here; every figure on every page is a live query over the run’s own tables.
What each submitter was classified by
Every facet the run's profile declares. A facet marked compared is one the analysis wrote a perspective for, value by value — the lens you can read a topic through. Facets that are not compared ride beside it as facets of the record.
What a position means here
Read weakest claim first. Supports, Builds on agree with a topic's proposition; Mixed, Redirects, Opposes push back against it; Unclear reads as neither.
Position is relative to the cluster proposition, not the source's tone. Nuance alone is not Mixed, and constructive engagement alone is not Builds on.
How to read the output
These rules apply to every Insight Bridge corpus. They are properties of the method, not caveats about a particular run.
- Positions are relative to a proposition. A source’s position records how it stands against that cluster’s particular framing — not whether it agrees with some absolute claim. The same source can support one cluster and redirect a neighbouring one that covers similar ground differently.
- Propositions are written from the cluster’s own members. Because the argument is built from the sources that were grouped together, and positions are read relative to it, a degree of agreement is built into the method. Comparisons between groups carry weight; a corpus-wide agreement rate does not.
- Counts describe the corpus, not the world. Every corpus here is curated. “N sources say X” measures what was collected and is never a measure of how common X is in the field.
- Clusters differ in how many distinct sources back them. A long document can fragment across many clusters, so weight a theme by the distinct sources beneath it rather than by how many clusters it contains.
- Every extraction and position is a model judgement. Key points, stances, propositions and syntheses are produced by a language model reading the source. They inherit its calibration and are not determinations of fact.
In this run
Removed after review. “Missing Summary: No Substantive Position Can Be Identified” — The cluster explicitly supplies no substantive content, identifiable proposition or distinguishing argument. It is excluded from every figure on this site, including the 7 topics counted above.
Witnesses without a numbered submission. (2026-02-23); (2026-02-23). They are counted as submitters; their evidence is their only document.
Placed in two sectors. (Academia and Individual, read as Academia); (Academia and Individual, read as Academia); (Individual and Academia, read as Individual); (Academia and Individual, read as Academia); (Company and Government, read as Company). Both values stay on the record.
Hearing evidence is an extract. Each hearing document holds one submitter's own turns from the official transcript. Read the linked full transcript for the committee's questions and the exchange around an answer before citing.
Which model did what
Named because it matters: the reading, the writing-up and the grouping were done by these, and a different model would have produced a different record.