Case study · Operations intelligence

Ads, demand and a plan people use.

Retail and distribution · multi-channel operations. One layer across systems that don't reconcile, ad spend that follows demand instead of trailing it, and a demand plan a planner actually signs off on.

The situation

Three systems, one spreadsheet, last month's picture

Orders, inventory and spend in separate systems, reconciled by hand each week

What we walked into

Orders in one system, inventory in another, spend in a third, and a team reconciling all three in a spreadsheet every week. Marketing therefore spent against last month's picture: the fast movers went out of stock mid-campaign while cash sat in stock nobody was pushing.

What we built

A layer that unifies those systems and encodes the reconciliation rules the team carried in their heads, puts SKU-level demand on top, and reallocates spend across channels and creatives against what is actually going to sell. Anomalies — a channel that stopped reporting, a SKU whose returns spiked, a vendor drifting off agreed rates — go to the person who owns that number, as an alert, not another dashboard.

The results

Spend follows demand; cash stops sitting in stock.

Figures from the live engagement; client name withheld.

+28%
return on ad spend
−18%
blended customer acquisition cost
−30%
inventory days
−22%
working capital tied up in stock
What changes The weekly reconciliation stops being a manual job, and exceptions arrive as a message to a named owner rather than waiting in a dashboard for somebody to go looking.
Featured capability · demand forecasting

A demand plan a planner will actually use.

Anyone can fit a model to two years of shipments. Whether the plan gets used is decided by workflow, not modelling — so that is what we built.

The history is dirty, and nobody tells you

A week with zero sales because the SKU was out of stock is not zero demand — it is a censored observation, and training on it teaches the model to under-forecast exactly the SKUs that keep selling out. Cleaning the stockouts, promos and launch ramps out of the history is the product.

A planner who can't see why won't use the number

The baseline arrives decomposed — trend, seasonality, promo, event, price — as a waterfall a planner can argue with one bar at a time, instead of a single forecast line they can only accept or reject whole.

The model never publishes a number on its own

Every figure that leaves the system was accepted or set by a named planner, with a reason code. The cells the model is unsure about are routed to a person; the rest clear automatically.

Overrides are scored against what happened

Forecast value-add — did the planner's change beat the model or make it worse — is measured by name. It is the metric that turns a forecast into a discipline, and the reason the plan is still trusted in month nine.

1 · Ingest
Sales history finest grain held — SKU × channel × period Availability / OOS flag Promo & event calendar
2 · Clean
De-censor stockouts reconstruct suppressed demand Strip promo & ramp distortion
3 · Baseline + drivers
Decomposed waterfall trend · seasonality · promo · event · price
4 · Planner review
Exceptions to a named planner Override with a reason code Consensus lock
5 · Supply
Roll up to SKU Buy / production / allocation plan
6 · Score
Accuracy & bias by channel Forecast value-add by planner
The RoI, not an accuracy claim The pitch is the stack of levers, not a MAPE number: recovered sales from fewer stockouts, working capital and expiry write-off from less overstock, planner hours, and better event and quick-commerce commitments. Accuracy is the mechanism — none of those four is a number we quote before reading your data.
The stack, and where your data lives

Built on your warehouse.

Built on
Databricks / Snowflake / BigQuery Forecasting & decomposition models LLM reasoning anomalies & explanations Your ERP / OMS / WMS Ad platform APIs Your repository
Data boundary This layer is built on your warehouse — the data never moves to us. Model calls go through your own cloud endpoint (Bedrock, Vertex or Azure OpenAI) in your region, with zero retention and no training on your data. Access is through your IAM.

Is your forecast a plan, or a sales target with a different name?

The first deliverable is often just measurement — a fast, unarguable win. In a five-day discovery we run your own history and show you what the stockouts have been hiding.

Book a 30-minute call