In my current work sales forecasting and budgeting is being done rather classical way:
Take the sales from last year for comparable date and add or decrease X% on top to reflect recent trend.
This works "ok", and hits accuracy of -20% to +20% as the business has quite clear yearly seasonality. However, it is time consuming and boring task to do for multiple markets and check if there are any shifts in promotion days versus last year etc.
For example, now if a promotion starts a few days earlier than last year it might be that the sales for these days are 5-20 x higher than without promotion in the comparable date last year.
Now there must be a more sophisticated way to do the forecasting that saves my time and leads to a better accuracy as well. I am familiar with Python, but a newbie in timeseries forecasting.
In many discussions suggested approaches are ARIMA, SARIMAX etc. I tried statsforecast AutoARIMA with seasonality of 364 days (52 weeks * 7 days) but it is very slow so I assume it is rather heavy calculation with that long seasonality. For 2000 rows I let it run for 30mins and then decided to interrupt.
Then, instead I tried statsforecast MSTL and AutoARIMA for trend with exogenous variables, which captures the overall seasonality quite well but fails capturing the promotion shifts (hotcoded exogenous promotion type) miserably and relies too heavily on the number from last year.
So I should find a model that captures well the yearly seasonality (spiky Q4) but takes into consideration an uplift for type of promotion as well as the recent trend. I am having daily data for approximately 3 full years and I should predict the sales 4 to 6 weeks forward for 8 different markets.
Would there be any tips or suggestions for suitable model that could work well for my case?