Hospital Ledger·Free forever · No signup · No tracking

What does your hospital actually charge?

Compare standardized price rows from 3,692 U.S. hospitals — straight from each hospital's own federally-mandated price file. We separately verified 3,986 of 4,625 CMS-required hospitals have a live machine-readable file.

How we count: the headline counts only hospitals with n > 0 price rows. Every number is mirrored in /data/summary.json and /api/prices-index.

Why isn't every hospital here?

3,986 hospitals have a live price file, but 294 of them aren't in the 3,692 headline — for two reasons:

  • 108 published a file that is empty or a placeholder — zero usable price rows. That is a gap in the hospital's own compliance, not a parsing failure on our side.
  • 186 publish a file we cannot retrieve — blocked by the hospital's CDN, password-protected, or locked behind a vendor download portal.

Every CMS-required hospital with a live file is now accounted for. Full breakdown at /about-the-numbers.

Disclaimer: prices are reproduced as published in each hospital's machine-readable file and may be incomplete, outdated, or inconsistent. They are not a quote and not a guarantee of cost — what you actually pay depends on your insurance, the specific services, and negotiated rates. Always confirm directly with the hospital and your insurer before relying on any figure here. Hospital Ledger is an independent public-interest project, not affiliated with CMS, HHS, or any hospital.

Free forever, no signup
We don't track or store anything
Built from each hospital's MRF (45 CFR § 180)
Open source · CC0 public data
Hospitals · with prices
3,692
standardized price rows
Procedures
5,000
comparable across hospitals
Insurance plans
200+
canonical brands · 21,803 raw
Cost
$0
always free, public benefit
01Find a price

Three ways to start.

Search by what you need, your insurance, or the hospital you're going to. Every price is straight from that hospital's own published file.

A.What you need
Type the name ("colonoscopy") or the CPT/HCPCS code (45378).
B.What you have
See every hospital that has a negotiated rate with your plan.
C.Where you're going
Get its compliance grade plus its top procedure prices.

Every price comes straight from the hospital's federally-mandated machine-readable file. The "cash price" is the self-pay discount they're required to publish. Your actual bill depends on your plan, deductible, and copay.

02How it works

Three steps. No fees, no signup.

01

Search

Type a procedure name ("MRI knee"), a CPT code (73721), an insurer, or a hospital. We match it against every U.S. hospital's published price file.

02

Compare

See the gross price, the cash discount, and the rate every insurance plan negotiated — side by side across hundreds of hospitals.

03

Decide

Pick the hospital that costs less for the procedure you need. Bring the price to your appointment if there's a dispute. (Always confirm directly — we publish what they published.)

03Why this exists

The law's been on the books since 2021. The database wasn't.

  • Under 45 CFR § 180, every U.S. hospital must publish a machine-readable price file — gross charges, cash prices, negotiated rates, and min/max — free, public, no signup.
  • Most hospitals technically comply by uploading a giant unreadable file. We verified live MRFs for 3,986 of 4,625 CMS-required hospitals and standardized price rows for 3,692 of them.
  • The 294-hospital gap between "live MRF" and "standardized prices" is the parser's coverage hole — files we can download but haven't fully extracted usable rows from yet (108 parsed to zero rows, 186 still in the parse queue). Closing it is in progress; see /about-the-numbers for the live breakdown.
  • Mark Cuban built Cost Plus Drugs for the same reason — pricing transparency in healthcare. We're doing it for hospitals.
04How we built this

Three days. Two AI agents. ~3 person-years of human work.

Hospital Ledger was built between May 12–15, 2026 by two AI coding agents — Claude Code and OpenAI Codex — working in parallel under one operator. The headline number isn't a vibe — it's a sum of real per-step rates a competent analyst with Excel, Power Query, and Python would actually hit. Every hospital labels "gross charge", "cash price", "negotiated rate", and "CPT code" differently; the CMS rule mandates the data points, not the column names. So every file is a new schema-mapping problem.

Show the math (per step, defensible rates)
StepVolumePer-unit rate (human)Hours
Parse each MRF (download · open · map columns · normalize · QA)3,800 parsed outputs; 3,692 with rows~77 min avg (90% × 66 min clean + 10% × 180 min hard)4,747
Find candidate MRF URLs from CMS + transparency pages4,625 hospitals~5 min / hospital385
Probe URLs for liveness (curl / browser open)7,191 URLs~1 min / URL120
Rediscover dead links by hunting each hospital's site~1,000 dead/missing~15 min each250
Canonicalize payer names (Aetna vs AETNA vs Aetna Health Inc.)76,645 raw rows~250 wpm reading + ~500 unique merges50
Validate CPT / HCPCS codes against AMA reference5,000 codes~3 codes / min spot-check + cleanup30
Ingest + link CMS enforcement actions to CCNs8,642 recordsstructured CSV, mostly automated10
Build the cross-hospital price index (joins, dedup, pivots)14,650,784 CPT / HCPCS rowsExcel/Power Query at solo-analyst pace40
Design + build the SSR site, API, search, charts11 pages, 8 endpointssolo full-stack dev300
Total≈ 2,080 hr / person-year (full-time)~5,930

2.85 person-years at 40 hr/week fully-utilized, or roughly 5–6 calendar years for one analyst working a sustainable 20 hr/week on the side. The 99 GB of raw MRF data is too large to retype — nobody types it; they normalize. The cost is mapping, not keystrokes. Reading speed (~250 wpm) and typing speed (~40 wpm) only show up inside the per-MRF column-mapping pass and the payer-name canonicalization row.

What this would cost if I charged for it
If a contracting firm built it
~$593,000
5,930 hr × $100/hr — the midpoint of published US healthcare data-analyst freelance rates ($93–$160/hr per ZipRecruiter + goLance 2026). Senior healthcare specialists quote ~$200/hr — that's a $1.18M build.
Commercial alternative
"Contact sales"
Every aggregator selling this data (Turquoise Health, Serif Health, PayerPrice, Trilliant) hides pricing behind a sales call. None publishes a number on its public site. The absence is the answer.
What we charge
$0
Free forever. CC0 public-domain data. AGPLv3 code. No signup, no API key, no rate-limited tier. The full dataset and the full source — including the search, the API, and the cross-hospital price index — are and will stay free.

The hospitals were already legally required to publish this data under 45 CFR § 180. Aggregating it into one queryable place doesn't make it ours to sell — it just makes it actually usable.

Raw data processed
99 GB
MRFs downloaded, parsed, normalized
MRFs parsed
3,800
3,692 produced standardized rows
URLs probed
7,191
TPAFS seed + email-domain + Wayback
Enforcement records
8,642
CMS warning · CAP · CMP · closure
The 11-stage pipeline
  1. Seed the CMS hospital universe (5,426 facilities)
  2. Load TPAFS MRF URL seeds, probe each for liveness
  3. Rediscover dead URLs from each hospital's transparency page
  4. Exa web search fallback for the still-missing
  5. Claude / Codex agent loop on the hardest holdouts
  6. CMS-HPT marker files + email-domain expansion
  7. Wayback Machine fallback for vanished URLs
  8. Fetch + parse CSV / JSON / XLSX / ZIP into one unified schema
  9. Ingest CMS enforcement (warning / CAP / CMP / closure)
  10. Build cross-hospital CPT / HCPCS price index
  11. SSR site + Cloudflare Pages + JSON API
Why this didn't exist before
  • Commercial aggregators (Turquoise, PayerPrice, Serif) lock the data behind NDAs.
  • CMS publishes the rule but doesn't aggregate or verify anything.
  • Every hospital uses a different format, vendor, and URL convention.
  • 13.8% of files sit behind bot defenses; "compliance" ≠ "reachable".
  • Until LLM agents got good at parsing arbitrary CSV / JSON shapes, this scale of normalization wasn't cost-effective for one person.

Built in the open at github.com/barkleesanders/hospital-ledger — 34 pipeline scripts, ~10,700 lines of Python, ~3,400 lines of TypeScript. AGPLv3 code, CC0 data. No tracking. No signup. Free forever.

Top 25 worst offenders

CMS-required hospitals with the most enforcement actions and no findable MRF.

CCNHospitalCity, StateCMS actions

Worst states

By share of CMS-required hospitals with a live MRF.

StateTotalLive% live

By facility type

Rural Emergency Hospitals (the newest category) lag furthest.

Sources / methodology

The inputs, checks, and limits are listed here on the site, not just in the repo.

Open the current summary JSON
Primary sources
How this was built
  1. Start with all CMS-required hospitals.
  2. Join known MRF links from the seed datasets.
  3. Probe URLs live and follow redirects to verify which files actually respond.
  4. Rediscover missing files from hospital transparency pages when the seed is dead.
  5. Parse live CSV, JSON, XLSX, ZIP, and wrapper-page formats into one schema.
  6. Generate the on-site standardized price previews from those parsed files.

Current on-site preview coverage: 3,692 hospitals with standardized price rows, out of 3,986 CMS-required hospitals with a verified live MRF.

What the numbers mean
  • Compliant means a live machine-readable file was found and verified.
  • Missing means no live public MRF was found after automated discovery and probing.
  • Under CMS enforcement means the hospital appears in CMS's public enforcement record.
  • Standardized price preview appears when parsed rows were actually generated for that hospital. Hospitals with zero generated rows are not counted in the headline.

Current limits: some hospitals are behind bot-defense or publish malformed files. Missing rows can mean non-compliance, anti-bot blocking, or broken vendor output.

🩺 Live prices — standardized, on-site

Parsed directly from each hospital's MRF into a unified schema. No external links — search prices by CPT or HCPCS code below.

Hospital previews
3,692
Standardized rows
67,615,249
CPT / HCPCS codes
Load on search

Use it

Everything here is CC0 / public domain. No attribution required. Build whatever you want on top.