What to count

The data to meter footballer performance has existed for a decade. Clubs already use it to decide who to buy. They don't use it to decide what to pay them once bought.

On 19 February 2022, Romelu Lukaku played 90 minutes for Chelsea away at Crystal Palace and touched the ball seven times. One of those was the kick-off. It was the fewest touches recorded by an outfield Premier League player who completed a full match since Opta started counting in 2003-04. Six months earlier, Chelsea had paid Inter Milan a club-record £97.5m for him on a five-year deal worth £325,000 a week.

By the end of that season, Lukaku had eight Premier League goals from 7.02 expected goals — broadly converting the chances he got, but the chances themselves had collapsed. His expected goals per ninety sat at 0.42, beneath what several Championship-level forwards were producing. He played most of the season and registered zero assists from a non-penalty expected-assist total of 3.36. The data was public in real time. The wage didn't move with it.

That gap — between the public data and the private wage — is the question this series is built around. The first post sketched the wider parallel: football's contracts look like the fixed software licences enterprise SaaS spent fifteen years moving away from. This post takes one of the mechanisms software used to fix that problem — metering — and asks how it would actually work in football.

(For readers who don't work in software: a meter is just a counter and a price. Pay per API call, per gigabyte stored, per transaction processed. The pricing tracks the unit you can credibly count.)

The naive football meter is the back of a Panini sticker: minutes played and goals scored. Both numbers exist for every player, both are public, and both line up loosely with the bit of football most fans pay attention to. They also barely describe the game. A holding midfielder whose job is breaking up the opposition's progressions doesn't show up on either axis. Neither does a centre-back who positions well enough that the danger never quite arrives, or a goalkeeper whose value lives in the shots that didn't get taken because the back four trusted him to come for the cross. By minutes-and-goals, you've metered roughly one position out of eleven.

The data to do better has existed for a decade. Every Premier League match is event-tagged at high granularity by Opta and StatsBomb. Expected goals — a per-shot estimate of how often a chance of that type is converted, drawn from a large historical sample — is a decade old as a public metric. Expected assists, progressive passes, ball recoveries, pressures, post-shot expected goals on the keeper side: it all exists, it's all sold commercially, and clubs already pay for it. They use it to decide who to buy. They don't use it to decide what to pay them once bought.

Recruitment is the bit of the contracting cycle where event data has won. Wages haven't followed because wages are the part nobody had to keep recomputing.

This is roughly where the parallel stops being decorative. Software took a long time to figure out what to count. AWS launched S3 in 2006 priced by the gigabyte-month — pay a fixed amount for a gigabyte of storage for a month, regardless of how often you read or wrote it. EC2 launched the same year, billed by the hour. Both meters were crude in retrospect: a gigabyte sat unread for thirty days cost the same as one hammered ten thousand times a day, and a virtual machine alive for ninety seconds cost a full hour. The meters got finer as the market matured. EC2 went to per-second billing eleven years in. S3 added per-request charges, then storage classes that price hot-versus-cold access differently. The unit of consumption was a moving target, not a starting truth.

Football is somewhere around the equivalent of 2007 on this. Minutes-played-and-goals-scored is the gigabyte-month version: easy to compute, public, and structurally too coarse to actually price the thing being delivered.

It's the "somewhere around" that does the work, though. Software events are mostly independent. A read on S3 in Tokyo and a read on S3 in Frankfurt have nothing to do with each other; the meter increments cleanly and the bill arrives. Football events don't behave that way. A tackle in the eighty-ninth minute at 0-0 isn't the same unit as a tackle in the twelfth at 3-0. A pass played to a runner at full sprint isn't the same unit as one to a static teammate who can't do anything with it. Lukaku's seven touches were a stat about him being in spaces nobody fed him in, in a system that wasn't getting him the ball — at least one of which is partly his coordinate problem and at least one of which isn't. The meter has to know the difference, or it has to pretend the difference doesn't matter.

Any meter useful enough to price contracts has to encode some theory of context: weight events by match state, role, opposition, team system. That's not a counter problem; that's a model problem. The weighting is itself a decision about what a footballer is for, and reasonable people will weight it differently. That's true of any software meter anyone actually builds — AWS has spent a decade arguing internally about which compute units to expose and which to bury.

None of which means metering is impossible. It means the engineering problem is real, partly solved already, and contested in interesting ways. Clubs already run versions of these models internally; the ones who do it well buy better. That's the same kind of competitive advantage AWS got from charging by the second while its competitors still charged by the hour.

(Outside this series I'm also building a thought-experiment version of one — Minutemeter — that meters spotlighted players against the 2026 World Cup off real match data and fictional rates, mostly to find out where the engineering actually breaks. Different voice, different rules.)

What hasn't followed in football is the contracting layer. Even a good meter has to be reconciled against contracts that lock cost in regardless, against spells when the player isn't on the pitch at all, and against a market where the previous agreed wage just set the floor for the next one.

The next post takes the second of those: what happens to the meter when the player isn't there. Software solved that one too, sort of, and the answer turns out to be more interesting than it sounds.

No comments yet