The dataset is the product
Every recommendation Favora makes starts from the same problem: fashion e-commerce has no common language. Every brand publishes its catalogue differently. Different markup, different size systems, different names for the same colour. The feeds you can license are shallow, stale, and skip most of the brands people actually wear.
So we treat the catalogue as core infrastructure. It is not an input we buy. It is the thing we build, and everything else at Favora sits on top of it. It also compounds: every day of crawling deepens the price and availability history, and every enriched item makes the models trained on it better. The catalogue keeps what storefronts forget. Items that sell out or disappear stay, with their full price and availability history. A competitor who starts today starts with zero history, and there is no way to buy the past. That is not a dataset you download. It is one you would have to live through.
It is also buildable now in a way it was not two years ago. Models read messy product pages, tag them against a taxonomy, and embed every item for cents. The cost of one schema collapsed. The value of owning it did not.
From storefront to structure
Hermes, our data platform, turns raw storefronts into one uniform catalogue. The pipeline runs on Temporal, with workers in Python and Rust. Steady state is hands-off: failed work retries with backoff and nothing gets dropped. Humans step in when a storefront changes shape.
01
Discover
Scout maps every storefront we cover and keeps a registry of product URLs per brand. It finds new drops within hours and adds over a hundred thousand new URLs a month.
835,785 URLs mapped
02
Fetch
The fleet fetches about 170,000 pages a day, every day. Per storefront the pace stays deliberately polite; we make it up in breadth. Storefronts that render client-side get a full browser, so we capture the page a shopper actually sees. Across everything we cover, 91% of tracked URLs resolve to a page we can parse.
5,148,711 pages / 30 days
03
Normalise
More than a hundred storefront formats become one schema: prices and currencies, size systems, colour names, image sets, availability.
100+ formats, one schema
04
Enrich
An LLM labels every item against our fashion taxonomy: 25 categories, 178 subcategories, plus colour, material, pattern, style and garment-type facets. New tagger models ship only after they beat a hand-labelled gold set. Every item also gets a vector embedding.
Every item labelled and embedded
05
Serve
Everything lands in Postgres and a Typesense cluster: keyword, faceted and vector search over the full catalogue, powering feed, search and alerts in the app.
Keyword, faceted, vector
Fresh by construction
A fashion catalogue rots fast. Prices move, sizes sell out, items disappear mid-season. So freshness is not a batch job here, it is the default state: the crawl fetches around 170,000 pages a day, which brings it back to every live item roughly once a day on average. A licensed feed cannot do that. This is what the machine is for.
Each successful fetch records price and availability for every listed size. Across a month that is millions of price and stock snapshots, a multiple of that at size level, and it is what makes size-aware sale alerts and back-in-stock notifications possible at all. When a saved item drops in price in a specific size, the record is already there.
Catalogued and live are different claims, and the gap between them is deliberate. The registry holds every product URL we have ever seen, including ones that are gone. The catalogue holds the ones that became items, and sold-out items keep their history. Live means buyable right now.
Structured for machines
The point of all this structure is not tidy data. It is leverage for models. Uniform taxonomy labels make retrieval and ranking trainable. Per-image metadata, like which images show the garment on a model and which show it flat, feeds the visual pipeline. Embeddings on every item make taste representable as geometry. Price histories turn "is this a good deal" into a computable question.
The dataset is built the way you would build a training set, because that is what it is.
It is also only half the data. Every like, save and dismissal in the app lands on top of it, tied to items we fully understand. The catalogue we can build with effort. The taste data only accrues with users.
Ten months in
We turned the pipeline on in November 2025. The catalogue crossed a hundred thousand items in February and stood at 366,242 by August 20. Almost half of that arrived in the last two months, and July was the biggest month yet, almost 120,000 items added.
| Month | Items |
|---|---|
| Nov 2025 | 335 |
| Dec 2025 | 20,148 |
| Jan 2026 | 97,730 |
| Feb 2026 | 105,760 |
| Mar 2026 | 128,887 |
| Apr 2026 | 153,507 |
| May 2026 | 165,463 |
| Jun 2026 | 191,517 |
| Jul 2026 | 311,372 |
| Aug 2026 | 366,242 |
Talk to us
Most of the catalogue is still ahead of us: more brands, more markets, deeper visual understanding. If you are building in fashion, evaluating the space, or want to work on systems like these, write to humans@favora.ai. We are hiring, and we partner with brands.