Demand Forecasting: 7 Days Ahead
2026-07-25In progress
A 7-day-ahead demand forecast done the way time series must be: walk-forward backtesting, baselines first, and strict control over what's known at forecast time.
time series forecasting backtesting scikit-learn
In progress: write-up coming
This write-up will be completed as the project is finished. The sections below show the problem and intended approach; results only get added once they’re real.
Problem
Standing at the end of today, how many bikes will be rented a week from now? It is the horizon an operations team needs for staffing and rebalancing, and a good test of whether you can forecast without quietly leaking the future into your features.
Data
UCI Bike Sharing (Public, Capital Bikeshare daily rentals, 2011 to 2012 (731 days))
Approach
Walk-forward backtesting on an expanding window (517 genuine out-of-sample forecasts), never a random split. Every feature is knowable at the forecast origin: lags at least a week old and rolling stats shifted by the horizon. I built two honestly-labelled feature sets, history-only and a version that adds the 7-day weather forecast an ops team really has, to measure exactly what weather information is worth.
Result
The best model beat the moving-average baseline by 27% (MAE), and the weather-forecast feed alone cut error about 17% over history-only features, the single biggest lever. WAPE (about 13%) is the headline metric; MAPE is reported but flagged, since it is distorted by the Oct 2012 Hurricane Sandy day of just 22 rentals.

demo video
a short recorded walkthrough goes here once the project is complete
What I'd do differently
Only two annual cycles limit the seasonal estimates, and the weather model uses actual weather as a perfect-forecast proxy, so live accuracy would be a little lower. Prediction intervals for staffing buffers are the extension I am adding next.