Scoring skill
Data to 25 Oct 2026 (2026-27 season in progress)
What the number means: if João Carvalho plays 90 minutes at a neutral venue against an average Liga defence, the model expects 0.10 more goals than if that place were taken by a replacement-level player — the kind of signing any club can make for free. Goals are capped (winsorized) before the estimate, so one four-goal afternoon is not read as permanent skill.
The model puts 90% probability on the true value lying between 0.02 and 0.18. Fewer minutes, wider interval.
Attacking contribution
Seasons 2023-24 to 2026-27
#24 of 40 published
The same structure as the finishing metric, but adding goals and assists together. It sees what the goals-only metric could not: who creates.
Few minutes pull the estimate toward replacement level and widen the interval.
Minutes, matches and goals from 2023-24 to 2026-27 · Data to 25 Oct 2026 (2026-27 season in progress)
Season by season
Goals go up and down; the skill estimate barely moves. That is by design: the model only admits a change in skill when the data demand one, and across this player's three Liga Portugal seasons they never have.
| Season | Minutes | Goals | Skill (with margin) |
|---|---|---|---|
| 2024-25 | 2,316 | 6 | +0.10 |
| 2025-26 | 2,798 | 6 | +0.10 |
| 2026-27 | 768 | 0 | +0.09 |
There is no telling whether he improved
Between 2025-26 and 2026-27 the estimate moved −0.007 — but the margin of error on that difference is ±0.076, 11 times larger. In other words: indistinguishable from zero. A big goal season is usually natural variation, not new skill.
Latest recorded appearances
Data to 25 Oct 2026 (2026-27 season in progress)
- 25 Oct25 Oct 2026Moreirensehome58' · startedno goals6.2
- 10 Oct10 Oct 2026Ac. Viseuaway90' · startedno goals7.3
- 20 Sep20 Sep 2026Casa Piahome80' · startedno goals6.5
- 14 Sep14 Sep 2026Sp. Bragaaway90' · startedno goals6.5
- 7 Sep7 Sep 2026Aroucahome90' · startedno goals7.5
- 31 Aug31 Aug 2026Benficaaway90' · startedno goals6.9
- 22 Aug22 Aug 2026Rio Avehome90' · startedno goals6.9
- 16 Aug16 Aug 2026Nacionalaway90' · startedno goals7.0
Match-by-match data (SofaScore). The rating is the provider's, not the model's — the model only uses goals, minutes and opponent.
Bayesian player model fitted on 31,272 individual appearances since 2023-24, with a 600-minute minimum to qualify. Club = current squad (2026-27); the season-by-season table shows where he played each season. The finishing and contribution data runs to 25 October 2026, with the 2026-27 season in progress: minutes, goals and recent appearances stop there until those models are refitted; contested possession, goalkeepers and defenders use the seasons their own files list.