Skip to main content
MediNav

How we score Medicare plans

Plain-English methodology for the priority-weighted ranking that powers /shop/medicare. If something looks wrong on your results page, the explanation is probably here.

Data sources

Priority weights

Picking a profile card on the priority step (Spec 02) sets one of four weight presets. Each weight is 0–5; they multiply against per-plan attribute scores in the matcher.

ProfileDoctorDrugPremiumPredictNo-PA
Keep my doctor52234
Lowest drug costs25333
Lowest premium22511
Most predictable33254

Scoring components

Known limitations

  1. Per-visit medical copays aren't in the Landscape file — they live in the PBP Section C dataset, which we haven't fully ingested. About half of WI plans show “—” for those fields and a footer flagging missing PBP data.
  2. Provider directory accuracy is the biggest known gap. Industry standard data sources lag by months and contain ~52% errors per CMS audits. Until we integrate a real-time directory verification API (e.g. Ribbon), every “in-network” claim should be confirmed with the carrier.
  3. Medigap rates are indicative. Wisconsin doesn't publish a public Medigap rate file. Our Medigap entries show a representative mid-range premium and are flagged with a banner. For real Medigap quotes, call SHIP (1-800-242-1060) or carriers directly.
  4. Drug pricing varies by pharmacy. We don't differentiate between preferred and non-preferred pharmacy networks yet. For LIS / SeniorCare members, this can be a meaningful difference.
  5. Star ratings change yearly. Plans new to the market or that just changed contracts may show “no rating yet.” We display the current published rating without weighting for plan age.

Questions or corrections

File an issue on GitHub with what you saw vs. what you expected. Methodology changes are committed publicly with rationale.

Last reviewed April 25, 2026. Methodology files live in packages/matcher/src/index.tsand packages/plan-catalog/src/.

← Back to Learn