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…

Julian

Brandt

AMGermany · Borussia Dortmund

№ 187492Elite €16.1M −0.07

Player dossierBundesliga

JulianBrandt

AMAttacking MidfieldMidfield

Club
Borussia Dortmund
League
Bundesliga
Nationality
Germany
Age
30
Height
185 cm
Foot
Right
Valued
27 May 2026

Reading the valuation

The market values Brandt at €15M. Model A, which never saw Brandt during training, estimates €16.1M: the market value is 7% below that estimate.

That is a factor of ×1.07. 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 €17.5M, 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.07A €16.1M▼ −0.15B €17.5M
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
92
Minutes
5,941
Goals
17
Assists
20
Started
69/92
Min / app
65
Cards
1Y 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 Brandt…

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

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

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

Julian Brandt's percentiles among midfielders: Goals per 90 90th, Assists per 90 96th, Minutes, two years 94th, Starts 61st, Minutes, last 365 days 78th, European club minutes 94th90thGoals96thAssists94thMinutes61stStarts78thRecent94thEurope

Dashed ring: the midfielder median (50th percentile)

Assists per 90

Club assists per 90 minutes in the same window.

0.30 this player0.09 midfielder median96th 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
€500k
Jan 2014
Peak
€50M
Jun 2019
Model target
€15M
May 2026
Valuations
35
1 club change
May 2026€15MBorussia DortmundValuation the model is trained to reproduce

May 2026: €15M, Borussia Dortmund. Dotted lines mark the €2M, €10M and €30M tier boundaries.

Show as a table
DateMarket valueClub
2014-01-06€500kBayer 04 Leverkusen
2014-02-12€1MBayer 04 Leverkusen
2014-07-10€5MBayer 04 Leverkusen
2015-02-04€5MBayer 04 Leverkusen
2015-07-01€7.5MBayer 04 Leverkusen
2015-10-16€10MBayer 04 Leverkusen
2016-02-15€10MBayer 04 Leverkusen
2016-07-22€16MBayer 04 Leverkusen
2017-02-07€20MBayer 04 Leverkusen
2017-06-19€20MBayer 04 Leverkusen
2017-12-28€30MBayer 04 Leverkusen
2018-04-04€35MBayer 04 Leverkusen
2018-06-05€40MBayer 04 Leverkusen
2018-07-16€45MBayer 04 Leverkusen
2018-12-18€40MBayer 04 Leverkusen
2019-03-06€45MBayer 04 Leverkusen
2019-06-05€50MBayer 04 Leverkusen
2019-12-17€50MBorussia Dortmund
2020-04-08€40MBorussia Dortmund
2020-11-26€35MBorussia Dortmund
2021-02-10€30MBorussia Dortmund
2021-03-31€25MBorussia Dortmund
2021-06-09€20MBorussia Dortmund
2021-12-22€25MBorussia Dortmund
2022-06-09€25MBorussia Dortmund
2022-11-09€28MBorussia Dortmund
2023-03-29€40MBorussia Dortmund
2023-06-22€40MBorussia Dortmund
2023-12-14€40MBorussia Dortmund
2024-05-29€40MBorussia Dortmund
2024-12-20€35MBorussia Dortmund
2025-03-27€25MBorussia Dortmund
2025-06-05€25MBorussia Dortmund
2025-12-19€20MBorussia Dortmund
2026-05-27€15MBorussia Dortmund

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

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 74% of the 451 Bundesliga players.

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

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

Valued above 83% of the 1,687 midfielders.

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

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