Yale New Haven Hospital told the IRS it provided $113.1M in financial assistance for its fiscal year ending September 2023, and told Medicare $35.6M in charity care for the same year, on a comparable ~$4.1B expense base. Large gaps like this are far from rare.
Every nonprofit hospital in the United States reports the cost of the free and discounted care it gives patients who can't pay to two different federal regulators — for two different purposes, on two different forms:
To the IRS, on Schedule H of Form 990 — the "financial assistance at cost" line (Part I, line 7a) — which documents the community benefit that helps justify the hospital's tax exemption. And to CMS, on Worksheet S-10 of the Medicare Cost Report — the "cost of charity care" line — which feeds Medicare's uncompensated-care (DSH) payments. Two different regulatory purposes, but both lines are meant to capture the same underlying thing: what it cost to treat patients who couldn't pay.
They are supposed to describe the same activity. For a lot of hospitals, they don't come close.
Comparing these two numbers naïvely is a trap. The biggest raw differences come from artifacts: a single 990 can cover a dozen hospitals reported under one name, and the two forms often cover fiscal years that are 12 months apart. So I filtered down to the hospitals where the comparison is genuinely apples-to-apples — a single reporting facility, both filings covering the same fiscal year, both numbers above $1M, and the two forms reporting a comparable total-expense base (within 5%). I also compare like with like: the net figure on each side — Schedule H line 7a column (e), net of offsetting revenue, against the S-10 cost of charity care net of partial patient payments — so this isn't a gross-versus-net illusion.
99 hospitals clear that bar for tax year 2022. Among them, 22 reported charity-care numbers to the two regulators that differ by more than 50%. A sample of the largest:
| Hospital | Told the IRS | Told CMS | Difference | % |
|---|---|---|---|---|
| Yale New Haven Hospital | $113.1M | $35.6M | −$77.5M | 69% |
| Tampa General Hospital | $51.0M | $102.4M | +$51.3M | 50% |
| Greenwich Hospital | $23.6M | $4.0M | −$19.6M | 83% |
| Baptist Medical Center (Jacksonville) | $34.8M | $52.6M | +$17.8M | 34% |
| Western Regional Medical Center | $1.1M | $18.1M | +$16.9M | 94% |
| Lawrence & Memorial Hospital | $21.1M | $4.8M | −$16.3M | 77% |
| Cook Children's Medical Center | $11.3M | $26.8M | +$15.5M | 58% |
| Bayfront Health St. Petersburg | $4.4M | $17.6M | +$13.2M | 75% |
The full ranked index of all 99, and a searchable lookup of all 1,295 systems, is at troveproject.com/hospitals. The IRS figure for each hospital links to its actual 990 on ProPublica so you can check it yourself. (Figures are rounded to $0.1M; differences are computed from the exact values.)
Notice something in that list: Yale New Haven, Greenwich, and Lawrence & Memorial — plus Bridgeport, just outside the top eight — are all part of Yale New Haven Health. Several hospitals in one system, all showing large same-direction gaps. That's exactly what you'd expect when a system applies one financial-assistance policy and one Schedule H costing method across all its hospitals: a methodological signature, not evidence that any one hospital did something wrong. But it's the kind of pattern the index surfaces that a single filing never would — a reason to ask a system how it costs financial assistance, not to assume the answer.
This is the part that matters, and it's why the tool leads with the source documents. A difference between these two numbers does not mean a hospital did anything wrong, and it is not evidence of fraud.
The two forms genuinely define and cost charity care differently: where the line falls between "charity care," "bad debt," and "contractual allowance"; how uninsured discounts are classified; and the cost-to-charge methods each form permits. On top of that, the reliability of S-10 charity-care reporting has been questioned for years — MedPAC has repeatedly flagged S-10 data quality — so in many cases the gap is simply that one figure, often the S-10 side, is incompletely reported. (A few children's and specialty hospitals bill so little Medicare that they file no Medicare cost report at all, or an S-10 with almost nothing in it — so a near-zero S-10 should be treated as suspect, not as a real zero.)
None of this is secret. That the S-10 and Schedule H charity-care figures diverge is a well-documented reporting inconsistency, not a novel finding: the GAO has noted there is no standard definition of uncompensated care across federal programs (GAO-16-568) and has separately scrutinized Schedule H reporting (GAO-20-679); the Congressional Research Service laid out the differing Medicare and IRS charity-care definitions (2018); and health-services researchers have compared the two sources (Zare et al., Health Services Research, 2022). What hasn't existed is a fast way to check it for a specific hospital, with a link to both filings. That's the whole point of this tool: not to accuse, but to make a known inconsistency legible — one hospital at a time.
The raw data is public but punishing. CMS ships the Medicare Cost Reports as headerless, 100,000-row "long-skinny" CSVs. The IRS publishes 990s as XML inside bulk ZIP files. Lining up a single hospital's two charity-care numbers means parsing both, matching CCNs to EINs, and reconciling fiscal calendars — hours of work per hospital. trove does that parsing and joining once, for everyone, and publishes the result as clean tables plus a Claude Code skill you can ask questions in plain English.
Look up your hospital →Data: CMS HCRIS Worksheet S-10 (FY2023) × IRS Form 990 Schedule H (TY2022), joined via the Community Benefit Insight CCN↔EIN crosswalk. Method and every caveat: summary · ranked index: charity_care_gap_index_2022.md · all code MIT-licensed at github.com/cbetz/trove.