method v1.1

Methodology

How we choose which brands to include, what we measure, and how the measurements become ranks.

Who's included

Brands enter as candidates through public site rankings, ecommerce platform detection and a set of secondary lists. Every candidate is classified and then checked against the rules below. When the classification isn't clear, a person reviews it.

included
own_brandSells its own-brand physical products, made or sourced
own_checkoutSells direct through a checkout on its own site
size_floor1,000+ branded searches a month, plus a top-1M site or 20k+ social followers
excluded
retailerRetailers, marketplaces and multi-brand stores
graduatedTop-10k sites or $300M+ estimated revenue: moved to the graduated list
d2c_native

Nearly all sales happen on the brand's own site.

d2c_led

The brand's own site comes first, with some sales through retail or Amazon.

wholesale_led

Mostly sold through retailers and stockists, with its own online store alongside.

We assign tiers from public signals: a store locator, a stockists page, retail partner logos and Amazon listings.

What we measure

branded_search

Branded search

How many people search for the brand by name each month, worldwide. The clearest sign of demand a brand has created.

scale weight 0.35
site_traffic

Site traffic

Estimated visits to the brand's own store, blended with public popularity rankings (Chrome UX Report and Tranco).

scale weight 0.35
social_followers

Social audience

Followers across Instagram, TikTok, Pinterest and YouTube, captured as monthly snapshots.

scale weight 0.30

Ad activity feeds Momentum only.

How scores work

  1. Normalise. Each metric is scored 0 to 100 on a log scale between fixed anchors (for example, branded search: 1,000 a month scores 0, one million scores 100). Every 10x in size adds the same points, and a brand's score doesn't change just because other brands join the index.
  2. Scale is a weighted blend of search, traffic and social audience.
  3. Momentum blends 12-month growth (60%) and 3-month growth (40%), where the 3-month figure compares the last three months with the same months a year earlier, so seasonal brands are treated fairly. Each growth figure combines search, traffic, social and ads. Momentum is absolute: 50 means flat, higher means growing, lower means shrinking.
  4. Smoothing. Inputs use 3-month averages. A brand must appear two months in a row to enter the Top 50 risers.
  5. Emerging brands. Brands under 5,000 monthly branded searches get a Scale score but no Momentum score.

We publish ranks and scores only, never raw vendor figures or revenue estimates. Each change to the method gets a new version number and a changelog entry.

scoring.yaml
version: 1.1

normalise:
  transform: log10          # every 10x adds the same number of points
  anchors:                  # [value scoring 0, value scoring 100], clamped
    search: [1000, 1000000]         # monthly branded searches
    visits: [1000, 10000000]        # monthly site visits
    rank: [1000000, 1000]           # traffic rank (Tranco, CrUX)
    social: [1000, 10000000]        # followers, all platforms

scale:                      # how big a brand is today
  search: 0.35
  traffic: 0.35             # visits 0.5 + Tranco rank 0.3 + CrUX rank 0.2
  social: 0.30

momentum:                   # how fast it is growing; 50 = flat
  growth_12m: 0.60
  growth_3m: 0.40           # year-on-year: last 3 months vs same 3 a year ago
  growth_blend:
    search: 0.40
    traffic: 0.35
    social: 0.20            # counts after 3 monthly snapshots
    ads: 0.05
  doubling_scores: 88       # growth of 2x scores 88, halving scores 12
  min_baseline_searches: 5000   # below this: "emerging"

smoothing:
  window_months: 3
  risers_consecutive_months: 2