Track record
Every number the Index has ever shown is kept, timestamped and checked against what actually happened. We never quietly change it afterwards. This is the nerdy bit, where we show our working, especially when we get it wrong.
- Settled sagas
- 0
- vs a blind guess
- —
- “Here we go?” calls
- —
- Model
- v1.1
Window by window: the Index vs the fans
| Window | Settled | Index error | Fans’ error | Blind guess | Verdict |
|---|
Error is the Brier score averaged over the whole time each saga was open (0 is perfect). Fans’ error uses the fans’ consensus on each day at least three had made a call, compared with the Index on the same sagas. A blind guess gives every outcome equal odds.
Best calls
Worst misses
Calibration
Points on the diagonal mean “when we said 70%, it happened about 70% of the time”. Buckets with fewer than 5 samples are hidden. With 0 resolved situations this is indicative only — we will say so until the sample is meaningful. Not enough data yet.
Settled sagas
Daily hash chain
Each day’s root hashes every Index snapshot and every forecast recorded that day, chained to the previous day. Change one historic number and every later root changes.
| 2026-11-02 | 30 records | 98698706b819c2a2ea0af3224ebeb17b8ae84f3948e959b919fb0d4396e8b256 |
Methodology
Claude reads; code decides. AI extracts structured claims from reporting (who, which club, what stage, which source, with a verbatim quote). A deterministic engine turns approved claims into probabilities. The same inputs always give the same output.
Each situation is one question — where will the player be registered when the window closes? — with mutually exclusive outcomes (each linked club, another club, stays) that always sum to 100%.
Independence. A source’s latest word on an outcome supersedes its earlier ones, and relays of one report count once. Independent sources add with diminishing returns.
Freshness and deadlines. Evidence decays (fast for “interest”, slowly for agreements). Early-stage links fade as the deadline approaches.
Caps. No move exceeds 97% before official confirmation. “Confirmed” is a fact, not a number.
Honesty. v1.0 used hand-set weights and leaned too hard towards “stays”, so it reacted slowly when deals really moved. v1.1 re-tunes four numbers with a small search, fitted on one window and checked on another. That tuning used demo data, so the model is re-fitted on real outcomes once enough live sagas resolve. Every snapshot records the model that made it, and old versions stay reproducible.
| Claim type | Weight | Half-life |
|---|---|---|
| Interest | +0.65 | 10d |
| Enquiry | +1.04 | 10d |
| Talks | +1.69 | 14d |
| Bid | +2.34 | 14d |
| Improved bid | +2.73 | 14d |
| Personal terms | +2.86 | 30d |
| Club agreement | +3.90 | 30d |
| Medical scheduled | +4.68 | 30d |
| Medical completed | +5.46 | 45d |
| Done deal reported | +6.24 | 60d |
| Bid rejected | -0.91 | 14d |
| Talks stalled | -1.43 | 14d |
| Interest cooled | -2.34 | 21d |
| Player rejects | -2.86 | 30d |
| Failed medical | -5.20 | 60d |
| Club refuses sale (→ stays) | +1.30 | 21d |
| Renewal talks / signed (→ stays) | +3.25 | 45d |
| Version | Starting odds (club / other / stays) | Weight × | Deadline fade |
|---|---|---|---|
| ti-engine-1.0 | -2.2 / -1 / 1.3 | 1 | 2 |
| ti-engine-1.1 (current) | -1 / -1.6 / 0.4 | 1.3 | 3 |
How situations resolve
- R1 · Fixed question
Player, current club and window are fixed at creation. Calls close at the earliest deadline among the leagues involved; a league’s official deadline can be entered later, but never closes calls retroactively. Outcomes can only be added (split out of “another club”). A malformed question is voided, never edited.
- R2 · What counts as a move
Registration with the club, permanent or loan, effective inside the window, shown by qualifying evidence. Pre-contracts effective after the window do not count. Sister clubs count as “another club”.
- R3 · Lock time
Scoring stops at the earliest official announcement of a qualifying move (or an event making the question impossible), or at the deadline. Official news closes calls at once (“pending verification”). A deal lodged before the deadline and announced within 72 hours counts, locked at the deadline. Unofficial “done deal” reports never lock.
- R4 · Evidence
Only an official source settles a move: the buying or selling club’s own website or verified official account, or the league’s registration list, each checked by us in advance. Reports never settle a move, however reliable. No official source, no result: it waits, and is voided if it still can’t be verified 14 days after the deadline.
- R5 · Timestamps
The first public moment counts — not when a deal was privately signed. Evidence enters the scoring Benchmark at its source’s publish time.
- R6 · Provisional → final
Results are provisional for a 7-day challenge period and become final only once the evidence has been re-checked and confirmed, by a second person or after a 24-hour second look. Then they’re permanent. Reversals are shown as superseded versions, never silently replaced.
- R7 · Voids
Only for creation errors, retirement, rule changes, platform failure, or an outcome that still can’t be verified 14 days after the deadline — applied to everyone, published with a reason, and everyone who called it is told.
- R8 · Admin limits
Admins attach evidence; the resolver decides. Nobody can edit a forecast, score, snapshot or lock time. Staff are excluded from leaderboards.