Case study

Demand-led ordering across a three-store retail group

We built a nightly engine for a three-store convenience group: what to buy, what to stop buying and what to move between stores. In a measured comparison at one store, its recommendations had 47.9% lower cost-weighted ordering error than the owner’s orders across 2,812 priced, gradeable lines. The improvement came from less excess ordering. Shortfalls were measured too.

Explore V3CT0R retail
47.9%
Lower cost-weighted ordering error at one store
2,812 lines priced, gradeable orders in the comparison83.7% priced coverage of 3,360 graded linesHuman approval no automatic orders or price changes

What it does

Ordering, stock and pricing from the same data

  • Ordering: nightly recommendations based on forecast demand, stock held and stock already on order. Delivery cycles, case sizes and shelf capacity are respected.
  • Demand comparison: completed delivery windows scored against what sold. The owner’s order and the engine’s recommendation face the same test.
  • Cost-weighted scoring: excess and shortfall units valued at each product’s recorded unit buying cost. Over- and under-ordering stay visible separately.
  • Stock and transfers: slow-moving lines identified, with transfer recommendations between stores before buying more.
  • Pricing and operations: price checks, store comparisons and trading patterns in a private reports portal. The operator approves each action.

How it's built

Nightly till data

EPOS history supplies sales, stock and ordering evidence. Recommendations run on the data the group already records.

Explainable order logic

Forecasting, stock position, case sizes and delivery windows produce a line-by-line recommendation with the reasoning shown.

Matched scoring

On each completed, gradeable delivery window, the required order is observed sales minus stock already held or on order, floored at zero. Both orders are compared with that target.

Cost and evidence gates

The pound score uses the same products for both orders and valid recorded unit costs. Missing costs and sold-out windows with unknown demand are excluded and counted.

A score that penalises both directions

The absolute difference between an order and the demand-based target is valued at buying cost. Too much stock and too little stock both increase error; they cannot cancel each other out.

A repeatable weekly comparison

The scorecard shows the owner’s error, the engine’s error and their signed difference on the same priced lines. A lower engine score means a closer match to observed ordering need. The reporting period and coverage remain visible.

Stock investment kept separate

Remaining stock at estimated cost is a supporting comparison, restricted to lines where both orders cover demand. Recorded write-offs are reported separately. Neither is added to the ordering-error score to manufacture a savings total.

Recommendations with operator control

Order sheets, stock checks and reports support the morning decision. The engine does not place orders, move stock or change prices automatically.

Less excess ordering. Measured against what actually sold.

What the owner sees

Example estate dashboard: store comparisons and stock decisions. Figures shown are fictional.
Example estate dashboard: store comparisons and stock decisions. Figures shown are fictional.
Public demo: trading patterns and operational insights. All stores, products and figures are fictional.
Public demo: trading patterns and operational insights. All stores, products and figures are fictional.

Recreated screens with example figures and store names. The real portal is private to the client.

Why it exists

Reduce excess buying without creating empty shelves

The group’s ordering relied on experience, memory and whoever was on shift. Fast sellers could run short while slower lines tied up cash. Across three stores, the owner needed a consistent way to decide what to buy, where to move stock and when to leave an order alone.

A smaller order is not automatically a better order. Reducing leftover stock by failing to cover demand is a false win. The system needed to expose both over-ordering and under-ordering, rather than reward a low stock balance on its own.

Outcomes

The measured result

  • Across completed delivery windows from 30 June to 30 August 2026, the engine’s recommendations had 47.9% lower cost-weighted ordering error than the owner’s orders at one store. The report uses evidence through 9 September 2026.
  • The comparison covers 2,812 priced, gradeable order lines: 83.7% of 3,360 graded lines. Both orders were scored on the same priced subset, against observed sales after allowing for stock already held or on order. This result does not represent every product or all three stores.
  • Total ordering error fell from £36,651.63 for the owner’s orders to £19,108.89 for the engine’s recommendations. These amounts value the absolute excess and shortfall units at recorded buying cost; they are not money spent or cash saved.
  • Excess-ordering error fell from £35,429.40 to £15,551.12. Under-ordering error rose from £1,222.23 to £3,557.77. The overall improvement was driven by less excess buying, not better demand coverage across the board.
  • This measures recommendation quality against observed demand. It does not show that every recommendation was followed, or establish realised savings, increased sales, reduced write-offs or higher profit. Missing costs and sold-out windows with unknown demand are excluded from the relevant score and counted separately.
Explore V3CT0R retail

What this means for you

Ordering decisions across more than one store?

We can scope demand-led ordering, stock visibility and reporting around your existing data. Start with the decision you need to improve, then agree how its result will be measured.

Book a call

What needs to work better?

Tell us about your business and what’s getting in the way. We reply within 48 hours.

↗