Apr24

Modeling market adoption in Excel with a simplified s-curve

UPDATE 10/31/2007: Here is a screencast for this model

Often business analysts need to model the adoption of a new product or service for financial planning. There are several approaches, but a common one is the s-curve (see Wikipedia article). Here is a simple implementation in Excel that can be easily added to your spreadsheets. It reduces all the math to just three parameters:

  • saturation - What is the maximum expected penetration after the product becomes mainstream? i.e. what is the value that the top of the s-curve will reach?
  • start of fast growth - By this year, the penetration will be 10% of the saturation value, and it will start to grow rapidly. 10% was an arbitrary choice to simplify the model, and by doing some math you could change the formula to any value. It is a reasonable choice in most cases. We’ll call this parameter hypergrowth
  • takeover time - How long it will take for the product to “catch on”? - The operational assumption in the formula is that this number of years after the start of fast growth, the product would have reached 90% of the saturation value and will start to slow down. Again, 90% is an arbitrary value I chose.

The s-curve model focuses in the early phases of the product lifecycle, until maturity is reached. Penetration decay is NOT covered by this model.

The formula for each year’s penetration would simply be:
=saturation/(1+81^((hypergrowth+takeover/2-year)/takeover))

See it in action:

s curve example

In the sample spreadsheet above, look at cell B8 where you can see the formula in use. It is the same for all row 8.

saturation, hypergrowth and takeover are names defined for the parameters on rows 2 to 5 (you use names in your models instead of plain cell references, don’t you?)

Very simple, easy to maintain, light on calculation times… happy market adoption modeling!

PS: The chart shown is NeoOffice, an open source alternative to Excel for Macintosh users, based on OpenOffice

19 Comments to “Modeling market adoption in Excel with a simplified s-curve”  

    1
  1. Gravatar Icon
    At 8:31 am on May 30, 2007
    Ken J Says:

    Very nice. Simple and practical. I always get customers questioning the shape of the S curve and this is a great way to do it.

    One question I have is 81. I assume you get to this based on your 10% in the first part of the tail. What do I use if I want 20% in the first part of the tail?

  2. 2
  3. Gravatar Icon
    At 11:15 pm on June 3, 2007
    Juan C. Mendez Says:

    Ken - Thanks for your comment, and sorry for the late response. I had comment notifications off because of a recent slew of spam.
    If you want an s-curve that reaches 20% (of the saturation value) in the first part of the tail (i.e. by the period denoted by the parameter hypergrowth), you can use 16 instead of 81 in the formula. Such curve will only reach 80% at the period hypergrowth+takeover, and it will look much “softer”. A “sharper” curve, that reaches 5% in the first part, grows and reaches 95% at hypergrowth+takeover can be obtained using 360 instead of 81.
    Best regards, Juan C.

  4. 3
  5. Gravatar Icon
    At 3:33 pm on June 12, 2007
    Pushkar Says:

    Very nice formula to get the S-curve.
    However these curves do not take initial adoption (adoption at t=0) as an input and probably assumes it to be 0. How should I modify the formula so that it takes the initial adoption rate as input as well.

    Thanks in advance

  6. 4
  7. Gravatar Icon
    At 3:47 pm on June 12, 2007
    Pushkar Says:

    I tried the following approach for incorporating the initial adoption:

    Lets say we have the following inputs:
    saturation = 100%
    hypergrowth = 2
    takeover = 5
    initial_adoption = 20%

    then this can be modeled as:
    saturation_new = saturation - initial_adoption
    hypergrowth_new = hypergrowth
    takeover_new = takeover

    and the formula for each year’s penetration will be:
    year_penetration_new = + initial_adoption

    Essentially, I have scaled down the curve by reducing saturation level and then shifted the curve upwards to include the initial adoption rate.

    Do you think this approach should work good?

  8. 5
  9. Gravatar Icon
    At 6:03 am on June 13, 2007
    Juan C. Mendez Says:

    Pushkar
    Thanks for your comments. Yes, your approach is exactly what is needed. Let’s say you have a product that is already in the market and you’ll roll out new features you expect will drive a significant increase in adoption. This initial penetration may be 5% and you expect the new features will drive to 35% in 7 time periods (months, years,…). Then you would use saturation = 30% (35-5), and add to the formula an initial_adoption parameter as you did, which will be 5%.
    By the way, I only used years as an example because I work in the auto industry where product lifecycles are long. The s-curve formula presented can be used with months (electronics lifecycles), days (disease spreading), or whatever time period desired

  10. 6
  11. Gravatar Icon
    At 8:22 am on July 3, 2007
    Molly Says:

    Juan - I know that you have mentioned that the 81 in the formula can be changed to represent different growth percentages in the first part of the tail. Could you tell me how that number is calculated so that I may have the option of choosing any number between 0% and 100% instead of just 10%, 20%, and 5% with 81, 16, or 360.

  12. 7
  13. Gravatar Icon
    At 9:29 pm on July 6, 2007
    Juan C. Mendez Says:

    Molly
    Thanks for your comment. I posted a note with the math at http://jcandkimmita.info/jc/2007/07/excel/math-on-the-simplified-market-adoption-s-curve-for-excel/
    Usually I forget the math when I need to use the formula, and the trick I use is to enter the formula with the factor (81,16,360, etc) as a reference to a cell, instead of a fixed value, then use Excel’s Goal Seek to change that cell until I get the desired value for the period hypergrowth. Finally, I simply replace the formula in all the cells with the computed constant. Good luck with your modeling!

  14. 8
  15. Gravatar Icon
    At 11:22 am on July 14, 2007
    Juan C. Mendez Says:

    The folks at provenmodels.com linked to this page as a resource. http://www.provenmodels.com/570 — They are an excellent source of managerial models and frameworks - highly recommended.

  16. 9
  17. Gravatar Icon
    At 11:04 am on September 19, 2007
    Donald Says:

    Juan,
    I cannot see the formula you have pasted in cel B8.
    Where can I find it, if I am may ask?

  18. 10
  19. Gravatar Icon
    At 1:51 am on October 20, 2007
    Kevin Says:

    Um…
    Excuse me. I have a problem.
    How to use the simplified formula in Excel?
    Cause I have try various way, but I can’t draw S-Curve.
    Could you send me an example?xls? to my e-mail ?
    Thank you so much.

  20. 11
  21. Gravatar Icon
    At 8:58 pm on October 31, 2007
    Juan C. Mendez Says:

    @Donald, @Kevin
    I just posted a screencast that should help with your questions

  22. 12
  23. Gravatar Icon
    At 3:48 am on March 6, 2008
    PhilT Says:

    Hello Juan,

    Many thanks for providing a great and comprehensible work around for lpeople (like me) wanting to utilize s curves in an excel model, without really understanding the maths behind it. Could you possibly spell out in idiot proof terms (the idiot being yours truly), the full formula with the ‘initial adoption’ parameter added as per Pushkars mail. It would be greatly appreciated. Thanks, Phil.

  24. 13
  25. Gravatar Icon
    At 9:12 pm on March 6, 2008
    Juan C. Mendez Says:

    Phil

    Thank you for your message. The modified formula, as you would like to use it would be

    =initial_adoption + (saturation-initial_adoption)/(1+81^((hypergrowth+takeover/2-year)/takeover))

    Hope it helps!

  26. 14
  27. Gravatar Icon
    At 5:44 am on April 28, 2008
    Ider Says:

    Hello Juan,
    I also want to express my grattitute
    Could you explain me about how (in what extent) is it reliable to consider that behaviour of the curve before and after hypergrowth period is same in real business. In other words, in real business can we believe that growth size before and after hypergrowth would be same?
    Sorry for my poor English if I couldn’t express my question.
    Thank you!

  28. 15
  29. Gravatar Icon
    At 1:31 pm on May 16, 2008
    Ryan Says:

    If you want a generalizable way to specify the penetration level before the hypergrowth starts, you can add a variable “Penetration Level Before Hypergrowth” and use this instead of 81:

    ((saturation/penetration_before_hypergrowth)-1)^2

    In the example above, penetration reaches 3% (or 10% of the 30% saturation) before hypergrowth, so:

    (( 30% / 3% ) - 1) ^ 2 = 9 ^ 2 = 81

    Cheers,
    Ryan

  30. 16
  31. Gravatar Icon
    At 6:01 pm on June 8, 2008
    Mathias Says:

    Hi Juan,
    Thanks for your series on the S-Curve, which was most helpful. I needed to be able to specify a curve through any pair of values, and not just 10%/90%, and resolved that question here, in case you are interested. While more flexible, the formula I end up with is also way more complicated / painful, and I would therefore recommend that people stick with yours in general, as it is much more compact and readable!

  32. 17
  33. Gravatar Icon
    At 9:29 pm on June 25, 2008
    Billy Says:

    Hi Juan,
    I like the way you have rephrased the parameters of the model to useful inputs that people can work with. I use the Bass curve in new product forecasting using an interactive dashboard to get everyone involved in the ‘what if’ sensitivity analysis process. There is a link to it on my blog page http://acasoanalytics.wordpress.com/2008/06/25/interactive-bass-diffusion-model/ . I’ll have a go at doing the same with your approach.

  34. 18
  35. Gravatar Icon
    At 3:42 pm on June 26, 2008
    Tim Snijder Says:

    Thanks a lot for the great example. I want to create an s-curve that I can use to estimate the effects of marketing expenditures on sales. I know that normally this should be based on transaction data. In this case, I don’t have this data so I just want to create a curve where I manually enter saturation levels and base sales (number of sales generated without any marketing expenditures)
    Does anybody have an idea how to apply this?

  36. 19
  37. Gravatar Icon
    At 9:57 pm on July 24, 2008
    Debbie Says:

    Hi Juan,
    Thanks for providing this example. It’s very useful! What I would like to do, however, is to find the gradients of the S-Curve at any desired point. How would I find that using excel, after my Curve has been created?
    Thanks!

4 TrackBacks to “Modeling market adoption in Excel with a simplified s-curve”  

    1
  1. [...] got a number of questions on the simplified Excel s-curve formula I published some time ago, so here are more details for those interested in the math behind it. The previous posting focused [...]

  2. 2
  3. [...] simplified market adoption model I described on previous postings (1,2) is an Excel implementation of a kind of logistic function. The Bass model is one of the most [...]

  4. 3
  5. [...] have received a number of comments regarding the Simplified Excel Model for market adoption that I published a few months ago. Reader Vince asked how to extend the math behind it to [...]

  6. 4
  7. S-shaped market adoption curve pinged at Jun 08 2008

    [...] products entering the market would follow a S-curve. After some digging and googling, I came across this excellent post by Juan C. Mendez, where he proposes a clean and very practical way to use the logistic function, and calibrate it [...]

Leave a Reply