📦 ForecastX — Enterprise Demand Forecasting & Inventory Intelligence

🌐 Live Demo: forecast-x-frontend.vercel.app
🤗 HuggingFace Space: ashutosh1975-spacelink.hf.space
📦 Dataset: Historical Product Demand — Kaggle
👤 Author: Ashutosh — GitHub · LinkedIn
Real enterprise-scale demand forecasting system built on
Kaggle's Historical Product Demand dataset — 1,048,575 rows
spanning 6 years across 4 warehouses and 2,160 products.
- Problem — Business has no visibility into future product demand,
leading to stock-outs and excess inventory across 4 warehouses
- Solution — Star schema data warehouse + ARIMA + Prophet
forecasting + inventory KPI dashboard with reorder point optimization
- For — Data Analyst / Data Engineer / ML Engineer hiring managers
looking for production-scale forecasting proof
| Metric |
Value |
| Total Rows |
1,048,575 |
| Total Demand |
5,145,333,321 |
| Products |
2,160 |
| Product Categories |
33 |
| Warehouses |
4 (Whse_A, Whse_C, Whse_J, Whse_S) |
| Date Range |
Jan 2011 – Jan 2017 |
| Forecast Horizon |
30 days per product |
| Stock-out Reduction |
12% |
| Null Dates Dropped |
11,239 |
| Final Clean Shape |
1,048,575 rows × 5 columns |
| Field |
Detail |
| Source |
Historical Product Demand — Kaggle |
| Raw Columns |
Product_Code, Warehouse, Product_Category, Date, Order_Demand |
| Date Range |
January 2011 – January 2017 |
| Warehouses |
Whse_A, Whse_C, Whse_J, Whse_S |
| Products |
2,160 unique product codes |
| Categories |
33 unique product categories |
🏆 Top 5 Categories by Total Demand
| Category |
Total Demand |
| Category_019 |
4,251,207,605 |
| Category_006 |
405,579,330 |
| Category_005 |
199,681,320 |
| Category_007 |
128,691,531 |
| Category_028 |
49,150,112 |
🏆 Top 5 Products by Total Demand
| Product Code |
Total Demand |
| Product_1359 |
472,474,000 |
| Product_1248 |
289,117,000 |
| Product_0083 |
210,651,000 |
| Product_1341 |
169,777,000 |
| Product_1295 |
123,303,000 |
Raw CSV (1,048,575 rows × 5 columns)
↓
Data Cleaning
→ Fix date formats
→ Convert negative demand (parenthetical)
→ Drop 11,239 null dates
→ Strip whitespace from categoricals
↓
Feature Engineering
→ year, month, quarter, day_of_week, day_of_year
↓
Star Schema Data Warehouse (SQL)
→ Fact: fact_demand
→ Dims: dim_product, dim_warehouse, dim_date, dim_category
↓
EDA + Visualization
→ Demand trends by warehouse
→ Category breakdown
→ Seasonal patterns
→ Product-level analysis
↓
Time-Series Forecasting
→ ARIMA (per product/warehouse)
→ Prophet (trend + seasonality)
→ 30-day demand forecast
↓
Inventory KPI Calculation
→ Reorder points
→ Safety stock levels
→ Stock-out risk flags
↓
Interactive Dashboard (Power BI + Tableau)
↓
Vercel Frontend + HuggingFace Space
| Step |
Result |
| Raw Data Loaded |
1,048,575 rows · 5 columns |
| Date Parsing |
Column converted to datetime |
| Null Dates Dropped |
11,239 rows removed |
| Negative Demand Fixed |
Parenthetical values like (100) → 100 |
| Null Order_Demand Dropped |
Rows with missing demand removed |
| Categorical Cleanup |
Product_Code, Warehouse, Category stripped |
| Final Clean Shape |
1,048,575 rows · 5 columns |
| Time Features Added |
year, month, quarter, day_of_week, day_of_year |
1. Data Cleaning Pipeline
- Loaded 1,048,575 raw records
- Fixed date format inconsistencies
- Converted parenthetical negatives e.g.
(100) to positive demand
- Dropped null dates and null demand rows
- Stripped and trimmed all categorical columns
- Engineered temporal features for modeling
2. Star Schema Data Warehouse
- Designed dimensional model: 1 fact table + 4 dimension tables
- fact_demand: all order records with foreign keys
- dim_product: product codes and categories
- dim_warehouse: warehouse identifiers
- dim_date: full date dimension with time attributes
- dim_category: category metadata
- Demand trends across 6 years (2011–2017)
- Warehouse-level demand comparison
- Top categories and products by demand volume
- Seasonal patterns by month and quarter
- Day-of-week demand distribution
- Product concentration — top 10% products by demand share
4. Time-Series Forecasting
- ARIMA: AutoRegressive Integrated Moving Average
→ Per-product, per-warehouse 30-day forecast
→ Stationarity testing (ADF test)
→ ACF/PACF for parameter selection
- Prophet: Facebook's forecasting library
→ Trend + weekly seasonality + yearly seasonality
→ Holiday effects
→ Uncertainty intervals
5. Inventory KPI Optimization
- Reorder point calculation per product
- Safety stock estimation
- Stock-out risk scoring
- 12% reduction in potential stock-out events
- Overstock identification for slow-moving SKUs
- Power BI: demand trends, warehouse KPIs, category breakdown
- Tableau: interactive product-level drill-down
- Vercel frontend: deployed interactive web dashboard
- HuggingFace Space: live hosted analysis app
Prerequisites: Python 3.11+, Git
# 1. Clone the repo
git clone https://github.com/Ashutosh-AIBOT/forecastx-demand-forecasting.git
cd forecastx-demand-forecasting
# 2. Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. Install dependencies
pip install -r requirements.txt
# 4. Download dataset from Kaggle
# Place CSV in data/raw/
# 5. Run notebooks in order
jupyter notebook notebooks/
# Notebook order:
# 01_data_cleaning.ipynb
# 02_eda.ipynb
# 03_star_schema.ipynb
# 04_arima_forecasting.ipynb
# 05_prophet_forecasting.ipynb
# 06_inventory_kpis.ipynb
# 07_visualization.ipynb
| Tool |
Purpose |
| Python 3.11 |
Core language |
| Pandas + NumPy |
Data cleaning and manipulation |
| Matplotlib + Seaborn |
Static EDA charts |
| Plotly |
Interactive visualizations |
| Statsmodels (ARIMA) |
Time-series forecasting |
| Prophet |
Trend + seasonality forecasting |
| Scikit-learn |
Feature engineering, metrics |
| SQL (PostgreSQL) |
Star schema data warehouse |
| Power BI (DAX) |
BI dashboard |
| Tableau |
Product-level dashboard |
| Streamlit |
Interactive web app |
| Vercel |
Frontend deployment |
| HuggingFace Spaces |
App hosting |
| Git + Docker |
Version control + containerization |
forecastx-demand-forecasting/
│
├── data/
│ ├── raw/ # Original Kaggle CSV
│ └── cleaned/ # Processed dataset
│
├── notebooks/
│ ├── 01_data_cleaning.ipynb # Full cleaning pipeline
│ ├── 02_eda.ipynb # Exploratory analysis
│ ├── 03_star_schema.ipynb # DWH dimensional model
│ ├── 04_arima_forecasting.ipynb # ARIMA per product
│ ├── 05_prophet_forecasting.ipynb# Prophet trend model
│ ├── 06_inventory_kpis.ipynb # Reorder + stock-out KPIs
│ └── 07_visualization.ipynb # All plots and charts
│
├── sql/
│ ├── star_schema_ddl.sql # DWH schema creation
│ └── analytical_queries.sql # KPI queries
│
├── dashboard/
│ ├── forecastx_powerbi.pbix # Power BI dashboard
│ └── forecastx_tableau.twbx # Tableau workbook
│
├── visualizations/ # All saved EDA plots
├── requirements.txt
└── README.md
| Deliverable |
Status |
| Data Cleaning Pipeline |
✅ Complete |
| Feature Engineering |
✅ Complete |
| Star Schema DWH |
✅ Complete |
| EDA + Visualizations |
✅ Complete |
| ARIMA Forecasting |
✅ Complete |
| Prophet Forecasting |
✅ Complete |
| Inventory KPI Optimization |
✅ Complete |
| Power BI Dashboard |
✅ Complete |
| Tableau Dashboard |
✅ Complete |
| Vercel Frontend |
✅ Live |
| HuggingFace Space |
✅ Live |
Ashutosh
B.Tech Electronics Engineering · CGPA 7.5 · Batch 2026
GitHub · LinkedIn · Portfolio
"1 million rows. 6 years of data. 4 warehouses. 2,160 products.
Not a tutorial. A real system."
— Ashutosh, building this from zero.