The Tennis Desk
Tennis Desk Research · USTA NorCal · Year-end NTRP ratings

83.6% of the Desk's calls to move a player up came true at the 2025 year-end

83.6% of the Desk's 731 calls to move a player up came true at the 2025 year-end. So did 91.3% of its 206 calls to move down. The Desk calls a move only when the chance that a player moves is high, so every other player reads "no clear call". The bar is high because most players keep their NTRP rating. Of the 13,510 players the Desk followed from the 2025 year-end into 2026, 86.5% kept it.

Why the down calls may read high

More of the players who stop after a bad year were on their way down, so the share of down calls that came true may read high. A player who left the leagues the next year has no new rating to check, and at the 2025 year-end, 104 calls to move down had none.

Where does the forecast start?

The forecast starts from USTA's league scorecards. They say who played on each line, and the score. The Desk reads them for every USTA NorCal area it covers, beside the NTRP rating that USTA prints on each team roster.

USTA does not rate players on wins. It keeps a running rating for each player, which it calls the dynamic rating. After each match, USTA moves that rating by how the score compares with what the players' ratings expected. USTA publishes how the rating works but not the numbers inside it, so the Desk rebuilds the rating match by match from the same scorecards.

How does the Desk rebuild USTA's rating?

The Desk follows USTA's published rules. USTA keeps some numbers to itself, so the Desk picks the values that best match what USTA did at the 2022 to 2024 year-ends:

  • Counted matches. Adult leagues, playoffs, sectionals and Tri-Level count. Mixed counts only for a player who played nothing else, and the rating leaves out Combo and Flex.
  • The match rating. Each game a player wins beyond what the two sides' ratings predicted raises their match rating by 4 hundredths of a point. Each game they fall short lowers it by the same. One match can move it by 1 point at most.
  • The running rating. After each match, the running rating becomes the average of the new match rating and the player's last 4 running ratings. So one match moves it only part of the way.
  • Carry-over. Each year starts from the year-end rating the Desk rebuilt the year before, inside the range USTA published for the player.
  • The year-end edge rule. Each NTRP rating covers the half point below it, so a 4.0 covers running ratings above 3.5, up to 4.0 itself. A 4.0 player whose rebuilt rating ends above 4.0 reads as a move up to 4.5, and one whose rating ends at 3.5 or under reads as a move down. A year-end rating needs 3 counted matches.

The rebuilt rating comes close to USTA's own. At the 2025 year-end, 7,654 players had their whole year in the scorecards: USTA rated them from match results in both years, and none of their league matches was missing. For 88.3% of them, the rebuilt rating gave USTA's result: up, down or no move. Most of the misses were close, because 58.8% of them ended a few hundredths of a point from the edge of their rating's range. These close cases are a small share of players, but for them the rating they started the year on decides it. USTA does not publish that rating.

How does a chance become a published call?

A chance becomes a published call only when it is high. The forecast works out two chances, a move up and a move down, from where the rebuilt rating finished against the edges of the player's range. It also weighs the player's Desk level, the Desk's own estimate of how a player plays now, on the NTRP scale.

The forecast keeps every chance, and publishes a call when the chance clears these bars:

  • A move up: a chance of 60% or more.
  • A move up from fewer than 6 counted matches: a chance of 65% or more.
  • A move down: a chance of 75% or more.
  • No call: fewer than 3 counted matches.
  • No call: a rating that came only from mixed doubles, one USTA disqualified during the year, or one from tournaments.

The Desk froze the 2026 forecast before USTA publishes its 2026 year-end ratings. Nothing it learns later can change it. Of its 17,291 players, 684 have a published call to move up and 309 a call to move down. The other 16,298 read "no clear call". Each area's calls are on the 2026 year-end forecast.

How often did published calls come true?

Most of them came true in every year. Each year's model saw only the years before it:

  • 2023 year-end: 83.3% of 585 calls to move up, and 85.5% of 166 calls to move down.
  • 2024 year-end: 82.9% of 717 up, and 89.6% of 154 down.
  • 2025 year-end: 83.6% of 731 up, and 91.3% of 206 down.

A high bar keeps the calls right, but it leaves many movers without one. The 2025 calls named 53.7% of the 1,137 players who moved up, and 27.3% of the 689 who moved down.

Some of what moves a rating never reaches the scorecards the Desk reads: tournaments, Flex and matches outside its areas. USTA can also change a rating when a player appeals it, or when it corrects a self-rating.

Who is on the team you play next?
Look up any player or team →

All Tennis Desk Research·Browse every league the Desk holds, by year and area

How this was measured

Scope. The Desk counted adult, mixed and Tri-Level league players in every USTA NorCal area it covered on the day it measured. The outcome is the lowest NTRP rating the next season's rosters carry, so a player USTA moved during the next season does not count as a year-end move. It counted players with no rating the next season but did not score them, because there is no rating to compare with.

The Desk scored each of the 2023, 2024 and 2025 year-ends with a model it fitted only on the year-ends before it.

A player whose whole year the Desk can see is computer-rated both years and starts from a rating carried over from the year before. They also played 3 or more counted matches, with no match on their USTA roster that the Desk lacks.

Measured. The Desk checked every figure above against the live database on November 9.

Method. The Desk produced every figure above with the SQL in docs/research/records/year-end-forecast.json, and ran it twice to the same result before it built this page.