Methodology
This page is factual: what the data tiers are, how the rating and accomplishment measures are built, and what the known limits are. No conclusions are drawn here - see what it means for that.
Data tiers and sources
- Tier A/B, 1985-present. Full-field ratings (
purdue_seasons_ab.csv,team_season_ratings.csv) built from game-level margins across the whole Division I field, sourced from Kaggle/Kenneth Massey college-basketball game data and cross-checked against KenPom (see below) and hoopR (sportsdataverse) team and play-level data. - Tier C, pre-1985 (1906-07 through 1984-85). A conference-only coarse strength measure built from Big Ten standings only - see below.
- Pre-conference era (through 1905-06). Record only; unrated. Opponent data is too thin to construct any standardized strength measure.
- Player data. Purdue's own media guide career-stats tables (box-score totals by season) plus hoopR play-by-play/box-score data for 2005-2025.
- Reference tables (
data/reference/): accomplishment weights, AP final polls, Big Ten standings, NCAA tournament field/format, and postseason results, several sourced in part from Wikipedia (CC BY-SA 4.0).
The rating model and weighting test
The 1985-present rating is fit on every REG and CONF_TOURNEY game across the Division I field, then tested by predicting each season's NCAA tournament games under several candidate weighting schemes (unweighted, conference-weighted, recency-weighted, recency-weighted with a postseason boost, and an uncapped version of the last). Schemes are scored by pooled and per-decade log-loss, accuracy, and margin RMSE.
| Scheme | Decade | N | Accuracy | Log-loss | Margin RMSE |
|---|---|---|---|---|---|
| conference | 1980s | 315 | 70.5% | 0.529 | 10.15 |
| conference | 1990s | 630 | 73.5% | 0.526 | 11.36 |
| conference | 2000s | 639 | 73.4% | 0.510 | 10.78 |
| conference | 2010s | 667 | 70.6% | 0.554 | 11.23 |
| conference | 2020s | 334 | 71.0% | 0.577 | 12.10 |
| conference | pooled | 2,585 | 72.0% | 0.536 | 11.14 |
| recency | 1980s | 315 | 70.5% | 0.529 | 10.16 |
| recency | 1990s | 630 | 73.3% | 0.526 | 11.37 |
| recency | 2000s | 639 | 72.6% | 0.511 | 10.79 |
| recency | 2010s | 667 | 70.3% | 0.554 | 11.21 |
| recency | 2020s | 334 | 70.7% | 0.576 | 12.09 |
| recency | pooled | 2,585 | 71.7% | 0.536 | 11.14 |
| recency_postseason | 1980s | 315 | 70.5% | 0.529 | 10.16 |
| recency_postseason | 1990s | 630 | 73.3% | 0.526 | 11.37 |
| recency_postseason | 2000s | 639 | 72.6% | 0.510 | 10.79 |
| recency_postseason | 2010s | 667 | 70.5% | 0.554 | 11.20 |
| recency_postseason | 2020s | 334 | 71.0% | 0.576 | 12.09 |
| recency_postseason | pooled | 2,585 | 71.8% | 0.536 | 11.14 |
| recency_postseason_uncapped | 1980s | 315 | 72.7% | 0.538 | 10.36 |
| recency_postseason_uncapped | 1990s | 630 | 71.9% | 0.531 | 11.30 |
| recency_postseason_uncapped | 2000s | 639 | 73.6% | 0.511 | 10.76 |
| recency_postseason_uncapped | 2010s | 667 | 69.6% | 0.559 | 11.31 |
| recency_postseason_uncapped | 2020s | 334 | 69.5% | 0.585 | 12.05 |
| recency_postseason_uncapped | pooled | 2,585 | 71.5% | 0.541 | 11.16 |
| unweighted | 1980s | 315 | 70.8% | 0.529 | 10.15 |
| unweighted | 1990s | 630 | 73.5% | 0.526 | 11.36 |
| unweighted | 2000s | 639 | 72.6% | 0.510 | 10.79 |
| unweighted | 2010s | 667 | 70.3% | 0.553 | 11.23 |
| unweighted | 2020s | 334 | 70.7% | 0.578 | 12.10 |
| unweighted | pooled | 2,585 | 71.8% | 0.536 | 11.15 |
The chosen default scheme is recency_postseason: it has the best (lowest) pooled log-loss
among the capped schemes, and capping the recency weight keeps Purdue's own season-to-season rating
movement close to the unweighted baseline (rank correlation above 0.99) while the uncapped version lets a
single hot or cold postseason swing a season's rating by up to several points - the cap trades a small
amount of predictive sharpness for stability.
Tier C construction and calibration
For each Big Ten season 1906-07 through 1984-85, Purdue's Tier C strength is the mean, over that
season's conference games only, of Purdue's game margin plus a home-court adjustment plus k
times the opponent's own conference win percentage that season (with games against Purdue removed and
standardized across that year's conference field), then standardized across all Tier C seasons.
Non-conference games are excluded entirely rather than penalized with a placeholder value. The smoothing
parameter k was calibrated, not guessed: the identical measure was built for 1985-2025 (where
a real rating already exists) under several values of k, and the value that best rank-correlates with
that real rating_z was chosen.
| k | Spearman rho vs rating_z | p-value | N seasons |
|---|---|---|---|
| 0.00 | 0.825 | 0.000 | 41 |
| 5.00 | 0.844 | 0.000 | 41 |
| 10.00 | 0.848 | 0.000 | 41 |
| 15.00 | 0.826 | 0.000 | 41 |
| 20.00 | 0.757 | 0.000 | 41 |
| raw_margin_only | 0.810 | 0.000 | 41 |
Accomplishment weights
The accomplishment score for each season is a weighted sum of components: conference wins, marquee non-conference wins, a Big Ten regular-season title, conference-tournament result, NCAA bid and round (scaled by field selectivity), and NIT bid/wins.
| Row Type | Key | Value | Rationale |
|---|---|---|---|
| base_weight | bigten_regular_season_title | 4 | Winning the conference outright over a full round-robin is the single most repeatable proof of a great season; set as the largest fixed (non-scaled) stake below only the deepest NCAA runs. |
| base_weight | bigten_regular_season_title_pre1975_multiplier | 1.5 | Before at-large bids (1975), the Big Ten champion was Purdue's only route to the NCAA tournament (one bid per conference) -- the regular-season title WAS the tournament bid, so it is worth more in that era, applied on top of the base weight. |
| base_weight | bigten_conference_tourney_title | 2.5 | The Big Ten Tournament began in 1998 and, unlike the regular season, is a single elimination weekend that does not fully replace the round-robin's proof of sustained quality -- valued below the regular-season title. |
| base_weight | bigten_conference_tourney_round | see accomplishment_conf_tourney_round_weights | Each conference tournament win short of the title is worth a fraction of the title itself (1998-on only; the event did not exist before). |
| base_weight | ncaa_bid | 0.5 | Base value of simply reaching the NCAA field before selectivity scaling, set below a first-round win (1) since making the field is not yet a result on the floor; scaled by the same selectivity factor as every round value (normalized to 1.0 for a 64-team field, the 1985-2009 standard). |
| base_weight | ncaa_round_R64 | 1 | First tournament win (or, in eras with fewer rounds, an equivalent early win), scaled by that year's selectivity factor. See docs/ACCOMPLISHMENT_WEIGHTS.md for how a round is matched to R64/R32/etc. across eras with different bracket depths. |
| base_weight | ncaa_round_R32 | 2 | Second tournament win. |
| base_weight | ncaa_round_S16 | 3.5 | Sweet Sixteen win; value accelerates faster than round-by-round wins below it because the remaining field is now uniformly tournament-caliber. |
| base_weight | ncaa_round_E8 | 5.5 | Elite Eight win (reaching the Final Four). |
| base_weight | ncaa_round_F4 | 8.5 | Final Four win (reaching the national championship game). |
| base_weight | ncaa_round_title | 13 | National championship win. Escalating (roughly Fibonacci-like) round values reflect that each surviving round eliminates a much stronger field than the one before it, not just one more game. |
| base_weight | ncaa_third_place_game | 1 | Pre-1982 NCAA consolation ('3rd place') game win; a genuine result but not an advancement, so it is valued at the same flat rate as a single non-marquee non-conference win rather than scaled with the round ladder. |
| base_weight | nit_bid | 0.6 | NIT credit only 1939-1975 (see cutoff rule below); worth noticeably less than an NCAA bid in the same years because the NCAA was already the more selective, higher-prestige event even before it required winning the conference. |
| base_weight | nit_round_win | 1 | Each NIT tournament win in 1939-1975, flat (the NIT bracket structure and its media guide records are too thin pre-1976 to justify a round ladder as fine-grained as the NCAA's). |
| base_weight | nit_cutoff_last_credited_season | 1975 | 1975 is the last season the NIT is credited. Rationale: 1975 is also the last season before the NCAA introduced at-large bids beyond one-per-conference (1975-76 doubled at-large slots, and by 1980 the NCAA field passed 48 teams); once the NCAA absorbed the great majority of at-large-caliber teams, the NIT stopped being a peer national event for a team of Purdue's caliber and became a legitimate consolation/'also ran' bracket. This is a judgment call -- Brian may prefer a different cutoff year (1980, when the NCAA field hit 48, is a defensible alternative). |
| base_weight | bigten_conference_win | 2 | Per PLAN.md 2b: a Big Ten regular-season win counts double an ordinary non-conference win in the accomplishment (stakes) sense -- every conference game carries standings and NCAA-seeding weight that a random buy game does not. |
| base_weight | marquee_tournament_win | 1.5 | A neutral-site regular-season win in a marquee multi-team event (Maui Invitational, Battle 4 Atlantis, Phil Knight Legacy/Legacy, Great Alaska Shootout, Wooden Legacy/Classic, Charleston Classic, Puerto Rico Tip-Off, Paradise Jam, Rainbow Classic, NIT Season Tip-Off/Preseason NIT, Jimmy V Classic, the ACC/Big Ten Challenge, Gavitt Games, Crossroads Classic) is worth 1.5x an ordinary non-conference win -- the guide's own footnote legend names these events, and beating a national-name-brand field on a neutral floor is a more meaningful stake than a home buy game, even though it does not move the strength rating differently. |
| base_weight | ordinary_nonconference_win | 1 | Baseline unit for all accomplishment weights: an ordinary non-conference win (home or away, not part of a named marquee event). |
| selectivity | ncaa_selectivity_formula | value = base * (d1_teams_approx / field_size) / (350/64) | Selectivity factor = share of D-I teams NOT admitted, inverted, then normalized so a 64-team field drawn from a ~350-team D-I (the 1985-2009 standard, and the most common one in Purdue's post-1975 history) scores exactly 1.0. A smaller field relative to D-I (e.g. 8 of 100 in 1939, or 25-of-~200 in the 1960s) scores higher; a larger field (68-of-364 today) scores slightly below 1.0. |
| selectivity | ncaa_selectivity_applies_to | ncaa_bid and every ncaa_round_* value | The whole round ladder is multiplied by the same season's selectivity factor, not just the bid -- a Final Four win in a 25-team field was a rarer feat than a Final Four win in a 68-team field, proportionally so. |
| era_route | conference_champion_only_route_multiplier | 1.5 | Applied ON TOP of bigten_regular_season_title_pre1975_multiplier for seasons before 1975 when winning the Big Ten was Purdue's ONLY possible route into the NCAA tournament (single bid per conference, no at-large bids at all). Combined pre-1975 conference-title multiplier is 1.5 (title alone) x 1.5 (only route) = 2.25x the post-1975 base title weight. This stacks because both effects are real and separate: winning was harder to matter (fewer paths existed) AND mattered more (it was the only path). |
| conf_tourney_round | bigten_tourney_round_1 | 1 | Big Ten Tournament first-round win (1998-on only). |
| conf_tourney_round | bigten_tourney_round_2 | 1.5 | Big Ten Tournament second-round / quarterfinal win. |
| conf_tourney_round | bigten_tourney_semifinal | 2 | Big Ten Tournament semifinal win. |
| conf_tourney_round | bigten_tourney_title | 2.5 | Big Ten Tournament championship win (matches bigten_conference_tourney_title above). |
Player lenses
Player greatness is measured with three lenses that are never blended into one number: (1) adjusted share of team production per season, weighting points, rebounds, shooting efficiency, assists, steals, blocks, and turnovers, with the available components varying by era since not every stat was tracked in every decade; (2) career totals under the same adjustment; (3) with/without team-margin impact and year-over-year team-rating impact around a player's arrival and departure, for players who reached the top of the production-share rankings.
Coaching measures
Every coach is measured with the same construction, including Matt Painter (see the footer note). The
one genuinely hard spot is the Tier A/B (1985+) / Tier C (pre-1985) boundary, which cuts through Gene
Keady's tenure (4 Tier C seasons, 1981-84, then 21 Tier A/B seasons, 1985-2005) but not Painter's (all 20
seasons are Tier A/B). coach_comparison.csv reports mean_strength_ab and
mean_strength_c separately for this reason, and the Keady-vs-Painter head-to-head restricts
Keady to 1985-2005 (Tier A/B only) so the direct comparison never touches Tier C. "Results above roster" is
a crude coaching-effect estimate: the season-over-season rating change not explained by returning
production share.
Known limits
- The 1945-46 season is split between two coaches, Mel Taube and Ward "Piggy" Lambert, per the media guide's own convention.
- Fred Schaus's Purdue playing/coaching record includes a single-game data point in at least one season; small samples are flagged, not hidden.
- The 1939-41 NCAA tournament era's round-by-round results are recorded at a coarser level than later tournaments in the source data.
- No recruiting-class or recruiting-rating data exists in this dataset, so all coaching-effect measures are explicitly labeled "crude" and rest on returning production share, not recruit quality.
plus_minusis absent from the media-guide career-stats tables for most of program history; it exists only in the hoopR-sourced 2005-2025 play-by-play data (player_plus_minus_per40.csv).