Skip to content

End-to-end demand forecasting with Python using synthetic time-series sales data. Includes data generation, cleaning, ARIMA/SARIMA model selection by AIC, evaluation with RMSE and MAPE, and 90-day forecasts with confidence intervals. Reproducible scripts and visualizations for portfolio showcase.

License

Notifications You must be signed in to change notification settings

AmirhosseinHonardoust/Demand-Forecasting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Demand Forecasting (Time-Series)

End-to-end demand forecasting with Python using synthetic time-series sales data. Includes data generation, cleaning, ARIMA/SARIMA model selection by AIC, evaluation with RMSE and MAPE, and 90-day forecasts with confidence intervals. Reproducible scripts and visualizations for portfolio showcase.

Forecast daily sales with ARIMA/SARIMA on synthetic data. Includes generation, cleaning, train/validation split, AIC-based model search, evaluation (RMSE/MAPE), and 90-day forecast with confidence intervals. Production-ready scripts and charts for portfolio showcase.


Features

  • Synthetic daily sales generator (trend + weekly + annual seasonality + noise)
  • Train/validation split
  • ARIMA/SARIMA model search by AIC (weekly seasonality)
  • Metrics: RMSE, MAPE
  • 90-day forecast with confidence intervals
  • Plots: history vs. forecast, residual diagnostics
  • Deterministic seeding for reproducibility

Project Structure

demand-forecasting/
├─ README.md
├─ LICENSE
├─ requirements.txt
├─ data/
│  └─ generate_timeseries.py
├─ src/
│  ├─ forecast_arima.py
│  └─ metrics.py
└─ outputs/
   └─ figures & reports

Setup

python -m venv .venv
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate
pip install -r requirements.txt

Generate Synthetic Data

python data/generate_timeseries.py --start 2023-01-01 --end 2024-12-31 --seed 42 --out data/daily_sales.csv

Run Forecast

python src/forecast_arima.py --input data/daily_sales.csv --horizon 90 --val_days 60 --outdir outputs

Outputs

  • outputs/metrics.json – RMSE & MAPE (validation)
  • outputs/forecast.csv – point forecast + confidence intervals
  • outputs/fig_history_forecast.png
  • outputs/fig_residuals.png

Sample Results

Forecast vs History

fig_history_forecast

Residual Diagnostics

fig_residuals

Key Metrics

Metric Value
RMSE 2.11
MAPE 2.77%
ARIMA Order (2,1,2)
Seasonal Order (0,1,1,7)
AIC 2836.7

Data Schema

column description
date daily timestamp
sales units sold (int)

About

End-to-end demand forecasting with Python using synthetic time-series sales data. Includes data generation, cleaning, ARIMA/SARIMA model selection by AIC, evaluation with RMSE and MAPE, and 90-day forecasts with confidence intervals. Reproducible scripts and visualizations for portfolio showcase.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages