Metric vocabulary
One metric registry, shared across benchmarks. A metric name means the same quantity wherever it appears.
Transfers scores single matches, so a metric here is a player's value in one appearance.
Benchmarks that score season aggregates use the same names for the season equivalent — shots is
the shot count in one appearance here, and shots per game there.
The metrics
| Metric | Per-match value | What it counts |
|---|---|---|
goals | count | goals scored |
assists | count | assists |
shots | count | shots taken, on and off target |
key_passes | count | passes leading directly to a shot |
dribbles_won | count | successful take-ons |
total_passes | count | passes attempted |
pass_success | percentage | share of passes completed |
accurate_crosses | count | completed crosses |
accurate_long_passes | count | completed long passes |
accurate_through_balls | count | completed through balls |
aerials_won | count | aerial duels won |
tackles_won | count | tackles won |
interceptions | count | interceptions |
clearances | count | clearances |
outfielder_blocks | count | blocks by an outfield player |
was_dribbled | count | times beaten by a take-on |
dispossessed | count | times dispossessed in possession |
turnovers | count | possession lost by an unsuccessful action |
saves | count | saves made |
xg | value | expected goals |
xg_diff | value | goals minus expected goals |
Names are the Arena's own. Providers describe these quantities differently and sometimes define them differently; each provider is mapped onto this registry offline, in a versioned mapper, and no provider's native column names reach a contract.
Which metrics a case asks for
Three or four per role, not the whole registry:
| Broad role | Metrics requested |
|---|---|
GK | savestotal_passespass_success |
CB | clearancesaerials_wontackles_wonpass_success |
FB | tackles_woninterceptionsaccurate_crossestotal_passes |
DM | tackles_woninterceptionstotal_passespass_success |
CM | total_passespass_successkey_passestackles_won |
AM | key_passesshotsdribbles_wontotal_passes |
W | dribbles_wonkey_passesshotsaccurate_crosses |
ST | shotsgoalsaerials_wonkey_passes |
Masks are narrow deliberately. A full mask of eight metrics at ten bands is eighty probabilities per case, which the current cohort is far too small to need.
Selection is not only football salience. A metric that is zero in almost every match wastes the band grid, because every zero collapses into a single tie block at the bottom of the percentile scale, leaving a grid with two usable bands. Each role's mask is drawn from the metrics that are non-zero often enough to be resolvable for that role.
Excluded metrics
Ranking fields, yellow cards, red cards, own goals, and man-of-the-match style proxies are excluded across all benchmarks.
Two further exclusions are specific to per-match scoring, because a ratio over a small per-match denominator is not a stable quantity:
xg_per_shot— undefined in the many matches where a player takes no shot.- any per-90 rate — every appearance counts and there is no minutes floor, so a per-90 rate explodes on short ones. One goal in a seven-minute cameo is not a 12.9-goal performance.
pass_success survives as the one ratio metric, because its per-match denominator is passes
attempted, which runs to dozens for any outfielder completing a real shift.
No expected goals in the current contract. xg and xg_diff stay in the vocabulary because
they are metrics a benchmark would want, but no per-appearance value is available to populate them,
and a metric that cannot be observed cannot be scored. They are absent from every mask.
How bands are derived
Percentile bands are derived from the reference pool, per competition, role and metric — never fixed in the contract:
| Rule | Value |
|---|---|
| Derived per | competitionbroad_rolemetric |
| Bands per metric, at most | 5 |
pass_success, at most | 10 |
total_passes, at most | 10 |
| Bands per metric, at least | 3 |
| Smallest share a band may hold | 2.5% |
| Distributions must sum to 1 within | 0.000001 |
Three consequences worth understanding before implementing:
Band counts differ within one case. A metric that supports ten bands sits next to one that supports three, in the same request. Assuming a uniform band count is the most common first bug.
A band's width is its share of appearances. Bands are cut at cumulative mass, so a band spanning percentiles 0 to 78 holds 78% of peer appearances. The league base rate is therefore readable straight off the grid you were sent — which is what makes the scoring floor reachable without any privileged access to Arena data.
Grids differ by league. The same percentile edge maps to different real values in different
competitions, which is why labels ship with every grid:
total_passes for CM| Band | Percentile | Values in Premier League | Share of appearances |
|---|---|---|---|
| 1 | 0–11.3 | 0-7 | 11.3% |
| 2 | 11.3–22.2 | 8-14 | 10.9% |
| 3 | 22.2–32.2 | 15-21 | 10.1% |
| 4 | 32.2–43.2 | 22-27 | 10.9% |
| 5 | 43.2–53.5 | 28-33 | 10.3% |
| 6 | 53.5–63.9 | 34-39 | 10.4% |
| 7 | 63.9–74.8 | 40-46 | 10.9% |
| 8 | 74.8–85.8 | 47-55 | 11.0% |
| 9 | 85.8–96.1 | 56-71 | 10.3% |
| 10 | 96.1–100 | 72+ | 3.9% |
A band’s percentile width is its share of peer appearances, because bands are cut at cumulative mass. Predicting these shares is the league base rate, and scores zero.
Reference pools
A pool is every appearance in a competition, by role, over the last two completed seasons. It describes the league standard for a position rather than a set of players, which is why promoted clubs need no special handling.
Pools are frozen before the season starts and never recomputed during it. A pool that moved would change the percentile of an appearance already scored, silently rewriting a published leaderboard.
| Competition | Reference seasons | Pooled appearances | Seasons complete | Pool version |
|---|---|---|---|---|
| Bundesliga | 2024/2025, 2025/2026 | 18,645 | Yes | 2026-09-bundesliga-2024-2026-pool-v1 |
| LaLiga | 2024/2025, 2025/2026 | 23,536 | Yes | 2026-09-laliga-2024-2026-pool-v1 |
| Ligue 1 | 2024/2025, 2025/2026 | 18,426 | Yes | 2026-09-ligue1-2024-2026-pool-v1 |
| Premier League | 2024/2025, 2025/2026 | 22,608 | Yes | 2026-09-epl-2024-2026-pool-v1 |
| Serie A | 2024/2025, 2025/2026 | 23,342 | Yes | 2026-09-seriea-2024-2026-pool-v1 |