Methodology
Last updated
BetterBuyRx exists because drug pricing is opaque on purpose. Here is exactly how we collect, normalize, and verify every number on the site.
Sources
We integrate with the 29 pharmacies and coupon networks listed below. The Active sources tile above is the honest live count, adapters that haven't returned a quote in 72 hours show as idle until they're back online. Buyable rows can be checked out at the listed price; reference rows are wholesale benchmarks (NADAC) for context only.
- NADAC wholesale benchmarkopen dataset · reference only
- Walmart $4 / $10 generic liststatic catalog
- Costco Member Prescription Programstatic catalog
- H-E-B $4 / $8 / $12 genericsstatic catalog
- Sam's Club Plus $0 select genericsstatic catalog
- NeedyMeds / manufacturer PAPsstatic catalog · reference only
- Rx Outreach (nonprofit mail-order)static catalog · reference only
- Hippo (hellohippo.com)discovered api
- BetterBuy Rx (EZRx Drug Card)discovered api
- Amazon Pharmacy RxPassstatic catalog
- Mark Cuban Cost Plus (catalog)static catalog
- Mark Cuban Cost Plus (live GraphQL)discovered api
- Cost Plus (live scrape fallback)browser render
- GoodRxbrowser render
- SingleCarebrowser render
- RxSaverdiscovered api
- WellRxbrowser render
- Optum Perksdiscovered api
- Honeybee Healthdiscovered api
- DiRx Healthdiscovered api
- HealthWarehousediscovered api
- Marley Drugbrowser render
- Blink Healthdiscovered api
- PlanetDrugsDirect (international mail-order)discovered api
- RxConnected.com (international mail-order)discovered api
- PricePro Pharmacy (international mail-order)discovered api
- Amazon Pharmacy / OTCbrowser render
- Walmart (OTC search)browser render
- Target (OTC search)browser render
Refresh cadence
A pg_cron job runs hourly, popping the 25 stalest medications and re-fetching all applicable adapters in parallel. Every medication is touched at least every ~72 hours. Search-time top-up fills any gap on demand.
Normalization
Pack sizes are parsed (e.g. "30 tablets") and prices scaled so $/unit is comparable across sources. We never invert a price. We never extrapolate one pack size to another pharmacy without disclosing it.
Failure handling
When a source fails (timeout, blocked, no SKU), we record the failure with reason + cooldown (6h before retry). We never substitute a guessed number. If we can't verify a price, we say so out loud.
Conflicts of interest
No pharmacy, coupon network, or manufacturer can pay for placement or a higher ranking. Our ranking is never for sale. The cheapest option is always ranked first, including home-delivery options, and nothing about how the site is run is allowed to change your price or the order of results. Period.