Skip to content

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.

By market

The index never ranks these against each other. How a listing’s market is decided.

MarketListingsVendorsPeptides
Retail18,003888129
Bulk2,063135102
Chinese4872180

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.

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.

814

became cheaper · 6.2%

584

became dearer · 4.4%

11,734

did not change · 89.4%

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.

Quarterly editions

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.