Judge the model by its ledger
Every official pick is written to the publication ledger before kickoff, at the price it was struck, and settled in public against a final score. This page reads that ledger and nothing else. Where a number is not known it says so — a figure we could not measure is never shown as a zero.
The official ledger holds 366 publications spanning 7 days — from 3 Aug 2026 to 9 Aug 2026. Longer periods are offered because the record is meant to grow into them; until it does, they report how much of themselves the ledger actually covers instead of showing a zero.
This week
Monday 2026-10-19 to today 2026-10-19 in Africa/Lagos. The week is still running.
No publications exist in this period. The ledger only covers 2026-08-03 to 2026-08-09, so this period is outside the record rather than a period the model went without a result.
The only record that counts publicly
No official picks were published in this period
No publications exist in this period. The ledger only covers 2026-08-03 to 2026-08-09, so this period is outside the record rather than a period the model went without a result.
An empty period is not a result. There is no hit rate, no yield and no profit to report, because there was nothing to report on.
How good the probabilities were
These score the probability, not the bet. A well-calibrated model can still lose money at bad prices, and a profitable one can be badly calibrated. Combining the two into a single "accuracy" figure is the most common way this industry misleads.
Slice the record, and share the slice
Filters apply identically to the summary above, the table below and both exports. The result is a URL: send it and the recipient sees exactly what you saw.
Every publication in this view
No publications match this view
No publications exist in this period. The ledger only covers 2026-08-03 to 2026-08-09, so this period is outside the record rather than a period the model went without a result.
This is an honest empty state. Nothing from the internal record, the backtests or the community feed is used to fill it.
Each export carries this view's period, timezone, active filters and read availability, plus a definition for every metric and band it contains. Competition: UEFA Champions League
What every number on this page means
| Metric | Definition |
|---|---|
| Published | Official public picks published in the period. Retracted claims are counted here and excluded from every other figure. |
| Settled | Publications that have reached a terminal state: won, lost, push, void or cancelled. |
| Pending | Publications with no verdict yet — unsettled, or awaiting verification. |
| Won | Settled correct at the published price. |
| Lost | Settled incorrect. One unit staked, one unit lost. |
| Push | The market returned the stake. Not a win and not a loss; excluded from the hit-rate denominator. |
| Void | The market never resolved. Excluded from the hit-rate denominator. |
| Cancelled | The fixture was called off. Excluded from the hit-rate denominator. |
| Decided | Won plus lost. The denominator for hit rate, profit and yield. |
| Profit (units) | One unit staked per decided pick at the price recorded at publication. A win returns the price minus the stake; a loss costs one unit. Pushes and voids contribute nothing. |
| ROI / yield | Profit in units divided by decided picks — return per unit staked, not return on a bankroll. |
| Hit rate | Won divided by decided. Pushes, voids, cancellations and pending picks are not in the denominator. |
| Hit-rate interval | 95% Wilson score interval around the hit rate. Wilson rather than the normal approximation because at small samples the normal interval can exceed 0–100% and collapses to zero width at 0% or 100%. |
| Average published odds | Mean decimal price at the moment of publication, across every publication in the view. |
| Average closing odds | Mean decimal closing price, across only those publications that carry one. Read the coverage figure beside it before quoting this. |
| Closing-line coverage | Share of publications in the view that carry a closing price at all. A coverage of 0% is a measurement about our data; it is not a statement about the model. |
| Average CLV | Mean of (published odds / closing odds − 1) over publications that carry a closing price. Positive means the published price was better than the close. |
| Current streak | The trailing run of identical verdicts, ordered by settlement time. |
| Current drawdown (units) | Units below the highest cumulative profit reached so far, in publication order. |
| Maximum drawdown (units) | The largest peak-to-trough fall in cumulative profit, in publication order. |
| Last settlement | The most recent settlement timestamp in the view. |
| Brier score | Mean squared error of the model probability against the outcome. Lower is better. A forecast metric: it judges the probability, not the price. |
| Log loss | Mean negative log likelihood of the outcome under the model probability, clamped so a confident miss is expensive but finite. |
| Expected calibration error | Weighted mean gap between predicted and observed frequency across probability buckets. Withheld below 50 settled events. |
| Brier skill | Improvement in Brier score against always predicting the base rate. Positive means better than guessing the average. |
| Fair odds | 1 divided by the model probability — the price at which the model is indifferent. Not a price anyone offered. |
| Unit return | The one-unit profit of a single row. Empty for pending, push, void and cancelled rows. |
| Correction state | Whether the claim still stands as first published, has been corrected forward, or has been retracted. Retracted claims score in neither direction. |
| Publication lead time | Hours between publication and kickoff. Every publication is written before kickoff; the ledger refuses any that is not. |
| Dimension | Band | Definition |
|---|---|---|
| Market family | Match result | Which side wins, including the draw where the sport has one (1X2, moneyline, match winner). |
| Market family | Double chance | Two of the three match-result outcomes taken together. |
| Market family | Totals | Combined score over or under a line (over/under, totals, goals lines). |
| Market family | Both teams to score | Whether both sides score at least once. |
| Market family | Handicap | A side with a goal, point or game start applied (handicap, spread, Asian handicap). |
| Market family | Other markets | Every market that does not fall into one of the named families above. |
| Selection type | Home | The home side, or the first-named player. |
| Selection type | Away | The away side, or the second-named player. |
| Selection type | Draw | The match ends level. |
| Selection type | Over | The total finishes above the line. |
| Selection type | Under | The total finishes below the line. |
| Selection type | Yes | The named event happens. |
| Selection type | No | The named event does not happen. |
| Selection type | Other | Any selection that is not one of the standard sides, totals or yes/no outcomes. |
| Odds band | Under 1.50 | Odds at publication below 1.50. |
| Odds band | 1.50–1.99 | Odds at publication from 1.50 up to but not including 2.00. |
| Odds band | 2.00–2.99 | Odds at publication from 2.00 up to but not including 3.00. |
| Odds band | 3.00–4.99 | Odds at publication from 3.00 up to but not including 5.00. |
| Odds band | 5.00+ | Odds at publication from 5.00 up to but not including any higher price. |
| Probability band | Under 40% | Model probability below 0.40. |
| Probability band | 40–49% | Model probability from 0.40 up to but not including 0.50. |
| Probability band | 50–59% | Model probability from 0.50 up to but not including 0.60. |
| Probability band | 60–69% | Model probability from 0.60 up to but not including 0.70. |
| Probability band | 70% and above | Model probability of 0.70 or higher. |
| Decision tier | Pick | Cleared every gate; published as a selection. |
| Decision tier | Lean | The model favoured a side below the publication bar. |
| Decision tier | Watch | Tracked interest that had not cleared publication. |
| Decision tier | Pass | Analysed and declined. |
| Decision tier | Withheld | A decision existed but the evidence bar was not met. |
| Decision tier | Unavailable | No decision could be formed from the available data. |
| Data readiness | Complete | Every evidence input the decision policy asks for was present. |
| Data readiness | Partial | Some evidence was missing; the decision was made on what was there. |
| Data readiness | Stale | The evidence or price behind the claim had aged past its freshness bar. |
| Data readiness | Unavailable | Evidence could not be read at decision time. |
| Data readiness | Confirmed empty | The evidence source was readable and genuinely held nothing. |
| Publication lead time | Under 2 hours | Published less than two hours before kickoff. |
| Publication lead time | 2–6 hours | Published two to six hours before kickoff. |
| Publication lead time | 6–24 hours | Published six to twenty-four hours before kickoff. |
| Publication lead time | Over 24 hours | Published more than a day before kickoff. |
| Result state | Won | The selection was correct at the published price. |
| Result state | Lost | The selection was incorrect. One unit staked, one unit lost. |
| Result state | Push | The market returned the stake. Excluded from the hit-rate denominator. |
| Result state | Void | The market never resolved. Excluded from the hit-rate denominator. |
| Result state | Cancelled | The fixture was called off. Excluded from the hit-rate denominator. |
| Result state | Pending | No verdict yet — either unsettled or awaiting verification. |
| Result state | Any settled | Every claim that has reached a terminal state, whatever the verdict. |
What counts, and what never does
- Official public picksThe published ledger. The only class in OddsPadi's public record.Written to op_publications before kickoff, priced at the moment of publication, and settled against a final score. Every number in the summary above comes from this class and from nothing else.Every published pick
Kept separate, and why
- Verified legacy official picksPre-ledger picks that could be re-verified against a stored fixture and price.The 2026-07-31 reconciliation found nothing in the product's history that met the bar: no pre-ledger row carried a server-generated publication time, so none could be shown to have been published before kickoff. This class therefore holds zero rows, and it exists to say that out loud rather than to leave a reader wondering what happened before the ledger.
- Internal decisionsEvery call the engine grades, published or not. Training evidence, never public performance.Counted once per decision, not once per bookmaker price. The internal record is what tells us whether the model is improving; it is not a record of anything we asked anyone to act on.Engine status
- Editorial archiveSomething an article said. Never a pick.Articles cite publication ids and re-resolve them at render, so a corrected or retracted claim cannot keep being repeated by a story written before the correction. An observation in an article is not itself a claim on the record.News archive
- Shadow decisionsPaper-mode runs of candidate models. Shown in the internal record, never counted in the official one.A candidate model runs alongside the live one without publishing anything. Its results are how a challenger earns promotion. A schema allowlist makes it impossible for one of these rows to reach the publication ledger.Calibration & analytics
- BacktestsHistorical replays on the corpus. Never live performance.A replay knows how the season ended. However carefully it is constructed, it is a statement about a model fitted to history, and presenting it next to live results would flatter the live results.Calibration & analytics
- Community selectionsMembers' own tips, with their own leaderboard. Never OddsPadi's record.Stored in different tables with a different settlement path. A member's good week is theirs, and so is a bad one.Community leaderboard
These are never aggregated into one number. Mixing them is how a paper trade becomes a claimed win.
Internal model record
Yesterday's grading has not landed yet — the settlement sweep runs hourly. The full ledger has the complete history.
Internal record: every decision the engine grades against final scores, published or not — counted once per decision, not once per bookmaker price. It is training evidence and it is not part of the official record above. Published picks are the subset that cleared all gates.
The seven promotion gates, live
6 of 7 gates passing on 845 settled outcomes. Publication opens when all 7 hold — no gate is ever lowered to make picks appear.
- Settled outcomes845 ≥ 30Passing
- Brier score0.1924 ≤ 0.25Passing
- Brier skill vs base rate+0.1623 ≥ 0Passing
- Log loss0.5660 ≤ ln 2Passing
- Calibration error (ECE)0.0440 ≤ 0.1Passing
- Closing-line coverage21.2% ≥ 80%Not yet
- Average closing-line value+1.6045 ≥ 0Passing
How this record stays honest
- A publication cannot be created at or after kickoff. The database refuses it, so a pick recorded after the event is not merely discouraged — it is impossible.
- A published claim cannot be edited in place. Corrections append a revision holding the verbatim prior state, and every one of them is visible on the claim's receipt.
- Settlement uses the odds recorded when the claim was published, never a later price. Push, void and cancelled are distinct from a loss and stay out of the hit-rate denominator.
- A retracted claim scores in neither direction, and stays on the record so the retraction itself is auditable.
- Where the ledger cannot be read, this page says so. It does not fall back to another table, and it does not render a zero.
Every figure above comes from the official published-pick ledger: the exact claim, price and timestamp of each pick, and everything that has happened to it since. Nothing is estimated or back-filled.