Budget reallocation engine
"We spend forty million a year and I cannot tell you which ten million of it I could stop spending tomorrow."
Spend decisions were made on last-click attribution from a reporting layer that had no notion of incrementality. Channel teams were each optimising a number that double-counted the same conversions.
A weekly reallocation loop: a channel-level panel built from ad platform exports and order data, a geo-holdout uplift model per channel, and an agent that drafts the next week's budget split with the expected lift and a written rationale. A human approves before anything is pushed to the platforms.
The first version proposed a 40% cut to a channel whose holdout had run for three weeks. We added a minimum-evidence gate and a cap on week-over-week movement.
Criteo Uplift Prediction (25M impressions, treatment/exposure flags)
Same three-stage architecture: panel build, uplift model, allocation agent with an approval gate. Budget figures are synthetic; the estimator and the gate logic are the ones that shipped.