Denis
Odoi
Player dossierEredivisie
DenisOdoi
CBCentre-BackDefender
- Club
- NAC Breda
- League
- Eredivisie
- Nationality
- Ghana
- Age
- 38
- Height
- 178 cm
- Foot
- Right
- Valued
- 28 May 2026
Reading the valuation
The market values Odoi at €150k. Model A, which never saw Odoi during training, estimates €105k: the market value is 43% above that estimate.
That is a factor of ×1.43. 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 €124k, 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.
- Apps
- 37
- Minutes
- 2,952
- Goals
- 1
- Assists
- 2
- Started
- 33/37
- Min / app
- 80
- Cards
- 13Y 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 Odoi…
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 €150k
Checking APIAsking 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 2,065 defenders
Dashed ring: the defender median (50th percentile)
Starts
Share of appearances started rather than entered from the bench.
89% this player83% defender median67th percentile
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
- €100k
- Nov 2007
- Peak
- €2.5M
- Jun 2019
- Model target
- €150k
- May 2026
- Valuations
- 39
- 8 club changes
May 2026: €150k, NAC Breda. Dotted lines mark the €2M, €10M and €30M tier boundaries.
Show as a table
| Date | Market value | Club |
|---|---|---|
| 2007-11-23 | €100k | Oud-Heverlee Leuven |
| 2008-10-09 | €200k | Oud-Heverlee Leuven |
| 2009-07-08 | €300k | Sint-Truidense VV |
| 2009-09-04 | €500k | Sint-Truidense VV |
| 2010-01-25 | €650k | Sint-Truidense VV |
| 2010-07-28 | €850k | Sint-Truidense VV |
| 2011-01-10 | €1.2M | Sint-Truidense VV |
| 2011-06-30 | €1.5M | Sint-Truidense VV |
| 2012-06-17 | €2M | RSC Anderlecht |
| 2013-01-09 | €1.5M | RSC Anderlecht |
| 2013-06-25 | €1.3M | RSC Anderlecht |
| 2014-02-10 | €1.5M | KSC Lokeren (-2020) |
| 2014-06-28 | €1.5M | KSC Lokeren (-2020) |
| 2015-01-07 | €1.7M | KSC Lokeren (-2020) |
| 2015-03-24 | €2M | KSC Lokeren (-2020) |
| 2015-10-22 | €1.8M | KSC Lokeren (-2020) |
| 2016-02-07 | €1.5M | KSC Lokeren (-2020) |
| 2016-09-01 | €1.3M | Fulham FC |
| 2017-02-27 | €1M | Fulham FC |
| 2017-09-18 | €1M | Fulham FC |
| 2018-02-27 | €1M | Fulham FC |
| 2018-08-13 | €1.5M | Fulham FC |
| 2018-12-19 | €2M | Fulham FC |
| 2019-06-13 | €2.5M | Fulham FC |
| 2020-02-27 | €2M | Fulham FC |
| 2020-04-08 | €1.6M | Fulham FC |
| 2020-10-13 | €1.6M | Fulham FC |
| 2021-03-18 | €1M | Fulham FC |
| 2021-06-08 | €600k | Fulham FC |
| 2021-11-24 | €500k | Fulham FC |
| 2022-04-12 | €700k | Club Brugge KV |
| 2022-11-04 | €600k | Club Brugge KV |
| 2023-06-09 | €400k | Club Brugge KV |
| 2023-12-19 | €400k | Club Brugge KV |
| 2024-06-04 | €300k | Club Brugge KV |
| 2024-12-11 | €300k | Royal Antwerp FC |
| 2025-06-12 | €250k | Royal Antwerp FC |
| 2025-10-21 | €200k | Without Club |
| 2026-05-28 | €150k | NAC Breda |
Audit context group-level, not about this player
- Audit group
- non-UEFA
- Population gap, Model A
- +0.093 95% CI +0.063 to +0.124
- This player, market vs held-out A
- +0.356
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 1% of the 425 Eredivisie players.
See them in the Explorer →Defenders, all leagues2,065 players · median €2M
Valued above 3% of the 2,065 defenders.
See them in the Explorer →Where Odoi appears
Watchlists and the comparison tray are kept in this browser only.
Near this valuation closest observed values: same league, then same position
- GladonCFFortuna Sittard · Eredivisie€150k
- DuinenCFExcelsior Rotterdam · Eredivisie€150k
- JansinkGKHeracles Almelo · Eredivisie€150k
- BrunsAMHeracles Almelo · Eredivisie€175k
- LampropoulosCBOFI Crete · defenders€150k
- KolodziejczakCBParis FC · defenders€150k
- MarinakisRBOFI Crete · defenders€150k
- GeraldesRBCasa Pia AC · defenders€150k
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).