1
$\begingroup$

I would like to disaggregate monthly forecasts of sales into daily data. I have historical data about daily sales over the past two years (which mainly depends on deterministic effects like day-of-the-week, holiday, end-of-month effect,..).

Which technique can I use to predict future daily sales starting from available monthly forecasts according to the historical distribution of sales by day and ensuring that the daily forecasts sum up to the monthly forecasts?

$\endgroup$
1
$\begingroup$

Ideally, you want to forecast at the level you need forecasts for. One alternative is using Temporal Hierarchical forecasting via: http://robjhyndman.com/papers/temporalhierarchies.pdf - (implented in the R thief package). This uses multiple aggregation levels (daily, weekly, biweekly, etc.), forecasts out each and reconciles the forecasts. Alternatively, you could try multiple seasonal TBATS or double seasonal Holt-Winters.

Lastly, you could also try moving averages of the Day of Week pattern, index day of month, or seasonal index day of month (i.e. Jan. 2016 index 1 received 2% of total monthly volume, index day 2 received 1.4%, etc.). With all of these methods, it would be wise to use test sets to see which have the best predictive accuracy so you can select the one that is best for your data.

$\endgroup$
  • $\begingroup$ Thanks for your useful answer. My problem with directly forecasting at the daily level is that I need to maximize the accuracy at the monthly level (but also having daily predictions). Moreover, I have an exogenous predictor which is highly correlated with the target at the monthly level, but not at the daily one. $\endgroup$ – Math Jan 30 '17 at 19:38
  • $\begingroup$ You can try the methods I propose in the 2nd paragraph in that case. If you're using a percent of previous period, they will always total your monthly. You'd just multiply the monthly forecast by the % of volume that the day got for the same month last year. Example: Jan 1 got 2% of the total monthly jan. volume last year, so Jan.1 Forecast = (2% * Jan. monthly forecast), Jan.2 Forecast = (1.5% * Jan. monthly forecast), and so forth. You may need to adjust for holidays. $\endgroup$ – AnscombesGimlet Jan 30 '17 at 20:05
  • $\begingroup$ The second method you propesed is what I actually tried. Unfortunately, there is day-of-the-week seasonality in my data, so I had to include day of week dummies in the regression. The drawback is that, due to differences in the count of weekdays in each month, daily forecasts doesn't sum up to the monthly prediction. To overcome this, I adjusted the daily values by distributing the difference between the aggregate monthly prediction and the sum of the daily forecasts over the days, holding the initial distribution constant. Do you have any idea to avoid the second-step redistribution? $\endgroup$ – Math Jan 30 '17 at 23:11
  • $\begingroup$ In that case you could try finding the monthly distribution by index week for that month (ensuring holiday weeks align - i.e. week 1 jan 20% of volume, week 2 30%, week 3 15%, week 4 35%), multiply the monthly forecast by that distribution. Then find the Day of Week distribution for each index week (ensuring holiday weeks align) and use a seasonal naive method and multiply the weekly forecast by that. This will ensure you distribute the data amongs the weeks, maintain (hopefully) a decent day of week pattern and your forecasts still sum to the monthly. $\endgroup$ – AnscombesGimlet Feb 2 '17 at 16:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.