Logistic model for the s-curve and project management cost estimation

I posted a while ago an article on Modeling market adoption with a logistic curve in Excel. It has been quite popular on this site, and even at some point was linked as a reference on Wikipedia. Shameless plug – if you find it valuable, please ask Wikipedia maintainers to keep the link.

Recently reader Mina asked how to use the Excel model in the context of project management. The particular question is: if the project duration changes from 18 to 48 months, what is the new spending curve? Fast and quick answer would be – it’s not applicable. This post will take the question for a spin, though.

First off, the PMBOK, or Project Management Body of Knowledge, tries to standardize and unify the terminology that PMPs use when managing projects. The term used to refer to the spending curve, along the life of a project is called “s-curve” in the PMBOK, just because in real life, projects tend to have low budgetary requirements in the early stages (you are framing the project, defining what will be done, etc), then a bulk of spending in the middle, and finally, low requirements again at the end. With that general pattern, the cumulative spending plan roughly looks as an s-curve.

In most cases, the easiest way to answer the question would be to look at your Gantt chart, estimate which are the tasks that will be delayed/extended, and regenerate an spending curve.

If you are not actually managing the project, but instead you are doing analysis on “what ifs” regarding projects where you don’t have the actual list of tasks, or you are doing portfolio management and you are forecasting across a portfolio of projects with different life spans and budgetary needs, you may be fine using a logistic model. Your needs may be different.

With that preamble, here we go. I’m going to use the estimate percentages of spending in Mina’s question

The process will be quite simple:

  1. Fit the data to a logistic model
  2. Apply the derived model to the new project duration
  3. Infer the spending by month under #2

An Excel file to do this can be downloaded here. By downloading it, you are agreeing that any damages, consequential or incidental arising from using this file or the information in this post are your sole responsibility, and you explicitly releases me from any liability.

If you look at the table below, the first two columns are the data provided by Mina, the third column just adds up previous spending, then column D uses my simplified Excel logistic model =saturation/(1+sharpness^((hypergrowth+takeover/2-year)/takeover)) to forecast the cumulative spending, and column E is simply the square of the difference between C and D. The formula for E2 is =(C2-D2)^2. We’ll use the sum of minimum square of errors to fit the curve, to keep things easy. Other fitting techniques are OK too.

Excel Table showing the process

Excel Table showing the process

Then we use Excel Solver, to minimize E21, subject to the condition that $D$19=1, by changing saturation, hypergrowth, takeover, and sharpness (C21 to C24). Fill in the most realistic guesses you can find for these parameters before running Solver. Given the technique Solver uses, your guess of sharpness will be barely modified (if at all), so spend some time looking at your data and tweaking manually.

As you can see in the image below, this step fitted the cumulative spending curve to the logistic function.

Fitted s-curve logistic function to data

Fitted s-curve logistic function to data

Column F in the table just infers the spending by month by subtracting the cumulative on each period to the cumulative on the previous one. As you can see below, even if the cumulative curve fitted more or less nicely, the inferred monthly spending may look surprisingly different to the original.

Monthly spending curves side by side

Monthly spending curves side by side

You’ve got to remember, all models are a simplification of reality, to extract the things that are important for the particular use of the model. As mentioned above, if you are doing “what if” analysis or portfolio management, this simplification may be acceptable and the differences are not a surprise to you.

Finally, we define two new constants newhypergrowth=hypergrowth*newlength/oldlength, and newtakeover=takeover*newlength/oldlength which simply allows us to use the s-curve over a longer time span. The new cumulative spending (across months 1-48 in the example) would be =saturation/(1+sharpness^((newhypergrowth+newtakeover/2-newyear)/newtakeover))

7 thoughts on “Logistic model for the s-curve and project management cost estimation

  1. Hi,
    I think what you gave me was excellent. I just need to know how did you get the following numbers :saturation, hypergrowth, takeover, and sharpness. I have other projects that have different numbers and if I don't understand how to get those numbers I won't be able to use you model. Also, I never used this model before, do you have any document that describe its use. Thanks and Feliz Navitad.

  2. Hello,
    The cost spent each month does not always follow an s curve but a belle curve as you can see from the percentages that I sent before. Their variation looks just like two separate bellecurves when using a scatter diagram. So, the question is how to spread those bellecurve over 48 months by keeping the two bellecurves. Thanks.

  3. @ Mina

    Check out http://8020world.com/jcmendez/2007/04/business/mo… for the meaning of the 3 parameters. The values you see above 1.4 for saturation, 3.1 for hypergrowth, etc. were the result of curve fitting (step 1 described) your data to the curve model. The way you do it in Excel is using Solver, as described on the entry. The s-curve arises, as described, from the *cumulative* spending of a bell-like monthly spending curve.

  4. I´m using this S-curve for a new purpose which is assessing the impact of a new technology (i.e. implementing a revenue assurance technique, and anticipate results).

    In this sense I think it would be worth to identifiy each of the four parameters involved here with a given effect (i.e., Saturation has to do with a sort of Amplitude or max output of the process, etc).

    In other words, once you modelize you try to link parameters with some "real world" behaviours. Any comment on that?
    Thank you for sharing your experience,
    Daniel

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>