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.
| Label | What it counts | Window | Minimum sample | Inputs |
|---|---|---|---|---|
| New on Beautydew | Verified catalog publication / first-seen listing date | 60 days | n/a | catalog |
| Rising on Beautydew | Growth of qualified engagement this week versus the week before | 7 days | 30 qualified events this week | views |
| Most viewed | Qualified product-page views | 30 days | 50 qualified views | views |
| Most saved | Unique signed-in shoppers who saved the product | 30 days | 10 unique savers | saves |
| Most compared | Unique sessions that put the product into a comparison | 30 days | 10 unique comparison sessions | comparisons |
| Beautydew Picks | Editorial selection by our team | n/a | n/a | editorial |
| For you | Preferences you gave us — skin type, concerns, and saves | n/a | n/a | preferences, saves |
| Sponsored | Paid placement, shown in its own labelled slot | n/a | n/a | editorial |
| External trend | A named third-party signal, always attributed to its source | n/a | n/a | external |
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.