Updated June 3, 2026 — unified Dixon-Coles engine dc_v1 now covers 18 competitions.
Football is the most-bet sport on earth — and one of the hardest to predict. Thousands of matches every week, from the top five European leagues down to second-tier competitions, each shaped by a different set of variables: recent form, shot quality, home advantage, key injuries. Trying to track all of that manually just doesn't scale.
That's why ProbWin built a dedicated soccer AI, now running on a unified engine called dc_v1. At the core: a single calibrated Dixon-Coles model that outputs both 1X2 and Over/Under probabilities from one pass. No more parallel models contradicting each other — one engine, one logic, consistent outputs across markets.
The result: every pick is tagged official, conviction, or trend based on signal strength and how well the model is calibrated for that specific league. Here's exactly how the system works, what data it looks at, and — more importantly — what it refuses to bet.
What the AI analyzes: xG, xGA, L5 form, and home advantage
xG (Expected Goals) is the backbone of our soccer model. Unlike goals scored — which carry a luck component — xG measures the actual quality of chances created on each shot: distance, angle, defensive pressure, type of action (corner, counter-attack, organized possession). A tap-in with an empty net is worth roughly 0.75 xG; a speculative 30-yard effort barely registers at 0.03.
The model combines several data layers for every analyzed match:
| Metric | Description | Primary use |
|---|---|---|
| Home xG | Chance quality created by the home team | Attack lambda (Dixon-Coles) |
| Home xGA | Chances conceded by the home team | Defensive vulnerability |
| Away xG | Chance quality from the visiting team | Attack lambda (Dixon-Coles) |
| Away xGA | Chances conceded by the away team | Defensive solidity |
| Home L5 form | Results + xG across last 5 matches (weighted) | Recent momentum trend |
| Away L5 form | Results + xG across last 5 matches (weighted) | Recent momentum trend |
| Home goals conceded avg | Goals allowed in home fixtures | Over/Under line calibration |
| Away goals scored avg | Goals scored in away fixtures | Over/Under line calibration |
| Implied odds | Market probability from bookmaker prices | Edge detection |
L5 form is exponentially weighted — the most recent match counts twice as much as one five games ago. This captures momentum without over-indexing on a single result.
For a deeper look at xG and its application to betting, read our complete xG guide.
The dc_v1 engine: one Dixon-Coles model, 18 leagues
Before 2026, our soccer stack ran multiple parallel models — one per market, one per league — that regularly contradicted each other. The dc_v1 overhaul cut through that: a single unified Dixon-Coles engine, trained on the full history of all 18 competitions we cover, now handles all 1X2 and Over/Under predictions.
Why Dixon-Coles instead of a direct classifier
The Dixon-Coles model estimates two lambda parameters per match: the expected goal tally for each team, conditioned on offensive strength, the opponent's defensive weakness, and home advantage. Those lambdas feed a corrected Poisson distribution — the well-known Dixon-Coles tau correction, which adjusts for the lower-than-expected frequency of 0-0 and low-scoring scorelines — from which we derive probabilities across all outcome scenarios.
This is the same probabilistic engine described in our exact score generator guide: once the model gives you lambda_home and lambda_away, you can pull out a 1X2, an Over/Under, or a full scoreline matrix. Everything comes from the same source, so everything stays consistent across markets.
Isotonic calibration: the detail that changes everything
A model that says "70% Over" when its historical "70%" picks only land 58% of the time is miscalibrated — and unusable for betting. dc_v1 applies isotonic regression calibration trained by league: raw Dixon-Coles probabilities are benchmarked against historical results for each competition, then corrected so that "70%" actually means 70%.
Users never see this step, but it's critical. It's what makes the model probability directly comparable to the bookmaker's implied probability — and what lets us measure a real edge.
The 3 pick statuses
Every model output gets a status reflecting confidence level:
| Status | Criteria | Display |
|---|---|---|
official |
Clean edge, solid league calibration, all gates passed | Published pick, tracked in results |
conviction |
Strong directional signal but market edge is marginal | Published under "conviction" label |
trend |
Directional signal below official thresholds | Shown as "AI Trend" on the site, not placed |
This three-tier system replaces the old binary "pick / no pick" and keeps a full record of every model signal — including the ones that don't make the cut.
How the AI predicts goal totals (Over/Under)
The Over/Under market — typically the 2.5-goal main line in European football — is calculated from the same Dixon-Coles corrected Poisson distribution as the 1X2. No separate model, no possible divergence.
Calculating the combined lambda
The AI starts by computing the match's expected goal total — the sum of both teams' offensive expectations, adjusted for defensive quality on each side:
lambda_home = att_strength_HOME × def_weakness_AWAY × home_advantage
lambda_away = att_strength_AWAY × def_weakness_HOME
Example:
- PSG: att_strength = 1.32, home lambda = 1.92
- Lyon: att_strength = 0.91, away lambda = 1.31
- PSG def_weakness = 0.78 / Lyon def_weakness = 1.05
lambda_total = 1.92 + 1.31 = 3.23 expected goals
→ P(goals ≥ 3) computed via Poisson + DC correction
→ after isotonic calibration for Ligue 1 → 64% Over 2.5
Comparing against the implied probability
Once the calibrated Over probability is ready, the model compares it against the bookmaker's implied probability. If the model probability significantly exceeds the implied probability — meaning the line is too generous — the signal is published. If the line is too short, the pick is filtered out.
The confidence filter
Not every prediction is worth betting officially. The system applies a confidence threshold: if the calibrated probability doesn't clear 70% for an Over, the pick can't go official — that's anti-pattern AP3 (detailed below). The pick may still appear as a trend for tracking purposes.
| Confidence level | AI action | Status |
|---|---|---|
| ≥ 75% + market edge | Official | Published, tracked |
| 70–74% + market edge | Official or conviction | Published |
| < 70% | BLOCKED from official (AP3) | Shown as trend |
For more on analyzing football totals, read our Over/Under football guide.
Anti-patterns: what our AI refuses to bet (and why)
This is arguably the most distinctive part of our approach. Most systems try to maximize positive signals. ProbWin also built an automatic blocking system based on documented historical losing patterns. These anti-patterns block picks that a surface-level analysis might greenlight.
Active anti-patterns in the soccer model
| Code | Trigger condition | What gets blocked | Reason |
|---|---|---|---|
| AP1 | Combined xG > totals line | Under bets | Major historical underperformance |
| AP3 | Model confidence < 70% | Official Over bets | Insufficient probability |
| League calibration | Degraded isotonic calibration for the league | All non-official markets | Model not reliable enough for this competition |
AP1: the Under trap when xG runs high
This filter seems counter-intuitive at first. Why block the Under when xG is elevated? Precisely because high combined xG signals teams that create a lot of chances — betting Under in that context means hoping luck steps in to suppress the scoring. Our historical data is unambiguous: the loss rate on these bets far exceeds theoretical expectation.
AP3: the Over confidence threshold
An Over with less than 70% calibrated probability doesn't become an official pick. The Over market is highly liquid, so bookmaker margins are tight — without a solid probability estimate, any edge gets statistically swamped by the margin. The pick can still appear as a trend, which lets the model keep measuring itself over time without putting our credibility on the line with an "official" label.
Walkthrough: analyzing a PSG vs Lyon match with dc_v1
Here's a full end-to-end look at how the AI reasons through a hypothetical PSG vs Lyon match.
Input data
| Metric | PSG (HOME) | Lyon (AWAY) |
|---|---|---|
| Offensive xG (season) | 2.18 | 1.52 |
| xGA conceded (season) | 0.81 | 1.34 |
| Goals scored L5 | 11 (2.2/match) | 7 (1.4/match) |
| Goals conceded L5 | 3 (0.6/match) | 8 (1.6/match) |
| Clean sheets L5 | 3/5 | 0/5 |
Step-by-step AI calculation
Step 1 — Dixon-Coles lambda estimation:
att_strength_PSG = 1.34 (Ligue 1)
att_strength_LYO = 0.92 (Ligue 1)
def_weakness_PSG = 0.79
def_weakness_LYO = 1.18
home_advantage = 1.18
lambda_PSG = 1.34 × 1.18 × 1.18 = 1.87
lambda_LYO = 0.92 × 0.79 = 0.73
lambda_total = 1.87 + 0.73 = 2.60 expected goals
Step 2 — Poisson distribution + DC tau correction:
P(0-0 scoreline) corrected → 5.4%
P(goals >= 3) raw → 49%
Step 3 — Isotonic calibration for Ligue 1:
49% raw → 53% calibrated P(Over 2.5)
Bookmaker Over 2.5 @ 1.95 → implied 51.3%
Edge = 53% − 51.3% = 1.7 pts → too thin
Step 4 — Anti-pattern check AP1:
lambda_total (2.60) > bookmaker line (2.5)
→ Under 2.5 is blocked (AP1 triggered)
Step 5 — Final decision:
Over 2.5 → confidence 53%, edge 1.7 pts
→ below official thresholds
→ published as TREND only
Under 2.5 → blocked by AP1
1X2 → PSG @ 1.42: calibrated prob 71.8%, implied 70.4%
Thin edge → published as CONVICTION (not official)
AI conclusion: No official pick on this match.
PSG ML available as conviction, Over 2.5 as trend.
This reasoning runs in seconds for every match of the day across the 18 competitions covered by dc_v1: Ligue 1, Champions League, Premier League, Serie A, Bundesliga, La Liga, Eredivisie, Primeira Liga, Pro League, Süper Lig, Brasileirão, Liga MX, MLS, Championship, 2. Bundesliga, Serie B, La Liga 2, Ligue 2.
Reading our daily picks
Our goal isn't to sell you a "strong pick" — it's to give you the full analysis behind each model prediction. On every match page in the /soccer/ hub, you'll find:
- The calibrated model probability (1X2 and Over/Under), not just a direction
- The implied market probability and the measured edge
- The pick status:
official,conviction, ortrend - A written analysis generated match by match, never batch-produced by league
To see how we select the featured matches each day, read our free AI soccer predictions guide.
Our edge over bookmakers: value and closing line
Beating bookmakers long-term requires finding a systematic edge — an information asymmetry you can exploit repeatedly. Our soccer edge operates at two levels.
1. Calibrated Dixon-Coles precision vs. market models
Bookmakers use statistical models too, but theirs are generalized across millions of different markets. Our dc_v1 engine is hyper-specialized: trained exclusively on football, with per-league isotonic calibration that adjusts the final probability to account for each competition's specific characteristics.
2. Algorithmic discipline vs. human bias
A human analyst can convince themselves a streaky team "must" win and overlook an unfavorable xGA. Our AI has no opinions. It applies the same criteria to every single match — no fatigue, no confirmation bias, no favorite team.
3 biases our AI never commits:
[X] "This team is in form, so they'll score"
→ Form is quantified via xG L5, not assumed
[X] "These sides are even — this'll be a high-scoring affair"
→ The offensive strength ratio identifies real imbalances
[X] "They're at home, Over is the obvious call"
→ Home advantage is a calibrated coefficient, not a narrative
[OK] Every pick is grounded in calibrated model probability vs. implied odds
For more on what edge actually means in betting, read our value betting guide.
Frequently asked questions
Which football leagues does the AI cover?
The dc_v1 engine is calibrated on 18 competitions: the top five in Europe (Ligue 1, Premier League, Bundesliga, La Liga, Serie A), solid second-tier European leagues (Eredivisie, Primeira Liga, Pro League, Süper Lig, Championship, 2. Bundesliga, Serie B, La Liga 2, Ligue 2), a non-European core (Brasileirão, Liga MX, MLS), plus international competitions (Champions League, Europa League, World Cup). Leagues with insufficient calibration data don't generate official picks.
How does the AI compare to classic human analysis?
Human analysis excels at qualitative context — motivation, derbies, cup mentality. It struggles to simultaneously process 20 to 30 quantitative variables. Our AI doesn't replace human analysis; it complements it by providing a factual, probabilistic baseline that's consistent across markets.
What's the difference between official, conviction, and trend?
official: the model is calibrated for this league, confidence clears internal thresholds, and there's a measured edge against the implied odds. This is what we publish as a proper pick.conviction: the raw model signal is strong (clear directional read) but market edge is marginal or absent. Shown on the site, but without the same prominence.trend: directional signal present but below thresholds. The model registers a view without staking our credibility on an "official" label.
Is this the same approach as the NBA model?
Both systems share the same philosophy — edge derived from advanced metrics versus implied odds — but use different mechanics. For NBA, we run a pace/efficiency regression for totals. For soccer, it's a unified Poisson Dixon-Coles engine built on lambdas. For our NBA approach, see our AI NBA predictions guide.
Go further
Our soccer AI shows that clean data and algorithmic discipline can produce a coherent analytical framework across all football markets. dc_v1 isn't designed to promise profits — it's designed to give, match by match, the most honest probabilistic read available, and to flag explicitly when the edge isn't strong enough to justify an official pick.
To round out your football betting knowledge with our recent publications:
- Free AI Soccer Predictions Today: the ProbWin method — how we select daily featured matches and what to look for in each profile
- Soccer Exact Score Generator: AI method and Poisson explained — the same math applied to correct score markets
- 1X2 vs Moneyline: why football betting is different — understanding football's unique odds structure
- The complete xG guide — the metric at the heart of our lambda estimation
Our AI soccer predictions come out daily, filtered by anti-patterns and league calibration that automatically screen out low-signal bets. Join the bettors backing data, not gut feel.