
Jens Toornstra
Value picture
Where the market, the likely price and the model estimates sit.
The model rates Jens Toornstra'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.2M-0.2M. Context-adjusted goal contributions are 0.55x the positional average in the league (792 minutes, league coefficient 0.43). Confidence is low: no event-level data (xG, progressive actions) is available from the current free source, and injury history is unavailable.
Acquisition note: Final year of contract: selling club's leverage is reduced.
Bargain Index: not assigned
What drives the score. Not a black box: each component and its level.
Insufficient sample (< 900 league minutes)
| Performance | Below average | 24.3th pct among MID peers (age-neutral) |
| Age | Unfavorable | 37.2 years |
| Acquisition cost | Very favorable | est. €64k vs market €200k |
| Expected appreciation | Neutral | +1% over ~2 years (model) |
| Value gap | Very large | weak predictor on its own |
| Development | Low | |
| League translation | Uncertain | league coefficient 0.43 |
| Tactical fit | Not evaluated | Requires event/role data not available from the current free source. |
| Risk | Very High | |
| Data confidence | Low |
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.
Profile vs positional peers
Percentiles among 1164 evaluated MID players with 900+ minutes.
Performance (last season, league)
- Minutes
- 792 (26% of available)
- Goals + assists / 90
- 0.00
- Context-adjusted G+A / 90
- 0.22
- xG, xA, progression
- Data unavailable
- Defensive actions
- Data unavailable
- Performance percentile
- 24 (Below 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)
- 1213
- Opponent strength
- 1362
- 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)
- €156k – €199k
Trajectory drivers: minutes share down 18 pts; changed club; team strength down (-196 Elo); relative output down 29% vs positional peers.
Historical comparables (8): median 2-year value change +0% (IQR -50% to +0%).
Risk profile
Overall: Very High
- ▲Small sample: 792 league minutes last season.
- ▲Age 37: resale value typically declines.
- ⚠League level coefficient 0.43 (1.00 = big-five average): output may not translate.
- ⚠No continental-competition minutes last season.
- ⚠Contract ends in 12 months: cheaper, but competition and wage demands likely.
- ⚠Played under 40% of available league minutes (injury data unavailable, cause unknown).
- ⚠Declining trajectory versus previous season.
- ⓘ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
- 53 (MID)
- Relative output kept
- 76%–148%
- Held a regular role (900+ min)
- 68%
- 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.
| Season | Club | League | Pos | Apps | Min | Min share | G | A | G+A/90 | Adj. G+A/90 | Opp. Elo | Team Elo | League str. |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025/26 | Sparta Rotterdam | Eredivisie | AM | 17 | 792 | 26% | 0 | 0 | 0.00 | 0.22 | 1362 | 1213 | 0.43 |
| 2024/25 | FC Utrecht | Eredivisie | AM | 31 | 1334 | 44% | 1 | 4 | 0.34 | 0.30 | 1316 | 1409 | 0.50 |
| 2023/24 | FC Utrecht | Eredivisie | AM | 31 | 1787 | 58% | 4 | 5 | 0.45 | 0.40 | 1372 | 1354 | 0.48 |
| 2022/23 | FC Utrecht | Eredivisie | DM | 28 | 2338 | 76% | 1 | 5 | 0.23 | 0.19 | 1344 | 1392 | 0.58 |
| 2022/23 | Feyenoord Rotterdam | Eredivisie | AM | 3 | 75 | 2% | 0 | 1 | 1.20 | 0.25 | 1303 | 1639 | 0.58 |
| 2021/22 | Feyenoord Rotterdam | Eredivisie | RW | 31 | 1787 | 58% | 3 | 3 | 0.30 | 0.25 | 1353 | 1609 | 0.60 |
| 2020/21 | Feyenoord Rotterdam | Eredivisie | CM | 31 | 2670 | 87% | 8 | 2 | 0.34 | 0.24 | 1346 | 1457 | 0.56 |
| 2019/20 | Feyenoord Rotterdam | Eredivisie | CM | 21 | 1717 | 76% | 5 | 4 | 0.47 | 0.25 | 1361 | 1542 | 0.62 |
| 2018/19 | Feyenoord Rotterdam | Eredivisie | AM | 32 | 2341 | 77% | 8 | 5 | 0.50 | 0.29 | 1359 | 1502 | 0.61 |
| 2017/18 | Feyenoord Rotterdam | Eredivisie | AM | 32 | 2297 | 75% | 8 | 11 | 0.74 | 0.45 | 1322 | 1530 | 0.59 |
| 2016/17 | Feyenoord Rotterdam | Eredivisie | AM | 34 | 2800 | 92% | 14 | 11 | 0.80 | 0.47 | 1347 | 1536 | 0.54 |
| 2015/16 | Feyenoord Rotterdam | Eredivisie | AM | 21 | 1405 | 46% | 2 | 6 | 0.51 | 0.33 | 1276 | 1452 | 0.58 |
| 2014/15 | Feyenoord Rotterdam | Eredivisie | RW | 29 | 2062 | 67% | 7 | 4 | 0.48 | 0.32 | 1333 | 1436 | 0.52 |
| 2014/15 | FC Utrecht | Eredivisie | AM | 2 | 180 | 6% | 1 | 1 | 1.00 | 0.38 | 1236 | 1289 | 0.52 |
| 2013/14 | FC Utrecht | Eredivisie | AM | 34 | 3044 | 99% | 12 | 3 | 0.44 | 0.43 | 1338 | 1331 | 0.59 |
| 2012/13 | ADO Den Haag | Eredivisie | AM | 20 | 1799 | 59% | 5 | 2 | 0.35 | 0.36 | 1352 | 1298 | 0.54 |
| 2012/13 | FC Utrecht | Eredivisie | AM | 12 | 1071 | 35% | 5 | 5 | 0.84 | 0.56 | 1355 | 1432 | 0.54 |
Cups & continental competitions
| Season | Competition | Club | Apps | Min | G | A | Avg opp. Elo |
|---|---|---|---|---|---|---|---|
| 2025/26 | Knvb Beker | Sparta Rotterdam | 3 | 267 | 0 | 1 | — |
| 2024/25 | Knvb Beker | FC Utrecht | 2 | 122 | 0 | 0 | — |
| 2023/24 | Knvb Beker | FC Utrecht | 2 | 115 | 0 | 2 | — |
| 2022/23 | Knvb Beker | FC Utrecht | 3 | 245 | 1 | 0 | — |
| 2021/22 | Uefa Conference League Qualifying | Feyenoord Rotterdam | 6 | 540 | 0 | 4 | 1364 |
| 2021/22 | Knvb Beker | Feyenoord Rotterdam | 1 | 35 | 0 | 0 | — |
| 2020/21 | Uefa Europa League | Feyenoord Rotterdam | 6 | 521 | 0 | 1 | 1503 |
| 2020/21 | Knvb Beker | Feyenoord Rotterdam | 2 | 180 | 0 | 1 | — |
| 2019/20 | Uefa Europa League | Feyenoord Rotterdam | 6 | 431 | 2 | 0 | 1582 |
| 2019/20 | Knvb Beker | Feyenoord Rotterdam | 4 | 390 | 0 | 2 | — |
| 2018/19 | Knvb Beker | Feyenoord Rotterdam | 3 | 184 | 0 | 0 | — |
| 2018/19 | Uefa Europa League Qualifying | Feyenoord Rotterdam | 2 | 180 | 0 | 0 | 1380 |
| 2018/19 | Johan Cruijff Schaal | Feyenoord Rotterdam | 1 | 62 | 0 | 0 | 1636 |
| 2017/18 | Knvb Beker | Feyenoord Rotterdam | 6 | 459 | 1 | 1 | — |
| 2017/18 | Uefa Champions League | Feyenoord Rotterdam | 5 | 323 | 0 | 0 | 1771 |
| 2017/18 | Johan Cruijff Schaal | Feyenoord Rotterdam | 1 | 90 | 1 | 0 | 1358 |
| 2016/17 | Uefa Europa League | Feyenoord Rotterdam | 6 | 474 | 0 | 0 | 1562 |
| 2016/17 | Knvb Beker | Feyenoord Rotterdam | 3 | 270 | 1 | 1 | — |
| 2016/17 | Johan Cruijff Schaal | Feyenoord Rotterdam | 1 | 63 | 0 | 0 | 1658 |
| 2015/16 | Knvb Beker | Feyenoord Rotterdam | 3 | 179 | 0 | 1 | — |
| 2014/15 | Uefa Europa League | Feyenoord Rotterdam | 8 | 720 | 3 | 1 | 1537 |
| 2014/15 | Knvb Beker | Feyenoord Rotterdam | 1 | 90 | 0 | 0 | — |
| 2013/14 | Knvb Beker | FC Utrecht | 4 | 390 | 3 | 0 | — |
| 2013/14 | Uefa Europa League Qualifying | FC Utrecht | 2 | 180 | 0 | 1 | 1432 |
| 2012/13 | Knvb Beker | ADO Den Haag | 2 | 180 | 1 | 0 | — |
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) | Age | Value then | ~2y later | Outcome |
|---|---|---|---|---|
| Rasmus Würtz Superliga · 2019 | 36 | €300k | €300k | flat |
| Chris Millar Scottish Premiership · 2018 | 35 | €300k | €150k | fell |
| Matias Iglesias Super League 1 · 2021 | 36 | €100k | €125k | rose |
| Martín Rolle Super League 1 · 2019 | 34 | €200k | €100k | fell |
| Hakan Arslan Super Lig · 2024 | 36 | €100k | €100k | flat |
| Vladyslav Lupashko Premier Liga · 2021 | 35 | €200k | €100k | fell |
| Arnaud Djoum Scottish Premiership · 2023 | 34 | €225k | €225k | flat |
| Javier Umbides Super League 1 · 2021 | 39 | €100k | €100k | flat |
Transfer history
Fees as reported by the source; undisclosed fees shown as unknown, never estimated.
| Date | From | To | Fee | MV at time |
|---|---|---|---|---|
| 1 Jul 2025 | Utrecht | Sparta R. | Free / loan | €350k |
| 23 Aug 2022 | Feyenoord | Utrecht | Free / loan | €1.2M |
| 25 Aug 2014 | Utrecht | Feyenoord | €3.5M | €4.0M |
| 31 Jan 2013 | ADO Den Haag | Utrecht | €950k | €2.5M |
| 1 Jan 2010 | ADO U21 | ADO Den Haag | Unknown | €50k |
| 1 Jul 2009 | Alphense Boys | ADO U21 | Unknown | Data unavailable |
| 1 Jul 2008 | Alphense B. U19 | Alphense Boys | Unknown | Data unavailable |
| 1 Jul 2006 | Alphense B. U17 | Alphense B. U19 | Unknown | Data unavailable |
| 1 Jul 2004 | Alphense B. Jgd | Alphense B. U17 | Unknown | Data 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.