Ingress/Case Studies/Retail Demand Forecasting

Demand forecasting that actually ships.

A specialty retailer with 500 SKUs and $180M in annual revenue lost an estimated $8M to stockouts annually, with inventory decisions driven by gut instinct and historical patterns. We built a machine learning demand forecast model using XGBoost, trained on four years of sales history, seasonality, promotions, and external signals, deployed as a weekly batch pipeline feeding the merchandising team's planning tool.

Retail ยท Data Science 12 weeks XGBoost ยท Airflow ยท Snowflake
Stockout Events Reduced
23%
Missing revenue recovered
Annual Cost Savings
$3.2M
Inventory optimization impact
Context

Guesswork turned into precision.

The retailer managed hundreds of SKUs across product categories, but inventory planning remained largely manual and reactive. Buyers and merchandisers relied on seasonal heuristics, the previous year's sales, and personal judgment. The result was predictable, inefficient, and costly, a combination of chronic stockouts on popular items and overstock on slow-moving inventory.

The company had invested in a merchandising planning tool but had no intelligence layer feeding it. They needed a demand forecasting system that could process historical patterns, seasonality, promotion impact, and external signals (weather, market trends, competitor activity) to generate weekly SKU-level demand predictions that could be embedded directly into buying workflows.

  • Manual forecasting process. Buyers made inventory decisions based on intuition and historical sales, with no systematic approach to seasonality or trend.
  • Chronic stockouts. Estimated $8M annual revenue loss from out-of-stock situations on high-demand items during peak periods.
  • Excess inventory. Overstock on slow-moving SKUs tied up cash and required clearance sales at reduced margins.
  • No demand intelligence. Merchandising tool was disconnected from data, forecasting logic, or optimization algorithms.
Approach

How we built it.

We cleaned four years of historical sales data, engineered features for seasonality, promotions, and external signals, trained and backtested an XGBoost model, deployed it as a weekly scoring pipeline, and integrated forecasts into the merchandising planning tool.

01.
Historical Data Prep & Feature Engineering
Aggregated four years of daily sales, POS, promotion, and inventory data. Engineered features for seasonality, day-of-week, promotion spend, competitor pricing, and weather. Created lag features to capture demand patterns.
Data PrepFeature Engineering
โ†’
02.
Model Training & Backtesting
Built XGBoost model with hyperparameter tuning, trained on 80% of historical data. Backtested on held-out periods to validate forecast accuracy at 7, 14, and 30-day horizons. Achieved 89% accuracy at 30-day horizon.
XGBoostBacktesting
โ†’
03.
Batch Scoring Pipeline & Deployment
Built Apache Airflow DAG for weekly batch scoring, pulling latest sales and promotion data from Snowflake, generating SKU-level demand forecasts, and outputting predictions to database. Includes confidence intervals and variance estimates.
AirflowBatch Scoring
โ†’
04.
Integration & Merchandising Team Training
Integrated forecasts into merchandising planning tool, built Tableau dashboard to visualize predictions vs. actuals, trained merchandising team on interpreting confidence intervals and using forecasts in buying decisions.
IntegrationTraining
โ†’
Outcomes

What it delivered.

23%

Stockout events reduced

Demand forecasts enabled buyers to stock correctly for seasonal peaks and promotional events. High-demand SKUs now have buffer inventory. Revenue recovery from avoided stockouts is substantial.

$3.2M

Annual savings realized

Reduction in excess inventory, clearance discounts, and working capital tied up in slow-moving stock. Forecast-driven buying improved inventory turns and cash flow efficiency.

89%

Forecast accuracy at 30 days

Model captures seasonality, promotion lift, and demand patterns with high precision. Merchandising team trusts forecasts and incorporates them into weekly buying plans.

Tech Stack

What we used.

๐Ÿค–

XGBoost

Gradient boosting framework for demand forecasting, with strong performance on tabular sales and seasonal data. Provides feature importance and confidence intervals.

๐Ÿ

Python (scikit-learn, pandas)

Feature engineering, data preprocessing, model training, hyperparameter tuning, and pipeline orchestration. Libraries for evaluation metrics and forecast visualization.

๐Ÿ”„

Apache Airflow

Weekly batch scoring DAG pulling fresh sales and promotion data, running predictions, and loading forecast results. SLA monitoring and error alerting.

โ„๏ธ

Snowflake & Tableau

Data warehouse for historical training data and weekly predictions. Tableau dashboards for forecast visualization, variance analysis, and merchandising team insights.

Start a conversation

Tell us what's worth doing.

// 30 minutes โ†’ a written brief.

Bring the problem. We'll come back with a written brief, what to build, what to defer, and where AI actually moves the number. No deck pitches.

Emailconnect@ingressits.com
GSA MAS#47QTCA26D000K
Reply< 24 hrs