For the skeptics — please, be one
Methodology, assumptions, and known limitations
This page is written for finance professionals, economists, and data scientists who should not take our outputs on faith. The parameter tables below are rendered from the same constants the engine executes, and the coverage counts are queried live from the production database — this documentation cannot drift from the code.
1 · Data provenance & coverage (live from this database)
| Source | Provides | In this build |
|---|---|---|
| College Scorecard, Field of Study (ED) | Program-level median earnings (IRS records) at 1/4/5 years post-completion; median federal debt (Stafford+Grad PLUS) | 69,096 programs with observed earnings (37,846 fully observed at 1/4/5 yr) across 5,443 institutions, 56 states/territories |
| College Scorecard, Institution (ED) | Cost of attendance, average net price, admission and completion rates, OPEID bridge | joined on IPEDS UNITID |
| Census PSEO (experimental) | 25th/50th/75th percentile earnings from state UI wage records at 1/5/10 years — the only public source with a distribution | 19,369 programs with observed percentile bands; 14,483 with observed 10-year earnings |
| ACS 5-Year PUMS (Census) | Age-earnings curves by education level (national and per-state) — counterfactuals and lifetime extension shapes | 47 national and 2,377 state curve cells from ~5.8M full-time workers |
All sources are public federal data. The pipeline (five scripts, DuckDB/SQLite) is deterministic and re-runnable; every ingestion validates against an independently hand-pulled oracle of program medians and currently reproduces it at 0.0% drift. Suppressed cells (23,108 programs lack publishable median debt, for example) are stored as NULL and displayed as absent — never imputed. Different agencies key differently: PSEO joins via 8-digit OPEID with explicit credential-level mapping, so a bachelor's program can only match bachelor's earnings.
2 · Earnings path construction
Years 1–5 post-completion: linear interpolation of the observed Scorecard medians (e1 → e4 → e5). Years 6+: the level anchors to observed year-5 and the shape follows the ACS age-earnings curve for the credential level (5-year age bands, annualized band-to-band growth, clamped to [-3%, +6%]/yr). Where PSEO covers a program, percentile paths interpolate observed y1 → y5 → y10 at each percentile before ACS-shaped extension; Scorecard (IRS) and PSEO (UI wage records) figures are never blended into a single number — they are shown as labeled, parallel reads. Note their known measurement differences: UI records exclude self-employment, some federal employment, and graduates who move out of covered employment.
3 · Loan verdict model
Standard plan: 10-year annuity at the federal rate. Burden = annual payment / median earnings, evaluated per year over years 1–10; the tier thresholds adopt the retired federal Gainful Employment debt-to-earnings framework (≤8% sound, 8–12% heavy) — a citable rubric, not one we invented. RAP simulation (post-July-2026 law): bracketed payment on AGI (table below), $10/mo minimum, unpaid interest waived (balances cannot grow), $50/mo federal principal match, cancellation at 360 payments with the canceled balance taxed as income at an assumed 24% marginal rate. "Never amortizes" is a computed binary: the simulated balance survives all 360 payments.
| AGI up to | Payment (% of AGI) |
|---|---|
| $10,000 | 0% |
| $20,000 | 1% |
| $30,000 | 2% |
| $40,000 | 3% |
| $50,000 | 4% |
| $60,000 | 5% |
| $70,000 | 6% |
| $80,000 | 7% |
| $90,000 | 8% |
| $100,000 | 9% |
| $inf | 10% |
4 · Degree NPV model
Differential cash flows only: for school years, −(annual net price) − (counterfactual wage); for working years to age 65, (program path) − (counterfactual); discounted at a 3% real rate (disclosed, adjustable in the assumption registry). The counterfactual is the ACS median for the user's state, age, and current education level — or, when the user supplies current pay, their actual wage grown along the matching ACS curve shape. Older enrollees mechanically face a shorter recoupment window (the clock stops at 65); this is reflected, not asserted. Cash-flow simplifications currently in force and disclosed on-page: on-time completion (4 years for a bachelor's), borrowing approximated as (net price − family cash) × years in the comparison view, ACS pooled-dollar levels compared against Scorecard vintage dollars without a bridge adjustment.
5 · Assumption registry (live from the engine)
| Parameter | Value in production | Basis |
|---|---|---|
| Federal undergrad rate | 6.52% | 2026–27 Direct/Stafford published rate |
| Sound / heavy thresholds | 8% / 12% | Retired federal GE debt-to-earnings framework |
| RAP term / min / match | 360 payments / $10 / $50 | Statute (2025 reconciliation law) |
| Tax rate at cancellation | 24% | Assumed marginal bracket; forgiveness taxable again since Jan 2026 |
| Real discount rate | 3% | Disclosed choice; sensitivity direction stated in §7 |
| Working-life horizon | to age 65 | Convention; conservative for late retirees |
| Curve growth clamp | [-3%, +6%]/yr | Guards against thin ACS cells |
6 · Known biases & structural limits
Selection vs. causation. Program medians describe who attends and completes, not the causal effect of attending; the selection-adjusted literature (Dale & Krueger) finds elite causal premia far smaller than raw gaps. We report outcomes and say so; we do not apply a selection discount in the current build. Survivorship. On-time completion is assumed and labeled; completion adjustment flips a material share of marginal programs negative (FREOPP's adjustment moved ~28% of programs) and is the highest-priority planned scenario. Scope. Title IV institutions only (~70% of students); small-cohort programs are suppressed at the source and therefore absent here. Vintage. Ten-year observed earnings describe students who enrolled ~15 years ago; single-vintage cohort noise is visible in the data (some programs show year-5 below year-4) and vintage pooling is the planned pipeline fix. Horizon mixing. Where PSEO cohorts differ by horizon, each horizon reports its most recent available cohort. Medians bound expectations; they do not predict an individual.
7 · Uncertainty, sensitivity, and what would flip a verdict
The federal sources publish medians without cell-level standard errors, so per-program confidence intervals cannot be honestly computed from the released files — and we decline to print invented error bars. Uncertainty is displayed the only observed way available: PSEO 25th/75th percentile bands, with verdicts evaluated at each band. Directional sensitivities: a higher discount rate compresses lifetime values toward zero; completion adjustment moves marginal verdicts down, never up; a selection discount moves elite programs down most. Loan verdicts are least fragile — they depend on years 1–10, where the data is strongest and mostly observed. Our decision-accuracy claim is deliberately modest: when the gap between options is six figures, no plausible parameter choice reverses the ranking; where options are within the noise band, the tool should and does show them as close rather than manufacturing a winner.
Adversarial review is invited. The data is public, the parameters are on this page, and replication requires nothing we haven't disclosed. If you believe an output is wrong, the assumption registry above tells you exactly which number to attack — write to us with your alternative and your source.