zach.dev
← All projects

Sales Forecasting & Demand Prediction Tool

Built forecasting models to predict daily and weekly unit sales using historical order data, date-based features, holidays, seasonality, and pricing events.

  • Python
  • pandas
  • scikit-learn
  • Prophet
  • XGBoost
  • Flask
  • CSV
  • matplotlib

Overview

I built a sales forecasting and demand prediction tool to estimate future ecommerce unit sales using historical order data. The project explored multiple modeling approaches and feature sets to improve forecasting accuracy.

The goal was to create a practical forecasting workflow that could support planning, inventory decisions, and performance expectations.

Problem

Sales volume changes based on seasonality, holidays, promotions, price changes, and other timing-related factors. Simple averages or manual estimates were not enough to capture these patterns.

The business needed a more structured way to predict future demand and understand how historical patterns could inform upcoming weeks or months.

Solution

I created a Python-based forecasting workflow using historical sales data and engineered date features.

The system included:

  • Daily and weekly sales aggregation
  • Month, week-of-year, day-of-week, and year features
  • Holiday and promotional event indicators
  • Price change events
  • Train/test evaluation
  • Iterative forecasting by date range
  • Multiple model comparisons
  • CSV exports for review
  • A simple Flask interface for weekly forecast selection

I tested models including linear regression, random forest, gradient boosting, Prophet, and other machine learning approaches.

Impact

The project created a more structured forecasting process and made it easier to evaluate future demand scenarios. It also helped identify which features and modeling approaches were most useful for predicting sales volume.

What I Learned

This project helped me better understand time-series forecasting, feature engineering, and model evaluation. It also reinforced that the best model is not always the most complex one — the most useful model is the one that produces reliable outputs people can act on.