The glp1.health Methodology
Our methodology: how glp1.health turns NADAC, Part D, Medicaid and FDA data into numbers, and what the glp1.health Check re-reads on each program weekly.
This is the glp1.health Methodology: every source we read, how we turn it into a number, and what each number cannot tell you. Nothing is published here without a source you can open yourself.
Five public datasets carry the federal figures. The program prices, the glp1.health Check and the glp1.health Score are ours, and this page states how we produce each one.
The sources we read
- CMS National Average Drug Acquisition Cost (NADAC). A weekly survey of what retail pharmacies pay to acquire a drug. Published per pricing unit.
- FDA National Drug Code directory. Product, package and labeler listings. The source of every pack size we use.
- CMS Medicare Part D prescriber data. Prescriber and claim counts by geography and drug, for 2024.
- CMS State Drug Utilization. Quarterly Medicaid prescription counts and reimbursement, by state and product.
- FDA enforcement records. Published warning letters, the registered outsourcing facility list, and closeout letters.
Program prices are not federal data. We read them from each program’s own site and record an observer, a date and the URL we read them from.
The glp1.health Check
The Check is what we run on a program before it appears anywhere on this site, and again every week after. Every answer it produces is printed on the review as its own row.
We list a program only when we have a partner link with it. The editorial policy states what that link decides and what it does not.
- Price. We read the program’s own pricing page, record the figure, the date and the page we read it from, and keep the previous figure as history.
- Pharmacy. We record who the program says fills its prescriptions, and whether it names a 503A or a 503B facility.
- Certification. We record whether the program displays a LegitScript certification badge.
- States. We record where the program says it ships, and any condition it attaches to that.
- Terms. We record the minimum commitment and whether the program says you can cancel at any time.
- Enforcement. We check the program, and the pharmacy it names, against our own FDA warning letter register and the 503B outsourcing facility list.
- The site itself. We capture the program’s home page and publish that capture on the review, so you can see the site we read. Where we cannot reach a working site, the review stays up as a record, we stop linking to the program, and it appears in no ranking.
"Not published" is an answer we print. A program that publishes nothing on a row gets that stated, because a blank space is not an answer.
The glp1.health Score
The Score is the figure out of 10 on every program review, with its tier beside it. The Check is the evidence. The Score is what we conclude from it.
Seven dimensions make the Score. Each is scored 0 to 10, and the weights are published here so the number can be checked rather than believed:
- Price transparency — weight 20. Can you find out what you will pay before handing over a card, and does the price we publish still hold when we re-read the page.
- Cost and value — weight 15. What the program charges, held against what the medication underneath costs. We rank programs on the month-to-month price: the lowest standing price with no term past one month. A program that sells no month-to-month plan is ranked on its shortest plan, per month, and the review states the term.
- Medication and pharmacy traceability — weight 15. Whether the program names the pharmacy that fills its prescriptions, and whether that pharmacy stands in a public register.
- Clinical access and oversight — weight 15. Who prescribes, how you reach them, and what the program publishes about clinical oversight.
- Safety and enforcement — weight 20. The FDA record of the program and of the pharmacy it names.
- Terms, commitment and refunds — weight 10. The minimum commitment, whether you can cancel, and any money-back terms.
- Availability and fulfilment — weight 5. The states served, the shipping cost and the shipping speed.
Every sub-check takes one of four values:
- Stated and good. Full marks.
- Stated and bad. 0 to 2 out of 10. The program told us, and the answer is poor.
- Not published. 3 out of 10. A blank is worse for you than a bad answer, but it is not a lie. "Not published" is an answer we print.
- Not readable. Left out of the arithmetic entirely, and the confidence level drops. A program is never scored down for blocking our crawler.
A confidence level is published beside every Score. It states our own coverage, not the program's quality. High means we read at least four of the program's five page kinds this cycle, hold a screenshot and six or more claims, and the price check answered on every live offer. Medium means we read at least two page kinds and got a price check answer that was not a failure. Anything less is Low, and the review says so.
A Score is computed from the rubric above and the cited evidence. Commission is not an input, and a program cannot pay to change it. The editorial policy states what does.
How we derive a package cost
NADAC publishes a rate per pricing unit. Ozempic is priced per millilitre. A pen holds 3 mL, and a carton holds several pens.
We multiply the NADAC rate by the pack size from the FDA NDC directory. Nothing is estimated. Where a package size cannot be parsed from the FDA listing, we exclude the package rather than approximate it, so a missing price shows as absent instead of as a wrong number.
This is a pharmacy acquisition cost. It is what a pharmacy pays a wholesaler. It is not a retail price, not an insurance price, and not what a patient pays. Every page that shows one says so beside the figure.
How we derive prescriber counts
Part D counts describe Medicare prescribing only. They exclude commercial insurance, Medicaid and cash-pay entirely, so we treat them as a floor on prescribing activity, never as a total.
City counts include only clinicians with 11 or more claims of a drug. CMS suppresses smaller cells to protect patient privacy, so a city page understates the real count and says which direction it errs in.
State counts come from the CMS state roll-up rather than from summing our city figures, which would double-count a clinician who practices in two cities.
How we derive Medicaid figures
State Drug Utilization is quarterly. We add fee-for-service and managed care together, because the page reports total Medicaid activity in the state.
We exclude suppressed cells and never treat one as a zero. A state with no publishable figure is reported as having none, which is different from a state that paid nothing.
How we build the enforcement register
We read every FDA warning letter from the agency’s published list, and we keep the letter when its text names a GLP-1 molecule.
Each letter page quotes one passage from the letter and links the letter itself. The quote is the evidence; we never paraphrase an allegation.
Three distinctions carry through every safety page:
- A warning letter is an allegation the FDA has published. It is not a court finding.
- A closeout letter means the agency considers the matter addressed. Its absence means no closeout has been published, not that the matter is unresolved.
- Registering as a 503B outsourcing facility is a filing, not an approval. "Not yet inspected" is not a passed inspection.
We link a letter to a program only where the named firm can be matched to it with confidence. An unmatched letter stays on its own page rather than being attributed to a company that may not be the one named.
How we record a program price
We store each price as an observation with a date, an observer and the URL it was read from. Observations are append-only, so an old price becomes history rather than being overwritten.
Three rules decide the headline "from" price, and all three are enforced in the database rather than in a page:
- The standing rate, never the introductory month. A program priced at $147 for one month and $297 after is listed at $297. Ranking it at $147 would describe a price nobody pays twice.
- All-in beats service-only. Where a program sells the consultation separately from the medication, we use the figure that includes the medication.
- A copay is not a price. Where a figure depends on your insurance, we record no price. The program still shows which drugs it prescribes.
We show an introductory price beside a standing price only when both belong to the same plan.
How we re-check a price
Every week the Check re-reads about fifty program sites and compares what each one now says against the price we publish.
A re-read that agrees with the stored price is not a new observation. Appending one would move "verified on" dates on pages nobody verified, so agreement, failure and ambiguity are all recorded separately from the price itself.
A price the robot finds has moved does not move the page. It lands in a drift report that a person reads. Changing a published price is an editorial act, and it stays behind a flag a person types. That is why a figure here can be a few days behind the program’s own site, and why it is never a number nobody checked.
Where commercial links appear
Program reviews, rankings, alternatives and provider comparisons may carry marked commercial links to the programs they describe — including programs selling compounded GLP-1s. The safety register, the /data statistics and the trust pages carry none, and that separation is built into the templates rather than left to editing: those page types have no way to render an offer.
What holds a page back
We do not publish a page because its subject exists. We publish it when it has something to say, and the rule is written per page type:
- A cost page needs a resolvable NADAC package cost.
- A state cost page needs unsuppressed Medicaid data and a price.
- A comparison needs a price on both sides.
- A ranking needs at least three qualifying programs.
- A program review needs a Score and at least one price we verified ourselves.
- A letter page needs the quoted passage.
Remove the data and the page comes down again. The check runs on every refresh.
Our refresh cadence
NADAC publishes on Wednesdays and our weekly job runs the same morning. It reloads NADAC, Medicaid utilisation and Part D, re-reads the FDA warning letter list and the 503B outsourcing facility register, and runs the price Check across every program we rate.
Part D is annual. State Drug Utilization is quarterly. Each page shows the effective date of the data it holds, not the date the page was last touched, and only a page whose data actually moved gets a new date.
Corrections
Where a figure on this site disagrees with its source, the source is right. We correct against the source file, and the page’s date moves with the correction. Report one to contact@glp1.health with the page and the figure.