Nursing Home Penalties and Fines (CMS)
We turn CMS's Penalties dataset into clean records of every civil money penalty and payment denial levied on a US nursing home in the last three years. One record is a single penalty: a dollar fine with an amount, or a Medicare and Medicaid payment denial with a start date and a length in days.
- Size
- 16,166 penalties (rolling three years)
- Refresh
- Monthly
- Price
- $10 per 1,000 records
This listing is being published to the Apify Store. If the link is not live yet, contact us and we will run it for you.
Who uses this
Elder-law and nursing home abuse attorneys
Build the enforcement history of a defendant facility: every fine and payment denial with dates and dollar amounts from one CCN, one run.
Long-term care liability underwriters
Price a facility or a book using penalty frequency and severity per CCN as a loss signal star ratings alone do not give.
Nursing home lenders, brokers, credit and bond analysts covering SNF operators
Roll a chain's penalty exposure up across every facility it runs by provider-name filter, or size regulatory pressure in a market by state.
Senior placement and referral services
Screen facilities before they go on a shortlist for a family.
Sample records
Real records from the source, shown with a subset of the fields. Every run returns the full field set below.
| ccn | providerName | state | penaltyDate | penaltyType | fineAmount |
|---|---|---|---|---|---|
| 315044 | MOHAWK MEADOWS | NJ | 2023-11-21 | Fine | 713795 |
| 375284 | Arbor Village | OK | 2026-06-11 | Fine | 14385 |
| 465137 | Red Cliffs Health and Rehab | UT | 2024-06-06 | Payment Denial |
Sample rows taken from the CMS Provider Data Catalog on 2026-08-23, shown in the actor's output shape.
Fields
The most used fields in each record. The Apify listing documents the full output schema.
- ccn
- CMS Certification Number identifying the facility
- providerName
- Facility name
- state
- Two-letter state or territory postal code
- penaltyDate
- Date of the inspection that triggered the penalty, per CMS's own definition
- penaltyType
- Fine or Payment Denial
- fineAmount
- Whole-dollar fine amount, null on a payment denial
- paymentDenialStartDate
- First day new-admission payments stopped, null on a fine
- paymentDenialEndDate
- Derived last day of the suspension, inclusive (start plus length minus 1 day), null on a fine
How it works
1
Run it on Apify
Open the listing, sign in to Apify, and press Start. The actor reads the public source directly, normalizes each record, and writes the results to your Apify dataset. You can also schedule it to run on a cadence.
2
Filter to what you need
- •state: two-letter postal abbreviation, exact match, 53 appear in the data
- •ccn: six-character CMS Certification Number, exact match
- •providerNameContains: literal case-insensitive substring of the facility name
- •penaltyType: any, Fine, or Payment Denial
- •penaltyDateFrom / penaltyDateTo: ISO date range on the penalty date
- •minFineAmount: keeps only fines of at least this many dollars, applied client-side
- •maxResults: 1 to 20000, your cost cap
- •includeRaw: attach the original CMS columns under their raw API names
3
Export or connect
Download the dataset as CSV, JSON, or Excel from the Apify console, or pull it straight into your own system through the Apify API and integrations.
Run with no input and you get the 100 most recent penalties nationwide. maxResults ranges 1 to 20,000 and is a ceiling, not a quota. Requests honor CMS's crawl-delay:10 with retries backing off further, never below the crawl delay. A default 100-record run is a single request, completing in 3.129s in the build 1.1.1 platform smoke run. A locally measured worst case of the full 16,166-row table (maxResults 20000, includeRaw true) took 11 requests and 125.7s, 100s of which was the crawl delay, peaking at 130 MB memory.
Pricing
$10 per 1,000 records
Pay per result, billed through your Apify account at $0.01 per record. You are charged only for the records the run delivers to your dataset, so a filtered run that matches nothing costs nothing. No subscription, no minimum.
Source, refresh, and licence
- Source
- Centers for Medicare & Medicaid Services (CMS): Penalties, CMS Provider Data Catalog (g6vv-u9sr)
- Size
- 16,166 penalties (13,687 fines totalling $464,165,281; 2,479 payment denials), July 2026 extract, counted 2026-08-23
- Refresh
- Monthly (CMS refreshes this table monthly; catalog metadata for the current extract gave nextUpdateDate 2026-08-26)
- Licence
- No licence declared for this dataset by the Provider Data Catalog that publishes it. CMS's sibling data.cms.gov catalog declares US Government Works (https://www.usa.gov/government-works) on its own 159 datasets, but this Penalties dataset is not among them, so that declaration does not literally cover it. Attribution is carried on every record; the Actor is not affiliated with or endorsed by CMS, and buyers are responsible for their own use of the data.
- Attribution
- Centers for Medicare & Medicaid Services (CMS)
Questions buyers ask
How do I find out if a nursing home has been fined?
Run with the facility's ccn (the six-character CMS Certification Number shown on its Care Compare page) or with providerNameContains. Every fine and payment denial CMS has published for that facility in the last three years comes back with the penalty date and the dollar amount.
What is the difference between a civil money penalty and a denial of payment for new admissions?
A civil money penalty is a fine CMS imposes after a survey finds noncompliance serious enough to penalize, appearing as penaltyType Fine with a whole-dollar fineAmount and CMS's own fineId. A denial of payment means Medicare and Medicaid stop paying for new admissions for a set number of days, appearing as penaltyType Payment Denial with a start date, a length in days, and a derived end date.
Does the fine amount show what was actually paid?
No. CMS publishes the amount imposed; appeals, reductions, waivers and collection status are not in this dataset. Treat fineAmount as the amount CMS published, not as money known to have changed hands.
Related datasets
Nursing Home Deficiency Citations (CMS Health Inspections)
We turn CMS's Health Deficiencies dataset into clean, filtered JSON: every health deficiency citation published for a US nursing home, across the last three inspection cycles.
Nursing homes and senior careNursing Home Daily Staffing Data (CMS PBJ)
We turn the CMS Payroll Based Journal into per-facility, per-day nurse staffing records for every US nursing home.
Nursing homes and senior careSkilled Nursing Facility Change of Ownership Tracker
We track every Medicare skilled nursing facility that changed hands since January 1, 2016, direct from CMS's own data-api.
Pull the data you need
Run it yourself on Apify, or ask us for a custom extract, a join against another dataset, or a scheduled delivery.
We are not affiliated with or endorsed by Centers for Medicare & Medicaid Services (CMS). The actor reads the public dataset linked above and adds no data of its own.