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…

Portrait of Jonas Hofmann

Jonas

Hofmann

AMGermany · Bayer 04 Leverkusen

№ 7161Emerging €2M −0.30

Image: FootyLogos

Player dossierBundesliga

JonasHofmann

AMAttacking MidfieldMidfield

Club
Bayer 04 Leverkusen
League
Bundesliga
Nationality
Germany
Age
33
Height
176 cm
Foot
Right
Valued
27 May 2026

Reading the valuation

The market values Hofmann at €1.5M. Model A, which never saw Hofmann during training, estimates €2M: the market value is 26% below that estimate.

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

Without league and club, Model B estimates €771k, further from the market. Model B is usually further off (typical miss ×2.07): league and club explain much of how the market prices players.

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

▼ −0.30A €2M▲ +0.67B €771k
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
45
Minutes
1,939
Goals
6
Assists
5
Started
21/45
Min / app
43
Cards
4Y 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 Hofmann…

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 €1.5M

Checking API
EmergingEstablishedEliteWorld Class€2M€10M€30M€100k€1M€100MMarket €1.5MModel A €2M

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

Jonas Hofmann's percentiles among midfielders: Goals per 90 92nd, Assists per 90 90th, Minutes, two years 35th, Starts 17th, Minutes, last 365 days 41st, European club minutes 73rd92ndGoals90thAssists35thMinutes17thStarts41stRecent73rdEurope

Dashed ring: the midfielder median (50th percentile)

Goals per 90

Club goals per 90 minutes played in the two years to the valuation date.

0.28 this player0.08 midfielder median92nd percentile

0.00peer deciles · median line · this player ●0.93

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
Jul 2011
Peak
€16M
Feb 2021
Model target
€1.5M
May 2026
Valuations
39
5 club changes
May 2026€1.5MBayer 04 LeverkusenValuation the model is trained to reproduce

May 2026: €1.5M, Bayer 04 Leverkusen. Dotted lines mark the €2M, €10M and €30M tier boundaries.

Show as a table
DateMarket valueClub
2011-07-01€50kBorussia Dortmund II
2012-01-20€100kBorussia Dortmund II
2012-02-06€125kBorussia Dortmund II
2012-07-05€150kBorussia Dortmund II
2012-10-23€200kBorussia Dortmund II
2013-06-30€500kBorussia Dortmund II
2013-08-27€1MBorussia Dortmund
2013-11-05€3MBorussia Dortmund
2014-07-10€4MBorussia Dortmund
2015-02-04€4M1.FSV Mainz 05
2015-07-01€4MBorussia Dortmund
2016-02-15€6MBorussia Mönchengladbach
2016-07-22€5MBorussia Mönchengladbach
2016-10-13€4MBorussia Mönchengladbach
2017-02-07€3.5MBorussia Mönchengladbach
2017-06-19€3.5MBorussia Mönchengladbach
2017-12-28€3MBorussia Mönchengladbach
2018-06-05€3MBorussia Mönchengladbach
2018-10-22€8MBorussia Mönchengladbach
2018-12-18€12MBorussia Mönchengladbach
2019-06-05€9MBorussia Mönchengladbach
2019-12-17€9MBorussia Mönchengladbach
2020-04-08€7MBorussia Mönchengladbach
2020-07-08€9MBorussia Mönchengladbach
2020-11-26€14MBorussia Mönchengladbach
2021-02-10€16MBorussia Mönchengladbach
2021-06-01€16MBorussia Mönchengladbach
2021-12-22€16MBorussia Mönchengladbach
2022-06-09€13MBorussia Mönchengladbach
2022-11-09€13MBorussia Mönchengladbach
2023-06-22€13MBorussia Mönchengladbach
2023-12-14€13MBayer 04 Leverkusen
2024-05-29€10MBayer 04 Leverkusen
2024-10-09€7MBayer 04 Leverkusen
2024-12-20€5MBayer 04 Leverkusen
2025-03-27€3MBayer 04 Leverkusen
2025-06-05€2MBayer 04 Leverkusen
2025-12-19€2MBayer 04 Leverkusen
2026-05-27€1.5MBayer 04 Leverkusen

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.301

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 →

Bundesliga451 players · median €5M

Valued above 12% of the 451 Bundesliga players.

€300k€2M€15M€100M€1.5MSee them in the Explorer →

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

Valued above 39% of the 1,687 midfielders.

€20k€200k€2M€20M€1.5MSee them in the Explorer →

Where Hofmann 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).