Football Performance Lab

Methodology

Every number published on FootyCabin is derived from recorded match data. This page summarises how those numbers are produced and what they deliberately do not claim.

Data source

Fixtures, lineups, events and player match statistics are imported from Sportmonks and stored per fixture with the provider identifiers preserved. Aggregation uses completed fixtures only: announced lineups, future fixtures, and bench rows without played minutes are excluded.

Per-90 values and rates

A per-90 value scales a season total to a full match: total × 90 ÷ minutes played. It is never calculated when minutes are missing or zero. Efficiency rates are only computed when both numerator and denominator exist, and are bounded to 0–100%.

Missing versus zero

The provider frequently omits a statistic rather than sending a zero. FootyCabin keeps those values missing and labels them "not available". Missing values are never treated as zero, and metric coverage is recorded alongside every composite score.

Role-relative percentiles

Roles are derived from lineup formation geometry per match, then resolved for the season from starting minutes. Percentiles compare a player with the players sharing that role in the same season, and the reference group size is published with the value. Groups under 15 players are flagged as a small reference group.

Impact Score

The Football Performance Lab Impact Score is an experimental in-house model. It combines role-relative percentile families using explicit weights and records how much of the intended weight was actually covered by available data. It is not an official rating, not a definitive measure of player quality, and not a prediction.

Attacking Threat Score

Attacking Threat combines recorded shooting, chance creation and involvement in advanced areas into one role-relative 0-100 score. It is built from independent attacking dimensions rather than by averaging other FootyCabin scores, so it is not a restatement of finishing or creativity. No xG or shot-location data is used, and it does not measure chance quality. It is withheld when a player has too few recorded attacking actions or when most attacking dimensions are missing.

Player archetypes

An archetype describes statistical playing style, not player quality. Each role family has its own set of transparent rules built from role-relative percentiles, and a player is only labelled when his profile leans clearly towards one style and the runner-up is a clear distance behind. Matches are published as a strong or moderate match rather than a false-precision percentage, and players without a distinctive profile are shown as having no clear archetype yet.

Player similarity

Similarity compares normalized playing profiles. A high similarity score means the players contribute in similar statistical ways, not that they have the same ability. Players are only compared inside a compatible role family, and each season is a separate profile: the same player in two seasons is never merged. The score is calibrated against every comparable pair in the population, so "92 similar" means the pair is closer than 92% of comparable pairs. A pair is withheld when either profile covers too few of the required dimensions.

Minimum sample rules

  • Values are calculated internally from 180 minutes and 3 appearances.
  • Public ranked scores require 360 minutes, 5 appearances, at least 90% metric coverage and an established role.
  • A season sample is called established from 720 minutes and 8 appearances.
  • A single appearance contributes a match impact observation from 30 minutes.

Browse players