Transparent by design

How the score works.

Every completed appearance adds evidence. Minutes, match importance, individual actions, decisive moments, team results and discipline are combined without percentile caps or hidden manual adjustments.

Match by match Deterministic No percentile caps Position-aware events Fully auditable

Quality and availability are separate signals

Every appearance is still scored from its actual minutes, but playing time is not multiplied linearly through several season pillars. Individual performance becomes a per-90 quality rate with progressive evidence confidence; availability is measured explicitly; and team-achievement participation uses a square-root curve.

01

Collect

Supabase stores completed fixtures, events and every available player-statistics line from API-Football.

02

Score each match

Minutes, provider rating and transparent position-aware events create one individual match contribution.

03

Add context

Knockout stage, competition strength, decisive score-state actions and trophy participation are applied explicitly.

04

Build the season score

Match totals become five distinct season pillars before weighting and leader normalization.

One appearance at a time

Individual performance in one match

minutes share = minutes played ÷ 90 rating quality = max(0, (API-Football rating − 5) ÷ 5) event quality = asinh(position-aware event points ÷ 2) match performance = minutes share × stage factor × (60% rating quality + 40% event quality)

If the provider rating is missing, event quality receives the full match-performance weight. Missing evidence is never replaced with invented neutral points.

The provider rating is the primary match signal because API-Football calculates it differently by playing position. The event component keeps the result explainable and prevents the ranking from becoming a black-box rating table. asinh softens extreme event totals while remaining strictly increasing: unlike a hard cap, every additional valid action still changes the result.

RoleEvent emphasisWhy
ForwardsGoal 2.40; assist 1.50; key pass 0.10; shot on target 0.06; dribble 0.03; duel 0.01; defensive action 0.012Rewards direct attacking responsibility.
MidfieldersGoal 2.80; assist 1.60; key pass 0.13; shot on target 0.05; dribble 0.035; duel 0.015; defensive action 0.025Balances creation, progression and ball recovery.
DefendersGoal 3.40; assist 1.70; key pass 0.10; shot on target 0.04; dribble 0.025; duel 0.025; defensive action 0.04Rare attacking actions matter without replacing defensive work.
GoalkeepersSave 0.18; penalty save 1.80; goal conceded −0.20Uses goalkeeper actions instead of outfield totals.

Penalty goals retain 75% of the equivalent non-penalty goal value. Only physically plausible player records are scored: minutes must be between 0 and 130 and ratings between 0 and 10. A rejected record remains stored in its raw fixture document for audit.

Five pillars, 100 total weight

The model uses the published Ballon d'Or voting priorities as its design target, but the numerical weights below are Ballon d'Or Data product choices—not official award weights. Users can change them on the ranking page.

PillarDefaultCalculation
Individual performance45%Match-performance points per 90, multiplied by progressive sample confidence.
Decisive and big-match impact25%Goals and assists weighted by score state, timing and knockout stage.
Team achievements20%Completed winner and runner-up results, adjusted by the square root of actual team-minute participation.
Consistency and availability7%Team-minute availability multiplied by a blend of baseline availability and average above-baseline rating quality.
Fair play3%Average clean-play credit per 90; cards and penalties committed reduce the relevant match credit exponentially.

How minutes matter without being counted repeatedly

Performance confidence uses a 900-minute half-life: 900 minutes provide 50% confidence, 1,800 provide 75% and 2,700 provide 87.5%. Every additional minute still increases confidence, but twice the minutes no longer doubles performance, fair-play and trophy credit simultaneously. There is no eligibility threshold or hard playing-time cap.

Not every fixture carries the same responsibility

Score-state leverage

A go-ahead goal from a level score receives 1.25×; an equalizer receives 1.15×; a contribution that extends a two-goal lead receives 0.65×. An assist receives 60% of the corresponding goal-event value.

Late decisive actions

A goal contribution from minute 75 onward receives 1.15×. The rule is automatic and applies identically to every player.

Knockout stage

Regular and group matches use 1.00×, round of 32/play-offs 1.05×, round of 16 1.10×, quarter-finals 1.20×, semi-finals 1.35× and finals 1.50×.

Competition strength

The visible slider interpolates from equal treatment to the published competition coefficient. Full strength is the default: World Cup 1.25×, Champions League 1.15×, top domestic leagues 1.00–1.10×, MLS 0.58× and Saudi Pro League 0.52×.

Team achievement participation

Credit uses the square root of minutes played divided by all available team minutes in that exact competition. A winner with 50% participation receives 70.7% of full winner credit—not 50%—while a squad member with no minutes still receives no credit.

No opponent-name bonus

The model does not manually label famous opponents as stronger. Competition and stage are known, reproducible context; subjective club reputation is not.

No percentile cap

1

Add match evidence

match totals = Σ valid selected-match contributions

The competition-strength multiplier is applied to performance, decisive impact and consistency. Fair-play evidence is not made more valuable by league prestige.

2

Separate quality from availability

performance = performance points per 90 × (1 − 2^(−minutes ÷ 900))consistency = availability × (0.5 + 0.5 × consistency quality per 90)fair play = clean-play points per 90
3

Change each pillar to a common unit

pillar index = player pillar value ÷ highest pillar value

This is proportional leader normalization. There are no P10/P99 clamps and no percentile ranks.

4

Apply the visible weights

raw score = Σ(pillar index × pillar weight) ÷ Σ(weights)
5

Display the leader as 100

display score = 100 × raw score ÷ best raw score

Unrounded raw score, provider rating, match minutes and API player ID provide deterministic tie-breaking.

Why the current #1 finishes ahead of #2

This live comparison uses all 17 competitions, full competition-strength coefficients and the five default weights. Each bar shows the player's value relative to the leader of that pillar; the number beside it is the resulting weighted contribution.

Loading the current top two from Supabase…

Data and synchronization

The tool uses API-Football's fixture, event, fixture-player-statistics, season-player-statistics, standings and result data. The API key exists only as a Supabase Edge Function secret. Raw fixture documents and normalized match rows are protected by Row Level Security; the public browser receives only the latest compact scoring snapshot.

API-FootballPrivate Supabase tablesFive scoring pillarsPublic snapshot

Fixture IDs are synchronized in resumable batches of at most 20. A failed batch can retry without restarting the season. The new snapshot is published only after every batch succeeds. The ranking page displays the date of the latest completed synchronization. One final full-season synchronization is scheduled for 31 July 2026.

What the score still cannot know

  • Provider coverage: some competitions or fixtures may expose fewer detailed player fields. Missing evidence adds no points.
  • Provider rating: its position-specific calculation is useful but proprietary, so the model limits it to 60% of one match-performance component.
  • Tactical assignments: broad positions cannot fully represent marking duties, pressing triggers or off-ball movement.
  • Expected goals and tracking data: the current data source does not provide a complete xG, xA or player-tracking set across every included competition.
  • Award judgement: a transparent model can make assumptions consistent; it cannot turn a subjective award into an objective fact.