João Carvalho
Value picture
Where the market, the likely price and the model estimates sit.
The model rates João Carvalho's performance-implied value at EUR 1.1M-4.0M, above the estimated acquisition range of EUR 1.6M-4.0M. Its 24-month market value projection is EUR 1.9M-4.7M. Context-adjusted goal contributions are 1.53x the positional average in the league (2798 minutes, league coefficient 0.58). Confidence is medium: 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: 58
What drives the score. Not a black box: each component and its level.
| Performance | Above average | 56.4th pct among MID peers (age-neutral) |
| Age | Unfavorable | 29.3 years |
| Acquisition cost | Very favorable | est. €2.1M vs market €5.0M |
| Expected appreciation | Very low | -47% over ~2 years (model) |
| Value gap | Small | weak predictor on its own |
| Development | Low | |
| League translation | Moderate | league coefficient 0.58 |
| Tactical fit | Not evaluated | Requires event/role data not available from the current free source. |
| Risk | Moderate | |
| Data confidence | Medium |
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 1163 evaluated MID players with 900+ minutes.
Performance (last season, league)
- Minutes
- 2798 (91% of available)
- Goals + assists / 90
- 0.58
- Context-adjusted G+A / 90
- 0.62
- xG, xA, progression
- Data unavailable
- Defensive actions
- Data unavailable
- Performance percentile
- 56 (Above 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.58 (rank 9)
- Team strength (Elo)
- 1305
- Opponent strength
- 1338
- Possession, role
- Data unavailable
League strength 1.00 = average club of the big-five leagues. Elo includes continental matches.
Potential
- Development
- Low
- Trajectory
- improving
- Breakout probability
- Age > 23
- Resale range (24m)
- €1.9M – €4.7M
Trajectory drivers: minutes share up 16 pts; relative output up 40% vs positional peers.
Historical comparables (8): median 2-year value change -56% (IQR -62% to -35%).
Risk profile
Overall: Moderate
- ⚠League level coefficient 0.58 (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.
- ⓘ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
- 58 (MID)
- Relative output kept
- 72%–151%
- 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.
| 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 | GD Estoril Praia | Liga Portugal | AM | 33 | 2798 | 91% | 6 | 12 | 0.58 | 0.62 | 1338 | 1305 | 0.58 |
| 2024/25 | GD Estoril Praia | Liga Portugal | AM | 28 | 2316 | 76% | 6 | 3 | 0.35 | 0.43 | 1349 | 1302 | 0.51 |
| 2023/24 | Olympiakos Syndesmos Filathlon Peiraios | Super League 1 | AM | 14 | 494 | 21% | 0 | 2 | 0.36 | 0.28 | 1195 | 1490 | 0.42 |
| 2022/23 | GD Estoril Praia | Liga Portugal | CM | 29 | 2317 | 76% | 1 | 2 | 0.12 | 0.18 | 1384 | 1252 | 0.68 |
| 2021/22 | Olympiakos Syndesmos Filathlon Peiraios | Super League 1 | AM | 5 | 297 | 13% | 0 | 1 | 0.30 | 0.22 | 1245 | 1499 | 0.39 |
| 2017/18 | SL Benfica | Liga Portugal | AM | 7 | 168 | 5% | 0 | 1 | 0.54 | 0.26 | 1295 | 1605 | 0.64 |
| 2016/17 | Vitória Setúbal FC | Liga Portugal | SS | 15 | 1145 | 37% | 1 | 1 | 0.16 | 0.40 | 1351 | 1244 | 0.58 |
Cups & continental competitions
| Season | Competition | Club | Apps | Min | G | A | Avg opp. Elo |
|---|---|---|---|---|---|---|---|
| 2023/24 | Uefa Europa League Qualifying | Olympiakos Syndesmos Filathlon Peiraios | 3 | 130 | 0 | 0 | 1450 |
| 2023/24 | Kypello Elladas | Olympiakos Syndesmos Filathlon Peiraios | 2 | 110 | 0 | 0 | — |
| 2023/24 | Uefa Europa League | Olympiakos Syndesmos Filathlon Peiraios | 2 | 23 | 0 | 0 | 1336 |
| 2022/23 | Uefa Champions League Qualifying | Olympiakos Syndesmos Filathlon Peiraios | 1 | 45 | 0 | 0 | 1426 |
| 2021/22 | Kypello Elladas | Olympiakos Syndesmos Filathlon Peiraios | 3 | 137 | 0 | 1 | — |
| 2017/18 | Uefa Champions League | SL Benfica | 1 | 90 | 0 | 0 | 1595 |
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 |
|---|---|---|---|---|
| Ibrahima Seck Jupiler Pro League · 2018 | 29 | €2.0M | €1.4M | fell |
| Castro Super Lig · 2016 | 28 | €5.8M | €2.5M | fell |
| Kerim Mrabti Jupiler Pro League · 2022 | 28 | €3.5M | €2.2M | fell |
| Marco Ilaimaharitra Jupiler Pro League · 2023 | 28 | €2.0M | €800k | fell |
| Haris Hajradinovic Super Lig · 2024 | 30 | €2.7M | €1.2M | fell |
| Aatif Chahechouhe Super Lig · 2016 | 30 | €3.5M | €1.2M | fell |
| Mateusz Klich Eredivisie · 2017 | 27 | €2.3M | €2.5M | flat |
| Nuno Coelho Liga Portugal · 2016 | 29 | €1.5M | €400k | fell |
Transfer history
Fees as reported by the source; undisclosed fees shown as unknown, never estimated.
| Date | From | To | Fee | MV at time |
|---|---|---|---|---|
| 16 Aug 2024 | Olympiacos | Estoril | Free / loan | €1.2M |
| 30 Jun 2023 | Estoril | Olympiacos | Free / loan | €1.8M |
| 22 Aug 2022 | Olympiacos | Estoril | Free / loan | €2.5M |
| 29 Jan 2022 | Nott'm Forest | Olympiacos | Unknown | €2.2M |
| 30 Jun 2021 | UD Almería | Nott'm Forest | Free / loan | €3.0M |
| 29 Sept 2020 | Nott'm Forest | UD Almería | Free / loan | €4.0M |
| 1 Jul 2018 | Benfica | Nott'm Forest | €15.0M | €2.5M |
| 1 Jul 2017 | Benfica B | Benfica | Unknown | €2.0M |
| 30 Jun 2017 | Vitória Setúbal | Benfica B | Free / loan | €2.0M |
| 30 Jan 2017 | Benfica B | Vitória Setúbal | Free / loan | €1.0M |
| 1 Jan 2015 | Benfica U19 | Benfica B | Unknown | Data unavailable |
| 1 Jan 2014 | Benfica U17 | Benfica U19 | Unknown | Data unavailable |
| 1 Jul 2012 | Benfica U15 | Benfica U17 | Unknown | Data unavailable |
| 1 Jul 2010 | Benfica Yth | Benfica U15 | 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.