Pharma Commercial Mock
GET/api/mmit/formulary

MMIT formulary coverage

Plan-by-plan formulary snapshot — tier, restrictions, lives covered.

Simulates MMIT Network formulary data. Returns 20+ real US payer plans (UHC, Anthem/Elevance, Aetna, Cigna, BCBS family, Humana, Centene, Kaiser, Molina) across commercial / Medicare Part D / Medicaid Managed Care / Health Exchange channels. Each plan carries both `drug_list_tier` (payer's raw tier) and `unified_tier` (MMIT-normalised) plus canonical restriction codes.

Query parameters

NameTypeDescription
productrequiredstring
Brand name.
e.g. ZENVARA
as_ofstring (ISO date)
Snapshot date. Drives the month_id and the seeded sample.
default: today

Response schema

PathTypeDescription
productstring
Echo of the product param.
as_ofstring
Snapshot date in ISO.
month_idinteger
YYYYMM identifier for the snapshot — MMIT convention.
Source: MMIT API monthid
commercial_lives_covered_pctnumber
Lives-weighted commercial coverage percentage. Anchored to early-launch range 45-65%.
medicare_lives_covered_pctnumber
Same for Medicare Part D. Range 30-50%.
medicaid_lives_covered_pctnumber
Same for Medicaid Managed Care. Range 30-40%.
plans[]array
Plan-level formulary entries.
plans[].plan_idstring
Stable plan identifier (e.g., PLN-UHC-COM-001).
plans[].plan_namestring
Real US payer plan name (e.g., 'UnitedHealthcare Choice Plus PPO').
plans[].parent_payerstring
Parent insurer (UnitedHealth Group, Elevance Health, etc.).
plans[].pbmstring
Pharmacy Benefit Manager (OptumRx, CVS Caremark, Express Scripts, etc.).
plans[].controllerstring
Entity making the formulary decision — usually the PBM.
Source: MMIT API
plans[].channelenum
Commercial | Medicare Part D | Medicare Part B | Medicaid Managed Care | Health Exchange | Managed Medicaid.
Source: MMIT Analytics
plans[].plan_typeenum
HMO | PPO | EPO | POS | MA-PD | PDP.
plans[].benefit_designenum
Pharmacy or Medical.
plans[].covered_lives_mnumber
Lives covered in millions. Anchored to Drug Channels / KFF / Venteur.
plans[].drug_list_tierinteger
Payer's raw tier (1-6). Tier nomenclature differs across payers.
plans[].unified_tierenum
MMIT-normalised: Generic | Preferred Brand | Non-Preferred Brand | Specialty | Non-formulary | Unknown.
Source: MMIT FormularyUnifiedTiers
plans[].coverage_statusenum
Covered | Covered with Restrictions | Preferred | Non-Preferred | Not Covered | Exception-Eligible | Non-formulary | Unknown.
Source: MMIT glossary
plans[].restrictions[]enum[]
PA (prior auth), ST (step therapy), QL (quantity limit), AL (age limit), GL (gender limit), BvD, LA (limited access / SP), MO (mail order), NF (non-formulary exception), SOC (site of care).
Source: MMIT glossary + payer formulary keys
plans[].effective_datestring
When the plan's coverage decision took effect. ≤ as_of.
plans[].as_of_datestring
Snapshot observation date — equal to top-level as_of.
summaryobject
Aggregations: total_plans, plans_covered, plans_not_covered, plans_with_pa, plans_with_st, plans_specialty_tier.

Behaviour notes

  • ·20+ plans guaranteed, spanning commercial / Medicare / Medicaid / exchange.
  • ·Commercial / Medicare coverage % anchored to realistic early-launch ranges.
  • ·PA dominant restriction at launch (~72% of plans); ST and QL secondary.
  • ·Top US payers (UHC, Aetna, Cigna, Humana, Anthem) always present.
  • ·Two-date semantics: `as_of` = observation snapshot, `effective_date` = when the change took effect at the plan.

Examples

Coverage snapshot
curl 'http://localhost:3000/api/mmit/formulary?product=ZENVARA&as_of=2026-05-01'

Sources