01 · The challenge
Budget decisions were made after the fact — by the time a campaign, product or creative underperformed, the spend was gone.
- New campaigns and creatives had too little history to judge early.
- Performance behaved differently by campaign, product and creative.
- Teams needed a forecast they could read, not a model they had to trust blindly.
02 · The solution
A feature store in BigQuery (rolling ROAS, pacing, days since launch, CTR/CVR trends, seasonality) feeding three complementary models: linear regression for trend and spend elasticity, k-nearest neighbors to predict new items from similar past ones, and cohort curves for expected ROAS by age — blended into a weighted ensemble validated with rolling backtests.