Drop by Drop · Oil Directory

Methodology · v1.1.0

The Drop Score

A 0-100 quality score per (oil × concern) pair, built from five independent evidence signals. Every score is reproducible, every source is cited, and the weights are public.

What is the Drop Score?

A number between 0 and 100 that answers one question: how much evidence is there that this oil actually helps with this concern? Not "is it popular", not "is it expensive", not "does a study cite it". All five at once, weighted, normalized, and explained.

If you see a 82/100 for rosehip on rosacea, that number is a composition of: how many real customers said it worked, how often the question went unanswered, how easy it is to buy, what the plant actually does biologically, and what the literature says. Each component is computed against the same concern, so comparing 82 vs 65 within a concern is meaningful.

The five signals

User Mentions

weight: 0.30

How often real customers mention this oil for this concern across 6,547 competitor product reviews analyzed by our DocETL pipeline. A high value means thousands of independent buyers say it worked for them.

Gap Signals

weight: 0.15

A sub-signal of user mentions: how often customers ask about this use case but cannot find the answer. Gaps flag where the aromatherapy industry has failed to document what real users already know.

Availability

weight: 0.10

Whether the oil is actually purchasable, and at what price. Blends store count across 17 tracked retailers with median price rank. An unobtainable oil, no matter how mechanistically perfect, scores low here.

Plant Mechanism

weight: 0.35

Plant-activity evidence from USDA Dr. Duke's phytochemical database. Each concern has a weighted stack of canonical mechanisms (e.g. 'rosacea' = 50% anti-inflammatory, 20% vasodilator, 20% antioxidant, 10% barrier-repair). We sum the chemical-count-weighted reach of each mechanism for the oil's source plant.

Scientific Evidence

weight: 0.10

Peer-reviewed PubMed evidence for the oil × concern pair. Live as of v1.1.0 (plan 031): positive studies add their type-weighted score (meta-analysis 5 > RCT 4 > human 3 > animal 2 > in vitro 1), with null/negative studies applying drag. Pairs with no studies score 0.

The formula

Each signal is normalized to [0, 1] using log scaling against the max value for that concern:

normalized = log(1 + raw) / log(1 + max_in_concern)

Log scaling matters because mentions and mechanism reach are long-tailed (one outlier oil can have 10× the signal of the median). Linear normalization would squash the mid-tier; percentile rank would hide magnitude. Log gives outliers credit without letting them dominate.

The final score is a weighted arithmetic sum, scaled to 0-100:

score = round(Σ weight_i × normalized_i × 100)

As of v1.1.0 all five signals are live, including scientific (PubMed): its 0.10 weight now applies to the real per-pair study evidence. Per-pair zeros are legitimate — a 0 on user mentions (or zero PubMed studies) for a specific pair contributes 0 to the score, not a redistributed share.

Current weights

Signal Weight Share of score
User Mentions 0.30 30%
Gap Signals 0.15 15%
Availability 0.10 10%
Plant Mechanism 0.35 35%
Scientific Evidence 0.10 10%

Weights live in config/taxonomy/drop_score_weights.yaml and are validated by a lint script at build time. Per-concern overrides are supported but none ship in v1.0.0.

The review-only caveat

Some (oil × concern) pairs have strong review data but no mechanism and no scientific evidence. We still show them — silence on thin data is worse than transparency — but we mark them with a icon and the label "review-only".

A review-only score means: real customers report this works, but the biochemistry literature and our plant-activity database do not yet corroborate it. The number still reflects composite evidence, but you should read it with one eyebrow raised.

Versioning and data sources

Drop Score v1.1.0 runs against:

  • 225 oils with selected_for_sale = 1 in our master product database
  • 52 concerns mapped from customer review analysis (DocETL/Clarity)
  • 40,906 plant-activity rows from USDA Dr. Duke's phytochemical database
  • 72,000+ compound rows (Duke) and 168 fatty-acid rows (supplier spec sheets)
  • 6,547 competitor product reviews across 17 retailers

The compute pipeline is idempotent: re-running against the same data produces the same scores. When weights change, the version string bumps (for example, adding the PubMed signal ships as v1.1.0). Historical versions stay in the database so we can diff rankings across releases.