Skip to main content

Menu

Request a demo
Quick Commerce

The economics of dark stores: a teardown

A cost model behind 220 dark stores we’ve helped operationalise.

Written by
Invenzo editorial
The applied-AI team
Published
Dec 28, 2025
Read time
6 min read
A dimly lit dark store aisle at night

The best retail operators are quietly reversing their multi-channel investments — not because omnichannel is over, but because the winning teams are running one system where every channel is a view of the same catalogue, the same stock and the same customer.

Five years ago the fashionable architecture was "channels of record" — a POS for stores, an OMS for online, a warehouse platform for fulfilment. Each carried its own data model, and reconciliation was somebody's full-time job. The teams that scaled fastest since then have been the ones that stopped reconciling and started unifying.

Why standalone omnichannel stalls

The pattern we see in retailers running more than three siloed channels is always the same: the promise of a "single view" gets replaced with a warehouse of read-only reports. Below-the-line teams patch integrations to keep the shop floor honest. Everybody agrees the system is one architecture cycle away from being fixed.

  • Inventory diverges within minutes of a stock move if the sync is nightly.
  • A returns policy set in the OMS does not show up on the storefront until a merchant syncs it manually.
  • Loyalty balances lag every transaction that happens outside the primary channel.

None of these are hard engineering problems on their own. They are governance problems: no team owns the truth end-to-end, so everybody's "single view" is really their local view with a delta.

“The retailers who quietly stopped calling their platform "omnichannel" are the ones who won.”

Retail engineering lead we spoke to in Q4

What unified actually looks like

A unified retail platform has three properties: one product record with attributes per channel, one order lifecycle regardless of origin, and one customer identity that survives the cross-channel journey. Everything else — pricing, promotions, fulfilment strategy — becomes configuration on top of that.

One product record, many channels

Product management stops asking "which channel does this SKU belong to" and starts asking "which channel is it eligible on today". The record is a fact; the eligibility is a rule. Both belong in the same catalogue, and both need to be reversible.

One order lifecycle

A customer who buys in-store and returns online is not two orders and one refund — it is one order with two events. Modelling it that way lets policies (return windows, restocking fees, split payments) travel with the order rather than being duplicated per channel.

Field notes from teams making the shift

The teams making the biggest gains are treating unification as a data question first and a UX question second. They spend three quarters getting the catalogue right, one quarter aligning the order model, and only then rebuild the storefront on top.

  1. Start with a canonical catalogue — even if it means retiring an in-house tool.
  2. Move the order lifecycle to an event store before adding new channels.
  3. Treat every existing integration as a temporary read replica, not a system of record.
  4. Give customer identity the same discipline you give products.

The results, in the deployments we have measured this year: 30-50% faster fulfilment, single-digit stock accuracy, and a real "same day, same everywhere" promise that a merchandising team can actually make.

The next twelve months

AI-native platforms are pulling the same trick with intelligence: one signal store, one set of models, and per-channel adapters that consume them. The teams that unified their commerce spine first are the ones that will make the AI transition without another decade of integration debt.

Written by

Invenzo editorial

The applied-AI team

Subscribe

Get the best of the blog in your inbox.

Product notes, applied-AI write-ups and retail benchmarks roughly twice a month. No spam.