NSBA Draft Analyticsembargoed · 2026-06-06

36_buzzpoint_rank_difficulty.md

36 — Buzz RANK vs DIFFICULTY-WEIGHTED vs raw celerity vs outcome-only

36 — Buzz RANK vs DIFFICULTY-WEIGHTED vs raw celerity vs outcome-only

Follow-up to finding 35. Finding 35 showed raw celerity barely improves an opponent-adjusted outcome-only Plackett-Luce player ranking, but flagged the scibowl/SSB data as a weak position test (lockout short-answer, position only on ~29% of buzzes). Two strong players proposed a WHY + a fix:

This finding tests whether a smarter buzzpoint feature beats both raw celerity and outcome-only ranking, on held-out prediction — the test that matters.

Script: scripts/analysis/36_buzzpoint_rank_difficulty.py (ENV /home/david/code/nsba/.venv/bin/python). Artifacts: data/processed/buzzpoint_rank_difficulty_36_{qb,ssb,corr,eval}.csv.


Datasets — and why we finally have a strong test

The big upgrade over finding 35: I pulled true pyramidal quizbowl buzz curves from the open-license quizbowl/open-data repo (ODbL).

Why this matters for the dispute: Radius and thedoge are both quizbowl players arguing about pyramidal buzzpoints. ACF Regionals is exactly that format, so we are now testing their claims on their home turf, not on a lockout-format proxy.


Models (same player set / same game-split CV per dataset)

  1. OUTCOME-PL — opponent-adjusted Plackett-Luce (top-1 conditional logit) on who-buzzed-first, with a shared dead-tossup difficulty "virtual competitor." This is finding 35's baseline / Radius's actual model. No buzzpoints.
  2. +CELERITY — same PL, each won race weighted by winner celerity (0.5 + (1 − location_pct)). The thing that failed in 35; reconfirmed here.
  3. +BUZZRANK (thedoge) — for each question, pool every read, rank the correct buzzers by speed, score each player by mean normalized rank (1 = always the fastest to convert that clue). Also +BUZZRANK-PL: a full-order Plackett-Luce fit on the per-question speed ORDER (fastest→slowest), i.e. the rank-aggregated speed-skill thedoge gestured at. (Gradient analytically verified vs numerical, recovers a known speed ordering at ρ=1.0 on synthetic data.)
  4. +DIFFICULTY (Radius) — buzzpoint-IRT-flavored. Reference field = top third by conversions. For each question, build the celerity distribution of strong getters; a buzz at celerity c is credited with the fraction of the strong field that did NOT beat it to the clue (buzzed later or missed) — the difficulty it overcame. Player rating = difficulty-weighted credit / exposure. Hard, early conversions on clues that mostly went late score highest.

Eval (held-out games): split games 75/25, refit every rating on train, and on held-out non-dead races predict the winner among the eligible field via softmax(z-scored rating). Report winner-argmax accuracy and mean log-loss, averaged over 8 random splits. Plus full-data Spearman of each model vs OUTCOME-PL.


Results

Spearman vs OUTCOME-PL baseline

Model QB ρ (n=424) QB top-20 SSB ρ (n=81) SSB top-20
+celerity (radius's fail) 0.992 18/20 0.972 17/20
+difficulty-weighted (radius) 0.828 13/20 0.927 16/20
+buzzrank mean (thedoge) 0.518 4/20 0.244 8/20
+buzzrank PL-order (thedoge) 0.422 4/20 0.362 10/20

Held-out prediction (mean ± sd over 8 game splits)

Model QB acc QB log-loss SSB acc SSB log-loss
OUTCOME-PL (no buzzpoints) 0.327 ± .008 1.768 ± .013 0.524 ± .019 1.074 ± .041
+celerity 0.326 ± .011 1.770 ± .017 0.529 ± .023 1.066 ± .045
+difficulty-weighted 0.321 ± .010 1.833 ± .012 0.493 ± .031 1.079 ± .037
+buzzrank mean 0.186 ± .011 2.080 ± .019 0.461 ± .012 1.138 ± .021
+buzzrank PL-order 0.176 ± .010 2.135 ± .026 0.499 ± .015 1.093 ± .027

(QB held-out acc is low in absolute terms because fields are larger and a huge share of held-out winners are players unseen/thin in train — the comparison across models on the same races is what's informative, not the absolute level.)


Interpretation

1. Raw celerity ≈ outcome-only. Reconfirmed, now on real pyramidal data. +celerity is nearly identical to OUTCOME-PL in ranking (ρ 0.992 QB / 0.972 SSB) and statistically tied held-out (QB 0.326 vs 0.327, SSB 0.529 vs 0.524 — within one SD either way). On the format where celerity is supposed to matter most, it still adds essentially nothing to the ranking. Finding 35's celerity result replicates.

2. thedoge's buzz-RANK is NOTICEABLY WORSE, not better. It diverges sharply from outcome (ρ 0.42–0.52) — but in the wrong direction: held-out it is the worst model on both datasets (QB acc 0.18 vs 0.33; SSB 0.46–0.50 vs 0.52), with the highest log-loss. The mechanism is visible in the rankings: rank-normalization conditions on questions you already got, discarding the dominant skill signal — how often you convert. It promotes low-volume fast buzzers (a player with 13 gets jumps from outcome-rank 409 → buzzrank 72) and punishes elite high-volume players (Itamar Naveh-Benjamin, 112 gets, outcome-rank 9 → buzzrank 319). "Were you fast on the ones you got" is a style axis orthogonal to quality; auto-normalizing for difficulty also auto-normalizes away the thing you wanted to rank. thedoge's bet (rank > celerity) loses: rank is worse than celerity AND worse than outcome.

3. Radius's difficulty-weighting tracks outcome but does NOT beat it. It is the sane buzzpoint feature — it stays correlated with skill (ρ 0.83 QB / 0.93 SSB, 13–16 of top-20 retained) because it rewards converting hard clues, which strong players do more. But held-out it is no better than OUTCOME-PL, and slightly worse (QB 0.321 vs 0.327, log-loss 1.833 vs 1.768; SSB 0.493 vs 0.524). Folding in clue difficulty did not unlock a predictive gain. Most of what difficulty-weighting "knows" is already implied by who converts against whom — the opponent-adjusted outcome model has it baked in.

4. The ceiling stays low even with the smart feature. The whole premise was that a difficulty-aware buzzpoint feature might finally separate from outcome-only. On true pyramidal data it doesn't: every buzzpoint variant either ties the outcome baseline (celerity, difficulty) or underperforms it (both rank variants). Nothing here noticeably beats opponent-adjusted who-buzzed-first out of sample.


Verdict (head-to-head, on held-out prediction)

Honest power limits. (a) QB eligible field is a buzzer-only proxy for the roster (no schedule/roster file), which inflates field size and depresses absolute held-out accuracy — but it biases all five models equally, so the ranking of models is robust. (b) One pyramidal set (ACF Regionals 2018) means question difficulty is identifiable per-question but only one tournament's worth; (c) SSB remains a weak position test and is used only to corroborate. Within those limits the direction is consistent across two very different formats: smarter buzzpoint features do not beat opponent-adjusted outcome — and the one that tried hardest to be "difficulty-aware" (Radius) tied at best, while the one that bet on rank (thedoge) clearly lost.


NSBA Draft Analytics · embargoed until after the SSB draft · ← hub