Method · the systemAgents read and write · code measures and judges
Six stages. A model never decides a verdict and never supplies a number.
0Official series on file
0Tests, each with written tolerances
0Verdict rules, applied in order
0Figures a model is allowed to invent
Diagram 01 · the verdict ladder
Five rules, applied in order. The first that fits decides.
Is there official data for the natural reading?Register lookup: topic, claim type, geography, series
yesno → CAN'T CHECK (rule 1)
Does the natural reading hold?The test runs in code with the register's tolerance, then again at each sensitivity setting
yesno ↓ carry on
Does every applicable check also hold?Secondary series, per-head view, and-parts, sensitivity runs
yes → ACCURATE (rule 2)no → ACCURATE, NEEDS CONTEXT (rule 3)
The natural reading failed. Does a best-case or narrow reading hold?A generous but fair reading the speaker could defend
yes → MISLEADING (rule 4)no → INACCURATE (rule 5)
Why a ladder. A rule-based verdict is reproducible: the same readings and the same data give the same answer on any day, and the rule that fired is printed on the result.
Why Misleading exists. People rarely say something false. They say something true on a narrow reading. Rule 4 names that, instead of calling it either true or false.
Confidence is set after the verdict: lower if the latest figure is provisional, or if a sensitivity run disagrees.
Diagram 02 · one claim, several readings
The agent says what the claim could mean. Code decides which meanings hold.
“Inflation is down by more than half compared with a year ago.”The claim, exactly as written. The speaker is not passed to the agent.
NaturalCPI annual rate, latest month vs the same month a year earlier, −50% ± 5pp
Best caseCPIH instead of CPI, the measure that flatters the claim most
NarrowLatest month vs the peak month of the year before
ConditionalIf 'prices' means the level rather than the rate: CPI index, 12 months
Holds · −55%1.7% vs 3.8%
Holds · −51%2.0% vs 4.1%
DroppedA different assertion from the natural reading, so it cannot rescue or sink it
Fails · +2.1%Prices rose; the claim is about the rate
Accurate, needs contextRule 3: the natural reading holds, and a year earlier was itself an unusual high
Diagram 03 · where the numbers come from
Every figure is loaded by code from the publisher, registered with a hash and a date, and never edited by hand.
ONSTime series API · 50 series
Bank of EnglandDatabase CSV · Bank Rate
HM Land RegistryUK HPI · monthly file
NHS EnglandPages opened in a browser · RTT, A&E
Home OfficeGOV.UK content API · asylum, small boats
MHCLGLive tables · housing supply, waiting lists
OBRDatabank · shares of GDP, outturn only
AdaptersOne per file shape, not per topic: ONS CSV, spreadsheet tables, daily counts summed, databank sheets
Release registerSource, table, URL, publication date, SHA-256 of the file. Releases are never overwritten
Versioned storeEvery observation points at the release it came from, so any figure can be recomputed as of any date
Release calendarWhen each series next updates; saved claims are rechecked when it lands
RegisterTopics, claim types, geographies, tests and terms. Changed only with a dated changelog entry
EngineReadings in, verdict out, with every figure's provenance attached