Ranking policy v1.0
How we rank vendors
We publish our ranking policy in full so makers and shoppers can see exactly what surfaces a vendor on Alkemy — and what doesn’t. The algorithm runs on signals; there is no pay-to-play tier and no admin-side “boost” button.
What we optimize for
We optimize for finding vendors that shoppers will trust and return to — not for maximizing time-on-site, ad revenue, or any pay-to-play funnel. Discovery is editorial. The signals that count reflect the quality, honesty, and accountability of the vendor; they’re published here so merchants know what to focus on and shoppers know what the directory is doing on their behalf.
Because we don’t take a cut of sales and don’t sell ads, the only thing that grows the directory is the trust shoppers place in it. That’s the constraint the ranking function is designed against.
The scoring function
Every vendor receives a base score that’s recomputed nightly from their signals. When you run a search, that base score is combined with the query relevance to produce the final ranking. The function is published in full:
final_score = relevance
× health_multiplier
× (quality_score + trust_score)
− slop_penalty
− business_model_penaltyRelevance is the per-query text-match score — PostgreSQL ts_rank_cd over weighted fields (vendor name 1.0, tagline 0.6, category 0.5, pinned hero product names 0.7, product names 0.4, product keywords 0.3, description 0.2). Everything else is precomputed.
Trust is an additive bonus to quality (capped at +0.15), not a multiplier. We chose the additive form because a fixed verified-facet bonus is easier to reason about than a small multiplier in the 1.0–1.15 range. Both forms produce the same relative ordering.
The signals in detail
Vendor health
A precomputed multiplier reflecting account standing. Suspended and unpublished merchants are filtered out entirely — they never appear in candidate sets, no matter the query. The silver and gold tiers are reserved for the upcoming trust-tier system; merchants don’t earn them yet in v1.
| Tier | Multiplier | Notes |
|---|---|---|
| Gold | ×1.3 | Top-tier trust signal (reserved for future trust system). |
| Silver | ×1.15 | Elevated trust signal (reserved for future trust system). |
| Healthy | ×1 | Default tier. No special boost or penalty. |
| Warning / Watchlist | ×0.5 | Stripe-flagged or recently flagged for review. Half weight. |
| Unpublished | Filtered out | Filtered out entirely. Never appears in directory results. |
| Suspended | Filtered out | Filtered out entirely. Never appears in directory results. |
Quality (additive sum)
An additive sum of review quality, support responsiveness, resolution rate, and tenure. Baseline is 1.0 — signals nudge it up or down from there.
| Signal | Threshold | Weight |
|---|---|---|
| Review baseline | ≥ 4.0★ AND ≥ 60% verified purchases | +1.00 |
| Review superb bonus | ≥ 4.5★ AND ≥ 80% verified purchases | +0.20 |
| Review weak penalty | < 4.0★ OR < 60% verified purchases | −0.15 |
| Response fast | Median support response < 4 hours | +0.10 |
| Response slow | Median support response > 48 hours | −0.10 |
| Resolution low | Support resolution rate < 70% | −0.15 |
| Veteran bonus | ≥ 3 years since published on Alkemy | +0.05 |
Trust (verified facets)
Vendors can claim verified identity facets — women-owned, Indigenous-owned, veteran-owned, B-Corp, and so on. Each verified facet adds a small bonus, capped to prevent the trust score from dominating the function.
Slop penalty (AI-generated catalog content)
Applied only when a vendor self-discloses or our detector classifies them as uses_generation. Vendors in the none or enhanced_only buckets escape this penalty entirely. The curve is piecewise-linear with a floor at 0.6 — once half a vendor’s catalog is AI-generated, additional generation doesn’t accrue further penalty.
| AI-generated catalog share | Penalty |
|---|---|
| 0% | No penalty |
| 10% | −0.10 |
| 30% | −0.35 |
| 50% | −0.60 |
| 100% | −0.60 |
Between control points the penalty interpolates linearly — a vendor at 20% AI imagery in the uses_generation bucket lands roughly halfway between the 10% and 30% rows.
Business model
Every merchant declares their business model during onboarding. None of the permitted models carry a ranking penalty — Alkemy ranks makers, manufacturers and curated retail on the same footing. Dropshipping is not a permitted model; merchants caught reselling drop-shipped catalog (via reverse-image catalog dedup) are handled by admin enforcement rather than a ranking adjustment.
| Business model | Penalty |
|---|---|
| Original artisan | No penalty |
| Made to order | No penalty |
| Small batch production | No penalty |
| Manufacturer direct | No penalty |
| Curated retail | No penalty |
What we do not rank on
The list below is exhaustive. If you encounter behavior on Alkemy that suggests we’re ranking on something here, please report it — that’s a bug or a policy violation, not a feature.
- Advertising spend or paid promotion of any kind.
- Subscription tier or plan level on Alkemy.
- Stripe Connect processing volume or revenue.
- Targeted ads, retargeting cookies, or third-party tracking pixels.
- Browser fingerprinting, device identifiers, or behavioral targeting.
- Demographic targeting (age, gender, location of the shopper).
- Manual admin favoritism — the algorithm runs on signals; admin can suspend, but cannot boost.
- Affiliate or referral relationships between vendors.
AI content disclosure
Every vendor on Alkemy is classified into one of three AI-content buckets. Every card shows a 3-dot indicator reflecting the bucket; clicking the indicator deep-links here.
- None
- The vendor uses no AI in their listings. Photos, descriptions, and product details are human-made.
- Enhanced only
- The vendor uses AI for light enhancements — color correction, background touch-ups, upscaling — but originates the underlying content themselves.
- Uses generation
- The vendor uses generative AI for some listings (images, descriptions, or both). Vendors in this bucket are subject to the slop penalty above.
Shoppers can hide vendors in the uses_generation bucket from search results entirely via the AI content filter on /discovery/search. The filter defaults to on for new visitors; the preference persists per device for anonymous shoppers and per account for signed-in shoppers.
Terms of service vs ranking
Ranking and terms-of-service enforcement are separate systems. The ranking algorithm is the editorial discovery surface — it nudges signals up and down. Terms-of- service violations are handled by the trust & safety team via reports, suspension, and account-level actions. Suspended merchants are filtered out of the directory; that filtering is a hard cutoff, not a low ranking.
If you believe a vendor is violating Alkemy’s terms of service — product misrepresentation, unsafe goods, intellectual-property abuse, or labor concerns — please file a report from the vendor’s storefront. Reports are routed to the trust & safety queue and reviewed by a human.
Version history
Every algorithm bump is logged here with a date, a one-line diff, and the reasoning. When weights change, every vendor’s base score is recomputed in the next nightly rerank.
- v1.0 — Initial public release. Establishes the additive quality + trust formula, slop curve, and business-model penalty. Trust is locked in as additive (rather than multiplicative) for legibility.