Fixture360 only lists fixtures from a curated set of leagues, chosen specifically to keep our prediction model accurate.
Shock result as Millwall defy the odds to beat Portsmouth 0-1.
📝 Match Report
How It Unfolded
Millwall beat Portsmouth 0-1 at Fratton Park, Regular Season - 17, in the Championship. With the result on the board, the sections below measure it against everything the model and the numbers projected in advance.
The Model vs The Result
The Poisson model went into this projecting Portsmouth 1.32 xG and Millwall 0.83 xG, a combined 2.16. The scoreboard read 0-1 for 1 actual goal. Portsmouth fell 1.3 short of their projected output. Those figures were built on strength ratings of Portsmouth attack 1.26 / defence 0.96 against Millwall attack 0.84 / defence 0.76, drawn from 28/74 games (CurrentSeason).
On the result, the model split it Portsmouth 47% | Draw 30% | Millwall 23%, with Portsmouth to win its most likely call at 47%. Instead the game produced a Millwall win, an outcome the model had rated at just 23% — a clear break from expectation and a genuine upset by the numbers.
Goals & Markets
The model rated Over 2.5 goals at 37%. The game delivered 1, so it stayed under — a call the model got right. Over 1.5 had been 65% and missed. On both teams to score, the model sat at 43% and the match did not — another call in the model's favour. Historically the two sides average 47% Over 2.5 across their same-competition games (Portsmouth 62%, Millwall 32%), a base rate that agreed with today's under. Their combined BTTS history runs at 47%, which matched the one-sided outcome.
Trading Patterns vs Reality
Portsmouth's trading profile (74 games, 36 home) set some clear expectations: BTTS lands in 55% of their matches — today it did not; they keep a clean sheet 32% of the time, and conceded here.
Millwall's trading profile (74 games, 36 away) set some clear expectations: BTTS lands in 39% of their matches — today it did not; they keep a clean sheet 35% of the time, and duly kept one.
Form vs Result
On form, Portsmouth arrived the stronger side — 1.70 PPG against 1.26. Form was overturned, with Millwall winning despite arriving in poorer recent shape. Portsmouth (home/away splits) managed 0 against a 1.81 scoring average — below par going forward. Millwall (home/away splits) conceded 0 against a 1.08 average — tighter than their form line.
Verdict
Grading the result against the stored data, 2 of 4 pre-match signals came in: result (miss), Over 2.5 (hit), BTTS (hit), form (miss). The model got the gist right while missing on the margins.
💡 Key Insights
⚠️ This match report is generated algorithmically from the final score, our prediction model, and each team's historical form and trading data. Analysis is for informational purposes only.