Every data change, with a date and, where a reader sent it, a credit. Corrections go to [email protected] or the correction form.
2026-09-24Toms Skujiņš says our estimate for him is wrong, so his page now says so too
- We put our estimate for Toms Skujiņš — €1.09M a year at Lidl-Trek, a model figure, not a reported one — into a comment on Instagram, and wrote it as if it were a fact. He answered: “Funny how your page is all about riders salaries and you are far off.” He is right about the labelling. The comment should have said it was an estimate; the page always has.
- He gave no figure, and we do not publish numbers we cannot source, so nothing has moved. What has changed is that his page now carries the objection, with the quote, the date and a link to it, and there is a Disputed figures table on the sources page where every such objection will go from now on — whether or not we end up agreeing with it.
- Two things on our side point the same way as he does. Our own market value for him, what the same job would cost on today’s results, is €713k, well under the estimate. And that estimate comes from the branch of the model that prices an extension off the previous deal, which we already know is inconsistent with how we price a fresh announcement. That rule is being looked at; it affects far more riders than one, so it is not something to change quietly in a hurry.
- If you are a rider, an agent or a team and a figure here is wrong, the correction form is the fast way, and the correction is credited.
2026-09-24Twelve former stars: every published salary figure, with its source
- Alexander Kristoff, Caleb Ewan, Chris Froome, Geraint Thomas, Esteban Chaves, Mark Cavendish, Peter Sagan, Romain Bardet, Simon Yates, Thibaut Pinot, Tom Dumoulin and Vincenzo Nibali now have a page of their own. Behind it is a new file in the repo, data/former_featured_figures.csv: 116 salary and contract figures published about them between 2010 and 2026, each with the outlet, the date, a link and the sentence it came from.
- None of it was confirmed by a team, and the pages say so. Where two outlets published different numbers for the same season, both are on the page, side by side, rather than one of them being picked. Each figure carries how far we trust it. Our own season model still starts in 2021, so for the years before that these pages publish only what was reported.
- Simon Yates is the odd one out: he is still on a 2026 roster but retired on 7 January 2026 without racing, so his page moves to the same template at the same address.
- Every page also answers the net-worth question the way the rest of the site does: there is no reliable public figure, we do not estimate one, and what we can document is income.
2026-09-22Contract refresh: 959 riders re-checked
- Every WorldTour and ProTeam contract was re-read from ProCyclingStats on 22 September, and each change was checked against the team’s announcement or the press. Contract years on the site now follow PCS as of 22 September; points and prize money are unchanged (16 and 12 September).
- WorldTour. Extensions: Toms Skujiņš and Amanuel Ghebreigzabhier (Lidl-Trek) and Joshua Giddings (Lotto Intermarché), all to 2028. Moves: Igor Arrieta from UAE to Lidl-Trek (2027–2029); Felix Ørn-Kristoff from Lotto Intermarché to Uno-X Mobility (2027–2028), a year before his Lotto contract was due to end.
- Corrected: Quinn Simmons. We had overruled PCS’s 2029 with Lidl-Trek’s 2023 release (to 2026). Daniel Benson has since reported that Simmons has extended beyond 2026; the team has not announced it. His page now shows PCS’s 2029, marked as reported and not announced. Jay Vine stays at 2027: PCS says 2029, UAE’s own release says 2027, and we found no later deal.
- ProTeams. 21 riders now have a 2027 team, 9 of them stepping up to the WorldTour: Abel Balderstone (UAE), Jordan Jegat (Lidl-Trek), Ludovico Crescioli, Emilien Jeannière and Alexandre Delettre (Groupama-FDJ United), Anthony Turgis and Nicolas Breuillard (XDS Astana), Ibon Ruiz (Bahrain Victorious) and Clément Venturini (Lotto Intermarché). Seven extensions: Florian Stork and Marius Mayrhofer (Tudor, to 2029), Arvid de Kleijn, Arthur Kluckers and Fabian Lienhard (Tudor, to 2028), Mario Aparicio (Burgos Burpellet BH) and Fernando Barceló (Caja Rural), both to 2027.
- Julian Alaphilippe retired with immediate effect on 21 August, with a year of his Tudor contract still to run. He no longer appears among the riders without a 2027 contract; his reported 2026 salary stays on his page.
- Salary estimates: a deal announced now pays from 2027, so 2026 figures barely move. One exception: Toms Skujiņš’s current deal is now priced like every other rider who has extended during 2026 — on the last full season before he signed it — which raises his estimate by about 12%. About a hundred team-mates and band neighbours move by 2% or less.
2026-09-22Model v0.9 — where a journalist has published a salary, we use his figure instead of ours
- Until today a figure was either reported — a salary a named outlet stated as fact, used as a fixed anchor — or modelled. A third kind of source sat in the evidence table and reached nothing: a journalist writing that a rider is on about €500k. Not an official figure, not a rumour either. A reporter with a source in the paddock is closer to the truth than a model fitted to 28 salaries, so from v0.9 that figure anchors the rider, and the page says exactly what it is.
- Seven records qualify: the kind is a press estimate, the contract window covers 2026, the figure parses, and no reported salary already exists for the rider. Matteo Jorgenson (€2.63M to €1M), Paul Magnier (€1.56M to €750k), Magnus Cort (€950k to €470k), Antonio Tiberi (€684k to €1M), Paul Seixas (€246k to €500k), Kaden Groves (€1.32M to €1.5M) and Damiano Caruso (€590k to €750k). Where the outlet published a range we take the midpoint and say so.
- Four candidates are out, and the reasons are the rule rather than a judgement call. Giulio Pellizzari already has a reported salary, which outranks an estimate. Oscar Onley’s “low seven figures” does not parse into a number. Arnaud De Lie’s figure is for a contract that starts in 2027, and Michal Kwiatkowski’s for one that ended in 2025 — neither is his 2026 pay.
- 168 riders change a figure: the seven anchored, and 161 through their teams. A team’s wage pool is fixed, so replacing a modelled salary with a lower one leaves more for everyone else on that roster — 88 riders up, 80 down, median move 4.8% or €10k. One wage bill moves, Visma | Lease a Bike from €31.6M to €30.6M, and only because Jorgenson’s anchor pulls the squad back inside the ±15% corridor the model allows around a team’s pool; it had been scaled down to the ceiling before, and no longer needs to be. The other five teams absorbed their anchor without moving at all.
- A press estimate is never labelled Reported. It has its own basis — an amber Press estimate, neither the green of a reported salary nor the blue of a model one — and its own note on the rider page, naming the outlet, the date, the link, and what our model would have said without it. The rider’s season table, the social card and the salary tables all carry the same label. The previous estimate stays visible, as it does for any figure that moves.
- These seven do not enter the leave-one-out test. The model is now fitted to them, so scoring it against them would be marking its own homework: the test still runs on the 28 reported salaries alone. Measured error moves from 24.2% to 24.8% median, 15 within ±25% against 16 before. That is the honest cost — on 28 samples it is noise, and the change was made for provenance, not accuracy.
What this version moved — v0.8 (22 Sep 2026) to v0.9 (22 Sep 2026): 168 riders repriced. Every WorldTeam wage bill, and the twenty largest moves in euros.
2026-09-22The model re-run: 441 estimated salaries move, and 241 riders stop being priced on a guess
- Every salary estimate here is priced on the season the contract was announced. Until today the model had not been run since 16 September, while five rounds of research added sourced announcement dates for hundreds of riders — 457 to 636 across the WorldTour and, for the first time, the ProTeam. Those dates sat in the data without reaching a single published figure. This is the run that applies them, done deliberately rather than as part of a nightly rebuild.
- 441 estimated salaries change, all of them WorldTour: 187 up, 254 down. The median move is 1.7%, or €6k; 300 move by more than 1%, 105 by more than 5%, 75 by more than 10%, 30 by more than 25% and 6 by more than 50%. The largest are Filippo Conca (€117k to €219k), Storm Ingebrigtsen (€90k to €165k), Tim Naberman (€119k to €216k) and, downwards, Hugo Hofstetter (€859k to €437k). No reported salary moves — those are press figures, not estimates, and the model does not touch them. The league total is almost unchanged, €311.4M to €311.3M, because a team’s wage pool is fixed: repricing one rider redistributes within the team rather than inflating it.
- The bigger change is where the dates come from. 241 riders move from the stint rule — which guesses the signing year from how long a rider has been at his team — to a dated press report. 455 of 527 priced riders are now on a sourced date, against 214 before.
- 49 of those reports gave a duration (“a two-year deal”) and never named an end year, so the check that confirms a report belongs to the current contract could not use them. They are now accepted under a date check instead: a signing announced at most one season before the rider’s current run at the team began, or an extension announced during it, with the contract end no more than five seasons after the report. 47 passed; 2 did not and keep the stint rule, as before. The check can only fall back to what the site already did, never to a wrong date.
- This is not claimed as an accuracy improvement. Leave-one-out error on the 28 reported salaries is now 24.2% median, 16 within ±25% and 21 within ±40%, against 24.6%, 15 and 20 before. On 28 samples that difference is noise in either direction. What the run buys is provenance: far fewer figures rest on a guess about when a contract was signed, and every rider page now says which of the two it is.
- Predictions were frozen before this was published, as every version is, so the next reported salary that appears in the press can be checked against what the model said before it knew.
What this version moved — v0.8 (16 Sep 2026) to v0.8 (22 Sep 2026): 441 riders repriced. Every WorldTeam wage bill, and the twenty largest moves in euros.
2026-09-15Model v0.7 — salaries priced by job, at the moment the contract was signed
- The salary model has been rebuilt. Up to v0.4 each team’s wage pool was split in proportion to a points-based value score, which repriced every rider every January as if contracts were renegotiated annually, and put a Grand Tour domestique near the minimum wage. v0.7 prices each rider on the season his contract was announced, using a pay band for his job in the team (leader, second-tier leader, key climber, squad, second contract, neo-pro) scaled by the team’s budget, with his results in the two seasons before signing placing him inside that band.
- Measured error, leave-one-out on the reported salaries: median 24.9% (v0.4: 18.8% on 17 riders), 14 of 28 within ±25%, 19 within ±40%, median bias +2.3%. The systematic underestimation of stars in v0.4 is gone. The league now estimates at €309M of wages, median €268k, mean €586k, against the UCI’s reported 2026 medians of €216k employed and €350k self-employed.
- Reported salaries rose from 17 to 28 after a team-by-team search of the press: Van Gils, Vlasov, Geoghegan Hart, Girmay, Pellizzari, Bilbao, Landa, Kooij, Vauquelin, O’Connor and Martinez are now anchors rather than estimates.
- New on every rider page: a “Reports & sources” table listing every published figure we have found for that rider with a link — including figures that contradict each other, and denials. 102 records across 72 riders so far.
- New on every rider page: a market value for 2026 — the same model run on today’s results instead of the contract, answering “what would this job cost now” rather than “what is he paid”.
- Contract announcement dates are now shown where we have them (190 riders), because the year a deal was signed is what the salary is based on.
- Team budgets revised with 2025 accounts and the UCI/Gazzetta 2026 figures: Soudal Quick-Step €35M → €28M (CEO Jurgen Foré: €31–33M including the women’s team), EF €30M → €22M (Vaughters: about €21M), Astana €25M → €28M, Picnic €22M → €20M, Red Bull €48M → €52M. The rider-wage share now runs 40% at €20M to 55% at €50M, after Visma’s 2024 accounts (€30M of salaries on €52M of revenue) and the UCI figure of €27.3M for UAE in 2024.
- Fixed: Felix Großschartner’s name and page URL were mangled because “ß” has no upper-case form, so the surname parser did not recognise it.
What this version moved — v0.4 (12 Sep 2026) to v0.7 (15 Sep 2026): 508 riders repriced. Every WorldTeam wage bill, and the twenty largest moves in euros.
2026-09-14Validation: how wrong is the model?
- New page: a leave-one-out test of the WorldTour model. Each of the 17 reported salaries is removed and re-estimated as if unknown. Median error 19%; 11 of 17 within ±25%; three misses over 50% (Roglič, Rodríguez, Hindley — riders paid as leaders on contracts signed after their best seasons). The model underestimates 12 of the 17: stars are paid more than their points say. Table, script and CSV published.
- Methodology page: new notes on domestiques (no public signal measures their work; expect them under-priced) and on the model's biggest structural gap — salaries are set when a contract is signed, not each season. Version 0.5, pricing riders at signing and by role, is in progress. Prompted by the r/peloton discussion of 14 September.
2026-09-14Salaries by season, 2021–2025
- The salary model is now run on every WorldTour season since 2021 with that season's rosters (ProCyclingStats), team budgets (press lists rescaled to the UCI league totals) and reported salaries. New page: Salaries by season — league wage bills, top salaries and team wage bills per year. Every rider page shows an estimated salary line by season, and riders who have left the WorldTour since 2021 have their own page. Season model v0.1; treat a single rider-season at ±50%.
2026-09-13Career by season on every rider page
- Every rider page now carries a season-by-season table from ProCyclingStats: team and level, PCS points, race days, wins and podiums, back to the junior years. Prize money generated is shown per season from 2022 (PCS per-race prize lists, WorldTour and ProSeries), with a five-year total and a new ranking of the biggest earners since 2022.
- Method, About, Correct and Data pages are now fully translated in French, Italian, Spanish, Dutch and German. Sources and Changelog stay in English.
2026-09-13Contract refresh before launch
- All 540 WorldTour contracts re-checked against ProCyclingStats on 13 September. New: Alessandro Romele extends with XDS Astana to 2028; Artem Shmidt leaves INEOS for NSN (to 2029); Håkon Eiksund Øksnes leaves Uno-X for Drali-Repsol. End years added for 26 already-announced moves (De Lie to Tudor until 2030, Van Eetvelt to NSN until 2029, Milesi to Soudal until 2029…).
- Soudal Quick-Step becomes Soudal Safety Jogger in 2027 — noted on the team page; the 2026 name stays until the season ends.
2026-09-13Five languages: français, italiano, español, Nederlands, Deutsch
- Every rider, team, agency, ranking and ProTeam page now exists in French, Italian, Spanish, Dutch and German under /fr/, /it/, /es/, /nl/ and /de/, with a language switcher in the header and hreflang links so search engines serve the right version. Numbers, names and sources are identical across languages; only the words change.
- The methodology, sources, changelog and about pages remain in English for now (they quote sources verbatim); translated versions follow. Share cards stay in English.
- Also fixed: the sitemap namespace (Google reported an error), and www.howtoturnpro.com now redirects to howtoturnpro.com.
2026-09-12ProTeams — the second division, 16 teams and 422 riders
- Every rider on the 16 UCI ProTeams now has a page: Tudor, Cofidis, Pinarello Q36.5, TotalEnergies, Unibet Rose Rockets, Novo Nordisk, Flanders-Baloise, and the Spanish, Italian, Hungarian and American teams. Same method as the WorldTour (ProTeam model v0.1), with ProTeam budgets, floors built on the UCI ProTeam minimum (€35,392) and the tier-wide half of the blend run within the second division. Two reported salaries anchor it: Pidcock €4M, Alaphilippe €2M.
- Headline: the second division is a different economy. 16 teams, ~€137M of budgets, an estimated €50M of rider wages — less than UAE and Visma together. Median rider €54k; 193 of 422 under €50k; 137 at their floor. Four riders over €1M (Pidcock, Alaphilippe, Aranburu, Izagirre); Tudor alone pays about a fifth of the tier's wages.
- Prize money generated and estimated share received are computed for ProTeam riders too (same PCS per-race data). Agency data is not yet collected for ProTeams. Continental teams are not covered — there is no salary to estimate at that level, and no reliable roster source we are willing to publish from.
- Also: INEOS Grenadiers is shown as Netcompany INEOS, following the team's renaming on ProCyclingStats.
2026-09-12Estimated prize share received
- New model column next to "generated": each race's team pot split equally among the team's starters after 15% to staff (PCS team prize totals + start lists, 97 races). Labelled Model; assumptions on the methodology page.
- Headline: the helpers cash in, not the winners. Nils Politt (salary est. €573k) received ≈€129k; Domen Novak generated €600 and received ≈€33k, 20% of his salary; Visma neo-pro Tim Rex ≈€51k, 83% of his salary. Pogačar: €809k generated, ≈€131k received before any waiver.
2026-09-12Prize money generated, 2026
- Every rider and team page now shows prize money generated in 2026 (ProCyclingStats per-race prize lists, WorldTour + ProSeries, to 12 September) and its share of salary. Labelled "generated, not kept" because prize money is pooled and shared with team-mates and staff.
- Headline: 540 riders generated €8.0M against €272M of salaries — under 3%; median rider 1% of salary; 485 of 527 below 5%. Pogačar: €809k generated vs €8.2M salary.
- New rankings section and a methodology note on how prize money is actually distributed.
2026-09-12Model v0.4 — rider-wage share rises with budget
- The flat 45% rider-wage share (UCI 2024 league average) is replaced by a share that rises with budget — 37% at €14M to 50% at €55M — matching the UCI's own per-team extremes (€27.3M of rider wages on a ~€52M budget; €5.2M on ~€14M). League total unchanged at ~€272M.
- Effect: big-team estimates recover part of what v0.3 took away (McNulty €1.1M → €1.6M, Vine €0.9M → €1.2M, Lipowitz €0.9M → €1.0M); small-team leaders come down (Johannessen €1.7M → €1.4M, Scaroni €1.5M → €1.3M). Median €272k; 62 riders over €1M.
- Sources page now lists the audited accounts we could find (Alpecin 2025 turnover €25.7M; Visma, Movistar, Picnic 2024; Intermarché 2023) and what they do and don't show about rider pay.
2026-09-12Model v0.3 — team books balance
- Reported salaries are now subtracted from each team's wage pool before the remaining riders are estimated, in both halves of the blend. Previously the league-wide half ignored a team's reported stars, so UAE and Red Bull overshot their pools by €4–5M.
- Effect: unreported riders on anchor-heavy teams come down (McNulty €1.7M → €1.1M, Vine €1.3M → €0.9M, Lipowitz €1.5M → €0.9M); riders on teams with no reported salaries go up slightly. Every team's total now equals its pool within €0.4M. Median €294k, 59 riders over €1M.
2026-09-12Model v0.2 — domestique floors
- Reader feedback on day one: experienced domestiques were priced far too low (Domen Novak €74k, Bert Van Lerberghe €90k, Vegard Stake Laengen €90k). Points-only allocation cannot see the value of a helper who never scores.
- New floors scaled by team budget: €50k under 23, €80k second contract, €120k experienced domestique, €160k established pro (×0.77–1.33 by budget). Novak now €160k, Laengen €213k, Van Lerberghe €163k; 106 riders sit at their floor.
- Riders under €100k fall from 106 to 48 (mostly first contracts). Top-end estimates move by less than 2% (the extra floor money comes proportionally from everyone above the floor). Median unchanged at €283k; mean €520k; 60 riders over €1M.
- Design pass: team colours, flags, data bars, charts, share cards for every rider and team.
2026-09-11Model v0.1
- Wage floor of €90k for established pros (25+, ≥1,500 career PCS points); 29 estimates changed by less than 1%, one (Sven Erik Bystrøm) from €67k to €90k.
- Agency column added to every rider; 32 agencies with a page.
- Site launched with men's WorldTour 2026, data snapshot 9 September 2026.
2026-09-10Model v0 and agency map v1.1
- First full estimate for 527 riders on 18 teams, calibrated to UCI 2024/2026 aggregates (mean €517k, median €283k, 63 riders over €1M).
- Agency map from 71 FirstCycling agency rosters, agency sites and press: 370 of 538 riders attributed.
- Contract map from ProCyclingStats, verified against team announcements for 60 riders (extensions, retirements, mid-season moves).