Price changes and corrections, on the record

Automated monitoring diffs every tracked pricing page weekly. When something moves, it gets a dated, sourced entry here — and subscribers get one email. RSS feed.

2026-09-13 ww-clinic — WeightWatchers' BBB rating has been withdrawn to Not Rated. It was C- when we first recorded it on 2026-09-08. BBB gives the reason as the business being "in the process of responding to previously closed complaints", and its three-year complaint count moved from 1,828 to 1,836 — so this is an active state rather than an absence of data, and our flag now says which. Confirmed at BBB's own profile page. Shed's Trustpilot score also moved 4.7 to 4.6 on 1,130 reviews, confirmed at source; the rest of this month's trust refresh was review-count and complaint-count drift across sixteen channels. source
2026-09-11 ulo — Ulo's topical finasteride-plus-minoxidil combination is now listed from $69/mo at 0.2% finasteride with 7% minoxidil. We had been publishing a 'HiGrowth combo' at 0.3% finasteride with 6.5% minoxidil for about $49/mo, a figure carried as reported rather than read at source; that product name appears on neither of Ulo's collection pages today and the strengths and price have both moved. Plain oral minoxidil is unchanged at $24, $29 and $36 for 1.25mg, 2.5mg and 5mg, and Ulo has added combination pills with folic acid, vitamin D or finasteride from $45 that we do not track as separate rows. source
2026-09-10 trimi — No price moved — $99/mo semaglutide and $125/mo tirzepatide hold — but Trimi now prints the yearly total beside them ($1,188 and $1,500) and says outright that "prices shown are monthly equivalents of annual billing", which is the clearest statement yet that neither is a rate you can pay monthly. Its refund policy also now carries a 6-month money-back promise that was not there before. The cancellation cutoff is unchanged and still strict — cancel free before a prescription is written, nothing back afterwards even if unshipped — and the promise requires six continuous months with no pause, no early stop and no skipped doses, a logged starting and six-month weight, and zero net weight loss rather than disappointing loss. Read at source; Trimi dates the policy page 2026-06-17. source
2026-09-09 found — Found now publishes a plans-and-pricing page, and with it the figure that had kept it out of our rankings. Cash plans are $289/mo month-to-month or $169/mo on a 12-month plan paid up front, with the compounded medication included and no separate membership fee — previously it published medication prices but not the subscription cost, so no honest all-in figure could be computed and the row carried a blank. It enters the index at $289 all-in. Two pieces of fine print travel with it: the plans bill per 28-day cycle rather than per calendar month, which is about 13 payments a year and roughly $300 more than twelve times the headline, and branded GLP-1s are billed separately and are not included in the plan price. The insurance track is cheaper on paper ($199/mo, or $99 prepaid) but adds a per-visit copay, so it is not a like-for-like cash price and is not ranked. source
2026-09-09 lillydirect-zepbound — Zepbound self-pay at $449 on the 7.5, 10, 12.5 and 15 mg doses is a purchase offer, not a standing price. Lilly's regular price is $499 at 7.5 mg and $699 at 10 mg and above, and the offer only continues while each refill is bought within 45 days of the previous delivery; the savings card expires 31/12/2026. We had published $449 as a flat rate, understating the top three doses by $250 a month for anyone whose refill slips. Read in-browser at Lilly's own savings page; the site blocks server-side fetches. source
2026-09-09 lillydirect-foundayo — Foundayo's 2.5 mg and 5.5 mg doses are temporarily reduced to $149 and $199 through 31 December 2026, against regular prices of $199 and $299, and the top two doses (14.5 mg, 17.2 mg) can be had at $299 rather than $349 on a purchase offer that requires each refill within 45 days of the previous delivery. We had been publishing the regular list, which overstated what a buyer pays today by up to $100 a month on two doses. Read in-browser at Lilly's own savings page; the site blocks server-side fetches. source
2026-09-09 ww-clinic — WeightWatchers Clinic's page now names two membership tiers where it previously showed one: $74/mo on a 12-month plan and $84/mo on a 6-month plan, both $25 for the first month and both auto-renewing for another full term. The $74 we publish did not move. What changed is what the page reveals about it — that the cheapest rate is the longest lock-in, and that no month-to-month rate is published at all. Our note had also said '$25/mo first 2 months', where the page says the $25 covers the first month only, and carried an unverified '~$149 month-to-month' that appears nowhere on the page; both are corrected. Detected by the weekly diff and confirmed at source the same day. source
2026-09-08 nutrafol-men — Nutrafol Men's monthly subscription went from $70.40 to $79. The list price did not change — it is still $88 — so this is a cut to the subscribe discount, from 20% off to 10% off, rather than a price rise on the product. The longer plans moved too: 3 months from $198 to $224, 6 months from $396 to $422. Detected by the weekly diff and confirmed on Nutrafol's own product page the same day. source
2026-09-08 happyhead — Happy Head raised oral finasteride at every tier and compressed the discount for committing. It was $19, $16 and $14 a month on 1, 3 and 6-month plans; it is now $20, $19, $18 and $17 on 1, 3, 6 and 12 months. The gap between the shortest and longest commitment fell from $5 a month to $3, so the reward for locking in a year is smaller than the reward for six months used to be. A 12-month tier is new. Worth knowing before comparing against a monthly price: the 6-month plan is $108 charged every six months, not $18 billed monthly, and the same six-month supply bought once is $144. Detected by the weekly diff and confirmed on Happy Head's own product page the same day. source

Looking for the raw record? This page is what we write up. The price history is the machine-recorded audit trail — every movement in the tracked dataset, appended automatically, with the provider page each new figure came from.

Corrections#

When we get something wrong, it gets recorded here: what we said, what it says now, and how we found out. Entries are never edited or removed after the fact, because a corrections log you can quietly revise is worth nothing. 15 logged.

We said: That the Alabama State Board of Medical Examiners issued its GLP-1 declaratory ruling in August 2024, carried as a reported item without a primary source.

It now says: The ruling records that the Board considered the pharmacy board's petition on 18 July 2024, and states no later adoption date. The entry is now dated 2024-07-18 and links the ruling itself.

How we found it: Working the last reported-only rows on the state-enforcement page down to primary sources. The ruling is a 41-page PDF that a fetch returns as binary, so it was read by extracting the text directly.

Also fixed: The three holdings are now quoted verbatim rather than summarised, and the entry says what was previously only implied: the pharmacy board cannot discipline a physician, so it petitioned the medical board to reach office compounding instead. That route is the reason the item is worth carrying at all, and it was missing from the reported version.

We said: That Ulo sells a "HiGrowth combo" of 0.3% finasteride with 6.5% minoxidil at about $49/mo.

It now says: Ulo lists a topical finasteride-and-minoxidil combination from $69/mo at 0.2% finasteride with 7% minoxidil. The HiGrowth name appears on neither of its collection pages, and the strengths and the price have both moved.

How we found it: The weekly watcher flagged a new $45 token on Ulo's minoxidil page. Reading the page at source to confirm it showed the $45 belonged to new oral combination pills we do not track, and that the row we did publish described a product Ulo no longer lists.

Also fixed: The row had been carried as reported rather than read at the provider's own page, which is why it aged without anything flagging it — the only figure on our hair tables not confirmed at source was also the only one that turned out to be wrong. It is now marked as listed and dated. Plain oral minoxidil is unchanged at $24, $29 and $36 for 1.25mg, 2.5mg and 5mg, and its note now records that the combination pills starting at $45 sit outside that range rather than leaving the range looking incomplete.

We said: Nothing, in words — but the index shipped with its sort control set to "Lowest true cost" above a table that was not in cost order. NovoCare at $349 sat first and Mochi at $139 seventh, and the "lowest listed" badge sat in the middle of the table on a row nothing above it undercut.

It now says: The table is ordered by all-in monthly cost, cheapest first, in the HTML the build ships as well as after the script runs. Rows with no computable monthly figure sort last rather than as zero.

How we found it: Found while adding ItemList structured data to the index. Writing the schema meant stating the ranking and its basis explicitly, and the schema's order did not match the page's — which is the point of writing it down. Two separate faults: the monthly branch of the sort returned the authored order untouched, on an assumption that prices.json was already in price order that was true when it was written and stopped being true as channels were added; and the sort function was only ever bound to the change event, so a reader who never touched the control got whatever order the HTML was in.

Also fixed: The rows are now sorted at build time, so the order does not depend on JavaScript running. The ItemList reads display.monthly_usd — the same field the table renders and sorts on — after a first attempt computed a fresh minimum across dose tiers and produced $149 for NovoCare in the schema against $349 on the page. This is the site's first rule, that rankings follow cost, and the headline table was not following it.

We said: That Zepbound self-pay costs $449 a month at 7.5 mg and above, as a flat rate, and that Foundayo costs $199 at 2.5 mg and $349 at the top two doses.

It now says: Neither ladder is flat. The Zepbound $449 is a purchase offer that continues only while each refill is bought within 45 days of the previous delivery; Lilly's regular price is $499 at 7.5 mg and $699 at 10, 12.5 and 15 mg, so a refill that slips costs $250 more than we were showing. Foundayo runs the other way: 2.5 mg and 5.5 mg are temporarily reduced to $149 and $199 through 31 December 2026, and the top two doses are $299 on a 45-day refill offer, so we were overstating what a buyer pays today by up to $100 a month. Every tier now carries the price you can pay today, the provider's own 'regular' price beside it, and the condition attached.

How we found it: Both pages block server-side fetches, so the weekly watcher has been reporting them as unfetchable rather than checking them, and they sat on a manual-check list nobody had worked. Reading them in a browser instead — a public savings page, no intake and no account — showed the self-pay prices sit behind an insurance-type selector, and the fine print under it does not match the headline.

Also fixed: This one had been visible in our own writing for a while: the Zepbound dossier's summary already said 'refill within 45 days or high-dose pens revert toward $699' while the price table beneath it published $449 with no qualification. The editorial knew and the dataset did not. Cost Plus Drugs also began blocking us on a second page; its finasteride and sildenafil prices were checked the same way and are unchanged.

We said: That Noom Med's first month costs $129, on the index and against every Noom row in the deal finder — a tool whose entire job is ranking introductory offers.

It now says: Noom prices the first month per dose tier, not per medication: $129 for full-dose semaglutide but $49 for the microdose, and $149 versus $79 on tirzepatide. The $49 microdose entry is the cheapest all-in first month in the index, and we had it listed at 2.6 times its real price. Each tier now carries its own first-month figure and the deal finder emits one row per distinct offer.

How we found it: The weekly watcher flagged a removed $50 token on Noom's cost page. Nothing we publish had moved — the $50 was a promotional figure we never carried — but re-reading the page at source to confirm that showed four first-month prices where our record held two.

Also fixed: The deal finder had $39 typed into it as the membership intro fee. It was correct for all three channels that reach that branch, but a fourth channel with a different intro would have been labelled $39 without anyone noticing, so the figure is authored per channel in the dataset now.

We said: "Subscribing now puts you on the founding list — you'll get the first report when sending begins," beneath a working-looking email form on this page and another in the homepage hero.

It now says: There is no list, and both forms are gone. Neither was connected to anything: the submit handler called preventDefault and the address was discarded, so every person who typed their email into this site received a message implying they had signed up for something that did not exist. The page now says plainly that alerts are not open, and points to the RSS changelog feed, which carries the same verified changes today and has done all along.

How we found it: Found while working the subscriber backlog. The task list had three further items that add more email-capture points, and checking what the existing capture actually did with an address answered whether to build them.

Also fixed: The dek claimed 39 watched pricing pages as a typed number; it is now counted from the watcher's own target list, which makes it 40. It also counted 18 channels while the page count counted 17, because one includes the discontinued 503B row and the other does not. And a drafted answer here claimed most weeks see no price changes at all — true-sounding, but our change record is days old and cannot support it, so the page says the record is too short to say instead.

We said: That Cora's $99 and $135 and Shed's $159 and $239 were ordinary monthly prices. The overpaying tool tags a row 'annual plan' when the medication's billing text contains the exact phrase 'annual commitment', which only Trimi's does — so those four prepaid-year tiers were offered to someone checking whether they pay too much, ranked cheapest, with no annual label on them. The index's month-to-month filter separately included WeightWatchers Clinic, which was hardcoded into it by channel id, and Found, whose own contract field reads 'annual-commitment options'.

It now says: Both read the dose tier's own commitment field. The four tiers carry the annual label in the tool, and the month-to-month filter means what it says: a channel qualifies if it has a tier you can cancel out of, or — where it sells no priced medication — if its contract says month-to-month. WeightWatchers and Found no longer appear in it.

How we found it: The weekly watcher flagged a new price token on WeightWatchers. Verifying it at source showed the channel publishes only 6-month and 12-month plans, which made the hardcoded month-to-month exemption obviously wrong, and pulling that thread found the billing-string test behind it. The check:commitment gate added on 2026-09-08 should have caught both and did not: it required the string test to sit on an identifier, so `(m.billing ?? '').includes(...)` slipped through. The gate was widened first, and it then found both instances itself.

Also fixed: Seventh and eighth instances of this defect. The gate now fails on the parenthesised form, which is the shape both live instances took — a gate with a false negative inside its own defect class is worse than no gate, because it gets trusted.

We said: That the $25 introductory rate covered the first two months, and that a month-to-month plan existed at roughly $149.

It now says: The $25 covers the first month only, on either plan. No month-to-month rate is published: the choices are a 12-month plan at $74/mo and a 6-month plan at $84/mo, both auto-renewing for another full term, with fees non-refundable once a period starts. The $149 figure was carried with an 'audit scheduled' caveat and appears nowhere on the page, so it is removed rather than restated.

How we found it: Confirmed at the provider's own page on 2026-09-09 after the weekly watcher flagged a new price token on it.

Also fixed: The channel now states that its cheapest advertised rate is also its longest commitment, which is the fact a reader comparing it against month-to-month telehealth actually needs.

We said: That Cora's and Shed's cancel-anytime plans carry an annual commitment. Their price tables appended "· annual commitment" to every row, so Cora's $175 month-to-month tier read "flat, monthly billing · annual commitment", and the cheapest-row badge sat on the $99 annual prepay as though it were the best available price.

It now says: Only tiers that actually require a year are labelled. The badge marks the cheapest tier a buyer can cancel — $175 at Cora — and annual rows now carry a line explaining that they sort above it without being the better deal for anyone who does not finish the year. Where a provider publishes nothing but annual tiers, as Trimi does, no row is badged and the page says why.

How we found it: Found while adding structured data to the dossiers. The label was driven by the channel's billing string, which reads "monthly or annual prepay" for both providers, so it matched every tier including the month-to-month ones. The dose tiers have carried an explicit commitment field since we added it; this template was never switched over to it.

Also fixed: This is the fourth place the same defect has appeared — after the comparison tool, the homepage calculator and the GLP-1 wizard, all of which ranked or labelled tiers off a channel-level billing string rather than the tier's own commitment field. The harm ran the opposite way here: rather than making a prepaid year look cheap, it made the flexible plan look locked. Every consumer of the commitment field now reads the field.

We said: That one in five people stop taking a GLP-1 within three months, used to argue that both annual break-evens sit beyond the point where a meaningful share of buyers have already quit.

It now says: Nothing about three months. The study we cite reports discontinuation at one year and two years and at no earlier timepoint, so the three-month figure was not ours to state. The argument now runs on the twelve-month figure that is actually measured — 64.8% of patients without type 2 diabetes had stopped by one year — which every break-even on the page still falls inside, and the page now says explicitly that the earlier number does not exist rather than leaving a gap for someone to fill in again.

How we found it: Found while drafting a second page on the same subject. Writing out the sourcing for each figure meant going back to the paper, and the three-month claim had no line in our dataset behind it — efficacy.json only ever carried twelve- and twenty-four-month figures. Re-reading the paper confirmed it reports no three-month or six-month estimate at all.

Also fixed: The break-even table on the same page was hardcoded — Cora at $99/$175 and Shed at $159/$199 typed into the source directly beneath a comment claiming everything on the page derives from the datasets. The values were correct, but a price change would have updated every other table while leaving these stale, which is the exact defect we corrected on the finasteride markup table on the same day. Break-evens are now computed from prices.json, and providers with no month-to-month rate are excluded by construction rather than by a hand-maintained list. The duplicate page whose drafting surfaced all this was not published: the existing page already covered the subject, and a second one would have put two of our own pages in competition for the same question.

We said: That the policy direction reversed in 2026, framing the removal of 12 peptides from the FDA's Category 2 list as movement toward availability, and that the FDA's formal updated list had not yet published.

It now says: Removal from Category 2 conferred no compounding eligibility. Interim enforcement discretion attaches only to Category 1, and the 12 removed peptides were placed on no list at all, which carries none — the same practical position as Category 2. FDA did publish an updated 503A category list on 14 May 2026; what remains unpublished is a proposed rule, which is a slower and different thing.

How we found it: A deep primary-source review against FDA's own category list, the statute at 21 U.S.C. 353a, and the binding bulks list at 21 C.F.R. 216.23. Our original framing tracked the general press coverage, which had the same error.

Also fixed: The tracker page carried the same claim and was corrected at the same time. GHK-Cu — the only one of the 19 peptides that can lawfully be compounded today, and only in non-injectable form — had been missing from the tracker entirely and was added.

We said: Sixteen articles and one dataset carried publication dates between 8 and 22 September 2026, up to sixteen days in the future.

It now says: All normalised to the real publication date. The one genuinely forward-looking date, a scheduled FDA advisory committee deadline in February 2027, was left alone because it refers to a future event rather than claiming a future publication.

How we found it: Caught by scanning every date in the source tree against the current date while fixing an unrelated page.

We said: That Hallandale Pharmacy, the 503A pharmacy Cora names, is PCAB-accredited — stated as fact in Cora's review and trust file.

It now says: That Cora describes Hallandale as PCAB-accredited, and that we could not verify it. The claim is the seller's, and it is now labelled as the seller's.

How we found it: While building the 503A pharmacy index we went to check the accreditation at source. Hallandale's own site does not mention PCAB, or the terms 503A or 503B, on the pages we could read on 2026-09-07, and we could not complete a lookup in ACHC's accredited-organization directory. Absence of a claim is not proof of absence of accreditation, which is exactly why the fix is to attribute rather than to contradict.

Also fixed: The original note already said Cora's pharmacy naming was a marketing claim we could not confirm contractually, so the accreditation should never have been carried as a bare fact alongside it.

We said: That the holder's country is a column in FDA's Drug Master File list, and that the supplier-country split was therefore a download and a pivot rather than an estimate.

It now says: The DMF list carries six fields — DMF number, status, type, submit date, holder and subject — and country is not among them. The filing counts are read from the file; the country split is our attribution from each holder's name and corporate domicile, and now says so.

How we found it: A reader asked which American manufacturers appear in the data. Answering it meant downloading the 2Q2026 workbook and parsing it rather than citing it, and the file turned out to have no country field. The claim had been on the page for a few hours, added the same day while linking the register.

Also fixed: The filing counts were checked against the file at the same time and hold exactly: 95 semaglutide filings from 71 distinct holders, 40 tirzepatide filings from 38. The three US-domiciled holders are now named on the page — AMBIO INC and APICORE LLC for semaglutide, APICORE US LLC for tirzepatide — which matches the 'United States 2' and 'United States 1' the page already reported.

We said: That Happy Head bills monthly — stated on the hair hub, this article and its provider description — and, in this article's markup table, that Happy Head's rate was $19 a month.

It now says: Happy Head's longer plans bill up front: its six-month plan is $108 charged every six months rather than $18 a month, and the one-time price for the same supply is $144. The rate is $20 on the shortest plan, not $19.

How we found it: The weekly price watcher flagged the page and re-reading it at source showed every tier had risen. Checking where the old figure appeared found it typed into this article's table under a comment claiming each figure was traceable to the dataset, when none of them were read from it.

Also fixed: The article's rates are now derived from the dataset wherever a row carries a comparable figure, so this cannot drift again. Hims and Keeps keep an authored value because neither publishes a single rate — Hims quotes a 'starting at' floor and Keeps' sources spread $16-25 — and the table now labels those as our estimate rather than showing them as published prices. The topical row carries a note that the bottle is a 25-day supply at twice-daily use, flagged for a checkout walk rather than asserted as a billing interval.

How detection works#

  • Weekly automated diffs of every tracked provider pricing page.
  • Any detected change triggers a human re-verification (checkout walk for T1 channels).
  • Confirmed changes land here and in the price-drop alert email.

How we verify →

Prices here change constantly. Every verified change is published as it lands. The changelog feed →