Skip to main content

Carrier Crosswalk

The Benefit Plan Standard maintains a carrier crosswalk that maps each issuer’s vocabulary, structure, and terminology into the normalized schema fields.
This ensures that different carriers’ representations of benefits—often inconsistent in naming, structure, and granularity—can be interpreted in a unified, machine-readable way.

Because carriers vary widely in how they describe deductibles, copays, limits, and categories, the crosswalk is a foundational component of the standard.


📊 Live Crosswalk Matrix

Plan Metadata
Normalized FieldBlue CrossGatorCareSCANAetnaUHCCignaHumanaKaiser (future)Molina (future)Oscar (future)
plan_idContract NumberPlan IDH NumberSBC IDPlan NumberPolicy NumberContract ID
carrierFlorida BlueUF Health / GatorCareSCAN Health PlanAetnaUnitedHealthcareCignaHumana
plan_nameBlueOptions 505 PPOPrime PlusClassicPPO 1500 80/50MA Plan NamePreferred PlanGold Plus
plan_typePPOPPOHMO / MAPPOHMO / PPO / MAPPO / HMOHMO / MA
yearCoverage YearPlan YearPlan YearSBC YearPlan YearCalendar YearCalendar Year
marketGroup or IndividualEmployer GroupMedicare AdvantageCommercialCommercial / MACommercialMedicare Advantage
Network Tiers
Normalized FieldBlue CrossGatorCareSCANAetnaUHCCignaHumanaKaiser (future)Molina (future)Oscar (future)
tier_idIN / OUTIN / OUTININ / OUTIN / OUTIN / OUTIN
nameIn / Out of NetworkIn / Out of NetworkIn NetworkIn / Out of NetworkParticipating / Non-ParticipatingIn / Out NetworkIn Network
descriptionNetwork LevelNetwork LevelPlan NetworkNetwork LevelBenefit LevelNetwork TierPlan Network
Accumulators
Normalized FieldBlue CrossGatorCareSCANAetnaUHCCignaHumanaKaiser (future)Molina (future)Oscar (future)
individual_deductibleIndividual DeductibleIndividual DeductibleUsually noneIndividual DeductibleDeductible IN/OUTIndividual DeductibleMostly none
family_deductibleFamily DeductibleFamily DeductibleNoneFamily DeductibleFamily DeductibleFamily DeductibleNot used
individual_oop_maxIndividual OOP MaxOOP Max (Ind.)MOOPOOP Max (Ind.)MOOP IndOOP MaxMOOP
family_oop_maxFamily OOP MaxOOP Max (Family)NoneOOP Max (Family)MOOP FamFamily OOP MaxNot used
oon_individual_deductibleOON Individual DeductibleOON Individual DeductibleN/AOON Individual DeductibleDeductible OUTOON Individual DeductibleN/A
oon_family_deductibleOON Family DeductibleOON Family DeductibleN/AOON Family DeductibleFamily Deductible OUTOON Family DeductibleN/A
oon_individual_oop_maxOON Individual OOP MaxOON OOP Max (Ind.)N/AOON OOP Max (Ind.)MOOP OUT IndOON OOP MaxN/A
oon_family_oop_maxOON Family OOP MaxOON OOP Max (Family)N/AOON OOP Max (Family)MOOP OUT FamOON Family OOP MaxN/A
Benefits
Normalized FieldBlue CrossGatorCareSCANAetnaUHCCignaHumanaKaiser (future)Molina (future)Oscar (future)
categoryCategory HeaderCategoryCommon Medical EventMedical EventCategoryBenefit CategoryCategory
service_namePCP VisitPrimary Care ProviderPCP VisitPrimary Care VisitPCP Office VisitPCP VisitPrimary Care Physician
place_of_serviceOffice VisitOfficeOfficeOfficeOffice / TelehealthOfficeOffice / Telehealth
deductibleDeductible Applies?Subject to DeductibleDeductible Waived?Subject to DeductibleApplies / WaivedAppliesUsually Waived
copayCopayCopaymentCopayCopayCopayCopayCopay
coinsuranceCoinsuranceCoinsuranceCoinsCoinsuranceCoinsuranceCoinsuranceCoinsurance
Limits
Normalized FieldBlue CrossGatorCareSCANAetnaUHCCignaHumanaKaiser (future)Molina (future)Oscar (future)
typeVisits / DaysVisitsDaysVisitsDays / UnitsVisitsFrequency
valueVisit Limit / Day LimitVisit LimitDay LimitVisit LimitStay LimitVisit LimitAllowance
periodPer Year / Per StayAnnualBenefit PeriodPer YearPer Stay / Per YearPer YearAnnual
Conditions
Normalized FieldBlue CrossGatorCareSCANAetnaUHCCignaHumanaKaiser (future)Molina (future)Oscar (future)
prior_authorizationPrior AuthPrior AuthorizationPrior AuthPrior AuthPrior AuthPrior AuthPrior Auth
referral_requiredReferral RequiredReferral RequiredReferralReferralReferral RequiredReferral RequiredReferral Required
notesNotes / LimitationsLimitationsNotesNotesLimitationsNotesPlan Notes
Source Reference
Normalized FieldBlue CrossGatorCareSCANAetnaUHCCignaHumanaKaiser (future)Molina (future)Oscar (future)
pageSBC PageSBC PageSBC PageSBC PageSBC / EOC PageSBC PageSBC/EOC Page
excerptText SnippetText SnippetSnippetSnippetSnippetSnippetSnippet
Field Definitions
FieldTypeDescription
plan_idstringNormalized unique identifier of the plan
carrierstringCarrier or issuer name
plan_namestringMarketing name
plan_typestringHMO / PPO / EPO / MA
yearintegerCoverage year
marketstringCommercial, MA, Group, etc.
individual_deductiblemoneyDeductible for individual
family_deductiblemoneyDeductible for family
Carrier Vocabulary
FieldTypeDescription
plan_idstringNormalized unique identifier of the plan
carrierstringCarrier or issuer name
plan_namestringMarketing name
plan_typestringHMO / PPO / EPO / MA
yearintegerCoverage year
marketstringCommercial, MA, Group, etc.
individual_deductiblemoneyDeductible for individual
family_deductiblemoneyDeductible for family
Pharmacy Tiers
Normalized FieldBlue CrossGatorCareSCANAetnaUHCCignaHumanaKaiser (future)Molina (future)Oscar (future)
tier_idT1; T2; T3; T4; T5 (Humana, illustrative)
nameTier 1 Preferred Generic … Tier 5 Specialty (Humana, illustrative)
drug_classpreferred_generic; generic; preferred_brand; nonpreferred_brand; specialty (Humana, illustrative)
tier_codepreferred-generic; generic; preferred-brand; non-preferred-brand; specialty (FHIR DrugTierVS)
Pharmacy Networks
Normalized FieldBlue CrossGatorCareSCANAetnaUHCCignaHumanaKaiser (future)Molina (future)Oscar (future)
network_idPREF_RETAIL; STD_RETAIL; MAIL_ORDER (Humana, illustrative)
namePreferred Retail; Standard Retail; Mail Order (Humana, illustrative)
network_typepreferred_retail; standard_retail; mail_order (Humana, illustrative)
default_day_supply30 retail; 90 mail order (Humana, illustrative)
Coverage Stages
Normalized FieldBlue CrossGatorCareSCANAetnaUHCCignaHumanaKaiser (future)Molina (future)Oscar (future)
stage_idDEDUCTIBLE; INITIAL; CATASTROPHIC (Humana, illustrative)
nameDeductible; Initial Coverage; Catastrophic Coverage (Humana, illustrative)
stage_typedeductible; initial; catastrophic (Humana, illustrative)
Pharmacy Tier Codes
drug_classtier_code (FHIR DrugTierVS)
preferred_genericpreferred-generic
genericgeneric
preferred_brandpreferred-brand
nonpreferred_brandnon-preferred-brand
preferred_specialtyspecialty
nonpreferred_specialtyspecialty
preventivezero-cost-share-preventive

Future carriers (e.g., Kaiser, Molina, Oscar, Ambetter) already have placeholder columns for expansion.

Purpose

Carriers do not use consistent terminology.
For example:

  • One carrier may label a row “Office Visit - Primary Care (PCP)”,
    while another writes “Primary Care Provider: You pay $25”,
    and another uses “PCP Copay per encounter”.

  • Deductible applicability might be written as:

    • “After deductible”
    • “Subject to deductible”
    • “Copay does not apply to deductible”
    • “Ded waived”
    • Combined expressions such as “$25 copay + 20% coinsurance after deductible”

Without a standardized crosswalk, ingestion pipelines must be hand-tuned for every carrier.

The crosswalk solves this by documenting, for each normalized field:

  • How each carrier expresses the value
  • Semantics that must be preserved
  • Parsing notes and exceptions
  • Mappings into the normalized JSON structure

Structure of the Crosswalk

The Google Sheet contains multiple tabs, including:

Plan Metadata

Maps identifiers such as:

  • plan_id
  • carrier
  • plan_type
  • market

Network Tiers

Mappings for:

  • In-network / out-of-network naming
  • Tier structures
  • Carrier-specific vocabulary

Accumulators

How each carrier expresses:

  • individual_deductible
  • family_deductible
  • individual_oop_max
  • family_oop_max
  • oon_individual_deductible (v1.1.0)
  • oon_family_deductible (v1.1.0)
  • oon_individual_oop_max (v1.1.0)
  • oon_family_oop_max (v1.1.0)

Benefits

Mappings for:

  • categories
  • service names
  • copays
  • coinsurance expressions
  • deductible applicability

Limits

Mappings for:

  • visit/day limits
  • period definitions (annual, per stay, lifetime, etc.)

Conditions

Mappings for:

  • prior authorization
  • referral requirements
  • contextual notes

Source Reference

Extracts and page references used for ingestion traceability.

Pharmacy Module (draft v0.2.0)

Draft — non-normative

The pharmacy crosswalk tabs render the BPS pharmacy module v0.2.0, a draft module that is not yet wired into the core schema (it targets core v1.2.0). Unlike the medical tabs (sourced from the carrier Google Sheet), the pharmacy tabs are sourced from a versioned repo file (docs/specification/pharmacy-crosswalk-data.json) and validated against the module's JSON Schema — Phase 1 of the crosswalk pipeline. Carrier data is illustrative for now: only the Humana column is populated (from the public module example), and other carriers are intentionally blank.

The pharmacy module adds crosswalk coverage for the pharmacy concepts that appear in carrier SBCs/EOCs. Because the crosswalk is a carrier-SBC-vocabulary map, only those concepts get carrier-matrix tabs:

  • Pharmacy Tiers — formulary tier structure (tier_id, name, drug_class, tier_code). Maps how each carrier labels its drug tiers (e.g., Tier 1 Preferred Generic … Tier 5 Specialty).
  • Pharmacy Networks — pharmacy network structure (network_id, name, network_type, default_day_supply). Distinct from the medical Network Tiers tab; covers preferred retail / standard retail / mail order / specialty pharmacy.
  • Coverage Stages — Medicare Part D coverage phases (stage_id, name, stage_type). Post-2025 (IRA redesign): Deductible / Initial Coverage / Catastrophic Coverage. (The pre-2025 Coverage Gap is retained only for historical plan years.)
  • Pharmacy Tier Codes — a reference table (not a carrier matrix) mapping the module's drug_class values to the canonical FHIR DrugTierVS tier_code (e.g., preferred_brandpreferred-brand, preferred_specialtyspecialty, preventivezero-cost-share-preventive).

Not in the crosswalk: the module's drug-level formulary data — individual drugs (rxcui, drug_name, ndc), utilization-management flags, and indication-dependent coverage_exceptions[]. That data comes from formulary files (CMS QHP / Medicare Part D / FHIR DaVinci US Drug Formulary), not from SBCs/EOCs, so it is documented in the module schema as a field reference rather than mapped here as carrier vocabulary.


Using the Crosswalk

When integrating a new carrier:

1. Identify each benefit entry

Locate the carrier’s terms in the crosswalk (or add them when necessary).

2. Map each value to the normalized field

Examples:

  • Copay differences

    • Blue Cross: “$25 per visit”
    • SCAN: “$0 copay, coinsurance does not apply”
      These map to benefits[].cost_shares.copay.
  • Deductible expressions

    • GatorCare lists medical and pharmacy separately
    • Aetna merges them
      The crosswalk clarifies how to populate individual_deductible, family_deductible, and related fields.

3. Capture exceptions and conditions

Ambiguous phrasing such as:

  • “after facility fee”
  • “per admission deductible”
  • “ded waived for virtual visits”

should be documented in the crosswalk’s notes column.

4. Extend when necessary

If a carrier introduces:

  • new cost-share terminology
  • split benefit categories
  • multi-tier networks

add a row or column to the Google Sheet and update the ingestion rules accordingly.


Updating the Crosswalk

The Google Sheet is the canonical source of truth for carrier mappings.
Updates follow these principles:

  • Accuracy first — No changes without verification against the SBC/EOC.
  • Non-breaking additions — New carriers and vocabulary should not break prior mappings.
  • Schema alignment — Crosswalk rows correspond exactly to the normalized fields.

For contributors assisting with ingestion logic or analysis, edit access may be granted through the governance process.


Summary

The Carrier Crosswalk is essential for:

  • Translating carrier-specific formats into a unified schema
  • Ensuring ingestion is deterministic and predictable
  • Maintaining consistency across carriers
  • Supporting extension as new carriers and plan types are analyzed

The live version ensures that the standard remains current, accurate, and interoperable across all benefit plan formats and carriers.