Say we have a series of month-on-month figures like the following, and we want to get the growth rate between the two periods:

product    aug    sep    growth
apples      100   130      +30%
oranges      30    90     +200%
pears        70   140     +100%
bananas     210   220       +5%

Easy enough, but how about if there is one product which didn't sell in August:

berries       0    10        ??

If we want to display berries in the same table as the other ones, we have a problem. The naive way would be to display something like "NaN" or "N/A" but this would have the drawback of not being very informative as to "how much" berries have gone up, compared to the other products. For instance, had we sold 1600 berries in September, or had we sold only one, this "N/A" value would appear exactly the same. In one case though, berries have seen an extreme surge, and in the other, just one has been sold, almost inconsequentially.

Another way would be to add "1" to the previous-month figure, which would solve the "N/A" problem but would make all the other figures slightly off, in addition to making the concerned value extremely high (e.g. if 0 berries in Aug and 10 berries in Sep, then the growth rate would be (10 - 1) / 1 = 900% which would dwarf any other product even though 10 is not that high of a value, compared to the rest of the table).

How to make such notion of a growth, even when coming from zero, appear in the final table, while keeping the table consistent and the values with non-zero origin correct?

  • 1
    $\begingroup$ Growth can also be in absolute numbers. Would it be useful to calculate fruit at time t minus fruit at time t - 1? $\endgroup$
    – mkt
    Oct 10, 2019 at 11:45
  • 4
    $\begingroup$ There is no acceptable fudge here. With zero as base, growth rates are indeterminate. End of story. Adding 1 is no answer. Why not add any smaller number say $10^{-6}$ or $10^{-12}$? If this were my problem I would add absolute change as a extra column and a footnote explaining that growth rates can't be calculated with zero as base. $\endgroup$
    – Nick Cox
    Oct 10, 2019 at 11:46
  • $\begingroup$ @mkt I've thought of this but the issue would be that we lose some information about the "seriousness" of the growth, e.g. a growth of 100 with a previous value of 5 is not the same as a growth of 100 with a previous value of 10,000 $\endgroup$
    – Jivan
    Oct 10, 2019 at 11:46
  • $\begingroup$ You seem to know all the different ways of calculating growth (including @mkt's suggestion). It's entirely up to you to choose which way would be most suitable for your own application. $\endgroup$
    – Art
    Oct 10, 2019 at 11:47
  • 2
    $\begingroup$ In that case it would be nice to know how you intend to use this growth figure... in what way will it inform your decision making process. $\endgroup$
    – Art
    Oct 10, 2019 at 11:49

1 Answer 1


Have you considered using the slope of the least square method regression? If it's for a sufficiently great number of periods it might yield a useful result, depending on how disperse the data is. Of course, that's assuming you have data for more than two months.

  • $\begingroup$ This does not address the problem. You still need to log-transform the Y-axis for the slope to give you an exponential growth rate. Which cannot be done for zero. $\endgroup$
    – mkt
    Jul 14, 2023 at 12:01

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.