Skip to main content

Oramalytics

A retail company kept running out of its best-selling seasonal products at exactly the moment demand peaked. We built predictive models that forecast product-level demand and timing, allowing inventory to be positioned ahead of the curve rather than reacting to it.

15%Annual revenue increase
Product-levelDemand forecasting
Stock maintainedAcross peak periods

The problem

Retail runs on margin, and margin is decided by decisions made on incomplete information.

This company sold a product range with pronounced seasonality. Certain items moved steadily for most of the year, then spiked. The pattern was known in general terms — everyone understood which products had a season — but not with enough precision to act on.

The result was predictable and expensive. The products in highest demand were the ones that ran out, and they ran out precisely when demand peaked. Every stockout during a peak is revenue that cannot be recovered later. The customer does not wait for the restock; they buy elsewhere.

Ordering was based on prior-year volumes and judgement. That approach works when demand is stable. It fails when demand is seasonal, because last year’s total tells you how much was sold, not when it was wanted or how much more could have been sold had stock been available.

What we built

A single analytical view

The first task was bringing sales, inventory and customer data into one place. These lived in separate systems that did not reconcile, which meant nobody could see the relationship between what sold, what was in stock, and what was missed.

Product-level demand forecasting

We built predictive models that forecast demand for each product individually — both the quantity and the timing. Seasonality is not a single pattern across a catalogue. Different products peak at different points, for different reasons, with different ramp profiles. A forecast at category level is not actionable; a forecast at product level is.

Inventory positioned on forecast

The forecasts drove inventory planning. Rather than ordering against last year’s totals, the team could position stock ahead of each product’s predicted peak, in the quantity the model indicated.

What changed

Stock held through peak periods

The company was able to maintain stock on its high-demand products throughout their seasons. The stockouts that had been treated as an unavoidable cost of seasonal retail turned out to be a forecasting problem rather than a supply one.

A 15% annual revenue increase

Overall revenue increased by 15% year on year. The mechanism was straightforward: demand that previously went unmet because the shelf was empty was converted into sales.

Planning became a decision rather than a guess

The less visible outcome. Purchasing decisions that had been made on experience and last year’s numbers were now made against a forecast with a stated confidence level. The team could also see which products the model was less certain about, and treat those differently.

Why it worked

The forecast was built at the level decisions are made. Demand planning happens per product, per season. A model that forecasts at category or total level produces an interesting number that nobody can act on. Granularity is what made it operational.

The data had to be reconciled first. Sales, inventory and customer records sat in systems that disagreed with each other. Most of the early work was establishing a single reliable view. A demand model built on inconsistent stock data would have produced confident, wrong orders — considerably worse than the judgement-based process it replaced.

Project highlights

  • Retail business with pronounced product seasonality
  • Unified sales, inventory and customer data into a single analytical view
  • Product-level predictive models forecasting demand quantity and timing
  • Inventory planning driven by forecast rather than prior-year totals
  • Stock maintained on high-demand products through peak seasons
  • 15% increase in overall annual revenue

Running out of stock at the wrong moment? If your demand is seasonal and your ordering is based on last year’s totals, there is usually a forecasting gap rather than a supply one. Talk to us about it.