# Vlada Stars measure spine, one row per Star measure identity per rating year 2015 to 2027, with that year's code and cut points

`medicare_semantic.dim_stars_measure_identity_v7` · Medicare Advantage, Part D, Medicaid · status live · 583 rows

The one place a Star measure keeps its identity across rating years. CMS reuses measure codes (for RY2026, 27 of the 33 Part C codes moved; C14 has named five different measures since 2015). Each row carries that year's measure_id, measure_name, part_type, domain, weight, direction (that year's flag) and direction_latest (the identity's current direction), methodology_version and era, is_new_this_year and is_retired, prior_year_measure_id and next_year_measure_id, cmit_number where CMS gives one, and the cut points for stars 2 to 5 as star_k_threshold with star_k_op (RY2026 Controlling Blood Pressure: star_4_threshold 80, op >=), with ladder_direction and cutpoint_epoch. Built by tools/ma_brain/stars_measure_spine_publish.py; checked cell for cell against an independent derivation with 0 differences; seven invariants pass, including that the direction flag agrees with CMS's own cut point ladder in every year. Tools: get_stars, get_stars_cutpoints.

**Grain.** One row per measure_identity_key (part and canonical name, e.g. c:controlling_blood_pressure) x rating_year (2015 to 2027, partition). 583 rows, 40 to 48 identities a year (v7 2026-10-15 corrects 12 historical ladders where CMS printed NA for the lowest bands, op 'floor', and differs from v6 in nothing else; v6 2026-10-08 added series breaks, aliases, guardrail exemption and the final RY2027 release; v6 medicare_semantic.dim_stars_measure_identity_v6 is superseded and the untouched rollback).

| column | type | meaning |
|---|---|---|
| measure_identity_key | string |  |
| measure_id | string |  |
| measure_name | string |  |
| canonical_name | string |  |
| part_type | string |  |
| domain | string |  |
| weight | double |  |
| direction | string |  |
| direction_latest | string |  |
| direction_break | boolean |  |
| methodology_version | string |  |
| era | string |  |
| is_new_this_year | boolean |  |
| is_retired | boolean |  |
| prev_rated_year | int |  |
| next_rated_year | int |  |
| prior_year_measure_id | string |  |
| next_year_measure_id | string |  |
| code_moved | boolean |  |
| first_rating_year | int |  |
| last_rating_year | int |  |
| years_rated | bigint |  |
| cmit_number | string |  |
| cmit_number_identity | string |  |
| dual_numbered_with | string |  |
| has_cutpoints | boolean |  |
| cutpoint_org_subtype | string |  |
| cutpoint_epoch | string |  |
| ladder_direction | string |  |
| star_2_threshold | double |  |
| star_2_op | string |  |
| star_3_threshold | double |  |
| star_3_op | string |  |
| star_4_threshold | double |  |
| star_4_op | string |  |
| star_5_threshold | double |  |
| star_5_op | string |  |
| star_2_text | string |  |
| star_3_text | string |  |
| star_4_text | string |  |
| star_5_text | string |  |
| series_break | boolean |  |
| series_start_year | int |  |
| years_in_series | int |  |
| guardrail_exempt | boolean |  |
| series_break_kind | string |  |
| built_at | string |  |

Tools that read it: get_star_decomposition, get_stars, get_stars_cutpoints, get_stars_rollup

Query it: `query_substrate` with `SELECT ... FROM medicare_semantic.dim_stars_measure_identity_v7 WHERE ... LIMIT 100`; read `describe_data_source("medicare_semantic.dim_stars_measure_identity_v7")` first.
