I have received a number of comments regarding the Simplified Excel Model for market adoption published a few months ago. Reader Vince asked how to extend the math behind it to comprehend effects like cross-segment interactions.
There is no simple answer, and this post is an attempt to point readers to ways to think about what they want to model, as well as giving helpful resources for further study
In my opinion, one of the best approaches to understand market adoption is through system dynamics. One of the advantages of the methodology is that it allows you to conceptually link business effects and relationships to the equations. I touched on this issue on on a previous entry, and here I will try to explain further.
The logistic equation (shown below) is a commonly used way to model market adoption.


From a System Dynamics perspective, the logistic model can be explained looking at the following model (click for full size): The boxes, called “stocks” in SD terminology, represent an accumulated quantity over time. One way to think of stocks is a bathtub. The amount of water in the tub is the accumulation over time of how much water you added through the faucets, less how much water you let out through the drain.

On the model, there are two stocks: how many potential adopters are out there (left side) and how many adopters are (right side). The pipe that connects the boxes is called a “flow”, and it shows a valve, whose value represents how fast potential adopters turn into actual adopters (thus we call it Adoption Rate). Again, in the bath tub analogy, we can think of the value of the flow as how open or closed the faucet is.
Adoption rate depends on how big the population is (the larger the population, the larger the adoption rate), how much the adopters interact with potential adopters (creating the “word of mouth” benefits), etc.
As stocks are accumulations of whatever flows in minus what flows out, from a mathematical perspective, the value of a stock is calculated integrating over time the values of the net flow. On the logistic model, the arrow that links the stock and the adoption rate flow means that the flow changes proportionally to the stock - i.e. if I have more potential adopters, there are more possibilities for contagion, when a user talks favorably to a potential user about the product. The net result is an exponential behavior, which, after some mathematical reduction, is represented by the formula above.
If I want to explain a business audience some market adoption dynamic, it possible to do it talking in terms of stocks and flows (once the audience is comfortable with these terms). It’s almost a guaranteed failure if I try to explain it by using a mathematical formula with exponentials and integrals
The Bass model addresses one limitation of the simple logistic model, regarding how the system “gets started”: with no adopters, there is no chance for interactions, so there is no inflow to the adopters stock. It does it through the use of an external force, like advertising.
Below is a Systems Dynamics interpretation of the Bass model. As you can see, the only difference is that now the Adoption Rate is the addition of two elements, adoption rate from advertising and adoption rate from word of mouth. The latter is exactly the same as the AR in the logistic model.

Returning to Reader Vince’s specific question on how to extend the logistic or Bass models to comprehend effects like cross-segment interactions, I would frame it like this:
- Identify the most important cross-segment interactions - How much “cross-shopping” exists between the segments? (using data like second choice selection); are there characteristics of the upper segment that consumers will translate into the lower segment favorably/unfavorably? consumers replace their vehicles within segment or they try to go up segment? etc.
- Incorporate the key cross-segment interactions on the model - They will most likely affect the Adoption Rate. It also may be necessary to model another stock or stocks (Upper Segment Adopters and Lower Segment Adopters, for instance)
- Check sensitivity of cross-segment assumptions - Understand how different the results are when the cross-segment assumptions are considered versus when they are not. What are the assumptions that most impact the results? A tornado diagram, as discussed in a previous entry, may provide a good way to show the sensitivity to the assumptions
As more dynamic effects are considered for inclusion in a model, it is better to move from a tool like Excel to something like Vensim, or iThink. Chapter 9 of John Sterman’s excellent book “Business Dynamics” talks about both the logistic and Bass models as shown here, and expands on ideas on how to extend them.

Here are some other very good references on the topic
- Forrester, J. W. 1980. Information Sources for Modeling the National
Economy. Journal of the American Statistical Association 75 (371):
555-574.
Argues that modeling the dynamics of firms, industries, or the economy requires use of multiple data sources, not just numerical data and statistical techniques. Stresses the role of the mental and descriptive data base; emphasizes the need for first-hand field study of decision making.
- Legasto, A. A., Jr., J. W. Forrester & J. M. Lyneis, eds. 1980. System Dynamics. TIMS Studies in the Management Sciences. Vol. 14. Amsterdam:
North-Holland.
Collection of papers focused on methodology. Includes Forrester and Senge on Tests for Building Confidence in System Dynamics Models and Gardiner & Ford’s discussion on Which Policy Run is Best, and Who Says So?
- Randers, J., ed. 1980. Elements of the System Dynamics Method.
Cambridge MA: Productivity Press. Includes Mass on Stock and Flow Variables and the Dynamics of Supply and Demand; Mass & Senge on Alternative Tests for Selecting Model Variables; and Randers’ very useful Guidelines for Model Conceptualization.
- Richardson, G. P., and A. L. Pugh, III. 1981. Introduction to System Dynamics Modeling with DYNAMO. Cambridge MA: Productivity Press.
Introductory text with excellent treatment of conceptualization,
stocks and flows, formulation, and analysis. A good way to learn the
DYNAMO simulation language as well.
- Morecroft, J. D. W. 1982. A Critical Review of Diagramming Tools for
Conceptualizing Feedback System Models. Dynamica 8 (part 1): 20-29.
- Critiques causal-loop diagrams and proposes subsystem and policy
structure diagrams as superior tools for representing the structure of
decisions in feedback models.
- Roberts, N., D. F. Andersen, R. M. Deal, M. S. Grant, & W. A. Shaffer.
1983. Introduction to Computer Simulation: A System Dynamics Modeling
Approach. Reading MA: Addison-Wesley.
- Easy-to-understand introductory text, complete with exercises.
- Homer, J. B. 1983. Partial-Model Testing As A Validation Tool for
System Dynamics. In International System Dynamics Conference: 920-932
- How model validity can be improved through partial model testing when
data for the full model are lacking.
- Sterman, J. D. 1984. Appropriate Summary Statistics for Evaluating the
Historical Fit of System Dynamics Models. Dynamica 10 (2): 51-66.
- Describes the use of rigorous statistical tools for establishing model
validity. Shows how Theil statistics can be used to assess
goodness-of-fit in dynamic models.
- Forrester, J. W. 1985. ‘The’ Model Versus a Modeling ‘Process’. System
Dynamics Review 1 (1): 133-134.
- The value of a model lies not in its predictive ability alone but
primarily in the learning generated during the modeling process.
- Richardson, G. P. 1986. Problems with Causal-Loop Diagrams. System
Dynamics Review 2 (2 ): 158-170.
- Causal-loop diagrams cannot show stock-and-flow structure explicitly
and can obscure important dynamics. Offers guidelines for proper use
and interpretation of CLDs.
- Forrester, J. W. 1987. Fourteen ‘Obvious Truths’. System Dynamics
Review 3 (2): 156-159.
- The core of the system dynamics paradigm, as seen by the founder of the field.
- Forrester, J. W. 1987. Nonlinearity in High-Order Models of Social
Systems. European Journal of Operational Research 30 (2): 104-109.
- Nonlinearity is pervasive, unavoidable, and essential to the
functioning of natural and human systems. Modeling methods must
embrace nonlinearity to yield realistic and useful models. Linear and
nearly-linear methods are likely to obscure understanding or lead to
erroneous conclusions.
- Barlas, Y. 1989. Multiple Tests for Validation of System Dynamics Type
of Simulation Models. European Journal of Operational Research 42 (1):
59-87.
- Discusses a variety of tests to validate SD models, including
structural and statistical tests.
- Barlas, Y., & S. Carpenter. 1990. Philosophical Roots of Model
Validation: Two Paradigms. System Dynamics Review 6 (2): 148-166.
- Contrasts the system dynamics approach to validity with the
traditional, logical empiricist view of science. Finds that the
relativist philosophy is consistent with SD and discusses the
practical implications for modelers and their critics.
- Wolstenholme, E. F. 1990. System Enquiry - A System Dynamics Approach.
Chichester: John Wiley.
- Describes a research methodology for building a system dynamics
analysis. Emphasizes causal-loop diagramming, mapping of mental
models, and other tools for qualitative system dynamics.
- Mass, N. 1991. Diagnosing Surprise Model Behavior: A Tool For Evolving
Behavioral And Policy Insights (written in 1981). System Dynamics
Review 7 (1): 68-86.
Tagged with: .
Yesterday I upgraded my Macs to Leopard. The main reasons for the upgrade were XCode 3.0, Time Machine and BootCamp. I had been using the latter very robustly on my machines. I read rumors a while ago about the BootCamp beta program ending for previous OS versions once Leopard was released, and I haven’t had the time to double-check.
Two features that have not received as much publicity but were very pleasant surprises (I know, I never Read The Fine Manual) were the inclusion of the A2DP profile in the Bluetooth stack, and TextEdit’s ability to read OpenOffice .odt files.
Nice touch. As usual with Apple, new functionality is rolled out in a seamless, intuitive and non-intrusive way.

Tagged with: .
Lifehacker posts this article about recovering lost pictures on memory cards. Mac OS X owners may want to try these two commands before purchasing additional software: dd and fsck. Linux users most likely already know what to do
— if not, the instructions below are 98% the same…
- Find the device id: Connect your camera using the USB cable, or mount the card in a reader. Then you can type on the console the command
mount, to see the mounted volumes. Look at the output for a line that contains /Volumes/name_of_your_card. On the same line, you will see a device identifier, something like /dev/s1d0. Take note of it, exactly. Then eject the card (you can drag it to the trash)
- Backup your card: The command makes a low level block copy of your card. Type
sudo dd if=/dev/the_id_you_wrote_down of=~/backup.hex
You’ll need to enter your password to run this command under sudo. It will create a file on your home directory with the card contents, so if you have a 1GB card, you’ll have a 1GB file, even if the card has no contents
- Attempt recovery: The proper step here is to attempt recovery on the image. It’s a bit more involved, as Mac OS usually doesn’t allow to mount a file as a loopback as Linux does. I’ve had success using the dangerous route of working directly on the card:
sudo fsck_msdos -p -f /dev/the_id_you_wrote_down
The problem with this is, it will modify your memory card contents, so further attempts to use recovery tools are more likely to fail.
The 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 popular models used in marketing, and management of technology to think about product introductions. (See Wikipedia article). From a mathematical perspective, when the parameter p is 0, the Bass model reduces to the logistic function.
What is most interesting, from a business perspective, is how you arrive to each of those functions by modeling real-world interactions. On both models, you can conceptualize the world as two different pools of people (or stocks, in the system dynamics terminology). One is the pool of potential adopters, and the other is the pool of adopters. The flow between these two pools is controlled by the adoption rate, a variable that models how probable is that a potential adopter becomes “infected” by a current adopter. On the logistic model, it depends solely on how much they interact, how big the total population is, and how “contagious” the product is. On the Bass model, an additional parameter accounts for external factors, the most common being advertising. The Bass model overcomes what is called the startup problem of the logistic model: how a initial base of zero adopters can spread “infection” of the product.
There are more refinements that can be done to the Bass model: accounting for changes in the total population over time, learning and experience curves, etc. For projects where the sensitivity of the model to these factors is high, I definitely recommend to spend more time calibrating your model, understanding which of the different available curves fits better any data you may have, and most critical of all, whether the chosen coefficients for any of the functions have strong impacts on the critical business issues you want to model — capacity planning, pricing, profitability, etc.
For many projects like business plans, revenue projections, etc. I’m willing to sacrifice the ability to fine tune parameters in a model like the BDM for the clarity provided by a model like the Excel logistic function I described. I can generate more tangible conversations with executives by discussing what they believe will be the takeover time, when they believe it will be the start of the fast growth, how much share they believe will be reached in steady state, etc.
Tagged with: .
Mekko charts are two dimensional graphs that analyze how data is partitioned against two variables, the X and Y axes. The width of the columns is proportional to data represented by the columns. Individual segment height is a percentage of the respective bar total value.
Tagged with: .
Two improvements over the technique described by Juice Analytics and posted in Lifehacker: better resolution and solid-looking bars that show better at different font sizes.
If your values are integers in a range 0-9 or so, you can use the REPT formula as presented there, and perhaps you like the dashed type bars, so the formula as shown would work perfectly for you. If not, keep reading.
(more…)
Tagged with: .
I’ve 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 on how business analysts sometimes need to model market adoption, and provided a simple and easy to maintain formula to do so in Excel.
The formula =saturation/(1 + 81^((hypergrowth + takeover/2 - year)/takeover)) suggested for Excel is a simplification of the formula for a sigmoid function (See the Wikipedia article)

The graphic below shows the shape of both functions is identical. The saturation parameter just scales the function to a desired value, instead of going from 0 to 1. The factor 81 on the Excel formula determines how “sharp” the curve is, in this particular case, reaching 0.1 at the period hypergrowth and 0.9 at hypergrowth + takeover. Note that 81^x can be re-written as e^(ln(81)*x), so whatever factor is used there is simply going to affect the shape by compressing or expanding it horizontally.

This is how the scaling factor can be computed. Let’s say we want the penetration to be 5% at the period specified by hypergrowth. We can work out the solution off the second function. We need to solve for 1/(1+e^(-x) == 0.05, which gives x=-2.94444. Since the function is symmetrical, we also know for x=2.94444 P(x) == 0.95.
Since factor^((hypergrowth + takeover/2 - year)/takeover)) can be re-written as e^(ln(factor)*(hypergrowth + takeover/2 - year)/takeover)), we can solve ln(factor)*(hypergrowth + takeover/2 - (hypergrowth + takeover))/takeover == 2.94444. Reducing all the math, we arrive to
1/(1 + e^(-0.5*ln(factor))) == 0.95, and factor would be 361. If the desired penetration at hypergrowth is 20%, then we solve 1/(1 + e^(-0.5*ln(factor))) == 0.80, leading to factor == 16
Tagged with: .
This weekend I set up a backup wireless connection using my Bluetooth cell phone (Motorola RAZR v3xx). Pretty painless, thanks to Ross Barkman’s scripts, and Ed Thomson’s post.
More or less standard modem configuration. I had almost forgotten about such old good times when you had to deal with modem connection strings and those type of things.
Anyway, the process was:
- Downloaded the Motorola GPRS modem scripts from Ross Barkman’s page into /Library/Modem Scripts
- If you are trying to follow these instructions, but have not paired the phone already, you can do it now and the Bluetooth Setup Assistant will guide you through the steps. If you had already paired the phone, then from the Bluetooth menu item, you can choose “Open Bluetooth Preferences” to open the Bluetooth Setup Assistant. Here I was able to configure the phone.
- The specific settings I used:
- Account Name: ISP.CINGULAR, which should allow me to use the GPRS 128k/sec service, or ISPDA@CINGULARGPRS.COM
- Password: CINGULAR1
- Modem type: Motorola GPRS CID1 (will only appear with Ross’ scripts
My speed test was OK: 690-860 kbps downstream, and 220 kbps upstream with delays of up to 220 ms. Not a T3, but quite acceptable for occasions where I have no other net access
I’ve had a couple of issues using ISP.CINGULAR, where after 3 or 4 times of connecting fine, it stopped connecting. Last 2-3 times I’ve used ISPDA@CINGULARGPRS.COM it seems to work better, and with the speed described above
With both of the address, there is something causing the first connection attempt to fail. Perhaps I’ll look into it later - my current workaround is not that bad, just reconnecting after it fails once.
Tagged with: .
The guys at Strobist posted today a series of tips on how to get the most out of your webcam. Very interesting. One thing that still is puzzling me is why after I installed Windows XP on our 17 inch iMac with BootCamp 1.2, the quality of the webcam image on Windows is better than what I’m getting on MacOS!! Really strange.
The Windows drivers that come with BootCamp make a USB emulation of the built in iSight, and perhaps there is either some color correction done during the emulation, or what would be most ironic, that the color correction algorithms on MacOS are actually trying too hard to compensate and end up making the image worse.
That iMac’s setting is problematic for video conferencing because the iMac is in the opposite side to a window, and facing the wall. The back light coming through the window creates a dark webcam pic. If anyone has solved this problem, I’d love to know.
Tagged with: .
The sites I refer to when I talk about charting, data analysis and good (and bad) charting techniques are normally quite different from the ones where I satisfy my gearhead lust with the news from the latest car models in the market. This time the guys at motortrend did it for me in their article “Finding the best-handling car in the US”: both fixes in just one page
Look at the following chart: well, it’s easy to tell the winner on their tests is the yellow line (if you are curious, the Porsche 911GT3). But can you tell from the green and red lines in the middle of the pack which one is better?

If you go to their gallery, you’ll see many other charts that fight fiercely for the top place in the Junk Chart museum. Just a couple of samples below

Spider charts may be useful, but only in very limited cases. Leave the webs to the guy in the custome, enjoy the movie, and stick to other chart types in your professional reports. You would be better off. Your audience will get it faster.
Read on to see a proposal on how this chart could be better.
(more…)