Audit us
Every number we publish about our record can be recomputed by you, from the same file, using the same query. This page gives you both. If your number matches ours, you’ve verified us. If it doesn’t, you’ve caught us — either way, tell us.
1. Download the tape.
TAPE_v0_2026-09-10.json — our complete prediction registry as of September 10, 2026: 148 calls, every field needed to score them, nothing silently edited.
row count: 148 · integrity hash (SHA-256): 35e06618c9c5d9ce…
2. Run the query.
This is the exact query our site runs — the same string, byte for byte. Paste it against the tape (or any Postgres you load the tape into) and count.
You don’t need to understand the text below. Load the file into any Postgres tool, press run, and count. If your count matches ours, you’ve verified us.
-- HIT_RATE_QUERY_v1 · 2026-09-10 · binds to the level chosen in §4
-- VOID RULE: verdict-bearing resolved rows only; voids excluded by construction,
-- void COUNTS reported alongside (second query below).
SELECT
COUNT(*) FILTER (WHERE hit = true)::int AS hits,
COUNT(*)::int AS n
FROM prediction_calls
WHERE status = 'resolved'
AND hit IS NOT NULL -- void rule: no verdict, no seat
AND is_backtest = false -- retrospective-row rule (live-only)
AND opened_at >= '2026-01-01'::timestamptz
AND resolved_at >= '2026-04-15'::timestamptz
-- STRICTNESS LEVEL: RULED (d) 2026-09-10-B — the strict block is ACTIVE:
AND market_source NOT IN ('unrecorded','none','no_free_source')
AND (
(market_prob_at_open IS NOT NULL AND market_source_at_open IS NOT NULL
AND market_source_at_open <> 'none')
OR (market_source_at_open IS NOT NULL AND market_source_at_open <> 'none')
OR criterion_stamped_at IS NOT NULL
OR (ehiq_prob_at_open IS NOT NULL AND market_prob IS NOT NULL))
AND market_source_at_open IS DISTINCT FROM 'no_market' -- absolute track never mixes
;
-- companion VOID-COUNT query (published next to n, every time):
SELECT
COUNT(*) FILTER (WHERE status='withdrawn')::int AS withdrawn,
COUNT(*) FILTER (WHERE status='duplicate')::int AS duplicate,
COUNT(*) FILTER (WHERE status='closed')::int AS closed,
COUNT(*) FILTER (WHERE status='resolved' AND hit IS NULL)::int AS resolved_no_verdict
FROM prediction_calls WHERE is_backtest = false;-- GATE_QUERY_v1 · 2026-09-10 · "resolved calls that declared a market at creation"
-- The gate binds to the SAME strictness level as HIT_RATE_QUERY_v1 (§4), counted
-- here as the resolved subset; the 75 target is REGISTRATIONS by 2026-11-03 with
-- creation-time declaration (R1–R4), i.e. same predicate without status='resolved'.
SELECT COUNT(*)::int AS gate_resolved
FROM prediction_calls
WHERE status = 'resolved'
AND hit IS NOT NULL
AND is_backtest = false
AND opened_at >= '2026-01-01'::timestamptz
AND resolved_at >= '2026-04-15'::timestamptz
AND market_source NOT IN ('unrecorded','none','no_free_source')
AND ( (market_prob_at_open IS NOT NULL AND market_source_at_open IS NOT NULL
AND market_source_at_open <> 'none')
OR (market_source_at_open IS NOT NULL AND market_source_at_open <> 'none')
OR criterion_stamped_at IS NOT NULL
OR (ehiq_prob_at_open IS NOT NULL AND market_prob IS NOT NULL) )
AND market_source_at_open IS DISTINCT FROM 'no_market';
-- result on 2026-09-10 pull (level d, verdict-bearing, absolute-track excluded):
-- 30 resolved / 20 hits (verified two ways, macmini; delta rows 147, 254, 16 named in §4)
-- REGISTERED (same predicate, all statuses, no verdict clause): 76 (31 resolved, 33 active)3. Match our figure.
| figure | from the tape (you) | live from /api/gate (us) |
|---|---|---|
| strict resolved | 30 | 31 |
| strict hits | 20 | 21 |
| official resolved | 36 | 37 |
| official hits | 25 | 26 |
| voids (withdrawn / duplicate / closed / no-verdict) | 11 / 3 / 1 / 1 | 11 / 3 / 1 / 1 |
| registered, market declared at creation | 76 | 82 |
If every row matches, the audit passes. The six-row difference between strict and official is named in full on /gate.
n=30 resolved · 16 void: 11 withdrawn, 3 duplicate, 1 closed, 1 resolved-no-verdict
Calls that ended without a verdict never enter the score. The count of them is published next to every score, so a track can’t be flattered by voiding the calls that were going wrong.
Known anomalies
- scotus-louisiana-v-callais-2026 (id 24): resolution date precedes its open date — logged, not fixed by the contract.
- dave-q1-fy26 (id 16): resolved without a verdict — excluded from all rates by the void rule.
- 16 resolved rows carry free-text in the resolution field instead of the standard vocabulary.
- updated_at is unreliable and nothing on this site derives from it.