valrune/data
all work
market diagnostics, amazon category

The diagnosis: competition was the story

A brand that owned its Amazon niche kept failing everywhere else, on Google, on Meta, and on its own site. Twenty-eight million rows across sixteen sources finally showed why: the market had moved, and nobody could see it from inside Seller Central.

industry:beauty / e-commerce
stack:bigquery · 16 sources
focus:market diagnostics
500K+[ units sold ]amazon brand
$6.4M[ revenue analyzed ]amazon brand
28M+[ data rows ]16 sources
12,511[ search terms decomposed ]amazon ads

The setup

On Amazon, this brand was genuinely healthy: consistent top-3 positioning across dozens of category terms, a 60%+ branded click share competitors never dented, and strong pricing power on a single hero product. Off Amazon, nothing worked. Google Ads tests died quietly, Meta campaigns found clicks but not customers, and the DTC site's traffic turned out to be mostly bots.

The question was not what was wrong with the listings. It was why a brand this strong on Amazon fails everywhere else, and what is happening in the market around it. Amazon's own data is notoriously painful to compile: a dozen disconnected reports, inconsistent grains, no join keys. Until everything was consolidated into BigQuery, covering orders, search terms, ads, demographics, GA4, SEO rankings, and competitor intelligence, there was no way to even ask the question properly.

The build behind this page: 16 raw sources flowing through 33 staging tables into 45 production tables, comprising Kimball facts, dimensions, bridges, and aggregates, plus three BQML models, over 566K order records and 28.6M rows in total. Every chart below is a query against that warehouse.

Amazon held: branded vs category click share, 25 months

Branded click share (red) held a 40 to 77% band the entire window while category share stayed steady. Whatever was going wrong, it was not the Amazon flywheel.

metric: click share (%) by month · source: amazon brand analytics

Paid acquisition, indexed

Spend index, heaviest channel = 100. Amazon Ads absorbed nearly all of the budget because it could scale profitably. Google and Meta ran at small exploratory budgets that failed repeated test iterations before they could scale.

metric: spend index by channel · source: ads apis
[ what the market was doing ]

A category getting crowded, fast

The consolidated data put numbers on what the team could only feel: 127+ competing products on Amazon, ad costs inflating 37% year over year, and a social-first challenger with 800M+ organic video views showing up on the brand's own search terms. Low barriers to entry kept new sellers arriving, and substitute categories such as chemical exfoliation were growing at twice the rate of the physical category.

Competitor presence on the brand's own terms

Share of the brand's top search terms where each rival now appears. The social-first challenger leads, driven by short-form video more than search.

metric: presence (% of terms) · source: amazon brand analytics

Five-forces read on the category

Structured competitive scoring from the consolidated data. Substitute pressure and rivalry max out; supplier power is the only quiet force.

framework: porter's five forces · scored from category data

Like-for-like pricing: mitt/glove price vs organic reach

Comparable mitt and glove pricing shown. Price on the x axis, monthly organic traffic on a log scale. The brand sits at the value end with the smallest organic footprint, priced to compete but nearly invisible off-platform.

metric: mitt/glove price ($), organic traffic (log) · source: semrush, amazon listings
[ search & discovery ]

The demand map, one word at a time

12,511 ad search terms were decomposed into component words and aggregated into 249 1-grams covering 99%+ of spend. Everything is indexed: bubble size is a volume index (heaviest word = 100) and color is a performance index around the profit line, where 0 is break-even, positive is profitable, and negative is losing money.

1-gram performance map: indexed volume × indexed return

All 249 word fragments. Hover any bubble for its indexed volume and indexed return. Rival brand terms anonymized.

metric: volume index + perf index per 1-gram, 249 of 12,511 terms · source: amazon search-term report
[ inside the catalog ]

One hero, one sleeper

The portfolio view added texture the team did not have: 89% of revenue rides on two versions of one product, a concentration that makes the competitive pressure above an existential problem. Buried at 1.4% revenue share sits a sleeper: facial razors converting at 43.7%, nearly half again the hero's rate, with almost no traffic pointed at them. Diversification was already in the catalog, waiting for spend.

Revenue share by product, with conversion rate

Bars show revenue share (hero in red). Dots show conversion rate, and the yellow dot is the sleeper SKU converting at 43.7% on scraps of traffic.

metric: revenue share (%) + conversion rate (%) per sku · source: amazon business reports
[ the off-amazon miss ]

Where revenue sits vs. where ads convert

First-party Amazon demographics against Meta's tracked purchases exposed a quiet mismatch: Amazon purchases concentrate at 25 to 44, while Meta's conversions skewed toward 55 and older. The ads that did convert reached a different population than the one buying the product, one more reason exploratory off-Amazon budgets kept reading as failure.

Amazon purchase index vs. Meta purchase index, by age

Both indexed to their peak bracket = 100. Amazon purchases (bars) concentrate at 25 to 44; Meta purchases (dots) peak at 55 to 64. Two different populations on one axis.

metric: amazon purchase index · meta purchase index · source: amazon brand analytics, meta ads manager

The bridge nobody had mapped

Cross-referencing Amazon search terms against Google rankings surfaced 82 bridge keywords, terms where the brand converts on Amazon but has zero Google presence. Its content footprint was thin, with 49 of 69 indexed pages drawing no organic traffic, and its backlink profile trailed every comparable competitor.

The diagnosis reframed the strategy conversation. The problem was not the campaigns. The market had crowded in around the brand, and the next customer was standing somewhere it had never shown up.

500K+[ units sold ]amazon brand
$6.4M[ revenue analyzed ]amazon brand
28M+[ data rows ]16 sources
12,511[ search terms decomposed ]amazon ads