San Francisco · 3 grocers · Contested

the fish aisle

San Francisco's fish aisle is a fragmented shelf spread across many brands: 46 products from 8 brands across 3 grocers. Store brands hold 2%. The shelf leans dairy-free — 67% of SKUs carry that claim. Verdict: contested — real competition, no single winner (opportunity 18/100).

46
products
8
brands
$24.81
avg price
$9.79–$43.53
typical range

Zoom in

this aisle breaks into 16 sub-categories — open one for its own shelf report.

Who owns the shelf

brands by share of the fish shelf.

ggingrass smoked
4% of shelf2 SKUs
mmcfarland springs
4% of shelf2 SKUs
ccalifornia farms
2% of shelf1 SKU
mminnow
2% of shelf1 SKU
ppacific seafood
2% of shelf1 SKU
luke’s localPL
2% of shelf1 SKU
dducktrap river of maine
2% of shelf1 SKU
ffranco serra
2% of shelf1 SKU

How it's positioned

the claims products on this shelf lead with — share of SKUs carrying each.

Dairy-Free
67%
Gluten-Free
67%

Brand positioning

every brand by share of shelf × price. bubble size = the brand's total reach across all aisles; color = positioning stance. top-right owns the premium end; bottom-right owns the mainstream.

scale
premium leadersmainstream leadersniche premiumvalue playersshare of shelfavg price
Color:no dominant segmentation on this shelf
Size:total brand reach (SKUs across all aisles)
Shape:nationalstore brand

All stores combined. Tap a store to see who wins its shelf.

Market structure

36
med
Brand competition
how many brands compete
16
low
Variety of offers
how differentiated the shelf is
1
low
Top-brand grip
how much a few brands dominate
18
low
Launch whitespace
room for a new brand

store-brand share: 2% · scores 0–100.

More aisles

how we measure.prices & assortment are collected from public storefronts of San Franciscogrocers, deduped to distinct products, and normalized to a per-unit price from each product's parsed size. market-structure scores come from brand shares. figures update as we re-measure. full methodology →