Atmora Tech

Brightmoor Foods · 2026

Forecasting fresh produce for Brightmoor against waste cost, not average error

Four days of shelf life and a median of three units per store-SKU per day, which is too thin for per-store models. We pooled into category models trained on the newsvendor quantile instead of average error, taking waste from 6.1 to 2.9 per cent while availability rose to 98.7 per cent.

  • Agritech
  • 7 months
  • 5 engineers, 2 data scientists, 1 delivery lead
6.1% to 2.9%
Units written off as waste
98.7%
On-shelf availability, up from 96.1%
40 minutes
Weekly retraining across 5.6m series

The challenge

What was wrong

Brightmoor forecasts produce with four days of shelf life across 6,200 SKUs and 900 stores, and commits volumes to growers 10 days ahead. Spreadsheets plus a flat safety stock were throwing away 6.1 per cent of units while still missing 4 per cent of demand. The median store-SKU sells three units a day, far too thin for per-store models, and promotions and weather move demand considerably more than the seasonal baseline does.

The approach

What we did

We pooled data into category-level gradient-boosted models with learned store embeddings rather than fitting 5.6 million series independently, and trained against pinball loss at the quantile implied by each SKU's margin against its waste cost. That optimises the ordering decision rather than the forecast number. Predictions are reconciled across store, region and grower commitment so the totals agree. Retraining runs weekly in 40 minutes; we chose weekly over daily to keep grower orders stable.

They argued us out of chasing forecast accuracy and into optimising the ordering decision instead. Waste halved. The accuracy metric barely moved at all.

Tom BeresfordSupply Chain Director, Brightmoor Foods

Stack

What it runs on

  • Python
  • LightGBM
  • Feast
  • Airflow
  • Snowflake
  • dbt
  • FastAPI
  • React

Start a project

Tell us what is
breaking.

We reply within one working day, and the first call is with an engineer who would actually work on it — not an account manager. If we are not the right studio for the problem, we will say so on that call.

Start a project