★ Moneyball Original · Opinion
Manchester City 0-1 Brighton: how Brighton won at the Etihad, read with ten Moneyball methods
By Moneyball Editorial · published

Manchester City 0-1 Brighton (Premier League, 31 October 2026, Etihad Stadium). Yasin Ayari scored the only goal on 11′, set up by Maxim De Cuyper. Brighton left Manchester with three points, and the table now reads City 1st on 21 points, Brighton 3rd on 19.
A result at the Etihad always tempts big conclusions. Moneyball's rule is the opposite: one match is a sample of one. So this piece reads the match twice: first the match itself, through the chances each side made and what those chances are usually worth; then the season around it, through expected points, Pi-ratings and a projection that does not get carried away by one evening.
The match in numbers
- 11′ Yasin Ayari, set up by Maxim De Cuyper
| Man City | Brighton | |
|---|---|---|
| Goals | 0 | 1 |
| Expected goals (xG) | 0.98 | 2.05 |
| Possession | 62% | 38% |
| Shots | 21 | 7 |
| Shots on target | 6 | 3 |
| Big chances | 5 | 4 |
| Passes | 597 | 362 |
| Pass accuracy | 84% | 77% |
| Corners | 8 | 2 |
| Fouls | 9 | 13 |
| Saves | 2 | 7 |
| Average player rating | 6.90 | 6.94 |
City had 62% of the ball and took 21 shots to Brighton's 7, 6 of them on target against 3. On expected goals Brighton made the better chances, 2.05 to 0.98: the result follows the chances, not a smash-and-grab.
The Dixon-Coles verdict. Run those two xG figures through the same score matrix that powers our Match Board and a match played like this one ends in a City win 17% of the time, a draw 22% and a Brighton win 62%. In expected points that is 0.72 for City and 2.07 for Brighton. Brighton deserved what they took: the chances back the result.
Brighton's goalkeeper made 7 saves; City's made 2.
Best on the pitch by Sportmonks' match ratings: Bart Verbruggen, 8.7.
| Player | Rating |
|---|---|
| Jérémy Doku | 8.2 |
| Elliot Anderson | 7.6 |
| Abdukodir Khusanov | 7.3 |
| Nico O'Reilly (sub) | 7.1 |
| Enzo Fernández | 7.0 |
| Player | Rating |
|---|---|
| Bart Verbruggen | 8.7 |
| Yasin Ayari | 7.9 |
| Maxim De Cuyper | 7.3 |
| Luka Vuskovic | 7.2 |
| Lewis Dunk | 7.0 |
The season around the match
One match can be won by a plan. A title, or a place in Europe, is won by a level of play held for nine months, and that is what expected points, Pi-ratings and the shrunk-strength projection measure. Here are the two clubs four ways, and where the numbers say they will finish.
| Measure | Man City | Brighton |
|---|---|---|
| League position | 1st · 21 pts | 3rd · 19 pts |
| Expected points (xG through Dixon-Coles) | 17.4 (2nd) | 14.5 (5th) |
| Points minus expected points | +3.6 | +4.5 |
| Pi-rating (goal margin vs average) | +0.15 (2nd) | +0.21 (1st) |
| Strength after Bayesian shrinkage | +0.49 (2nd) | +0.20 (5th) |
| Goals minus xG (finishing) | +1.9 | +7.0 |
| Projected final points | 70 (2nd) | 63 (3rd) |
On the projection City still finish above Brighton, on course for about 70 points to 63: one result moves a projection a little, not a lot. Brighton are +4.5 points against their expected points, the kind of gap our regression method expects to close as the season goes on.
Two styles, measured over the season
| Per match, season | Man City | Brighton |
|---|---|---|
| Possession | 64.1% (1st) | 57.8% (5th) |
| Pass accuracy | 88.8% (1st) | 84.3% (6th) |
| Pressure Index | 70.6 (1st) | 68.7 (2nd) |
| Shots | 15.3 (5th) | 16.6 (3rd) |
| Big chances | 3.6 (1st) | 2.7 (2nd) |
| xG for | 2.01 (1st) | 1.89 (2nd) |
| xG against | 1.10 (3rd) | 1.44 (11th) |
The ranks are against the whole Premier League.
What it means
- Read the chances, not only the score. The xG was 0.98 to 2.05: that, more than the scoreline, says how the match was played.
- Possession is a means, not a result. City had 62% of the ball. Expected goals see through possession; that is why Moneyball rates teams on chances, not on control.
- Do not overreact. One result moves the projection a little. The expected-points table above is the best guide to May.
- Expected goals (xG): the quality of every chance, so a team is judged on what it created and allowed, not only on what went in.
- Dixon-Coles score matrix: the match's two xG figures turned into the chance of each result and into expected points, the same model the Match Board uses.
- Expected points: each match's xG run through a Dixon-Coles score matrix (the Poisson model with the low-score correction the Match Board uses) to give the points a performance usually earns.
- Pi-ratings: a rating for every club at home and away, moved after each result by how far the goal margin beat or missed what the ratings expected.
- Bayesian shrinkage: a club's xG margin is pulled toward the league average as if it had 8 average matches more, so a hot month is not mistaken for a new level.
- Projection: the shrunk strength played out against an average opponent for every match left, added to the points already won.
- Finishing and goalkeeping regression: goals against xG at both ends. A big gap either way rarely lasts a season.
- League ranks on Sportmonks' team figures: possession, passing, pressure, chances, duels.
- Player ratings per 90, from the same Sportmonks data that runs Moneyball Scout.
Analysis by Moneyball Editorial. The figures update themselves with the data, and the sentences around them change with the figures.
Every minute of the match in the Match Centre Manchester City and Brighton in the Stats Centre
Questions
- What was the score of Manchester City vs Brighton on 31 October 2026?
- Manchester City 0-1 Brighton in the Premier League at the Etihad Stadium. Goals: Yasin Ayari 11′.
- Did Brighton deserve to win on expected goals?
- Expected goals were 0.98 for City and 2.05 for Brighton. Through the Dixon-Coles matrix, a match with those chances ends in a City win 17%, a draw 22% and a Brighton win 62% of the time.
- Who was the best player in Man City vs Brighton?
- By Sportmonks' match ratings, Bart Verbruggen with 8.7.
- Where do the numbers come from?
- Sportmonks match, team and player data, read by the Moneyball engine and updated with every update of the site.