Medicare Formulary Change Tracker
Pricing
from $5.00 / 1,000 results
Medicare Formulary Change Tracker
Tracks Medicare Part D formulary changes for the drugs you care about: tier moves, prior authorization added or removed, step therapy, quantity limits, drugs dropped from formularies. Official CMS data, plan-level context, structured output.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Kasım Genç
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
Tracks Medicare Part D formulary changes for the drugs you care about and reports every change as structured data:
- "Ozempic moved from Tier 2 to Tier 3 on this formulary (39 plans)." (
tier_changed) - "Prior authorization is now required." (
prior_auth_added) - "Step therapy added." / "Quantity limit changed from 2/28d to 1/28d."
- "The drug was dropped from this formulary entirely." (
drug_removed_from_formulary)
Source: the official CMS Monthly Prescription Drug Plan Formulary files — the authoritative, complete record of every Part D formulary in the US, refreshed monthly. Drug names are resolved through the National Library of Medicine's RxNorm, so you can track by brand name ("Ozempic"), generic name ("semaglutide") or RXCUI — all dose forms are covered automatically.
Who uses this
- Pharma market-access teams — know the day your product (or a competitor's) gets a tier bump, PA or ST anywhere in Part D.
- Specialty pharmacies — anticipate reimbursement friction before prescriptions start bouncing.
- Benefit consultants & brokers — advise clients with plan-level facts.
- Healthcare analytics & investors — formulary positioning changes as a clean data feed.
How it works
Each run finds the newest CMS monthly release, extracts the formulary and plan-information files (a few MB via targeted range requests — not the full multi-GB archive), filters to your drugs' product RXCUIs, and diffs the coverage state of every (formulary × product) pair against the previous run's snapshot. Each change is enriched with plan context: how many plans use that formulary, sample plan names, contract ids and the states they operate in.
CMS publishes monthly — schedule the Actor weekly or monthly; runs between releases simply report zero changes.
Input
{"drugs": ["Ozempic", "Eliquis", "Jardiance"],"states": ["TX", "FL"],"contractIds": [],"emitBaselineRecords": false}
| Field | Type | Description |
|---|---|---|
drugs * | string[] | Brand/generic names or RXCUIs, max 200. All product dose forms are tracked per drug. |
states | string[] | Optional: only formularies used by plans operating in these states. |
contractIds | string[] | Optional: only formularies used by these CMS contracts (e.g. H0028). |
emitBaselineRecords | boolean | Push the full current coverage picture on the first run. A nationwide drug can span 500+ formularies × dose forms — thousands of records. Default false. |
snapshotStoreName | string | Named key-value store for snapshots between runs. |
Output
One dataset record per (formulary × drug product) change:
{"drug": "Eliquis","product": "apixaban 5 MG Oral Tablet [Eliquis]","rxcui": "1364445","formularyId": "00026000","planCount": 39,"samplePlans": ["Humana Gold Plus SNP-DE H0028-007 (HMO D-SNP)"],"contracts": ["H0028", "H1036"],"states": ["FL", "GA", "NE", "TX"],"changeType": "tier_changed","previousTier": 4,"currentTier": 3,"priorAuthorization": false,"stepTherapy": false,"quantityLimit": "2/28d","changes": [{ "field": "tier", "kind": "tier_changed", "old": 4, "new": 3, "description": "Tier 4 -> 3 (more favorable)" }],"sourceFileDate": "20260630","detectedAt": "2026-07-10T18:08:50.965Z","source": "CMS Monthly Prescription Drug Plan Formulary (Medicare Part D)"}
changeType values
| Value | Meaning |
|---|---|
baseline | First run — current coverage state (opt-in). |
tier_changed | Cost-sharing tier moved (see previousTier/currentTier). |
prior_auth_added / prior_auth_removed | PA requirement toggled. |
step_therapy_added / step_therapy_removed | ST requirement toggled. |
quantity_limit_added / quantity_limit_removed / quantity_limit_changed | QL toggled or amount/days changed. |
drug_added_to_formulary | Product newly covered by a formulary. |
drug_removed_from_formulary | Product no longer on a formulary. |
A run summary (CMS release processed, counts per change type) is stored under the OUTPUT key of the default key-value store.
Notes & limitations
- Scope: Medicare Part D (and MA-PD) formularies — the segment CMS publishes completely and machine-readably. Commercial/employer formularies are not included.
- Changes are detected at formulary level (CMS's unit of truth); the
planCount/contracts/statesfields tell you the blast radius of each change. - The first run after the annual plan-year rollover (January file) naturally produces a large wave of changes — that's real (plans reset formularies yearly), not noise.
- This is data, not advice: verify critical decisions against the CMS files and plan documents.