Medicare Advantage, Part D, Medicaid

MA pbp mrx tier

medicare_silver.pbp_mrx_tier·partial·silver·annual·Part D Plans & Formularies
Rows
N/A
Columns
309
History
2010 (contract year 2010, effective_period_start 2010-01-01) to 2026 (contract year 2026, effective_period_start 2026-01-01)
Card
yesgrain, traps, filters
Typed tools
1

What it is

  1. 1CMS Medicare Part D Plan Benefit Package (PBP) Section-D drug-tier cost-sharing file: one row per formulary tier per Medicare drug plan, giving the member's out-of-pocket cost (copay or coinsurance) for that tier across every pharmacy channel and days-supply.
  2. 2This is the canonical public source for "what does a Part D / MA-PD plan charge the patient for a Tier-N drug." Silver layer = lightly cleaned CMS PBP extract spanning contract years 2010-2026.

Grain

KeyGrain
contract_idplan_idsegment_idmrx_tier_idmrx_tier_type_idreport_yearquarter
  1. 1One row per (Medicare plan benefit segment) x (formulary tier) x (coverage phase) within a single CMS quarterly release.
  2. 2Concretely: contract_id x plan_id x segment_id x mrx_tier_id x mrx_tier_type_id, scoped to one report_year + quarter snapshot.
  3. 3Verified: the 7-tuple (contract_id, plan_id, segment_id, mrx_tier_id, mrx_tier_type_id, report_year, quarter) yields exactly 792,027 distinct = the full row_count (unique).
  4. 4Within a single snapshot (2023 Q4 = 34,169 rows) the 5-tuple contract_id+plan_id+segment_id+mrx_tier_id+mrx_tier_type_id is already unique; bid_id can substitute for contract+plan+segment because bid_id = contract_id_plan_id_segment_id.

How to read it

  1. 1To get the current member copay for each formulary tier of a Medicare drug plan, filter to one snapshot and the initial-coverage phase, then read the retail-standard 30-day cost column.
  2. 2Example: SELECT mrx_tier_id, mrx_tier_label_list, mrx_tier_rstd_copay_1m AS copay_30d, mrx_tier_rstd_coins_1m AS coins_30d_pct FROM medicare_silver.pbp_mrx_tier WHERE report_year=2024 AND quarter=4 AND mrx_tier_type_id='1' AND bid_id='H0028_014_0' ORDER BY cast(mrx_tier_id AS int).
  3. 3Returns one row per tier (Preferred Generic $0, Generic $0, Preferred Brand $47, Non-Preferred $99, Specialty 33% coinsurance) - the patient's out-of-pocket drug cost ladder for that plan.
  4. 4Switch mrx_tier_type_id to '3' to see the coverage-gap (donut-hole) cost-sharing for the same tiers.

Traps

  1. 1mrx_tier_id (the tier number 1-7) is NOT a unique key for a plan: each tier appears up to twice, split by mrx_tier_type_id = '1' INITIAL-coverage vs '3' COVERAGE-GAP cost-sharing. You MUST include mrx_tier_type_id, or filter to one phase (mrx_tier_type_id='1' for the normal/initial-coverage copay), or you double-count. Verified: all 116,195 type-3 rows carry mrx_tier_gap_cost_share; zero type-1 rows do.
  2. 2This table keeps MULTIPLE CMS quarterly releases per contract year and there is NO is_current flag. The 7-key includes both report_year AND quarter. For a single clean per-plan-per-tier view you must pick one snapshot, e.g. WHERE report_year=2024 AND quarter=4 (the latest available quarter for that year). Quarters retained per year are uneven: 2010-2017/2021/2025/2026 have only 1 quarter, 2018/2019/2023 have 4, 2020/2024 have 3, 2022 has 2 - so raw row counts per year are NOT comparable.
  3. 3The cost lives in ~200 sparse columns (channel x days-supply x copay/coinsurance). Any single row has only a few non-null cost fields and copay is mutually exclusive with coinsurance on the same row (verified: retail-std-30d copay_only=165k, coins_only=63k, both=49). The everyday number most users want is mrx_tier_rstd_copay_1m (retail-standard 30-day copay) OR mrx_tier_rstd_coins_1m (coinsurance %). A NULL copay does not mean free - check the coinsurance column and the right channel family.
  4. 4Identifier hygiene: plan_id zero-padding is inconsistent across vintages (unpadded in 2020, 3-digit padded elsewhere) - join/group on bid_id (= contract_id_plan_id_segment_id, canonical padded) rather than raw plan_id. effective_period_start/observed_period are just Jan-1 of report_year (annual), and asserted_at/cms_vintage_sequence are ETL provenance (2026-05 load dates), NOT data recency or a reliable quarter proxy.
  5. 5mrx_tier_label_list is the friendly tier name but is NULL for all of 2010 and sometimes a bare numeric code in early years; mrx_tier_cstshr_struct_type does NOT cleanly map to copay-vs-coinsurance (observed struct='2' rows carrying copays) - infer copay vs coinsurance from which value column is populated, not from the struct code.

Columns (309)

ColumnTypeMeaning
contract_idstringCMS Medicare contract ID (e.g. H0022, H0028). First part of the plan identity. 1,427 distinct.
plan_idstringPlan ID within the contract (e.g. 001, 014). 645 distinct. GOTCHA: zero-padding is inconsistent across years - stored unpadded ('1','14') in the 2020 vintage but 3-digit padded elsewhere; use bid_id for the canonical padded form.
segment_idstringPlan benefit segment (regional/employer service-area split within a contract+plan). Almost always '0' (716k rows); '1'-'5'+ are segmented plans. Part of the grain.
versiondoubleCMS PBP software version (e.g. 3.0). Format/vintage marker, not a row version.
mrx_tier_idstringFormulary tier NUMBER, 1-7 (1 typically Preferred Generic/lowest, 5-6 Specialty, 7 rare=119 rows). NOT unique by itself - see mrx_tier_type_id.
report_yeardoubleCMS contract/benefit year (double 2010.0-2026.0). Equals year of effective_period_start. Part of the grain (a given plan+tier recurs every year).
quarterdoubleCMS quarterly RELEASE within the report_year (1-4). NOT a sub-annual benefit period - it identifies WHICH quarterly PBP publication the row came from. The table retains multiple quarterly releases per year, so quarter is REQUIRED for grain uniqueness.
bid_idstringDerived plan key = contract_id || '_' || plan_id(padded) || '_' || segment_id (e.g. H0028_014_0). Canonical zero-padded plan identifier; equivalent to contract+plan+segment for grain purposes.
mrx_tier_alt_gap_covg_excl_ynstring
mrx_tier_benefit_typestringBenefit-type code: '4' (705k, standard cost-share tier), '2' (45k), '3' (42k).
mrx_tier_copay_amt_inp_mmpmaxdouble
mrx_tier_copay_amt_inp_mmpmindouble
mrx_tier_copay_amt_ltc_mmpmaxdouble
mrx_tier_copay_amt_ltc_mmpmindouble
mrx_tier_copay_amt_mo_mmpmaxdouble
mrx_tier_copay_amt_mo_mmpmindouble
mrx_tier_copay_amt_mstd_mmpmaxdouble
mrx_tier_copay_amt_mstd_mmpmindouble
mrx_tier_copay_amt_oon_mmpmaxdouble
mrx_tier_copay_amt_oon_mmpmindouble
mrx_tier_copay_amt_rstd_mmpmaxdouble
mrx_tier_copay_amt_rstd_mmpmindouble
mrx_tier_cstshr_struct_typestringCost-share structure type code: '2' (583k), '1' (202k), rare '3'/'4', NULL for ~6.7k. Indicates the tier's cost-sharing structure; do not assume a clean 1=copay/2=coinsurance mapping (observed plans with struct='2' carrying copays).
mrx_tier_drug_typestringDrug-category code the tier covers. Mixed encodings across years: short ('01','10','11','1') and 6-digit bitmask forms ('010010','001000') flagging Generic/Brand/Non-Medicare-OTC etc. Decode per the CMS PBP data dictionary; not a clean stable enum.
mrx_tier_excep_ynstring
mrx_tier_extd_days_ynstring
mrx_tier_extd_first_fillstring
mrx_tier_form_model_descstringThe plan's full tier-structure description (comma-joined list of all tier labels for that plan), e.g. 'Preferred Generic, Generic, Preferred Brand, Non-Preferred Drug, Specialty Tier'. Repeats on every tier row of the plan.
mrx_tier_gap_all_drug_ynstring
mrx_tier_gap_cost_sharestringCoverage-gap cost-share indicator. Populated ONLY on type_id='3' (gap) rows - the discriminator proving type 3 = gap phase.
mrx_tier_gap_drug_type_lmtdstring
mrx_tier_gap_excluded_only_ynstring
mrx_tier_gap_part_drugsstring
mrx_tier_gap_part_includesstring
mrx_tier_includesstring
mrx_tier_includes_mmpstring
mrx_tier_inject_ynstring
mrx_tier_innpp_1m_numdouble
mrx_tier_innpp_2m_numdouble
mrx_tier_innpp_3m_numdouble
mrx_tier_innpp_coins_1mdouble
mrx_tier_innpp_coins_2mdouble
mrx_tier_innpp_coins_3mdouble
mrx_tier_innpp_coins_avg_1mdouble
mrx_tier_innpp_coins_othnumdouble
mrx_tier_innpp_copay_1mdouble
mrx_tier_innpp_copay_2mdouble
mrx_tier_innpp_copay_3mdouble
mrx_tier_innpp_copay_dailydouble
mrx_tier_innpp_copay_othnumdouble
mrx_tier_innpp_othnumdouble
mrx_tier_inp_1m_numdouble
mrx_tier_inp_2m_numdouble
mrx_tier_inp_3m_numdouble
mrx_tier_inp_coins_1mdouble
mrx_tier_inp_coins_2mdouble
mrx_tier_inp_coins_3mdouble
mrx_tier_inp_coins_avg_1mdouble
mrx_tier_inp_coins_othnumdouble
mrx_tier_inp_copay_1mdouble
mrx_tier_inp_copay_2mdouble
mrx_tier_inp_copay_3mdouble
mrx_tier_inp_copay_dailydouble
mrx_tier_inp_copay_othnumdouble
mrx_tier_inp_othnumdouble
mrx_tier_inpp_1m_numdouble
mrx_tier_inpp_2m_numdouble
mrx_tier_inpp_3m_numdouble
mrx_tier_inpp_coins_1mdouble
mrx_tier_inpp_coins_2mdouble
mrx_tier_inpp_coins_3mdouble
mrx_tier_inpp_coins_avg_1mdouble
mrx_tier_inpp_coins_othnumdouble
mrx_tier_inpp_copay_1mdouble
mrx_tier_inpp_copay_2mdouble
mrx_tier_inpp_copay_3mdouble
mrx_tier_inpp_copay_dailydouble
mrx_tier_inpp_copay_othnumdouble
mrx_tier_inpp_othnumdouble
mrx_tier_ira_ltcp_coins_1mdouble
mrx_tier_ira_ltcp_copay_1mdouble
mrx_tier_ira_mopfd_coins_1mdouble
mrx_tier_ira_mopfd_coins_2mdouble
mrx_tier_ira_mopfd_coins_3mdouble
mrx_tier_ira_mopfd_copay_1mdouble
mrx_tier_ira_mopfd_copay_2mdouble
mrx_tier_ira_mopfd_copay_3mdouble
mrx_tier_ira_mostd_coins_1mdouble
mrx_tier_ira_mostd_coins_2mdouble
mrx_tier_ira_mostd_coins_3mdouble
mrx_tier_ira_mostd_copay_1mdouble
mrx_tier_ira_mostd_copay_2mdouble
mrx_tier_ira_mostd_copay_3mdouble
mrx_tier_ira_oonp_coins_1mdouble
mrx_tier_ira_oonp_coins_othnumdouble
mrx_tier_ira_oonp_copay_1mdouble
mrx_tier_ira_oonp_copay_othnumdouble
mrx_tier_ira_rspfd_coins_1mdouble
mrx_tier_ira_rspfd_coins_2mdouble
mrx_tier_ira_rspfd_coins_3mdouble
mrx_tier_ira_rspfd_copay_1mdouble
mrx_tier_ira_rspfd_copay_2mdouble
mrx_tier_ira_rspfd_copay_3mdouble
mrx_tier_ira_rstd_coins_1mdouble
mrx_tier_ira_rstd_coins_2mdouble
mrx_tier_ira_rstd_coins_3mdouble
mrx_tier_ira_rstd_copay_1mdouble
mrx_tier_ira_rstd_copay_2mdouble
mrx_tier_ira_rstd_copay_3mdouble
mrx_tier_label_liststringHuman-readable tier name: Preferred Generic, Generic, Preferred Brand, Specialty Tier, Non-Preferred Drug, Non-Preferred Brand, Select Care Drugs, Vaccines, etc. GOTCHA: NULL for all 2010 rows (21,330) and some early years store a bare numeric code ('26','16','8') instead of a name.
mrx_tier_lblstring
mrx_tier_lbl_2string
mrx_tier_lbl_4string
mrx_tier_lbl_5string
mrx_tier_lbl_6string
mrx_tier_locatstring
mrx_tier_locat_coinsstring
mrx_tier_locat_copaystring
mrx_tier_locat_instring
mrx_tier_locat_inpstring
mrx_tier_locat_ltcstring
mrx_tier_locat_mostring
mrx_tier_locat_mopstring
mrx_tier_locat_mospltstring
mrx_tier_locat_mostdstring
mrx_tier_locat_oonstring
mrx_tier_locat_rspltstring
mrx_tier_locat_rstdstring
mrx_tier_ltcp_1mdouble
mrx_tier_ltcp_b_1mdouble
mrx_tier_ltcp_b_osdouble
mrx_tier_ltcp_coins_1mdouble
mrx_tier_ltcp_coins_b_1mdouble
mrx_tier_ltcp_coins_g_1mdouble
mrx_tier_ltcp_copay_1mdouble
mrx_tier_ltcp_copay_b_1mdouble
mrx_tier_ltcp_copay_b_dailydouble
mrx_tier_ltcp_copay_dailydouble
mrx_tier_ltcp_copay_g_1mdouble
mrx_tier_ltcp_copay_g_dailydouble
mrx_tier_ltcp_g_1mdouble
mrx_tier_ltcp_g_osdouble
mrx_tier_mo_1m_numdouble
mrx_tier_mo_2m_numdouble
mrx_tier_mo_3m_numdouble
mrx_tier_mo_coins_1mdouble
mrx_tier_mo_coins_2mdouble
mrx_tier_mo_coins_3mdouble
mrx_tier_mo_coins_othnumdouble
mrx_tier_mo_copay_1mdouble
mrx_tier_mo_copay_2mdouble
mrx_tier_mo_copay_3mdouble
mrx_tier_mo_copay_dailydouble
mrx_tier_mo_copay_othnumdouble
mrx_tier_mo_othnumdouble
mrx_tier_monpp_1m_numdouble
mrx_tier_monpp_2m_numdouble
mrx_tier_monpp_3m_numdouble
mrx_tier_monpp_coins_1mdouble
mrx_tier_monpp_coins_2mdouble
mrx_tier_monpp_coins_3mdouble
mrx_tier_monpp_coins_othnumdouble
mrx_tier_monpp_copay_1mdouble
mrx_tier_monpp_copay_2mdouble
mrx_tier_monpp_copay_3mdouble
mrx_tier_monpp_copay_dailydouble
mrx_tier_monpp_copay_othnumdouble
mrx_tier_monpp_othnumdouble
mrx_tier_mopp_1m_numdouble
mrx_tier_mopp_2m_numdouble
mrx_tier_mopp_3m_numdouble
mrx_tier_mopp_coins_1mdouble
mrx_tier_mopp_coins_2mdouble
mrx_tier_mopp_coins_3mdouble
mrx_tier_mopp_coins_othnumdouble
mrx_tier_mopp_copay_1mdouble
mrx_tier_mopp_copay_2mdouble
mrx_tier_mopp_copay_3mdouble
mrx_tier_mopp_copay_dailydouble
mrx_tier_mopp_copay_othnumdouble
mrx_tier_mopp_othnumdouble
mrx_tier_mospfd_coins_1mdouble
mrx_tier_mospfd_coins_2mdouble
mrx_tier_mospfd_coins_3mdouble
mrx_tier_mospfd_copay_1mdouble
mrx_tier_mospfd_copay_2mdouble
mrx_tier_mospfd_copay_3mdouble
mrx_tier_mospfd_copay_dailydouble
mrx_tier_mosplt_1m_numdouble
mrx_tier_mosplt_2m_numdouble
mrx_tier_mosplt_3m_numdouble
mrx_tier_mosstd_coins_1mdouble
mrx_tier_mosstd_coins_2mdouble
mrx_tier_mosstd_coins_3mdouble
mrx_tier_mosstd_copay_1mdouble
mrx_tier_mosstd_copay_2mdouble
mrx_tier_mosstd_copay_3mdouble
mrx_tier_mosstd_copay_dailydouble
mrx_tier_mostd_1m_numdouble
mrx_tier_mostd_2m_numdouble
mrx_tier_mostd_3m_numdouble
mrx_tier_mostd_coins_1mdouble
mrx_tier_mostd_coins_2mdouble
mrx_tier_mostd_coins_3mdouble
mrx_tier_mostd_copay_1mdouble
mrx_tier_mostd_copay_2mdouble
mrx_tier_mostd_copay_3mdouble
mrx_tier_mostd_copay_dailydouble
mrx_tier_nds_includesstring
mrx_tier_nds_includes_mmpstring
mrx_tier_oonp_1m_numdouble
mrx_tier_oonp_3m_numdouble
mrx_tier_oonp_coins_1mdouble
mrx_tier_oonp_coins_3mdouble
mrx_tier_oonp_coins_othnumdouble
mrx_tier_oonp_copay_1mdouble
mrx_tier_oonp_copay_3mdouble
mrx_tier_oonp_copay_othnumdouble
mrx_tier_oonp_othnumndouble
mrx_tier_ref_price_ynstring
mrx_tier_rspfd_coins_1mdouble
mrx_tier_rspfd_coins_2mdouble
mrx_tier_rspfd_coins_3mdouble
mrx_tier_rspfd_coins_avg_1mdouble
mrx_tier_rspfd_copay_1mdouble
mrx_tier_rspfd_copay_2mdouble
mrx_tier_rspfd_copay_3mdouble
mrx_tier_rspfd_copay_dailydouble
mrx_tier_rsplt_1m_numdouble
mrx_tier_rsplt_2m_numdouble
mrx_tier_rsplt_3m_numdouble
mrx_tier_rsstd_coins_1mdouble
mrx_tier_rsstd_coins_2mdouble
mrx_tier_rsstd_coins_3mdouble
mrx_tier_rsstd_coins_avg_1mdouble
mrx_tier_rsstd_copay_1mdouble
mrx_tier_rsstd_copay_2mdouble
mrx_tier_rsstd_copay_3mdouble
mrx_tier_rsstd_copay_dailydouble
mrx_tier_rstd_1m_numdouble
mrx_tier_rstd_2m_numdouble
mrx_tier_rstd_3m_numdouble
mrx_tier_rstd_coins_1mdouble
mrx_tier_rstd_coins_2mdouble
mrx_tier_rstd_coins_3mdouble
mrx_tier_rstd_coins_avg_1mdouble
mrx_tier_rstd_copay_1mdouble
mrx_tier_rstd_copay_2mdouble
mrx_tier_rstd_copay_3mdouble
mrx_tier_rstd_copay_dailydouble
mrx_tier_spec_ynstringSpecialty-tier flag: mostly NULL (739k, not asked/not applicable), '2'=11k, '1'=41k. Y/N-style coded field for whether the tier is a specialty tier.
mrx_tier_type_idstringCoverage-phase variant of the tier: '1' = INITIAL-coverage cost-sharing (675,832 rows, the default), '3' = COVERAGE-GAP (donut-hole) cost-sharing (116,195 rows). The same tier appears as up to two rows, one per phase. VERIFIED: all type-3 rows have mrx_tier_gap_cost_share populated, zero type-1 rows do. This is the column that makes mrx_tier_id non-unique.
orgtypestring
part_d_enhncd_cvrg_demostring
part_d_model_demostring
pbp_a_ben_covstring
pbp_a_plan_typestring
observed_perioddateProvenance: the period the data was observed for = Jan 1 of report_year (date). Equals effective_period_start; redundant with report_year.
asserted_atdateProvenance: silver-load assertion date. Only two values: 2026-05-16 (the parse_revision=1 snapshots) and 2026-05-20 (parse_revision=2). It is the ETL load date, NOT when CMS published - do not use as data recency.
effective_period_startdate
effective_period_enddate
cms_vintage_sequenceintCMS vintage ordinal (int 1-4). Roughly tracks release order within a year but NOT 1:1 with quarter (2021 Q1 = vintage 4; 2022 Q1 = vintage 2). Do not equate to quarter.
parse_revisionintParser revision (int): 1 or 2. Tracks the extractor version, pairs with asserted_at (rev1->2026-05-16, rev2->2026-05-20).
parser_artifact_hashstring
source_urlstring
sha256_content_hashstring
source_row_ordinaldouble
mrx_tier_bal_ltcp_copay_1mdouble
mrx_tier_bal_ltcp_copay_daydouble
mrx_tier_bal_mopfd_copay_1mdouble
mrx_tier_bal_mopfd_copay_2mdouble
mrx_tier_bal_mopfd_copay_3mdouble
mrx_tier_bal_mopfd_copay_daydouble
mrx_tier_bal_mostd_copay_1mdouble
mrx_tier_bal_mostd_copay_2mdouble
mrx_tier_bal_mostd_copay_3mdouble
mrx_tier_bal_mostd_copay_daydouble
mrx_tier_bal_oonp_copay_1mdouble
mrx_tier_bal_rspfd_copay_1mdouble
mrx_tier_bal_rspfd_copay_2mdouble
mrx_tier_bal_rspfd_copay_3mdouble
mrx_tier_bal_rspfd_copay_daydouble
mrx_tier_bal_rstd_copay_1mdouble
mrx_tier_bal_rstd_copay_2mdouble
mrx_tier_bal_rstd_copay_3mdouble
mrx_tier_bal_rstd_copay_daydouble
mrx_tier_rstd_copay_1m / _2m / _3mRETAIL-STANDARD pharmacy COPAY (flat dollar) for 1-/2-/3-month (30/60/90-day) supply. The headline retail out-of-pocket. Mutually exclusive with the coins counterpart on the same row (copay XOR coinsurance). Example: 2024Q4 H0028/014 Tier3 Preferred Brand = $47 (30-day).
mrx_tier_rstd_coins_1m / _2m / _3mRETAIL-STANDARD pharmacy COINSURANCE (percent) for 1-/2-/3-month supply. Used instead of copay for percentage-cost tiers (e.g. Specialty 33%). 0-50 range.
mrx_tier_rspfd_copay_* / mrx_tier_rspfd_coins_*RETAIL-PREFERRED pharmacy copay/coinsurance by days supply (lower cost-share preferred-network variant of rstd).
mrx_tier_mostd_copay_* / mrx_tier_mostd_coins_*MAIL-ORDER-STANDARD copay/coinsurance by days supply (1m/2m/3m). Mail channel equivalent of rstd.
mrx_tier_mospfd_* / mrx_tier_mosstd_* / mrx_tier_mosplt_*Mail-order PREFERRED / mail-order-standard-split / mail-order-split cost-share families - additional mail pharmacy channel/structure variants by days supply.
mrx_tier_ltcp_* (and _b_/_g_ variants)LONG-TERM-CARE pharmacy cost-share family (copay/coinsurance, brand '_b_' vs generic '_g_', daily and 1-month). LTC channel pricing.
mrx_tier_oonp_* OUT-OF-NETWORK pharmacy cost-share family (copay/coinsurance, 1m/3m/othnum). What the member pays at a non-network pharmacy.
mrx_tier_inp_* / mrx_tier_innpp_* / mrx_tier_inpp_*IN-NETWORK / in-network-preferred / in-network-pharmacy cost-share families (copay/coinsurance/avg by days supply). Network-channel pricing variants.
mrx_tier_mo_* / mrx_tier_monpp_* / mrx_tier_mopp_*MAIL-ORDER (mo), mail-order-non-preferred (monpp), mail-order-preferred (mopp) cost-share families by days supply.
mrx_tier_copay_amt_*_mmpmin / _mmpmaxMMP (Medicare-Medicaid Plan / dual) min and max copay bounds per channel (inp, ltc, mo, mstd, oon, rstd). Channel-specific copay floor/ceiling for dual-eligible cost-sharing.
mrx_tier_ira_*Inflation-Reduction-Act-era cost-share fields (mopfd/mostd/rspfd/rstd/ltcp/oonp copay & coins by days supply). Populate in recent years reflecting IRA Part D redesign; mostly NULL in older vintages.
mrx_tier_*_1m_num / _2m_num / _3m_num / _othnumDays-supply quantity/count fields paired with the cost-share columns of each channel family (the 'number' of the supply band the copay/coins applies to).
mrx_tier_locat / mrx_tier_locat_* Location/pharmacy-placement codes per channel (in, inp, ltc, mo, mop, mostd, oon, rstd, coins, copay). Coded fields describing where/how the tier cost-share applies.
mrx_tier_includes / _includes_mmp / mrx_tier_nds_includes / _nds_includes_mmpCodes for what the tier includes (and the MMP/non-defined-supplemental 'includes' variants). Coded references.
mrx_tier_extd_days_yn / mrx_tier_extd_first_fillExtended-days-supply flag and extended first-fill code (Y/N-style coded).
mrx_tier_excep_yn / mrx_tier_inject_yn / mrx_tier_ref_price_yn / mrx_tier_alt_gap_covg_excl_ynY/N-style flags: exception applies, injectable, reference-pricing used, alternative gap-coverage excluded.
mrx_tier_gap_all_drug_yn / _gap_drug_type_lmtd / _gap_excluded_only_yn / _gap_part_drugs / _gap_part_includesCoverage-gap scoping flags/codes (all drugs in gap, drug-type-limited, excluded-only, Part-D drugs, gap includes). Relevant to type_id='3' gap rows.
mrx_tier_lbl / _lbl_2 / _lbl_4 / _lbl_5 / _lbl_6Additional tier label slots (mostly NULL); supplementary naming used in some plan layouts.
mrx_tier_type_id (note) and orgtypeorgtype = CMS organization-type code (e.g. '05','01') describing the plan org (MA-PD, PDP, cost plan, etc.).
pbp_a_plan_type / pbp_a_ben_covPlan-level PBP attributes: pbp_a_plan_type = CMS plan-type code (e.g. '48','01'); pbp_a_ben_cov = benefit-coverage flag. Functionally dependent on the plan (not needed for grain).
part_d_model_demo / part_d_enhncd_cvrg_demoPart D demonstration flags: model demo participation and enhanced-coverage demo ('Y'). Mostly NULL.
effective_period_start / effective_period_endBenefit-year start/end dates (Jan 1 -> Dec 31 of report_year). GOTCHA: effective_period_start is Jan-1 of the year for ALL quarterly releases of that year, which is why profiler periodicity reads 'annual' (17 distinct year-starts) despite quarterly publication.
parser_artifact_hash / source_url / sha256_content_hashProvenance: parser build hash, the CMS source ZIP URL (e.g. https://www.cms.gov/files/zip/pbp-benefits-2023-quarter-4.zip - confirms the quarterly-release origin), and content hash of the source file.

Query it

describe_data_source(source_fqn="medicare_silver.pbp_mrx_tier")     # the card, live
query_substrate(sql="SELECT * FROM medicare_silver.pbp_mrx_tier WHERE contract_id = '<value>' AND plan_id = '<value>' AND segment_id = '<value>' AND mrx_tier_id = '<value>' AND mrx_tier_type_id = '<value>' AND report_year = '<value>' AND quarter = '<value>' LIMIT 100")
ItemValue
Typed tools that read itget_pbp_benefit
Identity keycontract_id,plan_id,segment_id,version,mrx_tier_id,mrx_tier_type_id,report_year,quarter
Joinhow_to_join(source_fqn="medicare_silver.pbp_mrx_tier")
Raw doorAthena (read-only via query_substrate): medicare_silver.pbp_mrx_tier
NoteGrain-governed; live in Glue / query_substrate. Source family pbp_benefits.

This page as markdown: /docs-md/data/medicare_silver_pbp_mrx_tier.md · every page in one file: /llms-full.txt