Prices, margins and brand records as of late July 2026. Every number carries its source and its observation date inside the brand's own record.
View
PART ONE
The brands themselves
Every brand we studied, plotted on price. Each dot is one brand, and its colour is one of the seven models set out below. Pick a question and the map answers it.
Which garment
Pick a question
Or set the axes yourself
by
Narrow it down
Show only the brands that match
How to read this. Each dot is a brand. Further right means customers pay more for the selected garment. Higher up means more of whatever the vertical axis measures. Colour is the model it uses to hold its price, set out in Part Two below. Click any dot for that brand's full garment ladder, its sources and how much we trust each one.
The five price bands · who sells here, and how much money changes hands
PART TWO
Seven ways a brand holds its price
Prices are read-only here. They live in data/price-cells.jsonl, which is
append-only, so a price typed into a browser would either be lost on the next regeneration or
quietly fork the source of truth. To change a price, append a cell to the JSONL and run
node data/gen-price-cells.mjs --write. Hover any garment cell for the SKU, channel,
date and confidence behind it. Amber = a proxy or weak reading that needs re-checking before it
is quoted; grey = priced in a currency we hold no working rate for.
Everything else is editable. Type into a cell and the edit saves in this browser and shows on the
map immediately; click Download brands.js and replace the file in the project folder to
make it permanent. Grey cells = still to collect. Cyan cells = edited here, not yet in the file.