4,692 football (soccer) predictions, every one logged before kick-off, with the fair probability we derived, the price you could have taken, where the market closed, and what actually happened. Free to download and reuse with attribution.
Last rebuilt:
One row per prediction. The odds are real prices we recorded at the time, not reconstructed afterwards, and the fair probabilities are the sharp market with the bookmaker margin removed by a power devig. Rows whose match was postponed or never played are marked void rather than silently dropped.
| Columns | What it holds |
|---|---|
kickoff_utc, league, country, home, away |
Kick-off in UTC, competition, country and the two teams. |
fair_prob_home / draw / away |
Margin-free probabilities for home, draw and away, devigged from the sharp market. |
pin_open_* / pin_close_* |
Sharp bookmaker prices at our first snapshot and at the close, per selection. |
best_soft_* / best_soft_book_* |
Best price we found across soft bookmakers, and which bookmaker offered it. |
prediction_pick, prediction_odds_taken, prediction_clv_pct |
The selection we logged, the price taken, and the closing line value in percent. |
market_margin_min_pct, market_margin_avg_pct, books_priced |
Measured market margin on that match (lowest and average) and how many bookmakers were priced. |
result, prediction_won, void_reason |
Official 1X2 result, whether the prediction won, and why a row is void when it is. |
record_hash |
Integrity fingerprint of the logged values; if any changed, the hash would change too. |
The licence is CC-BY-4.0: use it for anything, including commercially, as long as you credit the source. A link is the credit we ask for.
TipsAudit (2026). TipsAudit Football Prediction Dataset: fair odds, closing line value and bookmaker margins. https://tipsaudit.com/data — CC-BY-4.0.
Yes, under CC-BY-4.0. You can use it in research, in a product, or commercially; the only condition is attribution to tipsaudit.com. There is no key, no sign-up and no rate limit on the file itself.
From the sharpest bookmaker prices we track, with the margin removed using a power devig, which strips proportionally more from longshots than a simple normalisation. The same figures drive the public pages, so anything you compute from the file should reproduce what the site shows.
That is what record_hash is for, and why the full record is snapshotted daily to a public Git repository and anchored with OpenTimestamps. The Git history and the timestamps are external to us, so a changed past record would be detectable by anyone.