Where they started
Coastline's catalogue was the problem and also the opportunity. 3,400 SKUs of technical outdoor equipment — jackets, boots, packs, sleeping systems — where buyers choose on specifications. Hydrostatic head, fill power, pack weight, temperature rating.
None of it existed as structured data. Every specification was written into the description paragraph, differently by whoever added the product, over nine years. So the only filters available were price, brand, and size. Someone looking for a jacket rated above 20,000mm had to open products one at a time and read.
Their internal search was worse. Searching "waterproof jacket" returned 340 results in no useful order, and their analytics showed people who used search converted worse than people who didn't — which is close to diagnostic.
Operationally, two warehouses ran separate stock counts that reconciled overnight. Roughly 40 orders a month were oversold, each one a refund, an apology, and often a lost customer.
What we built
Ten weeks, and about four of them were spent on product data. We built an attribute schema per category — different fields for a sleeping bag than for a boot — then extracted what we could from existing descriptions and had Coastline's product team fill the rest. It's the least interesting work in the project and nothing else would have functioned without it.
With real attributes in place, faceted search became straightforward. Filter jackets by hydrostatic head, sleeping bags by comfort rating, packs by capacity and load. Facets are generated from the schema, so adding a category doesn't need a developer. Search runs on a typo-tolerant index with results ranked by relevance and availability rather than by date added.
Inventory sync now runs through a single source of truth that both warehouses write to, with a reconciliation report that flags a discrepancy the same hour rather than the next morning.
The content side followed the data. Buying guides per category — how to read a waterproof rating, what fill power means — which target the informational searches that precede a purchase and internally link into the relevant faceted views.
