CareLens Facility Quality
Description
CMS Care Compare facility quality and star-rating data for 5 facility
types: hospitals, skilled nursing facilities (SNF), home health agencies,
hospice providers, and dialysis facilities. Each facility type ships as
its own table rather than being unioned into one — the measure sets,
ownership categories, and consumer-facing fields differ enough between
facility types that a union would drop nearly every column. ccn is the
canonical join key across all five and back to HCRIS Hospital Financials
(for the hospital table specifically).
- Source: CMS Care Compare (data.cms.gov), one dataset per facility type.
- Refresh cadence: quarterly per CMS's own Care Compare release schedule.
- Row count: 47,127 across 5 files (2026-08-29 export).
- Vintage: 2026-07-31 for SNF, home health, hospice and dialysis; 2026-05-21 for hospitals (last CMS refresh observed per table at export time).
Table: facility_quality_hospitals
Snowflake: HEALTHPARSE_DATA.FACILITY_QUALITY.FACILITY_QUALITY_HOSPITALS — 5,432 rows
| Column | Type | Description | Notes |
|---|---|---|---|
ccn |
VARCHAR | CMS Certification Number. | Joins to HCRIS Hospital Financials and HPT Negotiated Rates. |
facility_name, address, city, state, phone |
VARCHAR | Facility identity and location. | — |
county |
VARCHAR | County the hospital sits in. | Present in the schema, not populated in this release. Empty on all 5,432 rows. The Care Compare hospital file this export loads carries no county value for any hospital. The SNF table still carries a populated county. Derive county from zip or state/city if you need it. |
zip |
VARCHAR | Verified 5-digit US ZIP, or NULL (see the zip section of the dictionaries README). |
All 5,432 rows populated; 100% are a real ZIP consistent with state. Care Compare publishes clean 5-digit ZIPs, so the 2026-09-11 verification pass changed nothing here. |
hospital_type |
VARCHAR | e.g. "Acute Care Hospitals", "Critical Access Hospitals". | Text-labeled in this table (unlike the numeric-coded hospital_type in HCRIS Hospital Financials — these are two independently-sourced fields, don't assume they're always identical for the same CCN). |
hospital_ownership |
VARCHAR | Ownership category (e.g. "Voluntary nonprofit", "Proprietary", "Physician"). | — |
emergency_services |
BOOLEAN | Whether the hospital offers emergency services. | — |
meets_ehr_meaningful_use |
BOOLEAN | Whether the hospital met EHR meaningful-use criteria per CMS. | Present in the schema, not populated in this release. Null on all 5,432 rows. The measure has been phased out by CMS and the current Care Compare release carries no value for any hospital. Do not read the nulls as "did not meet". |
overall_rating |
SMALLINT | CMS Overall Hospital Quality Star Rating, 1–5. | Null for 2,250 of 5,432 hospitals (~41%) — CMS doesn't rate every hospital (insufficient measure volume, specialty hospitals, etc.). |
mortality_group_measure_count, safety_group_measure_count, readmission_group_measure_count, patient_experience_group_measure_count, timely_effective_group_measure_count |
SMALLINT | Count of individual measures CMS used within each measure group to compute this hospital's group score. | All five are present in the schema and not populated in this release. Null on all 5,432 rows. The Care Compare file this export loads carries no per-group measure counts. |
mortality_national_comparison, safety_national_comparison, readmission_national_comparison |
VARCHAR | CMS's categorical comparison to the national average for each measure group: "Above", "Same as", or "Below the national average". | Independently nullable per group. Populated on 4,105, 3,354 and 4,276 of 5,432 rows respectively. |
patient_experience_national_comparison, timely_effective_national_comparison |
VARCHAR | Same categorical comparison, for the patient-experience and timely-and-effective-care groups. | Both are present in the schema and not populated in this release. Empty on all 5,432 rows. The source file carries no comparison label for these two groups; the other three above are unaffected. |
ingested_at |
TIMESTAMP WITH TIME ZONE | Last ingestion timestamp for this row. | — |
Table: facility_quality_snf
Snowflake: HEALTHPARSE_DATA.FACILITY_QUALITY.FACILITY_QUALITY_SNF — 14,715 rows
| Column | Type | Description | Notes |
|---|---|---|---|
ccn, facility_name, address, city, state, county, phone |
VARCHAR | Facility identity and location. | — |
zip |
VARCHAR | Verified 5-digit US ZIP, or NULL (see the dictionaries README). | All 14,715 rows populated; 100% real and state-consistent. Unchanged by the 2026-09-11 verification pass. |
ownership_type |
VARCHAR | e.g. "For profit - Corporation", "Government - County". | — |
number_of_certified_beds / number_of_residents |
INTEGER | Certified bed count and current resident census. | — |
provider_resides_in_hospital |
BOOLEAN | Whether this SNF is hospital-based rather than freestanding. | — |
legal_business_name |
VARCHAR | Legal entity name — the field to use for chain/operator identification (e.g. grouping facilities under a common owner). | Distinct from facility_name (the consumer-facing name), which can differ from the legal entity. |
overall_rating |
SMALLINT | CMS Overall 5-Star Rating. | Populated for 14,572 of 14,699 (~99%) at the 2026-07-15 export — near-universal for SNFs, unlike hospitals. The table has since grown to 14,715 rows. |
health_inspection_rating, qm_rating, long_stay_qm_rating, short_stay_qm_rating, staffing_rating |
SMALLINT | Component 1–5 star ratings feeding the overall score: health inspection, quality measures (overall/long-stay/short-stay) and staffing. | Near-universal: health inspection on 14,582 and staffing on 14,511 of 14,715 rows. |
rn_staffing_rating |
SMALLINT | RN-specific staffing star rating, 1–5. | Present in the schema, not populated in this release. Null on all 14,715 rows. The Care Compare provider file this export loads carries no RN staffing star. Use rn_hours_per_resident_day for RN staffing instead. |
rn_hours_per_resident_day / total_nurse_hours_per_resident_day |
DOUBLE | Payroll-based-journal-derived staffing hours per resident day: RN-only and total nursing staff. | — |
abuse_icon |
BOOLEAN | CMS's flag for facilities with a recent instance of abuse resulting in harm (displayed as a warning icon on Care Compare). | — |
recent_health_inspection_date |
DATE | Date of the most recent standard health inspection survey. | Frequently null in this export — treat as "not on file" rather than "no inspection occurred." |
total_weighted_health_survey_score |
DOUBLE | CMS's weighted health-survey deficiency score (lower is better). | — |
number_of_fines, total_amount_of_fines |
INTEGER / DOUBLE | Fine count and total fine dollar amount on record. | Populated on all 14,715 rows. 0 is a real, common value here (no fines), distinct from null (not on file). |
number_of_facility_reported_incidents, number_of_substantiated_complaints |
INTEGER | Facility-reported incident count and substantiated complaint count. | Both are present in the schema and not populated in this release. Null on all 14,715 rows. The source file this export loads carries no value for either count. Because the columns are entirely null, there is no 0 in them: do not read a null as "no incidents" or "no complaints". |
ingested_at |
TIMESTAMP WITH TIME ZONE | Last ingestion timestamp. | — |
Table: facility_quality_home_health
Snowflake: HEALTHPARSE_DATA.FACILITY_QUALITY.FACILITY_QUALITY_HOME_HEALTH — 12,559 rows
| Column | Type | Description | Notes |
|---|---|---|---|
ccn, facility_name, address, city, state, phone |
VARCHAR | Facility identity and location. | No county column in this table (unlike hospitals/SNF). |
zip |
VARCHAR | Verified 5-digit US ZIP, or NULL (see the dictionaries README). | 12,558 of 12,559 rows populated; 100% real and state-consistent. One row was NULLed on 2026-09-11 (its ZIP prefix exists in no state). |
type_of_ownership |
VARCHAR | e.g. "NON-PROFIT", "GOVERNMENT OPERATED". | — |
offers_nursing_care_services, offers_physical_therapy_services, offers_occupational_therapy_services, offers_speech_pathology_services, offers_medical_social_services, offers_home_health_aide_services |
BOOLEAN | Which service lines this agency offers. | Independently flagged per service — an agency can offer nursing but not speech pathology, etc. |
date_certified |
DATE | Date the agency was Medicare-certified. | Frequently null in this export. |
quality_of_patient_care_star_rating / patient_survey_star_rating |
SMALLINT | CMS's two separate star ratings: clinical quality-of-care measures, and the HHCAHPS patient-experience survey. | Both independently nullable; a facility can have one without the other (survey ratings in particular require a minimum survey response volume CMS won't always meet). |
ingested_at |
TIMESTAMP WITH TIME ZONE | Last ingestion timestamp. | — |
Table: facility_quality_hospice
Snowflake: HEALTHPARSE_DATA.FACILITY_QUALITY.FACILITY_QUALITY_HOSPICE — 6,852 rows
| Column | Type | Description | Notes |
|---|---|---|---|
ccn, facility_name, address, city, state, phone |
VARCHAR | Facility identity and location. | — |
zip |
VARCHAR | Verified 5-digit US ZIP, or NULL (see the dictionaries README). | All 6,852 rows populated; 100% real and state-consistent. Unchanged by the 2026-09-11 verification pass. |
ownership_type |
VARCHAR | e.g. "Non-Profit", "Government". | — |
certification_date |
DATE | Date the hospice was Medicare-certified. | — |
family_caregiver_survey_rating |
SMALLINT | CAHPS Hospice Survey star rating (1–5), based on family/caregiver-reported experience. | Observed range in this export: 1–5. |
hospice_care_team_communication_rating |
SMALLINT | CAHPS Hospice "communication with family" composite score. | Not a 1–5 star scale — this is a 0–100 survey-percentage score. Observed range in this export: 54–98. Don't chart this on the same axis as family_caregiver_survey_rating or the other tables' star ratings without rescaling. |
ingested_at |
TIMESTAMP WITH TIME ZONE | Last ingestion timestamp. | This table's vintage (2026-05-29) is more recent than the other 4 facility-quality tables (2026-05-21) — CMS refreshed hospice data on a different cycle. |
Table: facility_quality_dialysis
Snowflake: HEALTHPARSE_DATA.FACILITY_QUALITY.FACILITY_QUALITY_DIALYSIS — 7,569 rows
| Column | Type | Description | Notes |
|---|---|---|---|
ccn, facility_name, address, city, state, phone |
VARCHAR | Facility identity and location. | — |
zip |
VARCHAR | Verified 5-digit US ZIP, or NULL (see the dictionaries README). | All 7,569 rows populated; 100% real and state-consistent. Unchanged by the 2026-09-11 verification pass. |
chain_organization |
VARCHAR | Parent dialysis chain, when applicable (e.g. "DaVita", "Fresenius Medical Care"). | Two chains (DaVita, Fresenius) dominate the US dialysis market — expect heavy concentration here. |
profit_or_non_profit |
VARCHAR | "Profit" or "Non-Profit". | — |
total_performance_score |
SMALLINT | CMS ESRD Quality Incentive Program composite score. | Populated for 7,072 of 7,557 (~94%). |
star_rating |
SMALLINT | CMS Dialysis Facility Compare star rating, 1–5. | Same ~94% coverage as total_performance_score — both null together for facilities CMS didn't score (typically too new or too low-volume). |
five_star_rating_dimension_score |
DOUBLE | Underlying continuous score CMS uses to assign the discrete star_rating. |
Present in the schema, not populated in this release. Null on all 7,569 rows. The Dialysis Facility Compare file this export loads carries the discrete star only, not the continuous score behind it. Use star_rating (7,072 of 7,569 rows) or total_performance_score. |
ingested_at |
TIMESTAMP WITH TIME ZONE | Last ingestion timestamp. | — |
Example queries (Snowflake)
-- 1. Top-rated SNFs in a state with no recent abuse flag.
SELECT "ccn", "facility_name", "city", "overall_rating", "staffing_rating", "number_of_certified_beds"
FROM HEALTHPARSE_DATA.FACILITY_QUALITY.FACILITY_QUALITY_SNF
WHERE "state" = 'FL' AND "abuse_icon" = FALSE
ORDER BY "overall_rating" DESC, "staffing_rating" DESC
LIMIT 25;
-- 2. Hospitals CMS rates below the national average on the safety measure
-- group, worst-rated first.
SELECT "ccn", "facility_name", "state", "overall_rating", "safety_national_comparison"
FROM HEALTHPARSE_DATA.FACILITY_QUALITY.FACILITY_QUALITY_HOSPITALS
WHERE "safety_national_comparison" = 'Below the national average'
ORDER BY "overall_rating" ASC NULLS LAST
LIMIT 25;
-- 3. Dialysis facility count and average star rating by chain.
SELECT "chain_organization", count(*) AS facilities, avg("star_rating") AS avg_star_rating
FROM HEALTHPARSE_DATA.FACILITY_QUALITY.FACILITY_QUALITY_DIALYSIS
WHERE "chain_organization" IS NOT NULL
GROUP BY "chain_organization"
ORDER BY facilities DESC
LIMIT 10;