Industry delivery · Knowledge Transfer Partnership
Industry systemFrom demand forecasts to procurement decisions
A 30-month Priory Direct / University of Kent KTP, designing and delivering a six-horizon forecasting and inventory/procurement system for a changing catalogue of approximately 1,200 SKUs.
In brief
- Period
- March 2024 – September 2026
- Decision
- What to order, how much and when, across a changing portfolio of approximately 1,200 packaging SKUs.
- My role
- KTP Associate – Data Scientist for the full 30 months. Led technical design and delivery with Priory Direct stakeholders and University of Kent academic supervision.
- Data and scope
- Daily-refreshed rolling historical demand, sales, price, availability, stock and supplier records. The approximately 1,200-SKU operational portfolio differs from the fixed 1,069-SKU retrospective cohort.
- Approach
- Six consecutive non-overlapping 30-day horizons (H1–H6, 180 days); demand-type/history-aware model selection, chronological evaluation, uncertainty, stability checks and fallbacks.
- Evaluation
- One February 2026 retrospective origin and six 30-day periods: 24% lower aggregate absolute forecast error across 1,069 SKUs versus an earlier development configuration. Not necessarily the original Usage Analysis benchmark.
- Output
- Python/SQL workflows, Power BI reporting and auditable buyer workbooks connecting forecasts to safety stock, reorder points, stock projection and supplier-constrained recommendations; typical runtime approximately 6–7 hours.
- Human review
- The buyer review list was still in shadow mode in the referenced evaluation. Recommendations required human judgement; the forecast result does not establish realised purchasing or financial benefits.
- Limitations
- One retrospective origin; gains concentrated in high-volume and dormant/zero-demand products. Some cohorts regressed. Not a universal per-SKU improvement or independently confirmed future performance.
- Evidence status
- Delivered KTP system and separately scoped retrospective assessment. Priory Direct owns the IP. Public summary only; the forecasting manuscript remains in preparation for multi-horizon evaluation.
Understand the demand
History and demand type guide feature engineering, chronological model comparison and controlled fallbacks.
Statistical · intermittent · boosted · global neural
- H1days 1–30
- H2days 31–60
- H3days 61–90
- H4days 91–120
- H5days 121–150
- H6days 151–180
Plan through the lead time
Stock on hand, inbound supply and uncertain demand shape the replenishment decision.
Inventory position = stock + open supply − backorders
Synthetic policy trigger: inventory position 380 ≤ reorder point 400 units.
Recommend, then review
Supplier rules turn a stock requirement into an orderable quantity. The buyer retains judgement.
Synthetic buyer-review example
Subject to human review
- Stock / inbound
- 260 / 120 units
- Target stock position
- 540 units
- Minimum / pack
- 200 / 50 units
Inspect the recommendation
Requirement: 540 − (260 + 120) = 160 units. Apply the 200-unit supplier minimum, then round up to a 50-unit pack: 200 units.
Expected stock assumes 14 units of demand per day, no backorders and the stated receipt dates. Targets, lead times, quantities and policy thresholds are invented.
The decision the system supports
Priory Direct supplies packaging products. Procurement needs to decide what to order, how much and when, balancing uncertain demand against stock, supplier lead times and ordering constraints. The KTP connected a regularly refreshed forecast to inventory and purchasing decisions across a changing catalogue of approximately 1,200 SKUs.
My contribution
From March 2024 to September 2026, I led technical development as the KTP Associate – Data Scientist. I designed the Python/SQL data workflows, forecasting architecture, evaluation, inventory logic and reporting. Management, procurement, software and academic colleagues helped frame requirements and review outputs. The intellectual property belongs to Priory Direct.
Six-horizon forecasting architecture
The system advanced from single-step evaluation to six consecutive, non-overlapping 30-day horizons: H1–H6, covering 180 days. Daily-refreshed rolling historical demand feeds these forecast buckets; they are not six overlapping cumulative windows.
- Demand and history routing: distinguish smooth, erratic, intermittent and lumpy demand, with controlled fallbacks for short-history and new products.
- Model comparison: baselines, statistical and intermittent-demand methods, gradient-boosted ML and global neural forecasting. Comparing a model family does not mean that every model was selected for operational use.
- Evaluation and selection: chronological backtesting and per-SKU model selection, with validation and stability checks before downstream use.
- Uncertainty: forecast paths and intervals support inventory decisions rather than presenting one precise demand number as certain.
From forecasts to buyer workbooks
The forecasting outputs feed bespoke safety stock, reorder points, projected inventory, replenishment timing and proposed purchase quantities. Supplier lead times, service-level targets, minimum quantities, pack sizes and supplier ordering constraints shape the recommendations.
The delivery combined Python, SQL, SAP Business One / SQL Server, SQLite, Power BI and auditable buyer workbooks. A usual end-to-end run took approximately six to seven hours. This describes processing time, not a measured reduction from an earlier workload.
The workbooks support review and traceability. The buyer review list remained in shadow mode during the referenced evaluation. Human review and decisions about actual supplier orders are distinct from producing forecasts and recommendations.
Evaluation
The reported comparison used one retrospective February 2026 forecast origin, evaluated over six 30-day periods through early August 2026, for a fixed cohort of 1,069 SKUs.
| Measure | Earlier development configuration | Corrected configuration |
|---|---|---|
| Six-period aggregate absolute forecast error | 1.90 million units | 1.43 million units |
| Aggregate portfolio over-forecast | +66% | +9% |
This represents a 24% reduction in aggregate absolute forecast error. Aggregate error was lower at each of the six horizons. The comparator was an earlier in-development pipeline configuration, not necessarily the original business Usage Analysis method.
Gains were concentrated in high-volume and dormant/zero-demand products; some SKU cohorts regressed. The result is neither a universal per-SKU improvement nor independently confirmed future performance. It does not measure financial savings, realised stock reduction or live service-level improvement.
Research status and scope
The operational portfolio of approximately 1,200 SKUs changes over time; the retrospective evaluation fixes a separate 1,069-SKU cohort. An earlier forecasting manuscript used a historical 1,474-SKU portfolio at a one-step horizon. These are different populations and experimental designs.
The manuscript with Ramin Raeesi and Zhen Zhu remains in preparation/revision, with the research design being updated for multi-horizon forecasting and inventory-focused evaluation. The 24% operational retrospective result is not a completed peer-reviewed multi-step research finding.
Limitations and human judgement
Sparse demand, limited histories, stock availability and changes absent from the data constrain forecast reliability. Buyers still need to account for new customers, supplier disruption and information outside the model. The system provides structured, traceable recommendations, not autonomous purchasing.
This public case describes high-level methods and aggregate results only. Private code, business records, internal reports and system screens are not included.
A public Forecast → Inventory demonstration uses synthetic data and standard methods. It is an independent educational example, not a reproduction of the confidential KTP implementation.
The case study above is the industry system. See a synthetic forecasting example →
Also on this site
Doctoral research · University of Essex
Using forecast demand to improve delivery decisions
Developed forecast-informed pricing, slotting and routing methods for online grocery delivery; simulated profit improvements of 13.57–21.43% in simulations using real-world Ocado data.
Read the case study: Using forecast demand to improve delivery decisions →Public competition · Independently scored
VN2 Inventory Planning Challenge: 6th place
Sixth of 180+ participants in the first public inventory-planning competition (2025); six weekly ordering rounds scored on holding and shortage cost.
Competition result →