How much Fenomeno did we get?
A notebook trying to answer "How much of R9 was there to (probably) get?"
| Votes | Language | Version | Updated |
|---|---|---|---|
| 2 | python | 3 | 2026-10-26 |
The companion notebook, Just how good was R9?, covered the first of this project's two questions. This one takes the second: how much of that player did we get, and how much was there to get if his knees had held?
The answer is a counterfactual, so the assumptions are listed up front and kept narrow:
- Fixtures are fixed. Only matches his teams actually played while he sat out with a knee injury get filled. No invented seasons, no moved transfers. The career still ends in June 2011.
- Observed stays observed. No match is replayed, no goal re-simulated. The counterfactual adds to the record and never edits it.
- Inputs come from his own record. Scoring rate, availability and minutes per appearance are estimated from his own play around each absence.
- Uncertainty is carried through. Jeffreys posteriors on rates and availability, Poisson goals, a simulated 95% interval on every headline number.
The frame is the same as the companion notebook: senior matches from the match log, club plus full internationals. 598 games, 47,241 minutes, 392 goals.
Rules 1 to 4 define the first tier (sections 1 to 5). It patches the observed career and nothing else. Section 6 relaxes rules 2 and 3 once, for the trajectory tier. That tier asks what the career looks like if his twenties are never interrupted, and borrows the missing aging curve from two later careers. Sections 8 and 9 list what stays out.
1. What the knees took
Eleven injury spells are on record. Six are knee injuries, and they account for 1,130 of the 1,433 days lost. The match log links every match his teams played during an absence to its injury, so the cost counts in senior matches, not just days.
| injury | from_date | until_date | days_out | age | senior_games_missed |
|---|---|---|---|---|---|
| Patellar tendon tear | 1995-12-11 00:00:00 | 1996-04-22 00:00:00 | 134 | 19.2 | 26 |
| Bruised knee | 1998-11-08 00:00:00 | 1998-12-04 00:00:00 | 27 | 22.1 | 6 |
| Knee problems | 1999-01-18 00:00:00 | 1999-02-27 00:00:00 | 41 | 22.3 | 7 |
| Patellar tendon rupture | 1999-11-22 00:00:00 | 2000-04-10 00:00:00 | 141 | 23.2 | 27 |
| Patellar tendon rupture | 2000-04-12 00:00:00 | 2001-09-17 00:00:00 | 524 | 23.6 | 87 |
| Patellar tendon rupture | 2008-02-13 00:00:00 | 2008-11-01 00:00:00 | 263 | 31.4 | 27 |
For modeling, the six spells merge into four contiguous absence windows:
- The void, 22 November 1999 to 17 September 2001. The partial rupture of the right patellar tendon, the return into a cup final four and a half months later, the complete rupture six minutes into that return, and the 524 days after it. His teams played 115 senior matches across this window. He played one of them, for six minutes. Ages 23.2 to 25.0: the start of the ages where the sports-economics literature places a forward's peak [external: Dendir 2016].
- The third rupture, February to November 2008, the left knee this time, at age 31. 27 senior matches missed.
- The first surgery, December 1995 to April 1996, the right patellar tendon at age 19, at PSV. 26 senior matches missed.
- The flares of 1998-99, two knee absences in the Inter season he played on a sore tendon. 13 senior matches missed.
The other five spells (hamstring, thigh, muscle tear, broken tibia, broken hand) are not knee injuries and stay in place in every scenario below.
2. The fill rule
Each filled window needs three numbers: how many of the offered matches he would have played, for how many minutes, and at what scoring rate. All three come from his own record near the window, under one rule applied identically everywhere:
- Local context: all senior matches within 18 months of either edge of the window (widened to 24, then 36 months if that holds fewer than 2,000 played minutes), excluding matches that fall inside any other filled window.
- Availability: of the local squad matches he was not injured for, the share he actually played. This keeps the ordinary reasons a fit player misses matches (rotation, suspension, non-selection) at their locally observed frequency.
- Minutes: his local minutes per appearance.
- Rate: his local goals per 90 on played minutes.
Each filled match contributes Bernoulli(availability) × minutes × rate / 90 expected goals. The simulation draws availability from a Jeffreys Beta posterior, the rate from a Jeffreys Gamma posterior, and realized goals from a Poisson. It runs 20,000 times with a fixed seed.
The rule has two properties. It is conservative: the local context around the void includes the 1998-99 season played on a sore tendon and the slow comeback months of 2001-02. Both pull the fill's rate and availability down. It is also uniform: no window gets a hand-picked rate, and the healthy stretch it is calibrated on (next cell) gets no special treatment.
Calibration. Before filling anything real, the rule is pointed at a healthy stretch. Pretend the 1997-98 season, from August to May, was a knee absence, and predict it from its surroundings with the same machinery.
The rule recovers a healthy season to within about 10%, erring low on all three quantities. The fills below carry the same downward bias.
3. Three worlds
What to fill is a judgment, so there are three scenarios rather than one number.
- W1, modern rehabilitation. The November 1999 partial tear happens, but it is treated the way it would be now in a player with a known tendon history. That means one continuous, imaging-guided rehabilitation and a graduated return, not a cup final in month five. Published return times for elite athletes after serious patellar injury run six months to a year [external: Boublik et al. 2011]. W1 charges him nine months, to late August 2000, and fills only the 71 matches of the void after that. Everything else in history is unchanged, including the 2008 rupture.
- W2, the knees hold. The central scenario. From 21 November 1999 his knees hold: no void, no 2008 rupture. The five non-knee injuries all still occur, no earlier absence is touched, and the fill rates still come from the local record.
- W3, never a knee problem. All six knee absences filled, back to the first surgery at 19. The upper edge of what "the knees survived" can mean in match arithmetic.
| scenario | games filled | minutes added | goals added | goals added 95% | counterfactual total | share we got | share 95% |
|---|---|---|---|---|---|---|---|
| W1 modern rehabilitation | 71 | 3393 | 28.5 | 16 to 44 | 421 | 93.2% | 89.9 to 96.1% |
| W2 the knees hold | 141 | 6525 | 49.5 | 32 to 70 | 442 | 88.8% | 84.8 to 92.5% |
| W3 never a knee problem | 180 | 8814 | 73.2 | 52 to 98 | 465 | 84.3% | 80.0 to 88.3% |
The void dominates: it returns about 44 of W2's 50 expected goals. The 2008 fill is small because his surroundings at 31 were small: 43% availability and 0.59 goals per 90. The rule prices the window at that level.
4. The picture
Cumulative senior goals by age, actual against W2. The band is the 95% interval on the filled goals; W1 and W3 end at the ticks.
5. How much did we get, against the patched career?
The share is actual over counterfactual, per world.
Sensitivity. The fill rule made three choices for the void: local rate, local availability, local minutes per appearance. Each can be pushed in the generous direction, since the local record includes the comeback months. The grid reprices the void under every combination: rate up to his whole pre-injury career (0.85 per 90), availability up to the 1996-98 prime (84%), minutes up to the pre-injury average (83).
| void rate | availability | min/app | void fill | W2 total | share we got |
|---|---|---|---|---|---|
| local window (the rule) (0.70) | local (the rule) (0.69) | local (the rule) (72) | 43.9 | 442 | 88.8% |
| local window (the rule) (0.70) | local (the rule) (0.69) | pre-injury (83) | 50.4 | 448 | 87.5% |
| local window (the rule) (0.70) | healthy prime 96-98 (0.84) | local (the rule) (72) | 53.2 | 451 | 86.9% |
| local window (the rule) (0.70) | healthy prime 96-98 (0.84) | pre-injury (83) | 61.1 | 459 | 85.5% |
| three years pre-injury (0.75) | local (the rule) (0.69) | local (the rule) (72) | 47.1 | 445 | 88.1% |
| three years pre-injury (0.75) | local (the rule) (0.69) | pre-injury (83) | 54.1 | 452 | 86.8% |
| three years pre-injury (0.75) | healthy prime 96-98 (0.84) | local (the rule) (72) | 57.1 | 455 | 86.2% |
| three years pre-injury (0.75) | healthy prime 96-98 (0.84) | pre-injury (83) | 65.6 | 463 | 84.6% |
| first 18 months back (0.76) | local (the rule) (0.69) | local (the rule) (72) | 47.8 | 445 | 88.0% |
| first 18 months back (0.76) | local (the rule) (0.69) | pre-injury (83) | 54.9 | 453 | 86.6% |
| first 18 months back (0.76) | healthy prime 96-98 (0.84) | local (the rule) (72) | 57.9 | 456 | 86.0% |
| first 18 months back (0.76) | healthy prime 96-98 (0.84) | pre-injury (83) | 66.5 | 464 | 84.5% |
| whole career pre-injury (0.85) | local (the rule) (0.69) | local (the rule) (72) | 53.3 | 451 | 86.9% |
| whole career pre-injury (0.85) | local (the rule) (0.69) | pre-injury (83) | 61.2 | 459 | 85.4% |
| whole career pre-injury (0.85) | healthy prime 96-98 (0.84) | local (the rule) (72) | 64.6 | 462 | 84.8% |
| whole career pre-injury (0.85) | healthy prime 96-98 (0.84) | pre-injury (83) | 74.2 | 472 | 83.1% |
Against the patched career we got about 89%. The three worlds run 84% to 93%, and no grid corner goes below 83%. Stacking every generous choice at once still leaves 71%. That includes the rate restoration that section 9 shows is not statistically supportable.
This is the smaller claim of the two tiers. The worlds above keep the injured career's shape on every match he did play: the comebacks, the rebuilt knee, the rotation of his thirties.
6. The trajectory
The bookkeeping tier answers "what if the knee absences had not happened". The
larger question is what the career looks like if November 1999 never becomes a
hinge: no void, no comeback cycle, a forward's ordinary twenties. His own record
cannot answer it. It has no uninterrupted run through the peak ages to
extrapolate from. Two later careers show what a healthy forward of his standing
does across those ages: Lionel Messi and Cristiano Ronaldo [external: Wikipedia
career statistics for both, fetched 2026-07-11, parsed by
scripts/build_benchmarks.py; senior club plus full internationals, youth and
under-23 sides excluded].
At the branch, age 23.2, he had more senior goals than either of them had at the same age.
The trajectory model, T, re-runs the career from the branch instead of patching it. It replaces the observed post-1999 record. Ingredients:
- His teams' actual calendars. Fixtures stay fixed: the 777 senior matches his clubs and Brazil played after the branch are the only matches T can use.
- His own healthy availability. 84% of squad matches, his observed share across 1996-98.
- His own level. Goals per appearance from the three years before the branch. The window mixes Barcelona and Serie A and includes the 1998-99 season played on a sore tendon.
- Their durability only. The level holds flat to 31, because both benchmarks held at least their age-23 scoring through 31. From 32 it declines along the average of their decay from plateau. T does not borrow the rise both of them had through their late twenties.
Uncertainty as before: Jeffreys posteriors on the anchor rate and availability, binomial appearances over each season's real calendar, Poisson goals.
T ends at about 650, just under both real curves at the same age. It gets there on less than they produced: about 440 goals from the branch to the end, against Messi's actual 610 and Cristiano Ronaldo's 582 over the same ages.
Against that career we got about 60%, simulation interval roughly 52% to 70%. The anchor is the model's one soft joint. The next cell reprices it.
A note on the chart: the benchmark curves are official counts, while the R9 lines are the match log's census (392 of his official 414 goals). As drawn, the comparison slightly undercounts him.
The harshest anchor, his Serie A rate only, keeps the trajectory above 600 and the share at about 64%. The most generous, his whole record to the branch, puts it above 700 and the share near 56%.
T withholds two things. Both benchmarks played past 38, but T retires him at 34, as he actually did. Both scored above their age-23 level through the late twenties, but T holds him flat. Relaxing either raises the trajectory.
7. The answer, at both tiers
Both tiers on one axis. The bookkeeping rows are counts against the patched career; the trajectory row is an extrapolation. They are different kinds of claim, so they are drawn as separate groups.
8. The part a career percentage misses
Shares average over the career. The loss was not spread over it; it concentrates on the ages where forwards peak.
The same numbers at three resolutions: about nine tenths of the career, about two thirds of the peak window, six minutes of the twenty-two months at its centre.
One loss sits outside both models. The companion notebook ends on the point that at 23 his scoring sat above everyone's. Best-ever was the argument his knees interrupted. The seasons at 24 and 25 that would have settled it are not in either percentage.
9. What this does not say
The bookkeeping rules cut one way, so the tier-one shares read as upper bounds. In particular:
- No rate damage is claimed on the matches he did play. His raw rate fell 23% after the first rupture, but he also handed over penalty duties. The non-penalty decline is not statistically resolvable at this sample size (the companion notebook, section 3). The cell below prices the channel anyway. If his post-return minutes had come at his pre-injury raw rate, the counterfactual gains a further 53 goals. The floor in section 5 already includes it. The headline does not, because the data cannot establish it.
- Selection erosion is not filled. After 2005 he was often fit but not selected, for club form and fitness reasons a healthy trajectory might have changed. Brazil largely stopped calling him after the 2006 World Cup. Those matches stay unfilled.
- The career does not lengthen, in either tier. A healthy R9 retiring later than 34, as both benchmark careers did, is plausible and entirely absent from the arithmetic.
- Nothing is replayed. The 2002 World Cup and both of its final goals stay exactly as they happened. This cuts both ways: the counterfactual also never asks whether the 1998 final, or the 2003 semifinal, goes differently with a different history. Fixtures, transfers and teammates are frozen.
- Scenario W2 removes the 2008 rupture by definition, not by causation. That rupture was the left knee. The 1999-2000 catastrophe was the right. "The knees hold" is a stated world, not a medical claim that avoiding the first rupture prevents the third. W1 is the scenario for readers who want the narrow causal story only.
- The frame is the match log. 392 senior goals is the log's census (the official career total is 414 including matches that predate the log's coverage). The shares above are ratios inside one consistent frame.
- No expected-goals data exists for his era, so goals, not chances, are the modeled quantity throughout.
The trajectory tier's caveats are larger:
- T's aging curve is a sample of two. They are the only members of the reference class, but they are still two people, in a later era of sports science, rotation and calendar design. Nothing guarantees a 1976-born forward ages the way they did.
- T replaces observed football with modeled football from age 23 on. It discards eleven real seasons, among them real triumphs, and re-prices them at a flat rate. Its result is an extrapolation to argue with, not a count to check.
- The conservatisms and the assumptions do not provably cancel. Withholding the benchmarks' surge and longevity understates. Assuming 84% availability for eleven straight years overstates: his own record demonstrates it for two. Durable contemporaries, Raúl for one, carried that load in the same era [external]. The level is attainable, but for him it is an assumption.
Conclusions
The project's question: how much Ronaldo did we get, and how much could we have gotten? Two answers, one per tier.
Against the patched career: with the knee absences filled, the same fixtures and his own local form give around 440 to 465 senior goals against the 392 on record. We got about 89% of that career. No modeling objection moves it below 83%; every generous assumption at once still leaves 71%.
Against the trajectory: give him uninterrupted twenties at his own level, on his own fixtures, aging the way Messi and Cristiano Ronaldo did. That career lands around 650 senior goals. We got about 60% of that one, 56% to 64% across anchors. For scale: at 23 he had 211 senior goals to Messi's 153 and Cristiano Ronaldo's 118. T adds fewer goals from there than either of them went on to score.
The loss was not spread evenly. It sits on ages 23 to 25: we got about two thirds of the peak window's minutes. The twenty-two months at its centre came to six minutes of football.
The record kept plenty, and the companion notebook states it: three FIFA World Player awards, the youngest Ballon d'Or, the 2002 World Cup and its Golden Boot on the rebuilt knee, an eighteen-year scoring rate that beats about 97% of modern forward-seasons. The counterfactuals measure what was withheld. Nothing here revises what he did.
How much did we get? About nine tenths of the patched career, about three fifths of the trajectory, and none of the two seasons that would have settled where he ranks.
Method notes and sources. Senior frame, injury linkage and all tier-one
inputs from
THE R9 dataset
(match_log, injuries, bio; Transfermarkt injury windows corroborated by
contemporary reporting in the dataset's notes). Simulation: 20,000 draws, fixed
seed 9, Jeffreys Beta posterior on availability, Jeffreys Gamma posterior on
scoring rates, Poisson realization per filled match. Benchmark careers for the
trajectory tier: Wikipedia career statistics tables for Lionel Messi and
Cristiano Ronaldo, fetched 2026-07-11, parsed by scripts/build_benchmarks.py
in the project repository and embedded above as literals (senior club plus full
internationals; youth and under-23 sides excluded; cumulative values binned at
season-midpoint ages). External references: Boublik et al. 2011 (Am J Sports
Med, patellar tendon repair outcomes in NFL players); Dendir 2016 (J Sports
Analytics, forward peak age 25 to 27). Companion analysis:
Just how good was R9?
Written by Axel Stevens with analysis assistance from Claude. Corrections
welcome.