§ The providers
Who sells what — and who to trust.

An independent overview of the compounded-GLP-1 telehealth market and the providers we cover — market size, what the FDA changed, and an honest read on each.

View the provider overviewAll 14 reviews
§ Learn
The educational layer, in progress.

Primers for newcomers and deep dives for the curious. The foundation articles are published; more are in the pipeline.

View all Learn articles
§ Methodology · Price Index

How the PeptideWellness Index measures a price

Every figure in the Index is one number standing in for a page of fine print. This is the rule we apply to get there — what counts as the price, where we are allowed to read it, who may change it, how often it is re-checked, and what the Index still cannot tell you.

A GLP-1 price is rarely a number. It is a headline figure, a membership billed separately, a first month that costs less than the second, a dose ladder, and a supply period that is sometimes twenty-eight days and sometimes a calendar month. Every comparison table has to collapse that into one figure, and the collapse is where comparisons go wrong.

This page is the rule we use, stated in full so you can check our arithmetic rather than trust it. It covers the price tracker and the record of changes behind it. For our editorial standards generally — sourcing, provider reviews, corrections, conflicts of interest — see our methodology.

§ 01 / What the Index measures

What the Index measures

One ongoing month of treatment, all in.

Ongoing means the second month and every month after it, not the first. All in means the medication plus any membership or consultation fee the provider requires in order to keep prescribing. If a provider sells $60 of medication but will not prescribe it without a $79 monthly membership, the Index reads $139, and the row shows both halves.

That is the figure a person keeps paying. It is frequently not the figure on the card.

§ 02 / The three normalisation rules

The three normalisation rules

The lowest non-promotional rung of the published ladder. Where a provider publishes prices by dose, we quote the cheapest one that carries no promotion, and put the rest of the ladder on the row so you can see what titration costs.

Two things get excluded here, and only one of them is about dose. Time-limited and conditional promotions are out: an advertised price that requires a sign-up deadline, or applies only to the starting doses, is not the price of treatment. The lowest dose, on the other hand, is not excluded — an earlier pass of ours quoted one provider at its 5 mg price on the reasoning that treatment titrates upward, and that was a judgement we are not positioned to make. It also could only be applied to the two providers who publish a ladder at all, which left us comparing their maintenance prices against everybody else's entry prices in the same table. The lowest rung is something anyone can check for themselves, and it applies to every provider in the table.

Membership at its ongoing rate. Never the discounted first month, never the annual-prepay rate. A membership that costs $39 to start and $149 thereafter enters at $149.

Twenty-eight days is not a month. Several providers quote a 28-day supply and call it a month — two of them say so in their own copy. A 28-day price is about 8.7% cheaper than a calendar month, so we scale it by 30.44 / 28, where 30.44 is 365.25 / 12. This is why one provider reads $126 here and $116 on its own page. The row says so.

We publish no cost per milligram. Compounded doses titrate and are not quoted per mg, so a per-mg figure would be set by which dose we picked rather than by the price — and our figure bundles a flat membership that does not scale with dose at all. A number we cannot derive honestly is a number we leave out.

§ 03 / Where a figure may come from

Where a figure may come from

The provider's own published pricing page, or its own terms. Nothing else.

Not a comparison site, not a roundup, not an affiliate-funded table. This rule was tightened after a pass that leaned on third-party roundups: when each of those figures was re-checked against the provider, every single one was wrong. If a provider does not publish a price, we carry no row for it rather than borrowing one.

Manufacturer-direct prices — the self-pay programmes run by the drug makers themselves — are read from the manufacturer's own page and shown as reference rows. They are a baseline to compare telehealth pricing against, not providers we review.

Every row carries the link it was read from and, where the wording matters, the provider's own sentence. If you think a figure is wrong, both are on the row.

§ 04 / Who may change a price

Who may change a price

A person. Only a person.

Prices live in one file the editorial team keeps under version control. Changing a figure there requires the provider's own wording quoted verbatim beside it; a price does not move on somebody's recollection, and it does not move because a script thinks it should. Every change is stamped with who made it and when, and that is what writes the new figure into the record.

There is exactly one edit our automation may make, and it does not touch prices: when the morning re-check confirms a figure character for character against its source, it may advance that row's check date. Even that is only proposed. A person has to approve it before it lands.

The reason for that limit is the failure it prevents. Software that can write prices will eventually write a misread page into the record as confidently as it writes a real one — and on a page whose entire claim is that you can check it, that is the one error we cannot afford.

§ 05 / How a figure is re-checked

How a figure is re-checked

Every morning, automatically, every row is read again from its source and compared against what we publish. The job reports; it does not write.

Providers do not all answer the same way, so there are three channels:

Live. The provider serves its price in the page. Most rows are read this way.

Archive. Two providers refuse automated requests outright, and the refusal is based on how the request itself looks rather than on what it claims to be, so pretending to be a browser does not help. The Internet Archive's crawler is allow-listed and captures those pages every one to two weeks, so we read the newest capture of the provider's own page. The evidence is real and it is dated; it is just not today's.

Browser. One provider's price appears only once its page has finished loading and running, so we open that page in a real browser, automatically, and read what a person would see.

The outcome of a morning check is one of three things. Every row matched, and the check dates advance. Something moved, and a human is asked to open the page, decide what happened, and edit the ledger. Or a row could not be read at all — and that last case is reported as our fault, not as a price change, because a figure the provider still publishes and our own tooling has stopped finding means the row is live on this site unchecked. Those two outcomes used to be reported the same way, which for three weeks made a broken check look like a clean one. They are separated now for that reason.

§ 06 / Two dates, and why they differ

Two dates, and why they differ

The date at the top of the Index is when the table was compiled. The date on each row is when that provider's page was last observed. They are different measurements and they differ, sometimes by weeks.

The check date is deliberately literal. For the two providers we can only read through the Internet Archive, the honest check date is the capture date — not today. Stamping today would tell you the price was seen today when the evidence is a fortnight old. On one occasion applying this rule moved two rows' dates backwards, which is the correct direction when the alternative is a date we cannot support.

A row whose check is more than a week behind the compilation date is marked stale on the page. That mark is not a defect notice; it says nobody has seen that provider's live price recently, which is exactly what a reader comparing prices needs to know.

§ 07 / How the history is built

How the history is built

Every time the ledger changes, the whole table is copied into a dated store that is only ever added to. Nothing in it is rewritten or deleted, including figures we later decide were wrong.

The price history is built from those snapshots, and it publishes changes rather than readings. A reading that matches the reading before it says nothing, so it gets no row. What appears is the days on which a figure moved: the figure before, the figure after, and the page each was read from.

Where the two readings bracketing a change are more than a week apart — which is normal for the archive-read providers — the row says so, because in that case we have located the change to a window and not to a day. The full daily archive of every reading is published as a file, so anyone can do the collapse differently, or check ours.

A provider selling compounded and branded versions of the same molecule is two series, not one. When a provider switches between them, one series ends and another begins; joining them would draw a price rise where there was a product substitution.

§ 08 / When the change was ours

When the change was ours

Some movements in the record were not the provider's doing. We replaced an advertised first-month rate with the ongoing one; we started scaling a 28-day cycle; we moved from a marketing card to the terms page. In the data those look exactly like a price change, because in the data they are identical: two numbers and two dates.

Those rows are labelled as ours, with the reason beside them, and they are not coloured as market movements. A series whose only movement was one of these reads as unchanged, because the price was.

We show them rather than quietly restating the old figure. A record that can be edited without saying so is not a record — and being able to see that four of the first eight movements were ours is a more useful fact about this dataset than any single price in it.

§ 09 / What this cannot tell you

What this cannot tell you

It is not the market. It is a small number of providers and two molecules. A cheaper seller almost certainly exists somewhere we do not carry.

The lowest rung is not what you will pay. If your prescription titrates above the starting dose, your cost is on the ladder in the row's notes, not in the headline figure.

A wrong figure can sit here for a while. Our own corrections are the proof: each one was live for weeks before somebody read the provider's page closely enough to catch it. The daily re-check shortens that window; it does not close it.

Some prices are read on a delay. Where a provider blocks automated reads, our evidence is an archive capture that can be a fortnight old, and the row's check date says so.

Nothing here is medical or financial advice, and price is not a ranking. A cheaper provider is not a better one; we publish no score and take no payment for placement.

§ 10 / The data, and what you may do with it

The data, and what you may do with it

The current snapshot is published as JSON and CSV. The change feed is published as JSON, and every individual reading behind it as CSV, which accepts a date range.

All of it is licensed CC BY 4.0: reuse it, including commercially, with attribution to PeptideWellness and a link back.

The licence covers our compilation — which providers we track, the all-in normalisation, the per-month figures we derive, and the collapse of readings into changes. It does not cover the providers' own published prices. A price is a fact, and facts carry no copyright for anyone to grant.

§ 11 / Frequently asked

Frequently asked

Why is your figure higher than the price on the provider's site?

Usually one of three things: their headline is a first-month rate, or it is a medication price with a mandatory membership left out, or it is a 28-day supply presented as a month. Open the row and you get the provider's own wording beside the arithmetic, so you can see which. What's actually in a GLP-1 price walks all six of the gaps with the sellers' own sentences, if you want to do this check yourself on a page we do not track.

How often do the prices change?

Less than anyone expects. Across the first eight months of daily collection, two figures moved for reasons the providers chose. That finding is itself the argument for keeping the record.

Do affiliate relationships affect the ordering?

There are none. PeptideWellness uses no affiliate links and earns no commission from any provider in the table. Rows are sorted by normalized price and nothing else.

Are these medications FDA-approved?

Some are and some are not, and that distinction matters more than the price. Manufacturer-direct products are FDA-approved finished drugs. Compounded semaglutide and tirzepatide are not approved finished products, are not available in every state, and are prepared by a pharmacy rather than the manufacturer. Verify with the provider.

How do I report a figure I think is wrong?

Write to editorial@peptidewellnessusa.com with the row and what the provider's page says. We re-read it against the source, and if we were wrong we correct it and say so in the record rather than quietly restating it.

If you find a place where the Index departs from any of this, tell us at editorial@peptidewellnessusa.com. Corrections go into the record, not over it.