Skip to content
beautydew

← Back to trending

How trending is measured

Each board states the window it covers and the minimum sample it had to clear. Below that minimum we publish nothing and say so.

The signals we publish

These are distinct measures, never interchangeable. A product with no activity is new, not rising; something people open a lot is viewed, not proven.

LabelWhat it countsWindowMinimum sampleInputs
New on BeautydewVerified catalog publication / first-seen listing date60 daysn/acatalog
Rising on BeautydewGrowth of qualified engagement this week versus the week before7 days30 qualified events this weekviews
Most viewedQualified product-page views30 days50 qualified viewsviews
Most savedUnique signed-in shoppers who saved the product30 days10 unique saverssaves
Most comparedUnique sessions that put the product into a comparison30 days10 unique comparison sessionscomparisons
Beautydew PicksEditorial selection by our teamn/an/aeditorial
For youPreferences you gave us — skin type, concerns, and savesn/an/apreferences, saves
SponsoredPaid placement, shown in its own labelled slotn/an/aeditorial
External trendA named third-party signal, always attributed to its sourcen/an/aexternal

Each signal, in full

What kind of content each board is, how often its number changes, what appears in its place below the minimum sample, and whether that minimum is there because the sample is thin or because publishing anything smaller would identify specific people.

New on Beautydew
Products listed in the last 60 days, newest first — a catalog date, not a popularity ranking.
Catalog — a date, not activityUpdates: hourly (ISR cache)No floor to fall below.
Rising on Beautydew
Products whose qualified engagement grew this week versus last, weighted so a tiny base can't outrank real volume.
Organic — real activityUpdates: hourly (ISR cache)Below floor: this board does not appear on /trending — no fallback board, no placeholder.
Most viewed
The products opened most often in the last 30 days.
Organic — real activityUpdates: hourly (ISR cache)Below floor: this board does not appear on /trending — no fallback board, no placeholder.
Most saved
The products the most distinct shoppers saved in the last 30 days.
Organic — real activityUpdates: hourly (ISR cache)Below floor: this board does not appear on /trending — no fallback board, no placeholder.
Most compared
The products put into the most distinct comparisons in the last 30 days.
Organic — real activityUpdates: hourly (ISR cache)Below floor: this board does not appear on /trending — no fallback board, no placeholder.
Beautydew Picks
Products our editorial team chose to highlight — not a behavioral ranking.
Editorial — our team's choiceUpdates: as our team publishes new picksNo floor to fall below.
For you
Documented in doc 04's table, but no shipped surface renders a personalized 'For you' board today.
Not shipped — no surface renders this signal todayUpdates: n/a — not rendered by any surface todayNo floor to fall below.
Sponsored
A paid placement, labelled Sponsored and shown in its own slot, separate from organic rankings (see components/FeaturedRail.tsx's guard tests).
Sponsored — paid placementUpdates: as paid placements are bookedNo floor to fall below.
External trend
Documented in doc 04's table, but no shipped surface renders an external third-party trend today.
Not shipped — no surface renders this signal todayUpdates: n/a — not rendered by any surface todayNo floor to fall below.

The ingredient boards

Three boards on the trends page count ingredients rather than products. All three are aggregates over people, so all three have a floor on the number of distinct people involved — at least 10 — as well as the minimum sample below. Under either floor, the ingredient board itself does not appear on /trending at all — no substituted list standing in for it, no explanation of its absence. A preference held by one or two people is theirs, not a pattern.

Ingredients showing up most
Ingredients listed on the labels of products people opened, counted as qualified product views. Window: 30 days. Minimum 50 qualified label opens.
Most compared
Ingredients listed on the labels of products people put side by side in a comparison. Window: 30 days. Minimum 10 unique comparison sessions.
Commonly saved to avoid
Distinct members who put the ingredient on their personal avoid list. No window — a saved preference is standing state, not an event. Minimum 10 members avoiding it.

Signals we do not publish yet

A label we cannot compute honestly is simply absent from the site — it is not approximated from whatever data we happen to have.

Best sellers
There is no native checkout yet, so no completed sale exists to count. Affiliate clicks are not sales and views are not sales, so this label is not used anywhere on the site.
Top rated
A verified review requires a purchase we can see, and there is no native checkout yet — no review on this site is purchase-linked, and /rankings admits a product on 1 review with a prior weight of 2, not 10. Until that changes we publish the board we actually run, under its own name — Review-ranked: Member reviews only, ordered by an average damped toward 3.5★ with a prior weight of 2. A product needs 1 review to appear, and no review is purchase-verified — so this is a review ranking, not a verified-buyer ranking.

Below the minimum, it is simply not there

When a board has less activity than its minimum sample, it does not rank anything — and it does not appear on /trending at all: no tab, no placeholder, no board standing in for it. It reappears on its own once real activity clears the minimum. A thin board dressed up as a ranking would be the easiest lie on this site to tell, so we made it impossible to tell by accident: the same configuration this page reads is the gate the boards run through.

What counts, and what we throw out

An event only counts once per person, per product, per UTC day, and only after these exclusions:

Known bots and crawlers
Automated clients are excluded by the same user-agent and request-shape rules the outbound-link gate uses, at the moment the activity would be recorded. Nothing is stored on the row to say so, so a hit written before that gate existed cannot be filtered out afterwards.
Our own traffic
A signed-in staff account is excluded by the trend queries themselves, so our browsing cannot move a board even on a request that slipped past the opt-out. The opt-out itself — a cookie our own team carries — stops the event being written at all. Local development is not filtered by a rule: it runs against a separate local database, so its activity is never in this data to begin with.
Refreshing the same page
One identity contributes at most 1 qualified event per product per UTC calendar day — not a rolling 24 hours — so refreshing a page cannot move a board. Because that day has a boundary, hits closer together than 30 seconds are additionally collapsed into one, which is what stops a refresh across midnight counting twice. Activity we cannot attribute to a person or a device at all cannot be deduplicated, so it is not counted either.
A seller looking at its own products
Activity by an active member of an organization holding an approved claim on a product's brand does not count toward that product's signals. This applies to signed-in members: someone browsing signed out is not identifiable as staff by us or by anyone else.

Exclusions we have specified but do not yet run

These are not in force. They are listed because leaving them out would let the section above read as a complete defence, and it is not one.

Implausible spikes — not yet active
Planned, not yet running: a product whose qualified events jump more than 20× day over day from a handful of networks would be held out of Rising pending review. Nothing in the pipeline does this today — a spike that clears the minimum sample is published like any other. It is listed here rather than dropped so the gap is visible; per-network attribution is not stored on the event, so this needs new data before it can be built.

The maths, in plain words

Rising compares this week's qualified events with last week's, smoothed so a tiny base cannot produce a huge percentage, and weighted by volume so a two-to-six jump never outranks a two-hundred-to-four-hundred one.

rising = (this week + 5) ÷ (last week + 5) × log(1 + this week)

Review ranking is the one signal where the definition we want and the board we run are not yet the same thing, so both are stated. The definition in the table above needs purchase-linked reviews and a prior weight of 10; no review on this site is purchase-linked, so that board is not published at all. What we do run is Review-ranked: Member reviews only, ordered by an average damped toward 3.5★ with a prior weight of 2. A product needs 1 review to appear, and no review is purchase-verified — so this is a review ranking, not a verified-buyer ranking. It lives at /rankings, with its own methodology page — one review ranking, in one place.

Paid placement

Sponsored items appear in their own labelled slot, outside rank numbering and separate from the organic list.

Privacy

Every number here is an aggregate. We publish counts of activity across many people, never one person's browsing, and no individual's history is exposed by these boards.

What these numbers cannot tell you

  • Our traffic is small, so most signals sit below their minimum sample most weeks. When that happens the board simply does not appear on /trending — nothing is substituted in its place, and it comes back on its own once real activity clears the minimum.
  • Catalog coverage is partial: a product we have not listed cannot rank, however popular it is elsewhere.
  • Activity skews to US visitors, so these boards describe this site's shoppers — not the market.
  • Popularity is not a measure of effectiveness or safety.