GET /v1/accuracy,
which needs no API key, and on routeur.app/accuracy.
They are rebuilt every half hour by the settlements job.
What is checked
A proven relation is one of four claims about how two binary markets settle:
Subset and superset edges (
implies seen from either side) are one relation
type here, checked from whichever side implies the other.
Once both markets of a relation have settled, the claim is checked
against the results:
- consistent: both settled Yes or No and the claim held;
- violated: both settled Yes or No and the claim did not hold;
- unverifiable: a side settled scalar or void, or the relation is an overlap. Unverifiable pairs are counted so nothing disappears, but they never enter a rate.
Proof families
Figures are grouped by relation type and proof family, because each family rests on different source facts and fails in different ways:
Each bucket is one relation type, one family, and whether the relation
crosses venues.
Reading the numbers
For every bucket the record gives:checked: relations whose markets both settled Yes or No (consistent plus violated);violated, andviolation_rate= violated / checked;violation_rate_lowandviolation_rate_high: a 95% Wilson score interval on the violation rate. Wilson intervals stay inside [0, 1] and are honest at small counts and at rates near zero, where a plain ± interval would claim certainty. With 0 violations in 25 checks the upper bound is about 13%; with 0 in 300 it is about 1.2%; with 0 in 370 it drops under 1%. The interval, not the point rate, is what to read;unverifiable, and the first and last settlement covered;labels: how the hand-checked sample was judged (below);wrong_relations_still_live: relations a reviewer judged wrong that the latest graph run still holds. This should be zero; it is alerted on;released: whether the family has passed the release guard.
headline sums the buckets. Its violation_rate_high is the upper
bound over everything checked, which is the single number to quote.
The hand-labelled sample
Outcome checks only say whether a claim held; they cannot say a proof was right for the right reason, and they arrive only after settlement. So every run also draws a stratified sample of live relations: up to 20 open items per bucket, chosen at random from the latest graph with a preference for the newest relations, never a relation already judged or already queued. Moderators see the sample, and every violation, in the review queue at/mod, with the proof’s evidence, both contracts and how each settled. They
judge each relation correct, wrong or unsure, with a reason.
Precision is correct over correct plus wrong; unsure judgements are shown
but never counted. Labels carry their own Wilson interval.
A relation judged wrong that is still in the latest graph is counted in
wrong_relations_still_live and raises an alert, because the graph is
publishing something a person has already found to be wrong.
The release guard
Kalshi and Polymarket settle a delayed or cancelled economic release by different rules, so a lead on an economic relation is shown but markedinformational: it is never offered as executable, whatever the books say.
A proof family (per venue scope) is released when, across its relation
types:
- at least 25 of its relations have been checked against settled outcomes, and
- either none was violated, or the upper bound of its violation rate is under 1%.
release section.
Alerts
Two conditions page the operators: a relation judged wrong that is still live, and a violation recorded in a family that had been released. Both are read from the settlements job’s report.Checking one relation
GET /v1/relations/{left}/{right}/verification
returns one pair’s verdict and label, with its bucket’s figures, stated from
the left market’s side. It works after the markets have left the listing,
unlike the proof trail, which is rebuilt from the latest graph.