Hospital Value-Based Purchasing TPS
Dataset ID: hvbp-tps ·
← Back to Methodology Hub
Provenance
- Dataset ID
hvbp-tps- Entity Type
- hospital
- Role
- enrichment
- Source
- CMS
- Vintage
- FY2026
- Entity Count
- 5,399
- Last ETL Run
- 2026-04-13
Overview
The Hospital Value-Based Purchasing (HVBP) Total Performance Score (TPS) dataset is published by CMS under the Hospital VBP Program established by Section 1886(o) of the Social Security Act. It contains one row per participating hospital with a composite Total Performance Score and four domain-level scores: Clinical Outcomes, Safety, Person & Community Engagement, and Efficiency & Cost Reduction. Each domain is weighted at 25% of the TPS. The current file covers FY2026, with performance periods varying by domain (typically spanning 1-3 years ending in 2022-2023). CMS uses the TPS to adjust Medicare Inpatient Prospective Payment System (IPPS) payments — hospitals scoring above the median receive a net payment increase, while those below receive a decrease.
This dataset answers questions such as: what is a hospital's overall quality-and-efficiency performance relative to IPPS peers, which performance domains drive a hospital's composite score, and how does the hospital's TPS compare to the national distribution. It is the primary data source for value-based purchasing scores on CareGraph hospital entity pages.
Join Strategy
Each row joins to a hospital entity page using the Provider Number field, which contains the CMS Certification Number (CCN) as a 6-digit zero-padded string. During ETL, the _find_column() function matches the CCN column against a candidate list (Facility ID, Hospital CCN, Provider Number, Facility Id, CCN) to handle header variation across CMS file releases. The normalize_ccn() function strips whitespace and zero-pads values shorter than 6 characters. The join is one-to-one: each CCN maps to exactly one row of scores. Matched data is written to the hospital's JSON manifest under data.vbp with fields total_performance_score, clinical_outcomes_score, safety_score, person_community_score, and efficiency_score. All score fields are parsed with _try_float(), which converts non-numeric values (e.g., "Not Available") to null. A provenance record with dataset ID hvbp-tps is appended to the manifest. Hospitals without a matching HVBP row display missing data indicators rather than being excluded from CareGraph.
Known Limitations
- IPPS-only participation. Critical Access Hospitals, Maryland waiver hospitals, hospitals with fewer than 25 cases in all applicable measures, and hospitals cited for patient safety deficiencies are excluded from the HVBP program entirely. The dataset does not contain a row for these facilities, so their absence is indistinguishable from a data gap without cross-referencing CMS's list of excluded hospitals.
- Domain reweighting distorts comparisons. When a hospital lacks enough qualifying measures in an entire domain, CMS omits that domain score and redistributes its 25% weight across the remaining domains. Two hospitals with the same TPS may have been scored on different domain combinations, making direct TPS comparisons imprecise.
- 15-20% of IPPS hospitals lack a TPS. Hospitals that do not meet minimum case thresholds for enough measures across domains receive no TPS. These are disproportionately small-volume and rural facilities, creating systematic selection bias in the dataset — surviving rows skew toward larger, urban hospitals.
- Efficiency domain reflects FFS spending only. The Efficiency & Cost Reduction domain is based on the Medicare Spending Per Beneficiary (MSPB) measure, which captures only fee-for-service claims. Hospitals in markets with high Medicare Advantage penetration have their MSPB calculated on a smaller, potentially non-representative FFS population, biasing the efficiency score for those facilities.
- Achievement vs. improvement scoring. Each domain score blends an achievement component (performance vs. national floor and benchmark) and an improvement component (performance vs. the hospital's own baseline period). A hospital can score well on improvement while still performing below the national median, meaning a high domain score does not necessarily indicate above-average absolute performance.
- Reporting lag. Performance periods end 2-3 years before the fiscal year of payment adjustment. The FY2026 TPS reflects care delivered roughly in 2022-2023, not current performance. Recent quality improvements or declines are not captured in the published scores.
Data Quality Notes
- Score fields stored as strings with sentinel values. The source CSV encodes
Total Performance Scoreand all four domain score columns as strings. Suppressed or inapplicable values appear as "Not Available", "N/A", or empty strings rather than numeric zeros. The ETL's_try_float()function converts these to null in the JSON manifest — a nulltotal_performance_scoremeans the hospital was excluded or ineligible, not that it scored zero. - Differential null rates across domains. The Efficiency & Cost Reduction and Clinical Outcomes domain scores have higher null rates than Safety and Person & Community Engagement, because MSPB and outcome measures require larger case volumes. When analyzing domain-level data, the denominators differ by field.
- Column name variation across vintages. CMS has used different header names and casing between file releases (e.g., "Total Performance Score" vs. "Total performance score", "Facility ID" vs. "Facility Id", "Person and Community Engagement Domain Score" vs. "Person & Community Engagement Domain Score"). The ETL's
_find_column()function resolves this via candidate-list matching, but new header names in future releases may require adding candidates. - File encoding. The source CSV is read with
encoding="utf-8", errors="replace", so any non-UTF-8 bytes in hospital names or other text fields are replaced with the Unicode replacement character (U+FFFD) rather than causing a parse failure.