Case Study - Public Health Policy Data
CMS Hospital Readmissions Reduction Program, FY2026 release. 18,330 hospital-measure records across 3,055 hospitals.
Medicare's Hospital Readmissions Reduction Program penalizes hospitals whose 30 day readmission rates exceed what CMS predicts for their patient mix. It covers six conditions and it moves real money: penalties reach up to three percent of a hospital's Medicare inpatient payments.
CMS publishes the hospital level results. This analysis uses the FY2026 file, covering discharges from 07/01/2021 through 06/30/2024. That is the last three year performance window before CMS shortens the period to two years.
The obvious question, which hospitals score worst, is already answered by the file and is not worth asking. The interesting questions are about the measurement itself.
A hospital needs at least 25 eligible discharges in a condition before CMS will score it. Below that, the measure is suppressed. That rule is defensible, since a rate computed on eight patients is noise. But the scale of what it removes is not obvious until you count it.
6,610 of 18,330 hospital-measure records, 36.1 percent, carry no excess readmission ratio at all.
| Condition | Records | Scored | Suppressed | Suppressed |
|---|---|---|---|---|
| Pneumonia | 3,055 | 2,715 | 340 | 11.1% |
| Heart failure | 3,055 | 2,621 | 434 | 14.2% |
| COPD | 3,055 | 2,323 | 732 | 24.0% |
| Heart attack | 3,055 | 1,736 | 1,319 | 43.2% |
| Hip & knee | 3,055 | 1,447 | 1,608 | 52.6% |
| Bypass surgery | 3,055 | 878 | 2,177 | 71.3% |
Pneumonia and heart failure are common enough that most hospitals clear the threshold. Bypass surgery is not: only 21.2 percent of hospitals are scored on all six conditions, and 222 hospitals, 7.3 percent of the file, receive no score on any condition at all.
| Conditions scored | Hospitals | Share |
|---|---|---|
| 0 | 222 | 7.3% |
| 1 | 202 | 6.6% |
| 2 | 239 | 7.8% |
| 3 | 484 | 15.8% |
| 4 | 599 | 19.6% |
| 5 | 662 | 21.7% |
| 6 | 647 | 21.2% |
Missing data matters differently depending on whether it is random. Here it is not. Group hospitals by total reported discharges and the pattern is monotone.
The smallest hospitals are scored on 2.51 of six conditions on average. The largest are scored on 5.70. A program built to improve care quality has, by the mechanics of its own minimum, close to no visibility into small and rural hospitals.
The excess readmission ratio is predicted performance divided by expected performance, where expected comes from a model fitted across hospitals. It is relative. Its center is 1.0 by construction.
| Condition | Scored | Mean | SD | Min | Max | Above 1.0 |
|---|---|---|---|---|---|---|
| Heart attack | 1,736 | 1.0018 | 0.0668 | 0.6839 | 1.2639 | 49.7% |
| Bypass surgery | 878 | 1.0018 | 0.0966 | 0.7434 | 1.4237 | 49.9% |
| COPD | 2,323 | 1.0011 | 0.046 | 0.8681 | 1.2545 | 47.2% |
| Heart failure | 2,621 | 1.0014 | 0.065 | 0.7137 | 1.3606 | 48.9% |
| Hip & knee | 1,447 | 1.004 | 0.1557 | 0.4698 | 1.6297 | 47.9% |
| Pneumonia | 2,715 | 1.0015 | 0.0663 | 0.7967 | 1.4255 | 46.8% |
Every one of the six conditions puts between 46.8 and 49.9 percent of scored hospitals above 1.0. That is not a finding about hospital quality. It is a property of the definition. If every hospital in the country cut readmissions by a third tomorrow, roughly half would still sit above expected, and the penalty pool would not empty.
Worth being careful here: this is a criticism of what the ratio can express, not a claim that the program fails. A relative measure is a reasonable way to allocate a fixed penalty pool. But it cannot answer "did readmissions improve nationally," and it is regularly read as though it can.
The program treats a hospital's performance as a single thing to be penalized. If that were right, a hospital good at heart failure should be good at pneumonia. Among the 647 hospitals scored on all six conditions, it mostly is not.
Heart failure and pneumonia track each other at 0.41, the strongest pair in the matrix, and that is still weak. Hip and knee replacement against pneumonia is 0.07, effectively nothing. The average hospital's spread across its own six conditions is 0.2138, roughly three times the standard deviation of most individual measures.
A hospital penalized on one condition is only slightly more likely to be penalized on another. Whatever the ratio captures, it is closer to condition-specific performance than to an institution-wide property.
Averaging across scored measures, states separate by about eight points between the extremes. States with fewer than 60 scored records are excluded, because ranking a state on a handful of hospitals is exactly the error this analysis is about.
| Best | Mean ratio | Records | Worst | Mean ratio | Records |
|---|---|---|---|---|---|
| UT | 0.9559 | 99 | MA | 1.0344 | 240 |
| OR | 0.9599 | 131 | NJ | 1.0277 | 272 |
| WA | 0.9636 | 207 | FL | 1.0229 | 771 |
| KS | 0.9662 | 157 | IL | 1.0194 | 491 |
| CO | 0.9674 | 183 | MS | 1.0141 | 185 |
This is the weakest finding here and it should be treated that way. State means are unweighted across hospitals of very different size, and the coverage bias above means small-hospital states are represented by their larger hospitals. It is a place to start looking, not a conclusion.
Nothing here is causal. This is a cross-sectional file covering one performance window, so it can describe how the measurement behaves and cannot say what drives a hospital's readmissions.
The suppression rule also cuts both ways in the analysis itself. Discharge counts are suppressed for the same low-volume records, so the volume analysis is computed on hospitals that reported at least one count. The hospitals most affected by the coverage gap are partly missing from the evidence for the coverage gap.
CMS also suppressed the pneumonia measure for FY2023 and excluded discharges from December 2019 through June 2020 from several performance periods because of COVID. This file is not affected, since its window starts in July 2021, but any comparison across program years must account for it.
Aggregation in SQL through DuckDB, correlation and reshaping in pandas. The two numeric columns arrive as text, because CMS writes N/A and Too Few to Report into numeric fields, so both are read with TRY_CAST: a suppressed value becomes null rather than throwing, which is correct, since suppressed means unknown and not zero.
The load is followed by a reconciliation assert. Every record must be either scored or suppressed, never both and never neither.
SELECT
count(*) AS rows_total,
count(err) AS scored,
count(*) - count(err) AS suppressed
FROM hrrp
-- 11,720 scored + 6,610 suppressed = 18,330 rows
That check exists because a silent cast failure would have made every rate on this page wrong in the same direction, and nothing downstream would have looked odd. The full analysis script is in the repository.