6 tips to improve your Forecast Accuracy

Measure your Forecast Accuracy

There is a saying: “You can not improve what you can not measure”. By definition, if you want to improve your Forecast Accuracy, your first step is to measure it in order to understand what you are do OK and your areas for improvement.

There are a bunch of formulas to measure Forecast Accuracy and we won’t go in detail of all of them here, however no matter which formula you will pick it is very important that it comes in two versions, in order to measure both

  • The Bias: this means if you consistently Over Forecast or Under Forecast, if you are an optimistic forecaster or a pessimistic one. An accurate forecast should have a Bias as close as possible to zero. In an aggregated Bias Forecast Error calculation, over and under forecasts will compensate each other, and you will only exhibit a positive Bias Error at aggregated level if you consistently Over Forecast ; if you are consistently Optimistic. Similarly you  will only exhibit a negative Bias Error at aggregated level if you are consistently Pessimistic. Understanding this will be a great step towards improving your Forecast Accuracy
  • The Absolute Error: this is the average error (over forecast or under forecast) that you make, either over forecasting or under forecasting. Here if you measure the aggregated Absolute Forecast Error, over and under forecast do not compensate each other. This error will quite likely not be zero, and your target will be to keep it as low as possible

Bias Forecast Error

Bias_Error= ∑(Forecast – Sales) / ∑Sales

Absolute Forecast Error

Abs_Error = ∑ABS(Forecast-Sales) / ∑Sales

 

Measure and keep track on these errors over time in order to analyse where you have the highest Bias and Absolute Error and find a way to address it.

Invest your resources wisely

Once you have found out which areas you need to improve most, invest your resources wisely. The Pareto Law states that 80% or so of your Forecast Error will be driven by 20% of the Items so focus the most of your resources on this 20% or so that will be driving the biggest reduction.

Use Statistics

One of the best way to get an objective and unbiased forecast will be to use a Statistical algorithm to forecast from Historical data. Statistical algorithms are usually less biased than humans and can allow to detect some patterns such are trends and seasonality in a relatively objective way

Collaborate with peers

Using statistics do not mean falling into the pitfall of an “all-statistics” forecasting approach. It is proven that Forecast Accuracy is maximized when you combine Statistical Forecasting with some Qualitative and Collaborative inputs:

  • Qualitative Feedback: getting some qualitative information about trends, future events already planned… etc is the best way to understand your historical signal, to clean it from outliers if needed, and to anticipate the future and to check that your Statistical Algorithms are going in the right direction
  • Hierarchical checks: If you forecast at Item level, you might want to check that your forecast makes sense at an aggregated level. In order to do this you might need to convert your forecast in Units into other “languages” such as EUR or USD Revenues in order to match a Budget or discuss about the potential by Line with your Finance and Marketing team who will generally talk in Currency. Converting your Forecast in Units into a Forecast in Weight or in Hours of Production is also a good way to speak the same language as your Warehouse or Production Plant and do to high level checks that it makes sense in regard to their capacity / budget.

Look at Sell-Out not Sell-In

If you are selling a product to a Third party (say a Distributor) who will eventually resell it to a Shop and then to the Final client you are in a Sell-In / Sell-Out configuration.

You might be only interested in forecasting your sales to this Distributor (your Sell-In), however it might be worth it to look a little further down the Selling Chain. Indeed, if there is a big slow down in the sales from the Shop to the Final clients, the Shop will likely be full of non rotating inventory, and will likely not order more to the Distributor. If this trend is generalised to all the shops who usually purchase from this Distributors, the Distributor himself will be overstock and stop to order from you. Therefore your Sell-In will soon start to drop. Similarly if Final Customers get crazy about your product, shops and soon your Distributor will run out of Stock, and your Sell-In is likely to pick up strongly as well.

Understanding the behaviour at the end of the Selling Chain; the Sell-Out, is of utmost importance if you want to better anticipate future selling trends. This can be achieved to a strong collaboration with the Final Selling Points, for example through sharing Point of Sale data, or more simply through Qualitative Feedback

Smooth Demand

Last week I lost a Poker game to one of my friends, after he called my bluff. When asking him how he knew I did not have the King needed to win that game, he just told me, a little embarrassed: “I must admit I saw your cards when you looked at them, you should really be more careful next time”.

Apart the fact that I’m a poor Poker player or that I should really reconsider my friendships, this is telling us something extremely important when it comes to Forecast Accuracy. My (so-called) friend’s Forecast was Accurate and it was not because he’s a Forecasting genius, but precisely because he was NOT forecasting anything… he actually already knew the outcome!

Try to apply this to the Business World. By definition, Forecasts are always wrong. However the more you can get to know your actual Signal upfront, with certainty, the less you have to Forecast it, the more Accurate you are!

This might be difficult or close to impossible if you are at the end of the Selling Chain, and that your sales depend of the random customer behaviour of final customers. However it is much less impossible if you are at the beginning or at an intermediary level of the Selling Chain, where you could ask or even agree with your customer about what he intends to purchase to you in the near future. He might be OK to share with your some Forecasts, to place his Orders upfront, to anticipate or postpone them at your request, or to let him manage his Inventory directly (VMI or Vendor Managed Inventory). Reaching that level of Collaboration with your Customer will make it much easier for you to foresee what will happen next and to improve your Forecast Accuracy.

And if you are at the end of the Selling Chain, that does not mean that you can not Smooth Demand either. Of course you will not be able to ask random customers that you have never met to postpone or anticipate their purchase or to give you advance notice about it. However knowing that Marketing and Advertising techniques work, you might be able to redirect your Promotional activities according to Sales Patterns in order to smooth demand. If you Sales of Item X are so strong that you can not keep up with Supply, there is probably little purpose in continuing to dedicate heavy Promotional budget and resources to Item X. Use these resources on Item Y where sales are slower instead. You will still sell Item X, however you might avoid running out of Stock by stopping pushing it so much and your Sales of Item Y which were slow might pick up, reducing your risk of Inventory Obsolescence.

Price Changes are also a great option to achieve similar results. By increasing price of item X and decreasing the price of item Y, your Unit Sales of item X should decrease and the Units Sales of your Item Y should increase.

Using these tools, again through strong Internal and External Collaboration will help you drastically increase your Forecast Accuracy.

AnalystMaster

Time Series Forecasting: Don’t forget Seasonality!

Why is Seasonality important

Seasonality is in everything we do, we even considering unconsciously, for example when we leave for work early to beat morning traffic, or when we book our Summer holidays early to avoid peak prices.

If you are running a Winter attire business, you might only sell a few pieces during summer but your sales might boom when the weather gets colder, therefore requiring additional resources such as Inventory, Staff Availability… etc.

Seasonality is therefore a very important component of Planning and especially in Forecasting.

How to calculate Seasonality

Seasonality is usually calculated using the Time Series Decomposition Method.

This method assumes the Signal can be broken down in 3  components:

  • The Trend: is your signal flat? increasing or decreasing?
  • The Seasonality: does your signal show peaks and drops at specific Time periods (for example peak of Sales for Christmas in December)
  • The Noise: this is the part of the signal that can not be explained. If the Signal is well decomposed, the Noise component should be a process of mean = 0
  • Sometimes a Cycle component is also added. We will assume there is no Cycle going forward

 Multiplicative Time Series Decomposition

Signal(t) = Trend(t) * Seasonality(t) * Noise (t)

Additive Time Series Decomposition

Signal(t) = Trend(t) *+Seasonality(t) + Noise (t)

At AnalystMaster we generally prefer to consider Times Series as Multiplicative (and that is what we will use going forward). In that case, Seasonality for each time period could be seen as a weight and the Sum of Seasonality for all components is equal to 1 or 100%.

 Calculate Seasonality in Excel

You can also use the attached Excel Model to calculate your Monthly Seasonality in Excel.

This model works with 24 months of Historical data

  1. It first evaluates the Trend using a Centred Moving Average (only possible from time bucket 6 to 18), and extrapolate this trend linearly for time buckets 1 to 24.
  2. Then the trend is removed (we divide the original signal by it as we consider the Time Series as Multiplicative), in order to leave only the Seasonality and Noise as the only components of the Time Serie.
  3. Finally, Seasonality coefficients from both time periods are averaged

Calculate Seasonality with R

R is a great tool to calculate the Seasonality of a Time Series. You can use the following piece of code to read a monthly time serie from a data.csv file and return the Seasonality coefficients.

R will return you the Seasonal, Trend and Random components from the Multiplicative Time Series decomposition.

library(gdata)
> library(forecast)
> library(tseries)
> mydata = read.csv(“data.csv”)
> signal<-ts(signal ,start = c(2014,1), end = c(2017,6), frequency = 12)
> seascoef<-decompose(signal, type=”multiplicative”)

season_r

 The next levels

Including  Seasonality in your planning will dramatically improve your planning accuracy. However you might find out that only considering the Seasonality at Monthly level is not good enough and that you need to also include seasonality at a more detailed level to maximize your planning accuracy.

Seasonality exists also at a more detailed level: weekly, daily, hourly… for example

  • Weekly seasonality: if you are a Retailer: although December is a peak month, not all the December weeks are equal. The seasonality is much stronger on the last week before Christmas and failing to anticipate this can result in shortages of capacity
  • Daily seasonality: if you own a shop or a restaurant, Seasonality is usually stronger on some days of the week: Saturday for example
  • Hourly seasonality: peak times also vary hour by hour. If you are running a call centre you need to plan your capacity accordingly. Or if you are going shopping at Harrods’s, you might want to go when the store is less crowded according to the chart below which is available on Google

 

harrods

Sometimes Seasonality can even be more complex as it does not necessarily follow a regular Month-Week-Day-Hour pattern.

A well-known example by Retailers is Chinese New Year, which follows the Chinese Moon calendar and will therefore fall on a different week and month every year. Easter or Ramadan are also moving holidays and seasonality can be hard to evaluate.

chinese

How far should I go?

Seasonality is important and should be included in your forecasting activities, however you need to keep it at a level which is both relevant for your activity and simple enough to implement. For example if you plan Production at a Monthly level, keep your signal at a Monthly level and evaluate Seasonality at this level too. If you are planning a Warehouse Capacity at Weekly level, then get your Signal and Seasonality at Weekly level, and if you are planning how to staff a Call Centre or a Shop on an Hourly basis, then plan and measure Seasonality hour by hour. But do not introduce unnecessary complexity in getting a signal at hour level if you only expect a monthly plan

AnalystMaster