Where we mark our own homework

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
—
Less error than giving every outcome equal odds
“Imminent” calls
—
hit 85%+ and actually happened
Model
v1.7
Tuned on demo data, not yet on real outcomes
Same questions, same moments, lower error wins

Window by window: the Index vs the fans

WindowSettledIndex errorFans’ errorBlind guessVerdict

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.

Where the Index was right early

Best calls

Published, not buried

Worst misses

Daily samples of the displayed Index

Calibration

00252550507575100100

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.

When the Index saidIt happenedSamples
0–10%still collecting0
10–20%still collecting0
20–30%still collecting0
30–40%still collecting0
40–50%still collecting0
50–60%still collecting0
60–70%still collecting0
70–80%still collecting0
80–90%still collecting0
90–100%still collecting0
Every one, most recent first

Settled sagas

    Tamper-evident record

    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-12213 recordsf2d357c3a7d554139267c5a968ddbbf3ecb3c6b572df61501519e60877875be1
    2026-11-11394 recordsd727848a4b2ec10fb2d802b326c2e5fec0d770d9dba96671a1122a899ba92516
    2026-11-10514 records2e7b7afb640c11ad1f112615eb7079baed010e4d66589ffe16bf30d25fedece4
    2026-11-09401 records8360f8e27819496a247be27b51d983663c82325f658224fbf5fc1f1f2f5f8764
    2026-11-08333 recordsa311fec3ab0c769ff43c1666a28c41aa04dfa4a81454cc208b1031c2d5762a1b
    2026-11-07305 recordsc6c0a4475c7dbe948caed31c500c01a145f3c5a7a09688fbc04316269a02e611
    2026-11-06297 records426f874bdcf8f02d5745cd8907c1f8435f88cbedd18a4a82fdcccd3489764fc9
    2026-11-05260 records0124b0e1e6013bdc5e42aaacb7bcc6d31067c0b05c0f829dbf3c6a87f7a95270
    2026-11-04181 records0cea591ea76409e1823cea7463c04915d298435fc84ca949332af74ce88116bf
    2026-11-0390 records6c0013ff52f9ba8ab2957374853d5e8eebd232a729d18210fe9d22f5039234b0
    SWOOP-engine-1.7

    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 typeWeightHalf-life
    Interest+0.6510d
    Enquiry+1.0410d
    Talks+1.6914d
    Bid+2.3414d
    Improved bid+2.7314d
    Personal terms+2.8630d
    Club agreement+3.9030d
    Medical scheduled+4.6830d
    Medical completed+5.4645d
    Done deal reported+6.2460d
    Bid rejected-0.9114d
    Talks stalled-1.4314d
    Interest cooled-2.3421d
    Player rejects-2.8630d
    Failed medical-5.2060d
    Club refuses sale (→ stays)+1.3021d
    Renewal talks / signed (→ stays)+3.2545d
    VersionStarting odds (club / other / stays)Weight ×Deadline fadeIndependent sources
    SWOOP-engine-1.0-2.2 / -1 / 1.312each source
    SWOOP-engine-1.1-1 / -1.6 / 0.41.33each source
    SWOOP-engine-1.2-1 / -1.6 / 0.41.33journalist + his publication = one
    SWOOP-engine-1.3-1 / -1.6 / 0.41.33journalist + his publication = one; a copy keeps the original's date
    SWOOP-engine-1.6-1 / -1.6 / 0.41.33journalist + his publication = one; a copy keeps the original's date; a source's setback adds to its earlier report, not erasing it; deadline fade counted from the window's opening
    SWOOP-engine-1.7 (current)-1 / -1.6 / 0.41.33journalist + his publication = one; a copy keeps the original's date; a source's setback adds to its earlier report, not erasing it; deadline fade counted from the window's opening; a club earns its starting share with the strength of its evidence (a lone low-tier rumour starts small)
    SWOOP-manager-0.1-1.6 / 0.4 / 0.41.30each source
    Unreviewed × 0Tier 1 · Elite × 1Tier 2 · Reliable × 0.8Tier 3 · Mixed × 0.5Tier 4 · Low × 0.25
    Speculative 0–14%Possible 15–34%Developing 35–59%Advanced 60–84%Imminent 85–99%
    Rulebook v2 · November 2026

    How situations resolve

    1. 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.

    2. 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”.

    3. 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.

    4. 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.

    5. 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.

    6. 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.

    7. 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.

    8. R8 · Admin limits

      Admins attach evidence; the resolver decides. Nobody can edit a forecast, score, snapshot or lock time. Staff are excluded from leaderboards.