SenanqueIntelligence
← The Ledger

Method & source

Sources

Season records, coaches, conferences, and schedules: Wikipedia’s API only, throttled and identified by a real User-Agent (see scripts/heisman_ledger/). Efficiency ratings from 2005 forward: the College Football Data API. Twenty-seven marquee seasons were verified by hand before any automated pull ran, and always win a conflict with an automated pull. Nothing here is ever scraped from Sports-Reference or a similar ToS-restricted site — a fact worth cross-checking there is flagged for a human to check by hand instead.

From 2005 forward, CFBD also supplies OU’s own raw total/rushing/passing yards and turnovers, shown on each season’s detail page as context alongside the efficiency numbers. There’s deliberately no matching “yards allowed” figure — CFBD’s season-stats endpoint doesn’t split by offense/defense, and a real one would mean reconciling every opponent’s own season stats game-by-game, which this pipeline doesn’t do. Defense PPA (above) is the actual, opponent-adjusted defensive-quality number the Power Index uses; the raw yardage fields are supplementary, not a scoring input.

Power Index

0.50 × Performance + 0.35 × Accomplishment + 0.15 × Talent, each layer normalized 0-100. Performance weighs point-differential z-score (5/7, ≈71%) and offensive/defensive efficiency z-scores (1/7, ≈14% each). Accomplishment is a capped point table for national titles, conference titles, final ranking, and bowl outcomes. Talent weighs Heisman winners and All-Americans, normalized against OU’s highest-ever talent season.

The point-differential z-score is centered on the real NCAA national average scoring margin for that season (1937–present, from the NCAA’s own published team-statistics trends) — not OU’s own history. Scale still comes from OU’s own season-to-season spread, by design, not as a placeholder: see “Where this departs from the ideal formula” below.

Where this departs from the ideal formula

Two adjustments, made because the literal formula needs data this project doesn’t have and won’t fabricate to get:

  • Point differential is centered on the real NCAA national average for that season, but scaled by OU’s own historical spread rather than a national one. The NCAA’s own published stats give a national average, never a cross-team standard deviation for a historical season — getting a real one would mean pulling every FBS team’s own season figures across ~90 years, a pull this project doesn’t attempt. This is the formula’s defined method, not a fallback awaiting better data, so it isn’t flagged per-season.
  • Draft-pick counts in the Talent layer aren’t scored at all — no draft-record data source is wired into this pipeline. Flagged on every season rather than silently treated as zero picks.

An earlier draft of this formula also weighed an opponent-adjusted, SRS-style strength-of-schedule margin (30% of the Performance layer). It’s been dropped outright, not left half-built: computing it for real needs every OU opponent’s own full season game log across 130 years, a pull this project has no near-term plan to build. Every season had already been scored with that component redistributed away, so removing it changed no scores.

See lib/heisman-ledger/power-index.ts for the full reasoning, and any season’s detail page for exactly which gaps apply to it.

Tiebreaker

Two seasons within 1.0 point of each other on the final scale are ordered by: beat Texas that year, then beat Oklahoma State, then point-differential z-score. This never changes the underlying score — only the display order for near-ties.