Provenance

Dataset ID
aco-snf-affiliates
Entity Type
aco
Role
cross-link
Source
CMS
Vintage
PY2024
Entity Count
0
Last ETL Run
2026-04-13

Overview

The ACO SNF Affiliates dataset is published by the Centers for Medicare & Medicaid Services (CMS) as a public-use file under the Medicare Shared Savings Program (MSSP). It identifies skilled nursing facilities (SNFs) that have entered into a preferred affiliation with an MSSP ACO under the 3-day SNF waiver program. Under this waiver, Medicare fee-for-service beneficiaries assigned to the ACO may be admitted directly to an affiliated SNF without the standard requirement of a qualifying 3-day prior inpatient hospital stay. Each row represents one ACO-to-SNF affiliation, with approximately 6 fields per record including the ACO identifier, the SNF's CMS Certification Number (CCN), the SNF name, and state. The source file is hosted on data.cms.gov and is downloaded during the CareGraph ETL pipeline via the CMS Data API.

This dataset answers questions such as: Which SNFs has this ACO designated as preferred partners under the 3-day waiver? How many affiliated SNFs does the ACO have, and in which states? Does a given SNF have a waiver affiliation with any MSSP ACO? It provides the SNF affiliates list displayed on ACO entity pages and generates reverse links on SNF entity pages indicating which ACOs have designated them as affiliates.

Join Strategy

Each record joins to an ACO entity page using the ACO_ID field, a character string following the pattern A#### (e.g., A0001). During ETL, the normalize_aco_id() function in etl/normalize/keys.py strips whitespace, uppercases the value, and removes non-alphanumeric characters. The join is one-to-many: a single ACO may have dozens of affiliated SNFs, and all matching records are collected into a snf_affiliates array on the ACO manifest at site_data/aco/{ACO_ID}.json. Each affiliate record within the array contains snf_ccn, snf_name, and state. The SNF CCN is normalized by normalize_ccn() to a 6-character zero-padded string (e.g., 015001). Column names are detected at runtime using _find_column(), which tries exact match, case-insensitive match, then substring match against candidate lists — this handles variation in CMS column headers across releases (e.g., SNF_CCN vs. SNF CCN vs. Affiliate_CCN). Rows with blank or unparseable ACO IDs are skipped. Rows that have neither a valid snf_ccn nor a snf_name after cleaning are also excluded. The ETL writes reverse links onto matching SNF entity manifests so that SNF pages display "ACO snf affiliate" in their related entities section.

Known Limitations

Data Quality Notes

---

← Back to Methodology Hub · Report an error