# How to forecast sales revenue: Compare various forecasting approaches

Calculate the error between the forecast and the actual value.

Whichever method has the least error, that is the approach to pick.

If the Simple Average Approach accurately predicts real revenue, there’s no reason not to use it.

Use case & data definitionFor this article I am going to take 2016 to 2018 sales data for a company that does 75 million dollars in annual revenue and uses that to predict the revenue for January to March 2019.

I will compare the forecast with the actual value & calculate the difference.

The method with the smallest difference will be the winner & that is the one will be used for calculating the forecast for the rest of the year.

Measure error between forecast vs the actual valueThere are two standard ways to calculate the error.

The first one is to calculate the difference between the forecast and the actual value for January February and March to the average of the year.

Error in the forecast for Jan = Abs (Jan Forecast — Jan Actual)Error in the forecast for Feb = Abs (Feb Forecast — Feb Actual)Error in the forecast for March = Abs (March Forecast — March Actual)Average error = (Jan Forecast Error + Feb Forecast Error + March Forecast Error ) / 3The reason abs (absolute) was used is, sometimes the forecast will be above the actual value could be below the real value.

So when we add the errors, we are adding the absolute value of the errors.

The above metric is called the Mean Absolute Error (MAE) and easy to understand.

One of the metrics I prefer is where it penalizes large differences which do not show up in the Average error.

To penalize large errors, one gets the square of each months error and adds them for the three months and get the average.

The square root of that value is the error that captures large errors and is called Root Mean Squared Error (RMSE)Average Squared error = [ (Jan Forecast Error) ^ 2 +( Feb Forecast Error) ^ 2+ March Forecast Error ) ^ 2 ] / 3RMSE = Square Root of (Average Squared error)There is one more error that is also popular which is Mean Absolute Percentage Error (MAPE) where the error is a percentage.

Though all 3 are valid ways to measure the error, I prefer the second one (RMSE) as it penalizes large deviations from the actual value.

Various forecasting methodsLets take a look at various forecasting methods to forecast sales.

Simple Average MethodHere we take the average of the last 3 yrs and set that as the forecast for the 3 months in 2019.

This means the forecast for Jan, Feb, and March of 2019 will be the same and will be equal to the last 3 yrs average.

This is one of the easiest method to forecast.

Using this approach, the Root Mean Squared Error (RMSE) I got was 312500Moving AverageHere we take the moving average of the forecast.

We can do 6-month moving average.

I used the last moving average value and set that as the forecast for the three months in 2019.

The forecast for Jan, Feb and March of 2019 will be the same and will be equal to the last 6 month moving average.

Note that some may recalculate the moving average for Feb by including the Jan prediction.

I prefer not to do that.

I prefer only to include actual values for the prediction input.

Using this approach, the Root Mean Squared Error (RMSE) I got was 347968Line extrapolationDraw a simple line between the Jan 2016 and Dec 2018 observation and extend that for the next three months.

This works if there is a good trend in the data.

If there is seasonality in the data this tends to perform poorly.

Using this approach, the Root Mean Squared Error (RMSE) I got was 410171Last month revenue as forecast aka Naive ApproachThe forecast for Jan, Feb, and March of 2019 will be the same and will be equal to the Dec 2018 revenue.

Using this approach, the Root Mean Squared Error (RMSE) I got was 373743Last year’s same month revenue as forecastThe forecast for Jan, Feb, and March of 2019 will be the actual value from Jan, Feb and March of 2018 (same month one year ago)Using this approach, the Root Mean Squared Error (RMSE) I got was 382058Apply conversion rate to open opportunitiesI used a conversion factor of 0.

1 and used the open opportunities beginning of each month to calculate the forecast for that month.

Using this approach, the Root Mean Squared Error (RMSE) I got was 292368Score opportunities using predictive modelsInstead of using a historical conversion factor like 0.

2, build out a simple classification model to predict the probability a deal will be closed this month.

All deals with > 80% probability I marked them in the forecast.

Using this approach, the Root Mean Squared Error (RMSE) I got was 163539Time Series Forecasting using ProphetHere we used the Prophet algorithm and fed 2016 to 2018 to predict the revenue for the three months in 2019.

Using this approach, the Root Mean Squared Error (RMSE) I got was 132957Comparison chartLower the RMSE better the model.

SummaryAs you see from the above, the last two approaches based on Machine Learning performed lot better than the other methods for the sales forecast problem I was trying to solve.

The first few approaches were straightforward to do.

If that accuracy is ok for running your business, you are in good shape.

If more precision is needed, the last approach is more beneficial.

For example, when predicting the number of orders or number of calls to the call center, those forecasts correlate to inventory and human resources investment to react to the forecast.

So when there is an action to be taken that costs \$\$\$, customers tend to go with an approach that has good precision like the last two above to create the forecast.