Denis Odoi

38 yrs · Centre-back (also DM, LB, RB) · Ghana
NAC Breda · Eredivisie · Foot: right · Height: 178 cm
Risk: Very HighConfidence: MediumSample: MediumDevelopment: LowContract: Data unavailable
Market value
€150k
Updated 7 days ago
Estimated acquisition
€32k – €205k
Estimated · 20–80% range
Model value
€93k – €287k
Performance-implied · estimated
Projected (24m)
€93k – €150k
Resale range · estimated
Potential value gap
-€112k – €255k
Model value − acquisition

Value picture

Where the market, the likely price and the model estimates sit.

Estimated acquisition€32k – €205k
Model value (performance-implied)€93k – €287k
Projected value (24 months)€93k – €150k
Dashed line: current market value (€150k). Bars are 20–80% model ranges; tick = median.

The model rates Denis Odoi's performance-implied value at EUR 0.1M-0.3M, above the estimated acquisition range of EUR 0.0M-0.2M. Its 24-month market value projection is EUR 0.1M-0.2M. Confidence is medium: no event-level data (xG, progressive actions) is available from the current free source, and injury history is unavailable.

Acquisition note: Contract end date unavailable: range widened by 15% each side.

Bargain Index: not assigned

What drives the score. Not a black box: each component and its level.

Market value below EUR 250k (outside validated pool)

PerformanceAverage44.6th pct among DEF peers (age-neutral)
AgeUnfavorable38.1 years
Acquisition costVery favorableest. €89k vs market €150k
Expected appreciationLow-15% over ~2 years (model)
Value gapVery largeweak predictor on its own
DevelopmentLow
League translationUncertainleague coefficient 0.43
Tactical fitNot evaluatedRequires event/role data not available from the current free source.
RiskVery High
Data confidenceMedium

Bargain Index = percentile (among all evaluated players) of expected 2-year value relative to estimated cost. See methodology and backtests.

Market value history

Market value ≠ transfer fee ≠ acquisition cost.

Highest recorded: €2.5M

Profile vs positional peers

Percentiles among 1268 evaluated DEF players with 900+ minutes.

Performance (last season, league)

Minutes
1513 (49% of available)
Goals + assists / 90
0.00
Context-adjusted G+A / 90
0.04
xG, xA, progression
Data unavailable
Defensive actions
Data unavailable
Performance percentile
45 (Average)

Adjusted = shrunk toward positional baseline for small samples, corrected for team dominance over opponents, expressed relative to positional peers in the same league.

Context

League strength
0.43 (rank 15)
Team strength (Elo)
1118
Opponent strength
1306
Possession, role
Data unavailable

League strength 1.00 = average club of the big-five leagues. Elo includes continental matches.

Potential

Development
Low
Trajectory
declining
Breakout probability
Age > 23
Resale range (24m)
€93k – €150k

Trajectory drivers: changed club; team strength down (-324 Elo); league level down (-91 Elo); role change DM -> CB; relative output down 54% vs positional peers.

Historical comparables (8): median 2-year value change +0% (IQR +0% to +0%).

Risk profile

Overall: Very High

  • ▲Age 38: resale value typically declines.
  • ⚠Limited sample: 1513 league minutes last season.
  • ⚠League level coefficient 0.43 (1.00 = big-five average): output may not translate.
  • ⚠No continental-competition minutes last season.
  • ⚠Declining trajectory versus previous season.
  • ⓘContract end date unavailable (or stale in source).
  • ⓘInjury history unavailable from current data source.

League translation

What happened to players who moved from this league to the big-five leagues (observed, not a forecast).

Historical movers
82 (DEF)
Relative output kept
65%–166%
Held a regular role (900+ min)
78%
Confidence
Medium

Output is relative to positional peers in each league. Movers are a selected group (clubs buy players who fit), so treat this as context, not a guarantee.

Season-by-season (domestic league)

Context-adjusted values are model outputs.

SeasonClubLeaguePosAppsMinMin shareGAG+A/90Adj. G+A/90Opp. EloTeam EloLeague str.
2025/26NAC BredaEredivisieCB19151349%000.000.04130611180.43
2024/25Royal Antwerp FCJupiler Pro LeagueDM18143953%120.190.14139814420.63
2023/24Club Brugge KVJupiler Pro LeagueRB1756821%100.160.10141515410.63
2022/23Club Brugge KVJupiler Pro LeagueCB25189062%000.000.02129914910.58
2021/22Club Brugge KVJupiler Pro LeagueDM863421%110.280.13133615120.49
2020/21Fulham FCPremier LeagueCB32708%000.000.07147213521.19
2018/19Fulham FCPremier LeagueCB31259476%010.030.07154813501.22
2015/16KSC Lokeren (- 2020)Jupiler Pro LeagueLB302693100%120.100.10133813310.57
2014/15KSC Lokeren (- 2020)Jupiler Pro LeagueLB29261097%030.100.09130713820.54
2013/14KSC Lokeren (- 2020)Jupiler Pro LeagueLB27238088%000.000.03134113980.49
2012/13RSC AnderlechtJupiler Pro LeagueCB1061723%030.440.14136015540.56

Cups & continental competitions

SeasonCompetitionClubAppsMinGAAvg opp. Elo
2023/24Uefa Conference League QualifyingClub Brugge KV4110001388
2022/23Uefa Champions LeagueClub Brugge KV7524001673
2022/23Volkswagen SupercupClub Brugge KV131001420
2021/22Fa CupFulham FC112000—
2020/21Fa CupFulham FC23700—
2018/19Fa CupFulham FC19010—
2014/15Uefa Europa LeagueKSC Lokeren (- 2020)6540001473
2014/15Uefa Europa League QualifyingKSC Lokeren (- 2020)2180001436
2014/15Volkswagen SupercupKSC Lokeren (- 2020)190011440
2012/13Uefa Champions League QualifyingRSC Anderlecht4350021402
2012/13Volkswagen SupercupRSC Anderlecht190011365

Small continental samples are shown for context only and are not over-weighted.

Historical comparables

Most similar profiles 2+ years ago (same position group) and what happened next. Chosen by similarity only — failures included.

Player (then)AgeValue then~2y laterOutcome
Bruno Alves
Super League 1 · 2022
41€100k€100kflat
Paul Quasten
Eredivisie · 2021
36€125k€125kflat
Egor Filipenko
Premier Liga · 2024
36€150k€150kflat
Anton Ferdinand
Scottish Premiership · 2019
34€300k€300kflat
Alan Maybury
Scottish Premiership · 2014
36€150k€75kfell
Loukas Vyntra
Super League 1 · 2020
39€100k€100kflat
Rubén Pulido
Super League 1 · 2014
35€200k€200kflat
Ali Turan
Super Lig · 2020
37€75k€75kflat

Transfer history

Fees as reported by the source; undisclosed fees shown as unknown, never estimated.

DateFromToFeeMV at time
1 Jul 2026NAC BredaWithout ClubUnknown€150k
24 Nov 2025Without ClubNAC BredaUnknown€200k
1 Jul 2025Royal AntwerpWithout ClubUnknown€250k
1 Jul 2024Club BruggeRoyal AntwerpFree / loan€300k
31 Jan 2022FulhamClub Brugge€700k€500k
14 Jul 2016KSC LokerenFulham€1.0M€1.5M
1 Jul 2013RSC AnderlechtKSC LokerenUnknown€1.3M
1 Jul 2011Sint-TruidenRSC Anderlecht€1.5M€1.5M
1 Jul 2009OH LeuvenSint-TruidenUnknown€200k
1 Jul 2006OH Leuven U19OH LeuvenUnknownData unavailable
1 Jul 2005KRC Genk U17OH Leuven U19Free / loanData unavailable
1 Jul 2004Anderlecht U17KRC Genk U17Free / loanData unavailable
1 Jul 2003Anderlecht Yth.Anderlecht U17UnknownData unavailable

MoneyballAI identifies statistical opportunities from available data. A player flagged as a potential bargain is not guaranteed to succeed, to transfer, to rise in value, or to generate resale profit. Market values, fees and contracts come from third-party sources; ranges are model estimates with stated confidence.

Denis Odoi · MoneyballAI