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;