Data
The index in numbers
Every figure below is computed from the same listings the price index shows, and each one links to exactly what it counts.
As of . Recomputed every hour.
20,553
By market
The index never ranks these against each other. How a listing’s market is decided.
Of the 2,109 vendors in the directory, 1,369 are online stores and 740 are Chinese suppliers.
Certificates of analysis
We hold certificates of analysis for 3 of the 950 vendors with a price on the index. That counts what we hold, not whether a vendor tests: our certificate ledger opened in September 2026, and a vendor with none on file here may still test its products and publish the results on its own site.
How fresh the prices are
Latest price check: 7 November 2026 at 05:00 UTC. The median listing had last been checked 2.0 days before these figures.
- Checked in the last 24 hours: 27.5%
- Checked in the last 7 days: 76.7%
- Last checked more than 30 days ago: 10.8%
- No check date: 0 listings
Most listings that age are at stores behind firewalls or logins our automated reader cannot enter yet. An old check date means we have not re-read the page, not that anything is wrong with the store. What “checked” means.
How prices moved
Movement measured from 5 October 2026.
In the 30 days to 7 November 2026, 13,132 listings had two recorded prices at least 7 days apart.
Median change in price per mg: 0.0% across all 13,132; −8.3% across the 1,398 that moved.
Citing these figures
These figures are recomputed every hour, so cite them with the date. For a figure that will not change after you quote it, cite a quarterly edition.
PeptidesFinder, “The index in numbers”, https://peptidesfinder.is/data, as of 7 November 2026.
No quarter has been frozen yet.
The Q4 2026 edition freezes on 1 January 2027 at 00:05 UTC.
What each figure counts
- As of
- The moment the figures describe. On the live page that is when they were last computed, which happens hourly. On a quarterly edition it is the moment the edition was frozen.
- Listings on the index
- A listing is one vendor’s price for one peptide. It is on the index when we hold a price per milligram for it, its product page answered the last time we checked, it is not being held back for review as a likely unit or size error, its vendor is live and listed, and it is priced in US dollars. This is exactly the set the price index shows. Listings we hold but do not show are not counted anywhere on this page.
- price_per_mg > 0 AND link_ok AND NOT price_suspect AND vendor active AND vendor not unlisted AND currency USD
- Vendors with a price on the index
- Distinct vendors with at least one listing on the index.
- Peptides with a price on the index
- Distinct peptides with at least one listing on the index. We hold profiles for more peptides than this; a peptide nobody currently lists at a price we can show is not counted.
- Vendors in the directory
- Businesses listed in the PeptidesFinder directory — approved, shown in our listings, and not recorded as closed — whether or not we show a price for them. Many sell by quote or over chat and publish no price we can read.
- portal_status = 'active' AND NOT unlisted AND closed_at IS NULL
- Retail, Bulk and Chinese
- A listing is Chinese when its vendor is a Chinese wholesale supplier, Bulk when one purchase is 10 or more vials, and Retail otherwise. The market belongs to the listing, not the vendor, so one vendor can appear in two markets, and the vendor counts per market do not add up to the total.
- Certificates of analysis on file
- Vendors with a price on the index for whom we hold at least one certificate of analysis: a document published on PeptidesFinder, approved for publication and not withdrawn. This measures our certificate ledger, not how many vendors test. The ledger opened in September 2026 and grows as vendors send us certificates and as we enter them, so a vendor with none on file here may still test its products and publish the results on its own site. A vendor saying that it tests is not counted.
- distinct vendors on the index with vendors.coa_public_count > 0
- Latest price check
- The most recent time any listing on the index was checked. A check means our reader loaded the vendor’s product page and read the price on it, and the stock where the page shows it. We test no product.
- Price age
- For each listing, the time since it was last checked, measured from the as-of moment. The page gives the median of those ages and the share of listings checked within a day, within a week, and more than 30 days ago. Listings with no check date were imported and have not been re-read since.
- Price movement
- Each listing is compared with itself: its first and its latest recorded price within the 30 days before the as-of moment, at least 7 days apart, in the same market and in US dollars. The page counts how many became cheaper, dearer or stayed the same, and gives the median change across all of them and across those that moved. A vendor joining or leaving the index therefore never reads as a price change. Listings priced only once in the window, or read only by a method that does not save a price at each check, are not compared, and the page says how many were.
- Movement measured from
- The date from which our automated reader has saved a listing’s price every time it checks it. The movement figures start from this date. Before it we kept only a log of changes of 1% or more in a listing’s price per mg. That log holds no price for a check at which nothing changed, and not the listing’s market or currency, so the like-for-like comparison the movement figures make cannot be built from it.
- Quarterly editions
- Each quarter’s figures are frozen at 00:05 UTC on the first day of the next quarter and never changed afterwards. An edition is stored with the full set of listings it was computed from, so its counts can be recomputed from that set. Its movement figures are recomputed from the prices we saved before the freeze, which a later vendor merge or deletion can change; the edition keeps the figures as first published. A quarter that was not frozen within 7 days of closing has no edition, because a later freeze would describe a different day.