I am trying to forecast sales for a company that runs a few stores. In many cases, I am pretty successful using some basic methods in Excel to forecast sales for every month, but I'd like to be more successful when it comes to forecasting for both whole months and each day within the month.

I'm not sure what is the best approach and how far I should be reaching. Biggest everyday variables that impact sales include:

  • month of the year
  • day of the week
  • week of the month
  • is it a holiday? which?
  • number of weekends in the month
  • does payday land on beginning of month or end of last month
  • number of same-store nearby
  • number of competitor stores nearby

I could think of many more variables that impact sales, but this small list is more than my current forecasting tool, Excel, can handle.

Based on my current knowledge, I'd guess regression would be the way to go, but I wonder if machine learning would be a better option (have no idea if someone that doesn't know much about machine learning could get useful data within a couple of weeks or if that's something that takes years).

What is a good tool to learn to use for something like this, that doesn't require months of work to get the first meaningful results (I understand that any field could take years to master, but for me it would need to be useful pretty fast, even if mastered over a longer time)? I do some coding in PHP and use MySQL a lot. I am interested in learning Python if that's a good tool for that. But I am able to quickly learn to use most tools, just don't know where to start.

  • 2
    $\begingroup$ Can you please elaborate a bit as to what "basic methods in Excel* entail? i.e. Are you using a simple moving average or you fit an ARIMA model or something else? $\endgroup$ – usεr11852 Apr 13 at 19:28
  • $\begingroup$ @usεr11852 It depends, but it's all pretty simple. I'm just using the trends that I see for each store. E.g. one store might have been increasing sales by 5% from last year for the past x months, so I forecast the same for next month. Another one may have increased sales by 5% one month but decreased by 5% the next month, so I would forecast it to stay the same. $\endgroup$ – Andri Apr 15 at 20:03

A quick "doesn't require a Ph.D in statistics or AI" method that is easy to use but still quite sophisticated is Facebook Prophet. It would handle most of the data categories you mention, like seasonal and day of week naturally (See here for adding Holidays and external regressors) and they have an intuitive and easy to use Python interface. I would recommend that you brush up on using Pandas data frames (a Python framework for manipulating spreadsheet like data) if you want to use Prophet.

The BSTS package from Google would also be useful, but for now it is only available in the R language, or in Python, but using the Tensorflow Probabilities module, both of which have pretty steep learning curves (I would say several months based on the skill set you describe).


Exponential smoothing (such as Holt) is a simple way to do forecasts which has historically had a pretty good track record. There are many variation of it. It will not do regression. Another, much less simple, form of time series is unobserved component models which will do regression and can do ARIMA based models as well (which most Exponential Smoothing are a specialized form of). I think these are space state models.


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.