Saturday, 31/10/2026 at 16:00
1d 11h to kick-offMiddlesbrough – Charlton Athletic
- Middlesbrough
- 74%
- Mkt 75% Market 75%
- Fair 1.35 Fair odds 1.35
- Draw
- 18%
- Mkt 16% Market 16%
- Fair 5.57 Fair odds 5.57
- Charlton Athletic
- 8%
- Mkt 9% Market 9%
- Fair 12.95 Fair odds 12.95
No qualified edge
The largest edge is Draw at +7.7%, and the Betting section's rule stops it: No proven skill. How this is decided →
- Middlesbrough 20/20
- Charlton Athletic 20/20
- Model updated 30 October, 03:30
- Top odds updated 29 October, 18:00
Where the model disagrees with the market
Largest gap per question. Margin removed. Bet365 prices.
Model skill is how much the model beat simply knowing how often each outcome happens, when 7 competitions were replayed (measured 17/08/2026). A market without skill above zero never qualifies, and skill is not the chance a bet wins. How that is measured →
Recent form
- D 1.52 created, 1.69 conceded against Millwall
- D 2.14 created, 1.23 conceded against Birmingham City
- W 0.90 created, 0.68 conceded against Wolverhampton
- W 2.57 created, 0.65 conceded against Stoke City
- D 2.71 created, 0.85 conceded against Cardiff City
- W 4.17 created, 0.91 conceded against Bolton Wanderers
xG created xG conceded (xGA) W / D / L: the match result
Goals & scorelines
- Total goals
- 3.26
- Over 2.5 goals
- 65%
- Both teams to score
- 55%
- Middlesbrough 2+ goals
- 73%
- Middlesbrough clean sheet
- 42%
Most likely scorelines
No exact score is especially likely. The 3 most probable scorelines account for 32% of the model's distribution.
- 2:0
- 11.4%
- 2:1
- 10.9%
- 3:0
- 9.6%
Why the model favours Middlesbrough
Attack, defence and recent form all point to Middlesbrough.
- Attack
- Favours Middlesbrough
- 1st vs 22nd
- Middlesbrough attack v Charlton Athletic defence
- Defence
- Favours Middlesbrough
- 2nd vs 23rd
- Middlesbrough defence v Charlton Athletic attack
- Recent xG form
- Favours Middlesbrough
- +1.33 vs -0.33
- xGD per match, last 6
Team comparison
Season to date, per match, with each club's placing in the competition. The last row is the last 6 matches.
| Reading | Middlesbrough | Charlton Athletic |
|---|---|---|
| xG / match | (better) 2.16 · 1st | 0.99 · 22nd |
| xGA / match | (better) 1.02 · 2nd | 1.58 · 18th |
| xGD / match | (better) +1.15 · 1st | -0.60 · 20th |
| xPts / match | (better) 2.10 · 1st | 0.97 · 21st |
| Last 6 xGD / match | (better) +1.33 | -0.33 |
Head to head
Middlesbrough 1 Draws 0 Charlton Athletic 1
Got a different price?
Type your bookmaker's odds for any market and see their edge against the model.
How the edge is calculated
Edge is probability × odds − 1 — it pays on average and over the long run, not necessarily in this match. The model knows nothing of absences, motivation or the schedule.
Nothing you type is remembered.
What the model doesn't know
It reads expected goals and nothing else — not the lineups, injuries or suspensions, what either side is playing for, the weather or a congested schedule.
Model details- Fit window
- the last 20 matches, recency weighted (a match 107 days old counts half)
- Middlesbrough sample
- 20 matches
- Charlton Athletic sample
- 20 matches
- Home xG sample · Middlesbrough
- 6 matches
- Away xG sample · Charlton Athletic
- 6 matches
- Computed
- Friday, 30/10/2026 at 03:30
- Odds updated
- 10 hours ago
Limitations
The model reads expected goals and nothing else. It does not know the lineups, who is injured or suspended, what either side has to play for, the weather, or how congested the schedule around this match is.