Nursing Home Penalty Ledger › The data

Download the data

Everything the pages on this site show comes from two files. Both are here whole, with what each column holds. They are built from the monthly editions the Centers for Medicare & Medicaid Services publishes and then archives; CMS's current file keeps about three years, and these keep every edition back to January 2019.

Every penalty in CMS's archive

One row for each penalty CMS has published against a nursing home, with the first and last edition that listed it and whether CMS still does.

penalties_history.csv.gz · 83,712 rows · 13,976 homes · 1.7 MB, gzip-compressed CSV, UTF-8

Penalties dated 2016-01-04 to 2026-08-17, through CMS's file of 2026-10-08. 74,199 are fines and 9,513 are payment denials. 68,293 of the 83,712 are no longer in CMS's current file.

ColumnWhat it holds
ccnCMS Certification Number of the home, six characters, zero-padded.
nameThe home's name as CMS last published it with this penalty.
addressStreet address, as CMS published it.
cityCity.
stateTwo-letter state or territory code.
zipZIP code.
dateThe penalty's date in CMS's file (YYYY-MM-DD).
kindFine (a civil money penalty) or Payment Denial (a denial of payment for new admissions). The two are never summed.
fine_idCMS's identifier for a fine, in editions that carry one; blank before CMS published it and for payment denials.
amountA fine's amount in dollars, as last published. Blank for a payment denial.
denial_startThe date a payment denial began. Blank for a fine.
denial_daysThe length of a payment denial in days, as last published. Blank for a fine.
first_amountThe amount as FIRST published, when CMS later revised it; blank when it never changed.
first_denial_daysThe denial's length as first published, when CMS later revised it.
revisionsHow many times CMS changed the amount or length while it listed the penalty.
first_seenThe date of the first archived monthly edition that lists the penalty.
last_seenThe date of the last archived edition, or weekly capture, that lists it.
appearancesHow many editions list it.
gapsHow many times it left CMS's file and came back.
in_latestyes if CMS's latest file still lists it; no if CMS has stopped publishing it.

SHA-256 ec2b19438ae4095c1f4687c9718ef187b15e74476bf41a99fcdc0745b9623cdb

Star ratings, edition by edition

One row for each stretch of editions in which a home's four ratings did not change.

ratings_history.csv.gz · 327,232 rows · 16,069 homes · 1.8 MB, gzip-compressed CSV, UTF-8

Editions 2019-01-17 to 2026-10-08.

ColumnWhat it holds
ccnCMS Certification Number of the home.
from_editionThe first archived monthly edition in this run of unchanged ratings.
to_editionThe last edition in the run.
editionsHow many editions the run covers.
overallOverall star rating, 1 to 5; blank where CMS published none.
inspectionHealth inspection rating.
qualityQuality measures rating.
staffingStaffing rating.
in_latestyes if the run reaches CMS's latest archived edition.

SHA-256 e2ca0ae560d4a3476b5d8800539ad496a83cabb7bbef13aebf9f610d7beb0090

How to cite it

Nursing Home Penalty Ledger, penalty history through CMS's file of 2026-10-08, https://penalty-ledger.pages.dev/data. Built from the Centers for Medicare & Medicaid Services' Provider Data Catalog and its archive of monthly editions (data.cms.gov).

Give the date: the files grow each month, and a count quoted without one cannot be checked. For a single home, cite its page, which links each penalty to the CMS edition that carried it.

What it is, and what it is not

Found an error? Open an issue at the repository. The scripts that build both files are there too.