I have a revenue dataset for various businesses. For about half of those businesses, monthly data is available. For the other half, only annual revenue data is present. I know the seasonality of the revenues fairly well from the half of the businesses who have reported their monthly revenue. In addition, the data goes back at least five years, so I know that seasonal effects are real. What is the best way to go about extrapolating monthly revenue for businesses with missing data given the information I have on hand? Even though it is not strictly true, I am assuming that the businesses with missing data and businesses with complete data are sufficiently similar that we need not worry about any underlying issues.

  • 1
    $\begingroup$ Whatever approaches are suggested, you should obviously hold out some of the monthly-revenue companies as test cases and see what happens when you impute monthly values from their annual totals. $\endgroup$
    – Wayne
    Commented Mar 29, 2016 at 13:10
  • 1
    $\begingroup$ This probably can be done with the proportional Denton method of interpolation of a low-frequency time series by use of an associated higher-frequency indicator series, imposing the constraints that the interpolated series obeys the original low-frequency series totals. There's an IMF document that goes through the approach and various implementations in several languages. $\endgroup$
    – dimitriy
    Commented Feb 9, 2018 at 18:51

2 Answers 2


One possibility is to calculate a seasonality curve from the monthly data - each month will get a seasonality index - and then use the trend in annual revenue and the seasonality curve to get monthly revenue predictions.

Rough steps:

  1. Calculate a seasonality curve from the companies with monthly data. Each month receives a seasonality index.
  2. For companies with annual revenue, predict the following year's revenue using whichever method you like best
  3. Calculate the monthly revenue for those companies by multiplying the predicted annual revenue and the seasonality curve

Time series analysis incorporating Intervention Detection can estimate these missing values. Essentially the "0" value at a particular point in time is treated as an exception and the size of the exception is the estimated coefficient associated with that point in time. You can search for Intervention Detection OR AUTOMATIC Intervention Detection using a browser. If the number of missing values is "large" relative to normal data points then you might have to iteratively pursue this.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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