Methodology
This page explains how the index is built: how prices per milligram are calculated, which sellers are included, how unusual prices are reviewed and how the price index works.
Price per milligram
- Every listing states a price, a currency and a pack size. The pack size is converted to milligrams (1 mcg is 0.001 mg, 1 g is 1000 mg) and multiplied by the pack count.
- The listed price is converted to US dollars with the exchange rate stored by the index, and the price per milligram is the dollar price divided by the total milligrams.
- All arithmetic uses decimal numbers. The stored value keeps six decimals and is rounded half up. For display, values of 1 or more show two decimals and values below 1 show four decimals.
- Units that cannot be converted exactly (such as IU, ml or kg) are not accepted.
- Lowest price, median and seller count are calculated per compound and per form (vial, capsule, liquid, powder, topical, other) and never mix forms. Blends are separate compounds and are compared only with the same blend.
- Only listings that are currently in stock are compared. Out-of-stock listings stay visible, are shown last and marked, and are left out of the lowest price, median and seller count. A form with listings but none in stock shows "No in-stock price".
Inclusion standard
A seller is published only after a checklist is passed:
- an open retail site with a working checkout (noted, not required: a seller that does not pass this can still be published),
- its own brand (noted, not required: sellers that resell third-party brands are accepted),
- retail rather than wholesale,
- not a prescription, quote-only, remote consultation or pharmacy site (noted, not required: a seller that does not pass this can still be published),
- one company, one site (other sites of the same company are not listed),
- not an imitation of another site,
- the unit price is within the price limit, or has been reviewed by a person.
Closed sellers keep their profile page, which is excluded from search engines, and their listings are not compared.
Price review rules
Unusual prices are held for a person to review instead of being published or rejected automatically:
- Price limit: a listing whose total price is above 300 USD goes to manual review.
- Ratio check: when at least three comparable in-stock listings exist for the same compound and form, a price per milligram below 0.1 times or above 15 times their median goes to manual review.
Listings under review are not shown and are not used in any statistic until a person accepts them.
Stale prices
Each listing shows the date its price was last checked. A listing last checked more than 30 days ago (the default threshold) is grayed out with a note that the price may have changed. It is not deleted.
Update frequency
Prices are re-checked on a schedule. Priority listings are re-checked about every 7 days and the remaining listings about every 14 days. The date shown for each listing is the date it was last checked.
Price Index
- A series is one compound in one form. Each day the median price per milligram of its in-stock listings is recorded, but only when at least two different sellers and two listings are present.
- After a series has 10 days with data, the average of its first 10 daily values becomes its base level. The series index is 100 times the current level divided by the base level.
- The overall index and the type indexes are the median of the series indexes in their scope. An index is published only when at least 3 series are included.
- While history is too short, the homepage and the Price Index page show "Data accumulating" with a table of current price levels. These are levels, not index values, and no percentage change is shown.
- The index describes listed prices only. It is not a forecast and not advice.
Data collection
- Automated collection identifies itself with the User-Agent
ruoindexbot, followed by a version and the address of this page. - We visit public pages the way a normal browser does and keep a gap between requests to the same site; when we hit a captcha, an access check, or an access block such as 401/403, we stop and do not try to get around it.
- It does not use rotating proxies or browser fingerprint disguise.
- It reads only public structured facts: compound name, form, price, currency, pack size, pack count, stock status and link. It does not collect product descriptions, usage text, contact details or personal information.
- AI is used only to help extract those facts, and every extracted value must be backed by saved evidence before it is accepted.
- Sellers can ask for a correction, or ask automated collection to stop, through the contact page.
AI crawler policy
Search and retrieval crawlers that cite and link back to this site (for example OAI-SearchBot and PerplexityBot) are allowed. Crawlers that only collect training data (for example GPTBot, Google-Extended, CCBot, Applebot-Extended and Bytespider) are disallowed. The list is kept in a configuration file and reviewed regularly.
AI-assisted content
Some text on this site is drafted with AI assistance and is reviewed by a person before publication. It follows the same content limits as all other text: prices, specifications, public seller information and market-level articles only.
Independence
This site does not sell products, does not endorse any seller and is not affiliated with any seller. Sellers marked as affiliates are disclosed on their profile, and listings are ordered by price only.