Data quality
Anyone can scrape a tuition number. This page is the part that takes longer: where each figure came from, when it was checked, what we refused to publish, and what we got wrong and fixed. If you find an error here, it becomes an entry on this page.
What we publish today
3,525
institutions covered
250
with a published 2026-27 rate
253
carrying a direct source link
2,661
with federal net price by income
2023
federal data year
2019-21
net price data years
Published tuition and required fees come from the federal IPEDS collection through the 2023 data year, accessed via the IPEDS via Urban Institute Education Data API. Where a school has announced a rate ahead of the federal data, that figure is curated by hand and carries a link to the school's own page. Net price data is a separate federal survey that lags tuition, so each school's figure is labeled with its own year wherever it appears.
The rules we source by
- A forward-year price is published only when it appears on the institution's own bursar, registrar, or board page, or in an official state-system tuition report.
- Aggregator sites are never a source, no matter how many of them agree.
- Every curated figure is cross-checked against the school's federal IPEDS baseline before it goes live.
- Where a published figure is a range or covers several programs, we say which one we used, or we publish nothing.
- We never estimate in the curated data. Estimation is the projection engine's job, and it is labeled as such wherever it appears.
Schools we refused to publish
Researching next year's prices for high-traffic schools, we found 10 we could not source to the institution itself. Publishing them would have made the coverage look better and the data worse, so they are listed here instead. This list is meant to grow.
| School | Why we left it out |
|---|---|
| University of Texas at Austin | No 2026-27 figure on an accessible official page. |
| Texas A&M University | No 2026-27 figure on an accessible official page. |
| University of Alabama at Birmingham | No 2026-27 figure on an accessible official page. |
| Haverford College | Only an aggregator carried a 2026-27 number. |
| Bard College | Only an aggregator carried a 2026-27 number. |
| Union College | Only an aggregator carried a 2026-27 number. |
| Beloit College | Only an aggregator carried a 2026-27 number. |
| Drew University | Only an aggregator carried a 2026-27 number. |
| Stetson University | Published rate was college-specific, not comparable to a single institutional figure. |
| The Juilliard School | Published rate was college-specific, not comparable to a single institutional figure. |
Corrections
Defects we found in our own data, how they surfaced, and what changed. A wrong figure is treated as an incident, not a bug.
A published tuition figure was attributed to the wrong college within a university system.
Caught by: Cross-checking every curated figure against its IPEDS baseline before publication.
Fixed by: The figure was dropped rather than guessed at, and system-level schools now carry the systemwide rate with each campus's own fees applied separately.
Two candidate figures traced back to aggregator sites rather than an institution's own page.
Caught by: The sourcing rule that an aggregator is never an acceptable source.
Fixed by: Both were omitted. They appear in the omission list above rather than in the dataset.
Schools with a one-time price jump were fitted with a growth rate that described the jump rather than a trend, making projections rise from a number the school had never charged.
Caught by: A plausibility gate on fitted growth rates.
Fixed by: Those schools fall back to a national rate and are labeled as doing so, rather than compounding a misleading trend.
Net price figures reported below zero, where grant aid exceeded the full cost, were being hidden as if unreported.
Caught by: A review of how reported values flow from the pipeline to the page.
Fixed by: Negative values now render as reported, with a note explaining what they mean.
How the data is tested
The projection engine is implemented twice, once in Python for the data pipeline and once in TypeScript for the site, and both are verified against the same golden fixtures. If the two ever disagree, the build fails. Alongside them run invariant checks that no school loses data between the raw federal file and the published page, that a school without a usable trend of its own is never shown a rate as if it were, and that copy describing a figure cannot claim more certainty than the figure carries.
Every figure on this site is an estimate unless it is labeled as a school's own published rate, and estimates are shown with the assumptions behind them. See the methodology for the formulas, or tell us we are wrong.