Margin-free probabilities and fair odds for upcoming matches — 1X2, double chance, totals, both teams to score and exact scores, plus expected goals.
Bookmaker prices include a margin, so they overstate the chance of every outcome. To compare markets, find value or simply show readers an honest number, the margin has to be removed first.
oddmind calculates probabilities from market prices with the margin removed and runs a goal model on top, giving consistent 1X2, totals, BTTS and score probabilities. Every prediction is locked before kick-off and settled afterwards, so accuracy can be checked in the archive.
| Parameter | Description |
|---|---|
markets | 1x2, double_chance, totals, btts, scores (default — all) |
format | probability (0–1) or percent |
{
"home": "Ipswich Town", "away": "Nottingham Forest",
"kickoff": "2026-10-23T19:00:00Z",
"outcome": { "home": 0.306, "draw": 0.275, "away": 0.419 },
"fair_odds": { "home": 3.27, "draw": 3.64, "away": 2.39 },
"double_chance": { "1X": 0.581, "12": 0.725, "X2": 0.694 },
"expected_goals": { "home": 1.30, "away": 1.56 },
"over_2_5": 0.545, "btts": 0.589,
"top_scores": [ { "score": "1-1", "p": 0.130 }, { "score": "1-2", "p": 0.090 } ]
// margin removed, raw bookmaker odds are not redistributed
}
| Field | Type | Description |
|---|---|---|
outcome | object | Home, draw and away probabilities (sum to 1) |
fair_odds | object | Decimal odds without margin (1 / probability) |
double_chance | object | 1X, 12 and X2 probabilities |
expected_goals | object | Expected goals for each team from the model |
over_2_5 / btts | float | Totals and both-teams-to-score probabilities |
top_scores[] | array | Most likely exact scores with probabilities |
Show probabilities and fair odds next to each match instead of raw bookmaker prices.
Compare fair odds with any bookmaker price to spot overpriced outcomes.
Use calibrated probabilities as a baseline for your own model.
No. We publish margin-free probabilities and fair odds derived from the market, not bookmaker price feeds.
Every signal is locked before kick-off and settled against the result. Accuracy and calibration by league are available in the prediction archive.
Upcoming matches in the 14 covered domestic leagues, usually several days before kick-off.
Free plan for small projects. Early-access users get 50% off for the first year.