A16 — Generalist vs Specialist + Roster Coverage (HEADLINE)
A16 — Generalist vs Specialist + Roster Coverage (HEADLINE)
Question. Is a player who is strong across all subjects worth more win-share than a single-subject specialist, and what roster coverage profile wins? Regress team win% on coverage breadth (a credible answerer in each subject) vs concentration (HHI), controlling for total talent; compare to the natural-roster Science Bowl baseline (F1); find the optimal coverage profile and test complementary pairings.
TL;DR.
1. Coverage is a threshold good, not a gradient. The thing that wins is not
having a hole: teams that leave any subject with no credible answerer ("punt")
lose far more. Among teams with ≥5 games, 0 punts → 52% win, ≥1 punt → 28%.
corr(win%, #punts) = −0.54 (p=0.001) and it survives controlling for star
talent (partial r = −0.37, p=0.026).
2. Beyond filling all six slots, redundancy/depth adds almost nothing. Among
fully-covered teams the # of subjects with a second credible answerer is
uncorrelated with winning (r = 0.01). The strength of your weakest subject
correlates with winning (+0.44) but is collinear with overall talent — it
does not survive a talent control (partial r = −0.09, ns).
3. At the player level, generalists ARE more valuable — but mostly because breadth
IS talent. corr(player toss_points, #subjects answered) = +0.76. The best
players are broad; pure one-subject specialists are rarely high-volume.
4. NSBA replicates the natural-roster F1 finding in direction: breadth helps,
concentration hurts (corr(win%, subject_HHI) = −0.46 in NSBA vs −0.57 in real
Science Bowl). But the level differs: real Science Bowl rosters vary a lot in
breadth and celerity dominates; NSBA drafted rosters are already so balanced
that breadth only bites at the bottom (the few teams that punt a subject).
Data & method
- Backbone:
team_season.csv(41 team-seasons; nsba1=12, nsba2=13, nsba3=16) andplayer_season_master.csv(207 player-seasons), both built only from game data (standard SB scoring, clean 180-game set). Robustness restricts togames ≥ 5→ 37 team-seasons (drops 4 tiny-sample nsba3 teams with 1–4 games). - Talent controls:
roster_toss_points(sum of roster net toss-up points, season-z) andtop2_toss(sum of the two highest-scoring players, the "star" proxy, season-z). Win% z is not used; win% is the raw outcome. - Coverage metric: for each team × subject, count roster players whose net
toss-up points in that subject ≥ 8 (≈ ≥2 net correct over the season) = a
"credible answerer."
coverage= # subjects with ≥1;punts= # subjects with none;deep_subjects= # with ≥2 (redundancy). Active subject slate per season: nsba1 = {b,ch,ess,m,p,ene}; nsba2/nsba3 = {b,ch,cs,ess,m,p}. (nsba1 Energy is kept; CS exists only nsba2/3 — never mixed.) - Concentration: team
subject_hhi(Herfindahl of positive subject-point shares; ~0.17 = balanced, 1.0 = one subject). - Baseline:
scibowl_team_stats.csv(84 natural-roster teams) for the F1 reference (n_subjects_covered,breadth_hhi,avg_celerity). - Regressions are plain OLS (numpy lstsq, analytic SEs); n is small so treat p-values as directional.
- Reproduce:
/home/david/code/nsba/.venv/bin/python scripts/analysis_16_coverage.py→ writesdata/processed/team_coverage_16.csv.
1. Player level — are generalists worth more than specialists?
Among productive players (toss_points > 20, n = 124), median own-subject HHI = 0.38 (pure specialist = 1.0, perfectly broad over 6 = 0.17).
| relationship | corr |
|---|---|
| player toss_points vs # subjects answered | +0.76 |
| player toss_points vs generalist (1 − HHI) | +0.53 |
| player PPTF (rate) vs # subjects answered | +0.65 |
Read: the highest-value players are broad answerers; single-subject specialists are almost never high-volume scorers. Breadth and talent are entangled at the individual level — a generalist out-produces a specialist largely because being broad is how you rack up points in a format where every subject is in play. So the draft answer is prefer the generalist when raw output is comparable; you almost never get a high-output pure specialist anyway.
2. Team level — what coverage profile wins?
Univariate (games ≥ 5, n = 37):
| feature | corr with win% | p |
|---|---|---|
| roster_toss_points (talent) | +0.60 | 0.000 |
| top2_toss (star talent) | +0.63 | 0.000 |
| coverage (subjects with a credible answerer) | +0.54 | 0.001 |
| # punts (uncovered subjects) | −0.54 | 0.001 |
| subject_HHI (concentration) | −0.46 | 0.005 |
| mean_depth (avg answerers/subject) | +0.34 | 0.040 |
| deep_subjects (subjects with ≥2 answerers) | +0.30 | 0.073 |
| roster_size | −0.11 | 0.53 |
Win% by coverage gap (games ≥ 5):
| # punts | mean win% | n |
|---|---|---|
| 0 (full coverage) | 0.521 | 32 |
| 1 | 0.315 | 3 |
| 2 | 0.200 | 1 |
| 4 | 0.000 | 1 |
Regressions (win% outcome, n = 37):
| model | talent β (p) | coverage β (p) | adj R² |
|---|---|---|---|
| talent only (roster pts) | +0.163 (0.000) | — | 0.503 |
| top2 star only | +0.155 (0.000) | — | 0.507 |
| roster talent + #punts | +0.136 (0.000) | −0.066 (0.066) | 0.538 |
| top2 star + #punts | +0.129 (0.000) | −0.075 (0.028) | 0.560 |
| talent + deep_subjects | +0.158 (0.000) | +0.009 (0.591) | 0.493 |
| talent + subject_HHI | +0.146 (0.000) | −0.656 (0.213) | 0.512 |
- Each punted subject costs ≈ 7 percentage points of win% on top of talent
(β = −0.075, p = 0.028 over star talent). Adding
#puntsto a star-talent model raises adj R² from 0.507 → 0.560. - Redundancy beyond first coverage does not help.
deep_subjectsis flat once talent is in (β = +0.009, p = 0.59); among the 32 fully-covered teams,corr(win%, deep_subjects) = +0.01. A second expert in a subject you already cover is wasted roster value; talent there should go to your weakest slot or to raw star power. - Partial correlations (control star talent):
corr(win%, #punts | top2) = −0.37 (p = 0.026);corr(win%, coverage | top2) = +0.37. Coverage carries real, talent-independent signal.
Where the signal lives. At FLOOR = 8 the punt variation is entirely in nsba3 (every nsba1/nsba2 team with ≥5 games already covers all 6 subjects). Raising the bar makes punts appear in all seasons and strengthens the effect — a good robustness sign:
| credible-answerer floor | corr(win%, #punts) | teams with a punt |
|---|---|---|
| ≥1 net correct (pts≥4) | −0.40 (p=0.014) | 1 / 37 |
| ≥2 net correct (pts≥8, main) | −0.54 (p=0.001) | 5 / 37 |
| ≥3 net correct (pts≥12) | −0.57 (p=0.000) | 16 / 37 |
| ≥4 net correct (pts≥16) | −0.60 (p=0.000) | 18 / 37 |
Continuous "weakest-link" caveat. Using the strength of the worst-covered
subject's best answerer (continuous, defined every season): corr(win%) = +0.44,
but it does NOT survive a talent control (partial r = −0.085, ns). So it is the
binary gap (does a credible answerer exist at all) that matters beyond talent,
not the marginal depth of your weakest subject. Coverage is a threshold good.
3. Optimal coverage profile
Cover all six subjects with at least one credible (≥2-net-correct) answerer, then spend every remaining pick on raw scoring talent / a star — not on a second answerer in a subject you already cover.
A fully-covered, top-heavy roster (high top2, 0 punts) is the modal winner:
top2 + #punts is the best small model (adj R² = 0.560). Depth/redundancy and a
balanced-but-mediocre spread (low HHI alone) do not beat star talent once the holes
are filled.
4. How common is good coverage of each subject in NSBA drafts?
(games ≥ 5; "covered" = ≥1 credible answerer, "deep" = ≥2.)
| subject | covered | deep (≥2) | win% if covered | win% if punted (n) |
|---|---|---|---|---|
| Biology (b) | 97% | 54% | 0.495 | 0.000 (1) |
| Chemistry (ch) | 95% | 54% | 0.493 | 0.287 (2) |
| Comp Sci (cs) | 92% | 40% | 0.496 | 0.214 (2) |
| Earth/Space (ess) | 95% | 68% | 0.505 | 0.071 (2) |
| Math (m) | 97% | 65% | 0.495 | 0.000 (1) |
| Physics (p) | 97% | 62% | 0.490 | 0.200 (1) |
- CS is the scarcest coverage (92% covered, only 40% have a second CS answerer) and the thinnest bench — consistent with the prior that CS is the rarer/"unbikable" skill. The subjects most often punted are CS and ESS depth. In a draft, a credible CS answerer is the most differentiating coverage pick because they're hardest to find on the board.
- Punting Biology or Math is rare but catastrophic (the lone teams that did went 0.000).
5. Complementary pairings
Subject pairs both covered vs not (games ≥ 5), win% difference:
| pair both covered | n | win% both | win% else | Δ |
|---|---|---|---|---|
| ESS + Physics | 34 | 0.514 | 0.114 | +0.40 |
| Chem + ESS | 33 | 0.519 | 0.179 | +0.34 |
| CS + ESS | 22 | 0.512 | 0.190 | +0.32 |
| Bio + Chem | 34 | 0.508 | 0.192 | +0.32 |
| Chem + Math | 34 | 0.508 | 0.192 | +0.32 |
| CS + Physics | 22 | 0.509 | 0.210 | +0.30 |
These pairings are not evidence of a special synergy — they mostly re-express the single-punt penalty (a team that covers both members of any pair is a team without a hole). The honest reading: no specific two-subject combo beats simply "cover everything." ESS- and CS-involving pairs top the list only because ESS-depth and CS are the holes teams actually leave.
Comparison to the natural-roster baseline (F1)
| metric | real Science Bowl (n=84) | NSBA drafted (n=37) |
|---|---|---|
| corr(win%, # subjects covered / coverage) | +0.52 | +0.54 |
| corr(win%, breadth concentration HHI) | −0.57 | −0.46 |
| corr(win%, celerity) | +0.78 | (no celerity in NSBA games) |
| corr(win%, tu_correct / talent) | +0.86 | +0.60 (roster pts) |
Same direction, different regime. Breadth helps and concentration hurts in both. But natural school rosters span a wide coverage range (HHI 0.17→1.0, many genuinely narrow teams), so breadth is a first-order driver there. NSBA's snake draft already forces balance — drafted rosters cluster tightly near HHI ≈ 0.18 and 37/41 cover all six subjects — so in NSBA, coverage only separates the bottom (the handful of teams that fail to land a credible answerer in a subject, almost always CS or ESS), while talent/star power separates the top.
Limitations
- n is small (37–41 team-seasons) and coverage variation at FLOOR=8 is almost entirely nsba3; treat p-values as directional. The effect strengthens and spreads across seasons at higher thresholds, which is reassuring but not dispositive.
- Win% is a noisy outcome (4–12 games/team; several nsba3 teams ≤7 games). Schedule strength is not modeled.
- Talent and breadth are entangled at the player level by construction (a broad player scores more), so "generalist value" partly reflects that broad players are simply better, not a pure breadth premium.
- Coverage is buzz-attributed, not on-floor: nsba3 has no lineup/TUH data, so a player credited in a subject is whoever buzzed, which can understate quiet capable answerers. The credible-answerer floor (≥2 net correct) mitigates this.
- CS exists only in nsba2/nsba3; Energy only in nsba1 — the per-subject prevalence table mixes these eras (handled by per-season active slates, but CS/ESS numbers rest on ~28 team-seasons, not 41).
- Coverage here is a necessary-not-sufficient threshold result: it tells you not to leave a hole; it does not say depth is worthless in a longer/elimination format where a single off-night for your lone subject expert is riskier than these round-robin win%s reveal.