Same spot on the pitch. Same xG?
Expected goals changed how football is talked about, and it earns its place. But strip it back and xG is mostly a map. It knows roughly where a shot was struck from, and how. It knows very little about what was actually going on around it.
Picture two shots, both from the penalty spot.
Erling Haaland is slipped through on the break. Four against one, the keeper caught halfway off his line. He takes a touch and rolls it in.
Same spot, Haaland again. This time two banks of four are between him and the goal, everyone behind the ball, no angle and no time. He snatches at it and it's blocked.
One is a near-certain goal. The other is a hopeful effort. To xG they land on almost the same number — because, when you get down to it, xG is position-based.
What the number doesn't see
- How many defenders sit between the ball and the goal — and whether they're set or still scrambling back.
- Who's on the ball: a great finisher with a yard of space, or a tiring full-back closed down from three sides.
- Who's in goal: a sweeper-keeper stranded off his line, or a specialist who's never beaten at his near post.
- The state of the game. Minute 12 at 0-0 plays nothing like minute 89 chasing a 1-0.
Now picture two passes
Same idea, one phase earlier. This time it's expected assists — xA.
Kevin De Bruyne disguises it and slides the ball between centre-back and full-back with the outside of his boot. The striker runs onto it, but the angle has tightened right up, and he has to dig a finish out from near the byline.
A midfielder plays a flat five-yard ball to a poacher standing six yards out — unmarked, goal gaping. He side-foots it in.
xA gives the second pass the bigger number. It isn't really rating the pass; it's rating the shot that came after it. A ball a defender could lay on in training scores higher than one that split a back four.
Same story when the scorer supplies the magic — takes it thirty yards out, beats three, bends it in. The pass before it still collects the assist.
Why a match engine helps
A football-management simulation can't skip any of this. To decide whether a chance goes in, it has to take a view — who's shooting, who's defending, how the move was built, how much time the player had on the ball.
And it can do the thing a spreadsheet of past matches can't: run the same situation again and again, change one detail at a time, and watch how the chance actually moves. A quicker defender. A set back line instead of a broken one. A different player on the end of it.
We've built a small version of this
In Mezzala Legends the same shot is worth more on the break than into a packed box, and a striker's chances rise or fall with the specific defenders in front of him. None of that is scripted — the engine works it out from the players and the situation.
See how the engine worksRate the change, not the total
Building the Mezzala Match prototype is where this landed. A creator's value isn't their xG or their xA — it's the change they produce: how much a pass moves the team's chance of scoring, compared with the instant before it was played.
Call it ΔxG or ΔxA — from the passer's side it's the same quantity. Measuring that delta, rather than counting assists, is already a step up.
It comes alive when the metric reads the defence, not just the pitch. Enhance xA to account for the players between the ball and the goal — call it xAe — and a pass is worth xAe where the ball arrives, minus xAe where it was played from: the ground it genuinely gained against the defenders who were actually there.
That's the evolution: score a player by how far they move the picture — in the context of what they were up against.
It's a research idea, not a product. The next step is testing it against real matches.
Clubs, analysts, sports-tech investors and anyone who finds this interesting — get in touch.
