FairValue

Checking model

Esc

  • EnvironmentOverviewWhat FairValue measures, what it found, where to go next.
  • EnvironmentTerminalExplore, compare and track players; market, league and model views.
  • EnvironmentStoriesValuations, head-to-heads and research findings, told as stories.
  • TerminalPlayer ExplorerSearch, filter and sort the player export.
  • TerminalComparison StudioTwo to four players on one scale.
  • TerminalWatchlistsNamed collections, kept in this browser.
  • TerminalMarket LandscapeHow observed value is distributed, and where the model drifts.

↑ ↓ to move · Enter to open · Esc to closeLoading player index…

Jens

Toornstra

AMNetherlands · Sparta Rotterdam

№ 134999Emerging €124k +0.47

Player dossierEredivisie

JensToornstra

AMAttacking MidfieldMidfield

Club
Sparta Rotterdam
League
Eredivisie
Nationality
Netherlands
Age
37
Height
178 cm
Foot
Right
Valued
28 May 2026

Reading the valuation

The market values Toornstra at €200k. Model A, which never saw Toornstra during training, estimates €124k: the market value is 61% above that estimate.

That is a factor of ×1.61. Model A's typical held-out miss is ×1.50 either way, so this gap is larger than its usual error.

Without league and club, Model B estimates €173k, closer to the market here, although it is usually further off (typical miss ×2.07).

A gap describes the model's arithmetic for this player's inputs, not what the player is worth.

▲ +0.47A €124k▲ +0.15B €173k
Pitch length is a log value scale fitted to this player's figures. ● observed · ◇ Model A · dashed ◇ Model B · each arc is a residual, log(observed) − log(estimate).
Apps
53
Minutes
2,515
Goals
1
Assists
5
Started
30/53
Min / app
47
Cards
5Y 0R

Club matches, two years to the valuation date

The Valuation Journey

What moves Model A

Asking the prediction API to explain Model A for Toornstra…

SHAP describes the model's arithmetic for this player's inputs, not what causes market value. Model B can be explained only by the live service; Model A also has a published explanation for the research players.

Model A vs Model B against the observed €200k

Checking API
EmergingEstablishedEliteWorld Class€2M€10M€30M€100k€1M€100MMarket €200kModel A €124k

Asking the prediction API…

Held-out estimates come from cross-validation, with this player outside the training data: the honest comparison. Served models were refitted on every player, this one included, so they sit closer to the market. Shaded band: Model A's typical miss (×1.50 either way).

Player traitspercentiles vs 1,687 midfielders

Jens Toornstra's percentiles among midfielders: Goals per 90 27th, Assists per 90 78th, Minutes, two years 48th, Starts 30th, Minutes, last 365 days 34th, European club minutes 30th27thGoals78thAssists48thMinutes30thStarts34thRecent30thEurope

Dashed ring: the midfielder median (50th percentile)

Assists per 90

Club assists per 90 minutes in the same window.

0.18 this player0.09 midfielder median78th percentile

0.00peer deciles · median line · this player ●0.74

No passing, progression or defensive actions exist in the dataset, so no trait claims to measure them.

Valuation history every Transfermarkt valuation on record

First valuation
€50k
Dec 2009
Peak
€7.5M
Jun 2017
Model target
€200k
May 2026
Valuations
39
5 club changes
May 2026€200kSparta RotterdamValuation the model is trained to reproduce

May 2026: €200k, Sparta Rotterdam. Dotted lines mark the €2M, €10M and €30M tier boundaries.

Show as a table
DateMarket valueClub
2009-12-07€50kADO Den Haag U21
2010-08-25€500kADO Den Haag
2011-01-17€750kADO Den Haag
2011-03-08€1MADO Den Haag
2011-06-17€1.8MADO Den Haag
2012-01-20€2MADO Den Haag
2013-01-14€2.5MADO Den Haag
2013-06-04€2.8MFC Utrecht
2013-09-26€3.5MFC Utrecht
2014-02-11€3.5MFC Utrecht
2014-08-11€4MFC Utrecht
2015-02-16€6MFeyenoord Rotterdam
2015-07-01€6MFeyenoord Rotterdam
2015-11-11€5MFeyenoord Rotterdam
2016-02-05€4MFeyenoord Rotterdam
2016-07-15€4MFeyenoord Rotterdam
2017-01-18€6MFeyenoord Rotterdam
2017-06-07€7.5MFeyenoord Rotterdam
2018-01-17€6MFeyenoord Rotterdam
2018-06-12€5MFeyenoord Rotterdam
2018-12-28€4MFeyenoord Rotterdam
2019-06-12€4MFeyenoord Rotterdam
2019-12-18€4MFeyenoord Rotterdam
2020-04-08€3.2MFeyenoord Rotterdam
2020-10-14€2.5MFeyenoord Rotterdam
2021-01-06€2.2MFeyenoord Rotterdam
2021-03-09€2MFeyenoord Rotterdam
2021-05-19€2MFeyenoord Rotterdam
2022-01-05€1.5MFeyenoord Rotterdam
2022-06-08€1.2MFeyenoord Rotterdam
2022-09-14€1MFC Utrecht
2022-11-11€1MFC Utrecht
2023-06-23€750kFC Utrecht
2023-12-15€550kFC Utrecht
2024-05-31€450kFC Utrecht
2024-12-17€350kFC Utrecht
2025-05-28€350kFC Utrecht
2025-12-02€300kSparta Rotterdam
2026-05-28€200kSparta Rotterdam

Audit context group-level, not about this player

Audit group
UEFA
Population gap, Model A
+0.093 95% CI +0.063 to +0.124
This player, market vs held-out A
+0.474

The group comes from first-listed citizenship and is never a model input. Across the population, non-UEFA players' market values sit about 10% above Model A's held-out estimates, relative to UEFA players in the same leagues. One player's residual says nothing about that pattern (typical miss ×1.50), and none of it is evidence of discrimination: the target may itself be biased. Open the Fairness Audit

In context observed value among comparable players in this build

All players in the Terminal →

Eredivisie425 players · median €1M

Valued above 3% of the 425 Eredivisie players.

€75k€500k€3M€20M€200kSee them in the Explorer →

Midfielders, all leagues1,687 players · median €2M

Valued above 3% of the 1,687 midfielders.

€20k€200k€2M€20M€200kSee them in the Explorer →

Where Toornstra appears

Watchlists and the comparison tray are kept in this browser only.

Near this valuation closest observed values: same league, then same position

Counts and ranks of observed Transfermarkt values only; model errors are never ranked here. Full player export: Every player in the modelling population (D-011).