How FN Score and FN xPts work
Fulltime Note rates players with two metrics of its own. FN Score measures how well a player played across the match; FN xPts measures how much scoreline moments such as goals and red cards changed a team's expected points. Both formulas are published in full. (FN xPts are our own decimal metric, separate from league-table points.)
FN Score
FN Score uses a published formula. We add and subtract what each player actually did in the match, plus a small team-result part (win +0.2, loss −0.2; clean sheet or goals conceded for defenders), and show which parts drove the score.
Score = 5.6 + (sum of parts × 0.98), clamped to 3.0–10.0. Anything above 8.5 counts half, so a perfect 10 is genuinely rare. The average is about 6.5. Players with under 15 minutes are not rated.
| FN Score | Grade | Share (2025-26, 66,042 player ratings) |
|---|---|---|
| 8.0+ | Dominant | ~5% · player of the match is usually 8–8.5 |
| 7.0–7.9 | Strong | ~19% |
| 6.0–6.9 | Solid | ~47% |
| Under 6.0 | Below par | ~29% |
| Part | What counts |
|---|---|
| Attack | Non-penalty goal +1.0, penalty goal +0.6, assist +0.7, shot on target +0.12, other shot (off target or blocked) +0.02, key pass +0.18, successful dribble +0.1, penalty won +0.3, penalty missed −0.6 |
| Build-up | +0.008 per completed pass; with 20+ passes, ±0.01 per point of accuracy above/below 80% |
| Defence | Tackle or interception +0.12, block +0.1, duel won +0.05, duel lost −0.03, dribbled past −0.08 |
| Keeping | Base +0.2, save +0.3, goal conceded −0.2, penalty saved +0.8, clean sheet (60+ min) +0.3 (goals conceded while that keeper was on the pitch) |
| Discipline | Foul −0.05, foul won +0.04, yellow −0.2, red −1.2, penalty conceded −0.5 (a second yellow that leads to a red is part of the red, so a two-yellow dismissal is −1.4) |
| Result | Win +0.2 / loss −0.2; defenders with 60+ min: team clean sheet +0.3 or −0.08 per team goal conceded |
| Own goal | −0.6 (not affected by position weights) |
Position weights: defenders ×1.2 defence and ×1.15 attack; forwards ×0.7 defence and ×0.8 build-up; midfielders ×1.1 build-up; goalkeepers ×0.6 build-up and ×0.6 defence. Players with no listed position get midfielder weights.
Goals, assists, penalties and cards are counted from the same match events as the timeline. Where those events don't add up to the final score or the team card totals (missing data), we fall back to the provider's player stats. If a goalkeeper's goals conceded are missing, we count the opponent's goals while that keeper was on the pitch.
We also show the data provider's (API-Football) rating, as a reference point rather than a gold standard. The correlation between the two (about 0.77 in 2025-26) is only a sanity check that FN Score isn't wildly off. What sets FN Score apart is that every part of it is published, so you can see which actions produced the number.
FN xPts
FN xPts measure how much a moment — a goal, own goal, red card or missed penalty — changed that team's expected points (win 3, draw 1). A winner at 0-0 in the 88th minute is worth a lot; a fifth goal at 4-0 is worth almost nothing. That is why scorers at dominant sides, who score many goals in big wins, can have lower totals than their goal count suggests.
A player's FN xPts total is the value of the moments they were directly involved in — goals, assists, own goals, red cards and missed penalties. It is not everything a player gives a team; defending, saves and build-up play are covered by FN Score.
Expected points come from the score and the time left. Goals in the remaining time are modelled as Poisson.
Pre-match expected goals: home expectation = base average (home) × home team's home attack × away team's away defensive weakness (and the same for the away side). Attack and defensive weakness compare a team's last two years (about two seasons) of top-five-league home and away goals with the league average, blended with 8 matches of a starting value so that small samples are pulled toward average. Teams with fewer than 10 matches in that league (newly promoted sides, for example) start from attack ×0.8 and defensive weakness ×1.2. Expected goals are kept between 0.2 and 4.
- League matches: the base average is that league's home and away goals per game over the last two years.
- European and cup matches: the base average is a common top-five-league figure (1.55 at home, 1.25 away), and a team that has played in a top-five league within the last 400 days keeps its attack and defence ratings from that league. Differences in strength between leagues (the Premier League and Ligue 1, say) are not modelled.
- Teams from outside the top five leagues (other European clubs, lower-division sides in domestic cups) have no such record, so they start from the competition values below, fitted to their actual results against top-five-league sides in that competition since July 2020. Their pre-match figure is marked as an estimate in the FN xPts section of the match page. When neither side has a top-five-league record (two non-top-five clubs in Europe), both are treated as equal in strength.
| Competition (non-top-five side) | Attack | Defensive weakness |
|---|---|---|
| UEFA Champions League | ×0.96 | ×1.19 |
| UEFA Europa League | ×0.74 | ×1.2 |
| FA Cup | ×0.59 | ×1.75 |
| EFL Cup | ×0.5 | ×1.96 |
| Coupe de France | ×0.47 | ×1.88 |
| DFB-Pokal | ×0.62 | ×2.25 |
| Coppa Italia | ×0.74 | ×1.58 |
| Copa del Rey | ×0.49 | ×2.14 |
| UEFA Conference League | ×0.75 | ×1.36 |
Red cards: a side one player down scores at ×0.7 and its opponent at ×1.3 (applied twice for a two-player gap, with at least seven players). Red cards shown to managers or coaching staff do not change the numbers on the pitch, so they are ignored.
Match length: where the data provider records stoppage time, a match lasts 90 minutes plus that figure (120 plus stoppage time after extra time); otherwise we use 94 minutes (122 with extra time). If the last moment comes later, the match is extended to it. Scoring rates are set per 94 minutes, and pre-match expected points use 94 minutes (122 with extra time) because stoppage time isn't known before kick-off. Roughly 40% of this season's matches have a recorded stoppage time.
| Moment | Calculation |
|---|---|
| Goal | Expected points just after minus just before. Split 70% scorer, 30% assist (penalties 100% scorer) |
| Own goal | The expected points the player's team lost |
| Red card | The change from playing a man down (second yellows included) |
| Pen miss | What scoring would have added × 76% conversion rate |
We break it down so that expected points before kick-off + own moments + opponent moments + the time effect (the clock running down on a lead or a chase) = points actually won.
Limits: team strength comes only from recent league goals (transfers, injuries and rotation are not modelled). Only timed moments (goals, cards, missed penalties) count, so decisive saves and defending don't show up here — FN Score covers those. The 70/30 scorer/assist split is our own rule, not something observed in the data. Knockout ties are measured on the single match, not the aggregate; shoot-outs count as draws.
FN xPts look back at how much moments mattered. It is not a prediction.
Changelog
- 2026-10-03 · v1.3 — Data fixes: missing goalkeeper goals-conceded values were treated as zero (so keepers who conceded still got the clean-sheet bonus); goals, assists and cards now come from the same events as the timeline; a two-yellow dismissal now costs −1.4, the same as a yellow followed by a straight red; managers' red cards are no longer treated as players'; matches without xG are no longer shown as xG 0. FN xPts: starting values for non-top-five and lower-division sides are now fitted to real results by competition, and newly promoted sides use the promoted-team starting value from their first match. Clarified that matches without recorded stoppage time (about 60%) use 94 minutes. FN Rankings: players need at least three rated matches, and players without an ID are no longer merged. Added terms missing from this page (other shots +0.02, goalkeeper weights and more). All seasons recalculated.
- 2026-10-02 · v1.2 — FN xPts: renamed from FN Points so it isn't confused with league-table points. Match length now uses the provider's recorded stoppage time. All seasons recalculated.
- 2026-10-01 · v1.1 — FN Score: dropped the data provider's "goals prevented" figure after finding it was identical for both teams; anything above 8.5 now counts half; goalkeeper weights rebalanced (goal conceded −0.35→−0.2, clean sheet +0.4→+0.3, base +0.2); own goal −0.6 added. FN Points: renamed from FN Swing; pre-match scoring rates now reflect each team's last two years of league home/away goals. All seasons recalculated.
- 2026-09-30 · v1.0 — First release.