AS '26
All Chapters

Modelling · SECTION 21

Chapter 21 — Rating Systems: DUPR, ELO, Glicko, and Skill

The rating math, the three rival systems, and the honest truth about small samples

Reading time

31 min

21 Chapter 21 — Rating Systems: DUPR, ELO, Glicko, and Skill

The rating math, the three rival systems, and the honest truth about small samples

21.1 Ratings Are the Skill Currency

Pickleball runs on DUPR; tennis on UTR; rugby league on the ladder and the betting line. A rating answers two questions at once — "how good is this player?" and "how sure are we?" — and in 2026 the answer is increasingly fed by computer vision: the eventing pipeline (chapter 19) produces match results, and a rating system converts them into a skill estimate. This chapter is the math, the three rival systems, and the honest truth about what 60 matches can tell you.

The same job is done differently in each sport. In pickleball, a DUPR of 4.0 with a 60% reliability score is tournament entry, seeding, and social claim all at once. In rugby league, the NRL ladder decides finals and the betting line prices a single Sunday; analysts treat the ladder as season narrative and the closing line as measurement. Same task: convert a history of outcomes into a number that predicts the next one.

Everything here is source-backed (the systems' own documentation, verified 2026-08-30) or measured (our lab's from-scratch implementation, E21).

Recreate in book style: white background, black linework, burnt-orange accents.
Figure 21.1: The Rating Family Tree. Elo roots a family of systems; Glicko adds uncertainty, TrueSkill multi-player; DUPR and UTR-P are the domain variants. The book contribution branches off the Glicko line.

21.2 Rating Math From First Principles

All rating systems are one idea: expected score from a logistic, then move the ratings by the surprise. Latent skill produces an expected outcome; the observed outcome arrives; the gap updates the skill estimate. The systems differ only in the distribution of skill, the link function, and whether uncertainty is explicit.

Elo: expected = 1/(1+10^((Rb−Ra)/400)), update = K×(result − expected). Glicko-1/2 adds rating deviation (RD) — a per-player uncertainty that widens with inactivity and narrows after matches — and Glicko-2 adds volatility (how fast the player's rating changes over time). Bradley-Terry is the probabilistic foundation underneath them all; TrueSkill extends the Gaussian version to multi-player teams. Sections 21.2b–21.2d work each one.

Our lab implemented Elo and Glicko-2 from scratch — no libraries, the logistic and RD from first principles — and ran 60 matches on 8 players with known skills (1400–1700) and margin-aware outcomes (E21). The math is simple enough to write yourself, so you can see where it is honest and where it is not. The honest result:

Measurement (E21) Value
Mean absolute Elo error after 60 matches 87.6 points (max 139)
Mean Glicko-2 RD after 60 matches 99.8 points
Per-player spread Elo errors ranged from −169.7 (player B) to +139.2 (player H); Glicko-2 RDs from 80.5 to 120.3 — the uncertainty estimate correctly sized the error
The honest truth A rating from 60 matches is an estimate with wide error — not a skill fact. Ratings need hundreds of matches to converge. This is what the RD displays.
Recreate in book style: white background, black linework, burnt-orange accents.
Figure 21.2: The DUPR Expectation Model. 3.5+3.5 vs 4.0+4.0: expected 11-5, actual 11-9 — every point moves the rating because the margin is the signal.

21.2b The Elo Update, Worked

Arpad Elo's system (FIDE, 1960s) remains the canonical reference, and it is worth doing once by hand because every system in this chapter is a patch on it. For two players with ratings R_A and R_B, the expected score of A is:

E_A = 1 / (1 + 10^((R_B − R_A)/400))   then   R_A_new = R_A_old + K·(S_A − E_A)

Worked pickleball example: two singles players, rated 1500 and 1700 on a homebrew Elo scale. The 1500-player's expectation is 1/(1+10^(200/400)) ≈ 0.240. The underdog wins (S=1), and with K=32 the update is 32×(1−0.240) = +24.3 points; the favorite loses the same 24.3. The update is zero-sum: rating mass is conserved, which is why Elo ladders are stable but also why fixed-K systems drift (inflation and deflation return in 21.9b).

Worked rugby league example: the same math runs on clubs. Two NRL teams rated 1550 and 1650; the weaker club's expectation is 1/(1+10^(100/400)) ≈ 0.36. A home-ground term H (fit as 30–60 Elo points) shifts the logistic before the update, so a 20-point upset win at home moves the underdog 32×(1−0.36) ≈ +20 points — same machinery, different scale constant and venue term. The NRL itself is a points ladder, not an Elo system, but many public Elo-style competition models and betting-implied ratings are built around it.

Three properties matter in practice. Logistic, not Gaussian: Elo implementations use the logistic because it has heavier tails and convenient arithmetic — a 200-point gap gives E ≈ 0.76, a 400-point gap E ≈ 0.91. K is the learning rate: FIDE historically used K=40 for new players, K=20 for most, K=10 for top players — converge novices fast, keep veterans stable. K is Elo's only uncertainty mechanism: it knows how fast to move, but not how sure to be.

Recreate in book style: white background, black linework, burnt-orange accents.
Figure 21.3: The Elo Machine. The logistic expectation curve (annotated at Δ=200 and Δ=400) and the update rule R_new = R_old + K(S−E). One curve, one surprise term — every system in this chapter is an elaboration of this diagram.

21.2c Glicko: Uncertainty as a First-Class Citizen

Mark Glickman's Glicko-1 (1999) adds the parameter Elo is missing: rating deviation, a standard deviation around the rating, so a player is modeled as N(R, RD²) rather than a point. Two rules make it behave. Before a rating period, inactivity inflates the uncertainty: RD_new = min(√(RD_old² + c²t), RD_max) — a player who has not played in six months is genuinely less known, and the math says so. During the update, opponents with high RD are down-weighted by the g-function, g(RD_j) = 1/√(1 + 3(q·RD_j/π)²) with q = ln(10)/400 ≈ 0.005756 — a result against a mystery opponent teaches you less than the same result against a well-measured one.

Glicko-2 (Glickman, 2001) adds a third parameter, volatility σ: the expected fluctuation in a player's skill between rating periods. This is the term that lets a rating jump after an injury, a coaching change, or a late-career decline rather than grinding slowly through the old estimate. The volatility update has no closed form — Glickman's algorithm solves for σ′ iteratively — which is the honest price of modeling abrupt skill change.

Lab example: a 1500-rated player with RD=120, σ=0.06 beats a 1700-rated opponent (RD=100) and a 1600-rated opponent (RD=50) in one rating period. The posterior lands at 1567.5 with RD 108.2 — a 95% interval of roughly [1356, 1779]. The upset drags the mean up, but the pre-period uncertainty keeps the interval honest. Translation: a 4.0 DUPR with three verified matches in six months is not the same claim as a 4.0 with forty; likewise, an NRL club after two rounds has a provisional rating no matter what the ladder says.

Recreate in book style: white background, black linework, burnt-orange accents.
Figure 21.4: Glicko-2 Uncertainty Over Time. One player's rating trajectory: the confidence band widens during an inactivity gap, narrows after a cluster of matches, and steps upward on a single big upset. The band is the product.

21.2d Bradley-Terry and TrueSkill

Underneath Elo sits the Bradley-Terry model: two competitors have latent positive strengths π_i and π_j, and P(i beats j) = π_i/(π_i + π_j). Taking logs turns it into a logistic regression on pairwise outcomes, and the strengths are estimated by maximum likelihood over the full match history. Elo is essentially online stochastic gradient descent on the Bradley-Terry log-likelihood with a fixed step size K — which tells you exactly when to prefer each: if you have a complete historical table of NRL results and want the most stable end-of-season ratings, fit Bradley-Terry offline; if you are updating a club ladder night by night, run Elo or Glicko online.

TrueSkill (Herbrich et al., 2006, Microsoft Research) is the fully Bayesian member of the family. Skill is a Gaussian N(μ, σ²); the update is expectation propagation over a factor graph of the match. New players start with high σ and converge in a handful of games; veterans resist noise. Draws are explicit, and — the feature nothing else in this chapter has — teams decompose naturally: a 2v2 outcome updates four individual posteriors, with the team's performance modeled from its members. That is precisely the pickleball doubles problem, and it is why TrueSkill is the reference point for the partner-dependence extension in 21.9. The tradeoff: the math is heavy, the implementation subtle, and for offline sports analytics Glicko-2 is usually sufficient. Use TrueSkill when team decomposition and exact posteriors are the deliverable.

21.3 DUPR: The Pickleball Standard

DUPR (Dynamic Universal Pickleball Rating) is the de facto official rating of USA Pickleball and the APP as of late 2025 (Forbes, 2025-12-05). Verified from dupr.com/how-it-works and the algorithm-update posts: the scale is 2.000 to 8.000 (the 0–8 or 0–8000 shorthand in conversation refers to this same range; the published precision is three decimal places), continuous, with singles and doubles tracked independently and mixed/age-based subscores layered on top. The bands a player actually experiences:

DUPR bandLevelPractical meaning
2.0–2.99Beginner / low intermediateRally basics, kitchen rule
3.0–3.49IntermediateConsistent dinks, third-shot choices
3.5–3.99High intermediateMost contested tournament bracket
4.0–4.99AdvancedReliable thirds, speed-ups, counters
5.0–8.0Elite / professionalPPA/APP tour level

The July 8, 2025 algorithm update moved DUPR from a primarily win/loss model to performance-vs-expectation: it predicts an expected score from team averages before the match and adjusts ratings on whether a team scored more or fewer points than predicted. A player can gain rating on a loss (11-9 against a stronger team, when 11-5 was expected) and lose rating on a hollow win. Every point matters because the margin is the signal, not the W.

Three weighting mechanisms ride on top. Source verification: sanctioned results outweigh self-posted scores — the anti-sandbagging gate. Recency and volume: recent matches weigh more, and variety of opponents/partners stabilizes the estimate — the informal counterpart of Glicko's RD. The gap rule: matches between teams whose average ratings differ by more than 1.0 may be excluded because the outcome is too predictable [verify]. The rule of thumb that a 0.5 DUPR gap maps to an expected score near 11-5 (68.75% of points) implies S ≈ 1.46 DUPR points per factor of ten in odds [verify].

The Reliability Score (1–100%) is DUPR's explicit uncertainty display based on volume, recency, opponent/partner variety, and match source, updated weekly. 60% or higher is a common tournament eligibility gate; it does not change the numeric rating. This is Glicko's RD translated into consumer language. DUPR pools singles and doubles outcomes separately (data pooling: the model pools every match within a format but not across formats), and recent results dominate through the recency weighting; a 4.0 singles player and a 4.0 doubles player are therefore not the same estimate. For builders, the structural fact is no public API: access is CSV exports and partner agreements; the rating data itself is the moat.

Recreate in book style: white background, black linework, burnt-orange accents.
Figure 21.5: The DUPR Scale. 2.000–8.000 with the five bands a tournament director actually uses, plus the separate Reliability Score gauge with its 60% gate — the number and the confidence in the number travel together.

21.4 UTR-P: The University System

UTR-P (Universal Tennis Rating — Pickleball) is a modified Elo on a 1.00–10.00 scale (verified). For each match it computes a match rating from the rating differential plus the percentage of points won per game (11-5 is a different signal than 11-9) and a match weight from competitiveness, opponent reliability, time degradation, and format. The published rating is the weighted average of up to the 60 most recent match ratings.

Reliability is a status, not a percentage: projected after one match, reliable after roughly five to six — aggressive compared to Glicko's RD decay, defensible because the match-weight system discounts thin data. Verified (sanctioned) results outweigh unverified ones. On April 14, 2025, UTR Sports recalibrated every UTR-P rating downward 0.5 points to align the scale — a universal shift that preserved relative ordering but breaks any model trained on pre-April numbers, a lesson in 21.9b.

It is the closest algorithmic cousin to the book's homebrew — and it confirms the design consensus: margin matters, recency matters, verification matters.

21.4b The Duplication and Sport-Transplant Problems

Two structural problems follow from rating per sport rather than per player. The duplication problem: UTR already ran tennis, then minted UTR-P for pickleball, while DUPR built a rival standard — so a crossover athlete in 2026 carries a tennis UTR, a pickleball UTR-P, and a DUPR, three overlapping-skill numbers on incompatible scales. The April 2025 recalibration exists because two pickleball scales drifted apart. A dual-sport athlete's true skill is one latent variable; the ecosystem estimates it three times and never merges the evidence.

The sport-transplant problem is deeper: a rating is calibrated to its population and outcome distribution; it does not travel. A 4.0 DUPR says nothing about rugby league; an NRL club-Elo of 1600 says nothing about pickleball — and the failure is not just scale. The 400 in Elo's logistic, the ~1.46 in DUPR's, and the home-advantage term in an NRL model are each fit to how often upsets happen in that sport. Rugby league matches are higher-scoring and lower-variance than pickleball to 11, so the same gap implies a different win probability. Transplant the number and the model is systematically wrong. Transplant the architecture (logistic expectation, surprise update, explicit uncertainty) and re-fit S, K, and aging constants per sport — the same transfer discipline as chapter 23.

21.5 PPA World Pickleball Rankings

Launched 5 August 2026 for the 2026-27 season (verified): 14 best results in the trailing 52 weeks, with 50/35/15 weighting for gender doubles / mixed doubles / singles — the PPA's statement that the "best overall player" is primarily a doubles player. The PPA runs three standings:

StandingPurposeCalculation
World Pickleball RankingGlobal standing14 best results × 52 weeks, 50/35/15
Current SeedNext bracket placementRecent form at registration close
The RacePPA Finals qualificationCalendar-year cumulative points

WPR is a ranking, not a rating: it measures tournament success across disciplines, not calibrated head-to-head probability. Use it to understand who has earned the most on tour; do not use it to predict a single match.

21.5b Rugby League: The Ladder and the Market Rating

Rugby league's public instruments make the ranking-versus-rating distinction concrete. The NRL ladder is a points table — 2 for a win, 1 for a draw, differential as tie-break. It is a valid ground truth for season success but a poor predictor of any single match, because it weights all opponents equally and ignores venue, injuries, and recency: in rating terms it is a Bradley-Terry model with uniform weights and no uncertainty, which is why a sixth-placed team often beats a second-placed team without the ladder blinking. The same structure appears in the AFL ladder and the English Super League table: useful for season-long narrative, but not for single-match probability.

The sharper public instrument is the betting market. A club-Elo fit to results — logistic expectation, a home-ground term, margin-aware variants — tracks the ladder loosely but tracks the bookmaker's closing line tightly. Reverse-engineering it is standard: assume P(A) = 1/(1+10^(−(R_A − R_B + H)/S)), then fit team ratings R_i, home advantage H, and scale S to minimize the distance between model probabilities and de-vigged closing probabilities. The result is a market-calibrated Elo that usually out-predicts the ladder; its parameters (S, H) are league-specific, the sport-transplant lesson of 21.4b measured rather than asserted.

Recreate in book style: white background, black linework, burnt-orange accents.
Figure 21.6: Two Instruments, One Question. The NRL ladder (points, differential tie-break) beside the betting market's implied probability with the de-vig step. The ladder ranks the season; the closing line prices the match.

21.6 Win Probability From Ratings

The rating system's practical output is a probability: P(win) from the rating differential via the logistic, P(A wins) = 1/(1+10^(−Δ/S)), with S the system-specific scale. Using the lab-derived scales (S_DUPR ≈ 1.46 from the 0.5-gap ≈ 11-5 rule [verify]; S_UTR-P ≈ 2.0 assumed pending calibration data [verify]):

Δ DUPRP(win)Δ UTR-PP(win)
0.0050.0%0.0050.0%
0.5068.8%1.0076.0%
1.0082.9%2.0090.9%
2.0095.9%3.0096.9%

For doubles, both systems collapse the match to team-average versus team-average: P(team A) = 1/(1+10^(−(R̄_A − R̄_B)/S)). That ignores partner interaction and within-match momentum — good enough for seeding, not for coaching claims. This probability is what the model compares against, and it crosses into chapter 22's expected value: both are probability machines that must be calibrated (chapter 20's Brier/log-loss discipline applies to both).

21.7 The CV + Rating Loop

The book's contribution is the closed loop: the eventing pipeline (C19) produces match-result rows with confidence; the rating consumes only the confident ones; low-confidence rows route to the human review queue. This is the verified pattern from the workflow dossier (the 8-12 clips rule applies to rating inputs too): CV verifies, ratings aggregate, the review queue catches the borderline.

The data path has three evidence layers, each mapping to an earlier chapter. Outcome evidence: rally detection and score progression from ball tracking and court geometry (C12), match termination from the state machine (C19). Identity evidence: which player is which, from the identity chapter's jersey/appearance models (C13) — a mislabeled point updates the wrong rating, so identity confidence gates the update directly. Context evidence: court/event verification, so a self-posted score cannot masquerade as a sanctioned result. The consumption rule: weight each match by the minimum of outcome, identity, and context confidence; in Glicko terms, inflate the effective opponent RD for shaky rows or route them to review.

One boundary must be held: this loop is a match-result ingestion pipeline, not a performance-judgment pipeline. Vision-Based Rating platforms (PB Vision, Dinkmate's VBR) estimate level directly from CV-derived shot quality — a different claim belonging to chapter 23's tactical models. Merging the two silently encodes CV biases into what should be an outcome measurement.

The identity chapter feeds the rating chapter: the player-label confidence that C13 assigns to every rally is the same weight that the Glicko-2 consumer uses to decide whether a match is a full observation or a review item. The loop is therefore C12 → C13 → C19 → C21, with a review gate at every transition where confidence drops below a threshold.

21.8 Alternative Ground Truth: Betting Markets

When no official rating exists — or the official one is private, as DUPR's is — the analyst constructs ground truth. The NRL ladder is the public-domain ranking; the betting market's implied probability is the sharpest public measurement. Three conversions turn prices into calibration data. Implied probability: P = 1/decimal odds. De-vigging: divide raw implied probabilities by the bookmaker's overround (e.g., a two-way market at 105% gets each side divided by 1.05) to recover a fair probability. Closing Line Value: CLV = (your odds / closing odds − 1) × 100% — the calibration signal of record for professionals.

21.9 The Honest Gap

No public free DUPR/UTR-P dataset exists. DUPR is partner/CSV-gated, UTR-P is proprietary, and PPA WPR is a points table, not a downloadable match database. The closest public resource is pklmart (Kaggle, CC BY-NC-SA 4.0): roughly 300,000 shot-level records across roughly 1,000 matches, mostly doubles at the 4.0–pro level — rich for tactics, but with no official ratings attached and anonymized player IDs that may not support rating inference [verify]. The book therefore cannot validate against the official systems directly; it demonstrates the math on synthetic data and pklmart-style results and keeps the claim scoped to what the data supports.

The book's contribution is a homebrew Glicko-2 + margin + partner-dependence model — a first-of-kind open reference implementation. The partner effect is the doubles problem neither DUPR nor UTR-P models directly: DUPR uses the team average, which lets a fixed partnership inflate or deflate both members' individual ratings. The homebrew model fits team strength as α·(individual average) + β·synergy(p1, p2) and lets the data decide whether β matters. Margin enters as point-fraction against a logistic in rating difference; Glicko-2 supplies the uncertainty that DUPR displays as its Reliability Score.

21.9b What a Rating Cannot Say

The honest limits, stated plainly. A rating is a match-outcome model, not a skill-attributes model. A 4.5 DUPR player may have a weaker third-shot drop than a 4.0 player; the rating averages over hundreds of rallies and hides the tactical shape. Outcome-based, not quality-based: DUPR knows who scored, not whether the point came from a constructed dink or an unforced error. Partner dependence confounds doubles (21.9). Scales drift: DUPR's July 2025 update and UTR-P's April 2025 −0.5 recalibration are explicit scale corrections; any model trained on pre-update numbers must be re-calibrated. Unverified data can be gamed, so both systems and the CV loop weight verified sources.

And the deepest limit is sample size, measured rather than asserted: in E21, after 60 matches against known true skills, Elo's mean absolute error was still 87.6 points (max 139) and Glicko-2's mean RD was 99.8 — the system knows it does not yet know. Convergence to single-digit error takes hundreds of matches per player. 60 matches buys an estimate with an honest error bar; publishing the error bar — RD, reliability percentage, confidence interval — is the difference between a measurement and a vibe.

Recreate in book style: white background, black linework, burnt-orange accents.

21.9c The 10 Use Cases: Applied Framework

The use cases below are the applied bridge from the rating math above to the decisions a club, a coach, or a selector actually faces. They follow three categories: A — Running the Systems in the Field (UC 01–04), B — The Honest Limits (UC 05–07), and C — Decisions Built on Ratings (UC 08–10). Each case pairs a pickleball and a rugby league application so the machinery transfers, and each carries its evidence label: measured (book experiment E21), source-backed (system documentation or paper), or [verify] (practitioner convention, not yet established).

Category A — Running the Systems in the Field (UC 01–04)

UC 01 — DUPR in Practice: The Club Ladder Night

A 200-member club runs a weekly ladder, and the number a player earns on Tuesday night must mean the same thing at tournament registration on Saturday. DUPR's July 2025 performance-vs-expectation model (source-backed) predicts an expected score from team averages before the match, then adjusts on the point differential: 3.5+3.5 versus 4.0+4.0 expects roughly 11-5, and an actual 11-9 moves both teams up. Sanctioned results outweigh self-posted scores, and the Reliability Score (volume, recency, variety) gates entry at 60% — Glicko's RD rendered in consumer language (21.3). The logistic scale behind the expectation, S ≈ 1.46 DUPR points per factor of ten in odds, is lab-derived [verify].

Payoff: tournament directors get seeding they can defend, and players get a ladder where every point matters, not just the W.

DUPR club ladder night: expected versus actual score moving both teams' ratings.
Figure 21.8: UC 01 — DUPR Ladder Night. Expected 11-5, actual 11-9: the margin beats the expectation, so both teams gain. Pickleball: the weekly club ladder feeding tournament seeding through the 60% reliability gate. Rugby league: reserve-grade club grading nights, where the same expectation logic sorts social teams into divisions.

UC 02 — Elo for Rugby League Team Ratings

The NRL ladder ranks the season; a club-Elo prices next Sunday. The machinery is 21.2b's: logistic expectation, a home-ground term H fit at 30–60 Elo points, K = 20–32, with margin-aware variants scaling the update by the winning margin. The calibration move is the one that makes it honest: fit team ratings R_i, H, and scale S to minimize the distance between model probabilities and de-vigged closing probabilities, and the resulting market-calibrated Elo usually out-predicts the ladder (source-backed, 21.5b). A 20-point upset win at home moves the underdog ≈ +20 points at K=32 — large enough to matter, small enough to survive one bad Sunday.

Payoff: analysts get a weekly strength number that tracks the market instead of the narrative.

Club Elo trajectories across a rugby league season with home-ground term.
Figure 21.9: UC 02 — The Club Elo Season. Three club trajectories across 27 rounds around a 1500 mean, with the home term annotated. Rugby league: the primary instrument — a per-round strength estimate calibrated to the closing line. Pickleball: inter-club pennant and league team ratings, where the same home-venue term applies to club nights.

UC 03 — Glicko Uncertainty in Player Form

"Is this player actually in form?" is a question about a distribution, not a point. The player is N(R, RD²): the RD ages upward with inactivity, RD_new = min(√(RD_old² + c²t), RD_max), and narrows with each match cluster — so form is the trajectory of R with its 95% band (R ± 1.96·RD), never the trajectory alone. The measured constraint comes from E21: mean RD was still 99.8 points after 60 matches, so any form claim inside ±196 points of noise is a story, not a signal. Results against high-RD opponents are down-weighted by the g-function (21.2c), which is why a hot streak against mystery opposition moves the band less than the same streak against measured ones.

Payoff: coaches stop overreacting to two good weeks — and stop ignoring a genuine step-change when the band says it is real.

Player form trajectory with wide uncertainty band after few matches, narrow after many.
Figure 21.10: UC 03 — The Form Band. One player's rating trajectory with the uncertainty band: wide after three matches, narrow after forty. Pickleball: a 4.0 DUPR with three verified matches is a different claim than a 4.0 with forty. Rugby league: a halfback's form after two rounds is provisional; after twenty, the band is the selection evidence.

UC 04 — Match Outcome Prediction: The C22 Feed

Every preview and every expected-value model needs a calibrated win probability as its baseline, and the rating logistic is that baseline: P(A) = 1/(1+10^(−Δ/S)), with S_DUPR ≈ 1.46 [verify] and the club-Elo S fit per league against the market. Doubles collapses to team-average versus team-average — adequate for seeding, explicitly not a coaching claim (21.6). The discipline that keeps the number honest is C20's: score the probabilities on held-out matches with Brier and log-loss against the closing line, and treat any fancier model that cannot beat this one-term logistic as decoration, not signal.

Payoff: the rating chapter hands chapter 22 its prior — the ΔEPV of a decision is measured against what the rating already expected.

Logistic win probability curve from rating difference with annotated points.
Figure 21.11: UC 04 — The Probability Machine. Win probability from rating gap: 0.5 → 69%, 1.0 → 83%, 2.0 → 96% on the DUPR-derived scale [verify]. Pickleball: bracket preview probabilities from DUPR gaps. Rugby league: the market-calibrated club Elo checked against the closing line, round by round.

Category B — The Honest Limits (UC 05–07)

UC 05 — The Rating-vs-Skill Gap

A 4.5 DUPR player can have a weaker third-shot drop than a 4.0 — the rating averages over hundreds of rallies and hides the tactical shape. The system is outcome-based, not quality-based: it knows who scored, not whether the point came from a constructed dink rally or an opponent's unforced error (21.9b, source-backed). The quality claim belongs to chapter 23's tactical models and to the Vision-Based Rating boundary drawn in 21.7; merging the two silently encodes CV shot-style biases into what should be an outcome measurement. Rugby league has the same seam: a high-Elo club can carry a weak left-edge defense that the single number never shows.

Payoff: recruiters and selectors treat the rating as the shortlist floor, never the whole file — the tactical file comes from C23.

Two players with identical 4.5 ratings but different shot-quality profiles.
Figure 21.12: UC 05 — Same Number, Different Player. Two 4.5-rated players with different skill profiles: one even, one with a dented third-shot drop. Pickleball: the rating says who wins; the radar says how — and only the second is coachable. Rugby league: two 1600-Elo clubs with opposite defensive shapes; the number ties them, the edge metrics separate them.

UC 06 — Rating Drift Over a Season

A rating computed in March is a stale claim by September, and a published scale correction breaks history outright: DUPR's July 2025 re-specification changed what the number measures, and UTR-P's April 2025 update shifted every rating down 0.5 points — ordering preserved, absolute values moved (source-backed). The countermeasures are mechanical: exponential recency decay (a per-day λ tuned to predict next-match outcome, the E21 extension program), a hard refit after every published scale correction, and a rule that no model trains across a scale break without re-calibration. Early-season club-Elo ratings are likewise dominated by the prior; by round 20 the data has taken over — the drift is the RD story told on a calendar.

Payoff: the model stays calibrated because the scale is treated as a moving target, not a constant.

Season timeline with recency weighting and a scale-correction break.
Figure 21.13: UC 06 — The Moving Scale. Recency-weighted matches across a season, with the vertical break where a scale correction forces a refit. Pickleball: DUPR's July 2025 and UTR-P's April 2025 corrections as dated breaks in any training set. Rugby league: early-season Elo is prior plus noise; late-season Elo is measurement — weight accordingly.

UC 07 — Rating Decay and the Injury Return

Six months out with an injury and the old number is a fiction — but so is pretending to know nothing. Glicko's inactivity rule inflates the uncertainty on exactly the right schedule, RD_new = min(√(RD_old² + c²t), RD_max), and the volatility term σ lets the rating jump on the comeback cluster instead of grinding slowly through the stale estimate (21.2c, source-backed). The practical display: the injured 4.5 enters the comeback tournament as a 4.5 with a wide band — provisional, not fake — and the first four games back carry reduced weight in any selection model until the band re-narrows [verify — the four-game convention is practitioner practice, not a published rule].

Payoff: honest provisional status replaces false precision at exactly the moment selection pressure is highest.

Rating uncertainty band ballooning during an injury gap then narrowing after comeback.
Figure 21.14: UC 07 — The Comeback Band. The uncertainty band balloons across a six-month injury gap, then re-narrows as comeback matches land. Pickleball: the returning 4.5 is 4.5 ± a lot — seed on the band, not the point. Rugby league: the post-ACL fullback's first month back is a provisional rating no matter what the ladder says.

Category C — Decisions Built on Ratings (UC 08–10)

UC 08 — Pairing Fairness in Doubles

Social and competitive doubles live or die on fair pairings, and the team-average model confounds everyone: a fixed partnership drags both individual ratings toward the pair's mean, so a strong player carrying a weak partner arrives at the next pairing night under-rated, and the carried partner arrives over-rated. The homebrew fix fits team strength as α·(individual average) + β·synergy(p1, p2) and lets the data decide whether β clears zero (the E21 extension program); TrueSkill's factor graph is the reference for the alternative — one 2v2 result decomposes into four individual posterior updates (source-backed, 21.2d). Rugby league's version is the halves pairing and the centre-wing edge: combination effects that a pure average of individual ratings cannot see.

Payoff: fair Tuesday nights, and individual ratings that survive a partner swap.

Doubles pairing matrix with synergy term between partners.
Figure 21.15: UC 08 — The Pairing Matrix. Team strength = α × average + β × pair synergy, with the pairing graph the data fits. Pickleball: the primary application — partner-independent ratings from partner-dependent results. Rugby league: halves and edge combinations valued as pairs, not as two averaged individuals.

UC 09 — Selection Decisions: Which Rating to Trust

DUPR says 4.2, UTR-P says 6.1, the homebrew says 1580 ± 110, and the PPA ranking says seventh in the world — which number does the selector use? The discipline has three steps. Ranking versus rating first: WPR is a tournament-success ranking, not a calibrated probability — never seed a match with it (21.5). Calibration second: prefer the system that scores best on held-out log-loss against known outcomes or the market, scored with C20's machinery. Reliability third: gate on the RD or reliability percentage, applying the minimum-confidence rule of 21.7 — a precise number from a thin system loses to an honest interval from a thick one. The same three steps order the NRL ladder, a club Elo, and the market-implied rating for rep selection.

Payoff: selection meetings argue about players, not about whose number is real.

Decision flowchart for choosing ranking, rating, or market number per decision.
Figure 21.16: UC 09 — Which Number for Which Decision. Seeding wants a calibrated rating; the season story wants the ladder or WPR; a single match wants the market-implied probability. Pickleball: DUPR-with-reliability for entry, WPR for tour narrative. Rugby league: market-calibrated Elo for next Sunday, ladder for the season review.

UC 10 — Leaderboard Design

A public leaderboard is an incentive system, not a display: publish a bare number and you get sandbagging, rating-farming against weak fields, and inactivity dodging. The design pattern that works is the one DUPR converged on (source-backed): rating and reliability displayed together, verified sources weighted above self-posted results, minimum-match gates before a rank is shown, and decay or a staleness flag for inactive players. The E21 convergence curve is the design constraint made quantitative — below a few dozen matches the number is a vibe, and an honest board says so with the reliability column rather than hiding it. A club that implements exactly this finds the incentives pointing the right way: the shortest path up the board is playing more verified matches.

Payoff: the board rewards exactly the behavior a healthy competition wants — more verified matches against varied opposition.

Club leaderboard showing rating and reliability columns together.
Figure 21.17: UC 10 — The Honest Leaderboard. Rating and trust displayed as paired columns; thin rows are flagged, not hidden. Pickleball: the club ladder board with the reliability gate visible. Rugby league: the club championship table with an Elo column beside the points column — narrative and measurement side by side.

21.9d Runnable Implementation: The Rating Engine Skeleton

The minimal engine — Elo update, Glicko inactivity aging, opponent down-weighting, margin signal, and the C19 confidence gate — is the starting skeleton; the full lab lives at lab/w5_lab_ratings.py (E21):

import math

def elo_update(ra, rb, score, k=32.0):
    """One Elo step: score is 1/0, or point-fraction for margin-aware variants."""
    exp_a = 1.0 / (1.0 + 10.0 ** ((rb - ra) / 400.0))
    return ra + k * (score - exp_a)

def age_rd(rd, days, c=8.0, rd_max=350.0):
    """Glicko inactivity inflation: the comeback player's band balloons on schedule."""
    return min(math.sqrt(rd**2 + (c * days / 30.0) ** 2), rd_max)

def g_weight(rd_j):
    """Down-weight mystery opponents: a result vs high RD teaches less."""
    q = math.log(10.0) / 400.0
    return 1.0 / math.sqrt(1.0 + 3.0 * (q * rd_j / math.pi) ** 2)

def consume_match(row):
    """C19 eventing row -> gated, weighted rating update."""
    conf = min(row.outcome_conf, row.identity_conf, row.context_conf)
    if conf < 0.70:                       # review gate: low-confidence rows queue for a human
        return ("REVIEW", row)
    k_eff = 32.0 * conf                    # fractional-K for shaky-but-usable evidence
    margin = row.points_won / max(row.points_played, 1)
    return ("UPDATE", elo_update(row.ra, row.rb, margin, k=k_eff))

21.9e What This Adds to the Pipeline

The ten use cases hang on the book's closed loop rather than standing alone. C19's eventing pipeline emits the match-result rows with outcome, identity, and context confidence that UC 01, UC 08, and UC 10 consume; C20's Brier and log-loss discipline scores every probability UC 04 and UC 09 emit; the rating logistic is the prior that chapter 22's expected-value models must beat before claiming any added signal; the rating-versus-skill boundary of UC 05 is the seam where chapter 23's tactical models take over; and the cockpit and practice surfaces of chapters 28–29 display rating, reliability, and recency exactly as UC 10 specifies. The honest labels mark what is measured (E21), documented (DUPR, UTR-P, Glicko, TrueSkill), or still practitioner convention [verify] — the gap rule, the S ≈ 1.46 scale, and the four-game comeback convention among them.

21.10 The Ratings Recipe (Copy This)

  1. Start with Elo: the logistic + K-factor; it is 10 lines and correct for one-on-one.
  2. Upgrade to Glicko-2 when you need a per-player reliability (the RD is the honesty the DUPR reliability % displays).
  3. Add margin: 11-5 is a different signal than 11-9; the point-per-game weighting is the UTR-P lesson.
  4. Add partner dependence for doubles: the team-average is a crude interaction; the book contribution is the interaction term.
  5. Validate against the market: betting-implied probability is the sharpest public calibration reference (closing-line value).
  6. Feed from CV: C19 eventing produces match results with confidence; weight by the minimum of outcome, identity, and context confidence; low-confidence rows route to review.
  7. Re-fit constants per sport: scale, K, home advantage, and aging rates are population-calibrated — transplant the architecture, never the parameters.
  8. Publish the sample size: 60 matches is not a rating; hundreds are. The RD or the CI says it.

21.11 What I Would Measure Next

  • Homebrew Glicko-2 + margin + partner effect on synthetic and pklmart-style results: does β (synergy) clear zero, or is DUPR's team-average adequate?
  • Feed C19 eventing's confident match results into the rating; measure convergence vs the betting-implied ground truth, scored with C20's Brier/log-loss.
  • Recalibration drift: quantify how much a DUPR-scale correction (July 2025) or UTR-P shift (April 2025) moves a homebrew model's held-out log-loss.

21.12 Sources

  • DUPR how-it-works and the July 2025 performance-vs-expectation update; the Reliability Score post (dupr.com/how-it-works; dupr.com/post/dupr-algo-update-win-or-lose-your-rating-can-go-up; dupr.com/post/introducing-the-dupr-reliability-score). Forbes on DUPR's 2025 consolidation (forbes.com/sites/toddboss/2025/12/05).
  • UTR-P algorithm and the April 2025 recalibration (utrsports.net/pages/how-utr-p-works; support.universaltennis.com, articles 9000234183 and 9000267476). PPA World Pickleball Rankings (ppatour.com/world-pickleball-rankings-be-the-best, Aug 2026).
  • Elo (logistic + K; en.wikipedia.org/wiki/Elo_rating_system), Glicko-1/2 (RD + volatility; glicko.net/glicko/glicko2.html; Glickman, J. Applied Statistics 28:673-689, 2001), Bradley-Terry, TrueSkill (microsoft.com/en-us/research/project/trueskill-ranking-system).
  • NRL ladder (nrl.com/ladder); closing-line value, de-vigging, and implied probability per standard sports-betting analytics convention. pklmart dataset (kaggle.com/datasets/cakesofspan/pklmarts-competitive-pickleball-extracts, CC BY-NC-SA 4.0). Vision-Based Rating context (dinkmate.ai; pb.vision).
  • Lab: lab/w5_lab_ratings.pyexperiments/c21-ratings/outputs/metrics.json (E21: 87.6 mean abs Elo error, 99.8 mean RD after 60 matches).

Next Chapter

Chapter 22 — Expected Value: xG, VAEP, EPV, and Their Sport Transplants

The possession-value ladder, pickleball's missing model, and the rugby anchor that needs no tracking data

Continue Reading
AS '26

Agentic Sport Analytics

A practitioner's field guide to automated sport analytics: watching, tagging, modelling, interpreting, and acting with AI, LLMs, computer vision, and agent harnesses. Measured on pickleball and Australian rugby league. By Mehran Mozaffari. First Edition, August 2026.

Front Matter

Preface

Front Matter

Copyright & License

Watching

Chapter 01 — Build the Lab, Not the Manuscript

Watching

Chapter 01 — Why This Book Exists: The Five Verbs of Sport Analytics

Watching

Chapter 02 — The Evidence Contract & Data Provenance

Watching

Chapter 02 — The Evidence Contract & Data Provenance

Watching

Chapter 03 — Calibrating the World: Homography & Court Geometry

Watching

Chapter 03 — Sport Rules as Formal Systems

Watching

Chapter 04 — Finding & Tracking the Actors: From ByteTrack to Meta SAM 2/3

Watching

Chapter 04 — Capture: Cameras, Lenses, Shutter, Placement

Watching

Chapter 05 — The Body in Motion: 2D Keypoints to Meta SAM 3D Body

Watching

Chapter 05 — Data Engineering for Sport Video

Watching

Chapter 06 — Smashing the Ball Wall: Spatio-Temporal Trajectory Recovery & SAM 2/3 Equipment Segmentation

Watching

Chapter 06 — Calibration I: Homography, Intrinsics, Distortion

Watching

Chapter 07 — The Structured Representation: PBN & State Machines

Watching

Chapter 07 — Calibration II: Broadcast Dynamics, GMC, and Per-Frame H_t

Tagging

Chapter 08 — Reading Space & Pressure: Geometric Deep Learning

Tagging

Chapter 08 — Detection: YOLO, RF-DETR, and the AGPL Decision

Tagging

Chapter 09 — Generative Replay & Counterfactual Simulation

Tagging

Chapter 09 — Tracking & Identity: Metrics, ReID, and Role Priors

Tagging

Chapter 10 — Where Vision-Language Models Help, and Where They Lie

Tagging

Chapter 10 — Segmentation & Foundation Models: SAM 2/3, DINOv3

Tagging

Chapter 11 — Building the Live Coaching Cockpit on Apple Silicon

Tagging

Chapter 11 — The Body in Motion: 2D Keypoints to 3D Biomechanics

Tagging

Chapter 12 — Complex Motion & Field Sport Scaling

Tagging

Chapter 12 — Smashing the Ball Wall: Spatio-Temporal Trajectory Recovery

Tagging

Chapter 13 — Evaluation, Rights, and the Next 10 Runs

Tagging

Chapter 13 — Identity: Who Is Who

Tagging

Chapter 14 — Multi-Camera Geometry, Line Calls, 3D Reconstruction

Tagging

Chapter 15 — Audio & Multimodal Cues: The Free Sensor

Tagging

Chapter 16 — Video Understanding: Action Recognition, Spatio-Temporal

Tagging

Chapter 17 — Event Data & the Common Representation

Modelling

Chapter 18 — Annotation: The Ground-Truth Workflow

Modelling

Chapter 19 — Automatic Eventing: State Machines, Confidence, Review Queues

Modelling

Chapter 20 — Statistics for Sport Practitioners

Modelling

Chapter 21 — Rating Systems: DUPR, ELO, Glicko, and Skill

Modelling

Chapter 22 — Expected Value: xG, VAEP, EPV, and Their Sport Transplants

Modelling

Chapter 23 — Tactical ML: Graphs, Equivariance, and Honest Forecasting

Modelling

Chapter 24 — Simulation & Counterfactuals: The Honest Rebuild

Interpreting

Chapter 25 — Where Vision-Language Models Help, and Where They Lie

Interpreting

Chapter 26 — From Numbers to Narrative: Reports, Scouting, Coach UX

Interpreting

Chapter 27 — The Agent Harness for Sport Analytics

Interpreting

Chapter 28 — The Live Coaching Cockpit: Real-Time Systems, Honestly Measured

Acting

Chapter 29 — Practice Design & Interventions: The Acting Loop

Acting

Chapter 30 — Sensors & Hardware: Wearables, Smart Courts, the Fusion Spine

Acting

Chapter 31 — Deployment, Licensing, Rights & Ethics

Acting

Chapter 32 — The Laboratory: Reproducing the Book's Claims

Acting

Chapter 33 — The Frontier: What's Changing in 2025-2026

Acting

Chapter 34 — The Book as a System: How to Use It (Human + Agent)

©2026 Mehran Mozaffari. Free for personal/noncommercial use (CC BY-NC-ND 4.0); commercial license required for business use.