🎯 Business Challenge
Finance team relied on static annual budgets that ignored seasonality, leading to:
- Inventory Mismatches: Overstocked in slow months, stockouts in peak season.
- Cash Flow Surprises: Unexpected shortfalls because demand wasn't accurately predicted.
- Manual Forecasting: Analysts spending 2 weeks each quarter adjusting Excel spreadsheets.
💡 Solution: Facebook Prophet Model
Implemented Prophet (developed by Meta) for time-series forecasting, capturing seasonality, trends, and holidays automatically.
Implementation
from prophet import Prophet
import pandas as pd
# Prepare data (Prophet requires 'ds' and 'y' columns)
df = pd.read_csv('sales_history.csv')
df = df.rename(columns={'date': 'ds', 'sales': 'y'})
# Train model
model = Prophet(
yearly_seasonality=True,
weekly_seasonality=True,
daily_seasonality=False,
holidays=holidays_df # Black Friday, Christmas, etc.
)
model.fit(df)
# Generate 6-month forecast
future = model.make_future_dataframe(periods=180)
forecast = model.predict(future)
# Visualize
model.plot(forecast)
model.plot_components(forecast) # Trend, seasonality breakdown 📈 Key Results
- 88% MAPE Accuracy: Mean Absolute Percentage Error of 12% (industry benchmark: 20%).
- Inventory Optimization: Reduced holding costs by 18% through better demand planning.
- Cash Flow Precision: Forecasted revenue within 5% accuracy enabled better working capital management.
- Time Savings: 2 weeks → 2 hours for quarterly forecast updates.
🛠️ Model Features
- Seasonality Detection: Automatically captured weekly, monthly, yearly patterns.
- Holiday Effects: Modeled Black Friday, Christmas spikes without manual rules.
- Confidence Intervals: Provided upper/lower bounds for risk planning.
- Power BI Integration: Forecasts visualized in executive dashboards.
🚀 Future Enhancements
- Multi-SKU Forecasting: Separate models for each product category.
- External Regressors: Incorporate marketing spend, competitor pricing.
- Real-Time Updates: Daily retraining as new sales data arrives.