Skip to content
PPepIndex

Reference

Methodology

The PepIndex Evidence Rubric scores each vendor 0–100 on five weighted criteria, computed from stored data points by the formula published on this page — never assigned by an editor. A data point with a checkable source contributes its full weight; a value recorded without a source contributes nothing at all. Every score is published beside a coverage figure showing how much of the profile the score actually rests on.

Rubric v1.10.0, effective 2026-08-05 · re-verification window 90 days

What we measure

We measure what a vendor can demonstrate about its own testing and its own business, using material the vendor or a third party has published. We do not measure product quality, and we could not: nobody can assay a vial they have not received. What we can do is record, precisely and with dates, whether a vendor publishes enough for anyone to check it — and whether what it publishes holds up when checked.

Every factual field in this index is stored as a sourced fact rather than a bare value. Each carries the type of source, the URL we saw it at, the date we last confirmed it, and a flag for whether we corroborated it. That structure is the product. A list of purity percentages with no provenance is not a record of anything.

Criterion weights

Rubric v1.10.0

Weights sum to 100 and live in a single configuration file. Any change re-computes every score.

Testing transparency26%

Is the testing lab named? Is it ISO/IEC 17025 accredited? Are certificates of analysis lot-specific, and can anyone read them without an account?

Documentation depth22%

Does the vendor publish labeled-versus-actual milligram figures, retain historical certificates, and how large are the discrepancies we can measure?

Price & value20%

How the vendor’s per-milligram prices for a standard basket of common compounds compare to the market. Priced below the peer median scores higher; well above it scores lower. An overpriced vendor cannot outrank a comparably documented, better-priced one.

Track record12%

Adverse regulatory or enforcement action on record — warning letters, import alerts, seizures, criminal charges. Authority-issued and publicly verifiable. Self-reported reviews are deliberately not scored: for this market they can be manufactured.

Business transparency12%

Is a legal entity named, is there a physical address, and can the vendor be reached?

Commercial clarity8%

Is pricing visible without an account, is there a stated guarantee or reship policy, and are payment methods disclosed?

Sourced versus unsourced

Every factual field carries a provenance credit that multiplies whatever merit the value itself has. Published information is taken at face value: a vendor stating its own address, pricing or payment methods, or publishing a certificate for a lot, is recording something observable, not making an unverifiable claim about a third party.

  • Sourced — recorded with a checkable source we can point to. Credit 1.00.
  • Unsourced — recorded without a checkable source. Credit 0.00. Such records also fail our build-time validation and are not supposed to ship.
  • Not recorded — we hold nothing. Treated as unknown: left out of the score rather than counted as a zero, and it reduces coverage.

The distinction between unsourced and not recorded is deliberate. An unsourced field counts in full and earns nothing, so deleting a source can never raise a score — it costs. A field we simply do not hold is a partial gap: it counts at half weight, so a vendor that publishes what others leave blank scores higher, while a blank still costs something. And a whole criterion we could not assess at all — track record, when no independent reviews are locatable — is dropped and the remaining weights renormalised, so an unmeasurable criterion does not push every vendor down. What the score does not rest on, the coverage figure beside it makes explicit.

How coverage is computed

Coverage is a second, separate number, published beside every score. It is the weighted share of scored fields that we hold and corroborated:

coverage = Σ(signal weight × provenance credit) ÷ Σ(signal weight)

A sourced field contributes its full weight, and a missing or unsourced field contributes nothing. Coverage says nothing about whether the answers were good — only about how much of the profile the score rests on. A vendor can score badly on high coverage, which means we know a great deal and most of it is unflattering. A vendor can also score respectably on low coverage, which means the number is thin. Both readings are legitimate; neither is available if you publish only one figure.

We never show a rank without its coverage. Not on the home page, not in a table, not in the exported dataset.

Every signal, in full

19 signals

The complete list of what feeds a score. Weights are relative within a criterion and normalised at score time, so a criterion always scores out of 100 before its criterion weight is applied.

CriterionSignalWeight in criterion
Testing transparencyTesting lab is namedlab_named1
Testing transparencyLab holds ISO/IEC 17025 accreditationlab_accredited4
Testing transparencyCertificate granularitycoa_policy3
Testing transparencyCertificates readable without an accountcoa_public_access4
Testing transparencyRecognised testing laboratorylab_legitimacy6
Documentation depthLabeled vs. actual mg publishedlabeled_vs_actual_published1
Documentation depthHistorical certificates retainedhistorical_coas_retained3
Documentation depthCertificates the vendor publishescoa_record_count7
Documentation depthLabeled vs. actual discrepancydiscrepancy_magnitude1
Documentation depthCertificate recencycoa_recency4
Business transparencyNamed legal entitylegal_entity_named3
Business transparencyPhysical address publishedphysical_address2
Business transparencyContact channelscontact_reachability2
Commercial clarityPricing visible without an accountpricing_transparency4
Commercial clarityGuarantee / reship policyreship_policy3
Commercial clarityPayment methods disclosedpayment_methods1
Commercial clarityPayment offers buyer recoursepayment_recourse3
Price & valuePrice vs market ($/mg)price_index10
Track recordRegulatory & enforcement recordenforcement_record10

Re-verification cadence

Every data point carries the date we last confirmed it. A point older than 90 days is marked stale wherever it appears, flagged in our build-time data-health report, and retains 90 percent of its credit until re-checked.

The modest penalty is deliberate. Staleness is our failure to re-check, not the vendor’s failure to publish, so it reduces our confidence rather than condemning the vendor. The visible marker, not the arithmetic, is doing most of the work.

Corrections to a published score

Every score on this site is computed. There is no path by which an editor types a number into a vendor’s scorecard and publishes it as though it were measured.

A score changes for one of three reasons: a data point was corrected, a data point gained or lost a checkable source, or the rubric itself changed and every score was recomputed. Nothing is edited silently.

The exported dataset carries computedScore and finalScore as separate fields so that a downstream consumer can always see whether the two have diverged.

Editorial checks

Some facts have no URL to cite because the finding is an absence: a page that does not exist, an email that went unanswered, a certificate archive that no longer resolves. These are recorded as editorial_check data points, with a note describing what we did and when.

This is the only source type permitted to lack a URL, and it exists so that negative findings can be recorded honestly instead of being left blank. Every other source type must carry a link, enforced by validation that fails the build.

What we do not do

  • We do not routinely commission our own assays. Most certificate records here are vendor-published documents we located and read, and are recorded as published. Where an assay was independently commissioned the record says so.
  • We do not evaluate substances. We publish no dosing information, no protocols, and no health-outcome claims. Compound pages describe what published literature exists; they do not instruct use.
  • We do not rate customer service, shipping speed, or packaging except where they appear in the volume and sentiment of independent reviews.
  • We do not hand-enter scores. Every figure on a vendor profile is computed from the data points listed beneath it, on the weights published above.

Common questions

How does PepIndex score vendors?
Each vendor is scored 0–100 on five weighted criteria: testing transparency (26%), documentation depth (22%), track record (12%), business transparency (12%) and commercial clarity (8%). The score is computed from stored data points by a published formula, not assigned by an editor.
What makes a data point count toward the score?
Every field is stored with its source. A data point recorded with a checkable source contributes its full weight to the score; a value recorded without any checkable source contributes nothing while still counting against the total. Published information — a vendor's own address, pricing, or a certificate it publishes — is taken at face value rather than discounted as an unverifiable claim.
What does the coverage figure mean?
Coverage is the weighted share of scored fields we hold with a checkable source for a vendor. It is published beside every score because a 90 built on four sourced fields and a 90 built on forty are not the same finding. A score is not interpretable without it.
Are PepIndex scores hand-set?
No. Every score is computed from the stored data points by the formula on this page. The vendor profile prints the full calculation — each signal, its weight, the value behind it and whether it was corroborated — so any published figure can be reconstructed by hand.
Does PepIndex test products itself?
Most certificate records in the index are vendor-published documents we located and read; we record them as published and take them at face value. Where an assay was independently commissioned we mark the record as such. We do not routinely commission our own assays.