Latest articles

Syndicate content
latest news from isee and system dynamics society about strategy, plus isee blogs
Updated: 3 hours 11 min ago

Converting a Sector-based Model to Modules

14 hours 41 min ago

I generally do not use modules to build very small models (only a couple of stocks and flows), which may then lead me to use sectors as the model grows because they are very convenient. By the time I have three sectors, though, it starts to become clear that I should have used modules. I will then need to convert my sector-based model into a module-based model. Historically, I also have a number of sector-based models that are crying to be module-based.

Converting from sectors to modules is not very difficult:

  1. Make sure there are no connections or flows between sectors. Replace any of these with ghosts in the target sector.
  2. In a new model, create one module for every sector.
  3. Copy and paste the structure from each sector into its corresponding module.
  4. Connect the modules: At this point, the model structure has been rearranged into modules, but none of the modules are connected. The ghosts that were in the sectors became real entities when they were pasted into the modules. Go back to identify all of these connections and reconnect them in the module-based model.

Stepping Through a Sample Model

Let’s walk through an example. A small sector-based model is shown below (and is available by clicking here).

This model violates what I would call good sector etiquette: there are connectors that run between the sectors. This is often useful in a small model such as this because it makes the feedback loops visible. However, in a larger model, this can lead to problems such as crossed connections and difficulty in maintaining the model because sectors cannot be easily moved.

Eliminating Cross-Sector Connections

To convert this sector-based model to modules, it is first necessary to remove these cross-sector connections. This is done with the ghost tool. The stock Population needs to be ghosted and placed in the Resources Sector and the stock Natural Resources needs to be ghosted and placed in the Population Sector. The end result is shown below.

Creating the Modules

We are now ready to create, in a new model, one module for each sector, using the Module tool. The result is shown below. Although you could manually draw the connections between these modules, we will let the software create the connections for us.

Each module needs to be associated with its own model file. This is done by double-clicking on each module and choosing “Create Model…”. Double-click Population, choose “Create Model…”, and name the model file “Population”. Repeat for Natural Resources, but name the model file “Natural Resources”.

Pasting Structure into the Modules

It is now a simple matter to paste the structure from each sector into each module. Using the selection tool in the sector frame, select all of the structure in the Population Sector and copy it by choosing Edit->Copy. Open the Population module in the new model and paste in the structure by choosing Edit->Paste. The module contents will appear as shown below. Note that Natural Resources is no longer a ghost; there is no connection to the other module.

Repeat this process with the Resources Sector and the Natural Resources module. The module contents will appear as shown below. Note that Population is no longer a ghost.

Connecting the Modules

All that remains is to connect the modules. Inside the Population module, the stock Natural Resources needs to be replaced with a ghost of the real stock. Inside the Natural Resources stock, the Population stock must be replaced with a ghost.

There are two ways to do this: manually or semi-automatically with the Ghost tool. I tend to use the Ghost tool most of the time. [The documentation chapter “Working with Module Inputs and Outputs” (available by clicking here) explains how to forge these connections manually.]

To connect the modules, first go into the Natural Resources module and select the Natural Resources stock with the Ghost tool. Go up one level and then down into the Population module. The cursor should still be a stock. Click next to the existing Natural Resources stock to deposit the ghost. Run a connector from the ghost to resources\person (as the stock does) and then delete the stock. Drag the ghost over to approximately where the stock was. Open resources\person and press “OK”. An error will appear and “Natural_Resources” will be selected. This happens because Natural Resources is no longer connected to resources\person. Click on the ghost’s name (Natural Resources.Natural Resources) in the “Required Inputs” list and press “OK”. The Population module is now properly connected to the Natural Resources module.

Repeat this process to connect a ghost of the real Population stock to the Natural Resources module. After finishing, the Population module contents appears as shown below. Note that Population has a double border to signify it is providing its value to another module.

The contents of the Natural Resources module appears as shown below. Note the double border around the Natural Resources stock, signifying that it is providing its value to another module.

Finally, returning to the top-level, we see that the software automatically created the required connections between the modules. Below, the connections have been embellished with their polarity to make the balancing loop obvious. [The final model is available by clicking here.]

A Cautionary Tale

This mechanical process for converting a sector-based model to a module-based model is very appealing due to its simplicity. It works very well with models that have a small number of sectors (up to about five), but will fall apart beyond that.

Last summer, I helped Khalid Saeed (Worcestor Polytechnic Institute) convert a sector-based model of Jay Forrester’s Urban Dynamics model to modules. A direct translation using the above process led to the following top-level diagram:

It should be clear that everything is connected to almost everything else. There is no way to rearrange this diagram to clear up this mess. For a short time, I flirted with the idea of module ghosts as a solution, but it does not take too long to see that ghosts cannot solve this problem either (indeed, they make it worse).

Recently, I decided to follow my own advice on module hierarchy (see this post). I also remembered the famous article “The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information” by G.A. Miller (1956). It explains that we cannot keep more than five to nine things simultaneously in our heads, depending on the person. So I may be able to absorb the meaning of a diagram with seven modules, but someone else may only be able to understand one with five modules. For this reason, we should strive to keep the number of modules in a diagram below seven (which also may help explain why the above method works well for a small number of sectors).

Rearranging the Urban Dynamics model into three levels, I was able to simplify the top-level of the diagram to the following, which shows all of the important high-level feedback loops:

There are also lower-level feedback loops within each of these modules. The one within workforce is just as complicated:

The model logic rests within these second-level modules. For example, the module underemployed mobility contains the following logic:

Categories: simulation, strategy

What are “Mental Models”?

Fri, 12/03/2010 - 14:00

Editor’s note: This is part one of a two part series on Systems Thinking and mental models

In writing and teaching people about Systems Thinking, we often refer to “mental models”. For some people, this comes as a bit of a surprise, because the context usually involves building models with the iThink or STELLA software. They don’t expect us to start talking metaphysically about thinking. “Is this about philosophy or modeling software?” they may wonder. The software is actually a tool to help construct, simulate and communicate mental models.

Let’s define the term model: A model is an abstraction or simplification of a system. Models can assume many different forms – from a model volcano in a high school science fair to a sophisticated astrophysical model simulated using a supercomputer. Models are simplified representations of a part of reality that we want to learn more about. George Box stated: “Essentially, all models are wrong, but some are useful”. They are wrong because they are simplifications and they can be useful because we can learn from them.

So, what is a “mental model”? A mental model is a model that is constructed and simulated within a conscious mind. To be “conscious” is to be aware of the world around you and yourself in relation to the world. Let’s take a moment to think about how this process works operationally.

Imagine that you are standing outside, looking at a tree. What happens? The lenses in your eyes focus light photons onto the retinas. The photosensitive cells in your retinas respond by sending neural impulses to your brain. Your brain processes these signals and forms an image of the tree inside your mind.

So at this point, we’ve only addressed the mechanisms by which you perceive the tree. We have not addressed understanding what a tree is or considered changes over time. We are dealing with visual information only. There is nothing within this information that tells you what a tree actually is.

What makes the image of a tree in your minds click as an actual tree that exists right there in front of you? This is where mental models kick in and you start to think about the tree. The tree is actually a concept of something that exists in physical reality. The “tree concept” is a model. Understanding the concept of a tree requires more information than is available through sensory experience alone. It’s built on past experiences and knowledge.

A tree is a plant. It is a living thing that grows and changes appearance over time, often with the seasons. Trees have root systems. Trees use leaves for photosynthesis. Wood comes from trees. I can state these facts confidently because I have memories and knowledge of trees contained within my mental models. Mental models contain knowledge and help us create new knowledge.

Take a look at these images for a few moments and then think about what is happening inside your mind as you look at them.

My guess is that with each image you thought about what happens next. If so, you were actually simulating a mental model forward in time. The images don’t show you what happened next, but you can probably make a pretty good guess. This guess is the result of simulating a mental model of what is depicted. And, you can simulate different outcomes. In the image on the right, I like to simulate a parent rushing into the scene and scooping up the child before he gets burned.

When we think about the boy catching the ball, the blocks knocking one another over, worrying about the toddler getting burned, we are applying knowledge that we hold in our minds to help simulate a mental model of what is depicted in the image. This is all going on subconsciously, so we’re really not aware of it as it is happening.

Thinking About Systems

The human mind is very good at simulating mental models of our immediate physical reality. Things get harder when we start thinking about abstract systems.

A market is a good example of an abstract system. In a market system, price acts as a signal of aggregate demand for a commodity. You can’t “see” a market like you can “see” a tree in front of you. A market does not exists in a particular physical location. A market is an abstract concept that exists in the collective minds of all who participate in it. Even though a market does not exist physically, markets have an enormous impact on our lives nonetheless.

When the global economic crisis hit in late 2008, retailers began to struggle financially because consumer purchases declined rapidly. People were worried about the economy and started saving money instead of spending it. This started happening just before the holiday shopping season – a make-or-break period for many retailers. So, in an effort to boost demand, retailers began dropping prices.

This led to price deflation because consumers saw prices dropping rapidly and began delaying purchases as a result. The outcome of simulating their mental model of the market informed their decision making: “I should wait to buy this because the price keeps dropping”.

This mental model paints a pretty picture for consumers over the short-term: low prices in a down economy. As the deflationary dynamics play out over the long term, the picture becomes bleak. As prices spin downward, profits decline and businesses are forced to layoff workers or close up shop entirely. As unemployment increases, consumers perception of the stability of the economy decreases and they spend even less.

Economists and policy makers use sophisticated computer models to help them understand markets. On the other hand, consumers use simple mental models when making purchasing decisions. The more sophisticated models inform policy makers of the long term consequences of consumers cutting spending, so they react by trying to jump-start spending with stimulus programs. In the US we’ve seen a few of these programs during 2009: the “Cash for Clunkers” rebate program, the First-Time Home Buyer Tax Credit, and the Social Security payroll tax cut.

Often, it is hard for us to define the optimal boundaries for a mental model. We tend to have a narrow focus and act on short-term dynamics within our mental models. For example, in the model above, our understanding changes when we expand the boundaries to include profits and layoffs.

However, we are not generally very good at mentally simulating complex systems with interdependencies, lots of variables, and delays. This is where software steps in. Using Systems Thinking software, we can transform our mental models into operational models that we can simulate more reliably using a computer. This not only helps us create new knowledge and understanding, but helps us construct better mental models in the future.

We’ll explore the role of software in constructing, simulating and communicating mental models in part two of this series.


For more on using modeling and simulation to understand the economic crisis, see the “Understanding the Economic Crisis” video presentation.

Categories: simulation, strategy

Modeling the Economic Crisis

Mon, 08/03/2010 - 19:10

I’m often asked by customers that are new to Systems Thinking, “How can this approach add value to conceptualizing and understanding common, everyday issues?” The issues range from business design to environmental concerns to macroeconomic dynamics. In response to this question, I can tell you from my personal experience, nothing beats seeing a skilled practitioner use our software tools and the Systems Thinking methodology to make sense out of a complex problem.

With this in mind, we collaborated with our consulting and training partner, Lexidyne LLC, to create a new series of video-based presentations focused on common but often misunderstood problems that can be conceptualized, expanded, and then explored using Systems Thinking. We recently released the first video in this series — Understanding the Economic Crisis presented by Dr. Mark Paich.

Judging from its title, you might think Understanding the Economic Crisis presents a huge complex model of the macro economy. To the contrary, dynamic modeling expert, Mark Paich, begins with a very simple model of something we all can relate to — the individual consumer.

Stock and flow map of an individual consumer's balance sheet

Mark expands upon the model and shows how a sudden drop in housing prices affects individual consumption. As you might expect, when Total Net Worth falls, the individual responds by spending less. When housing prices fall, home equity loans no longer provide the purchasing power for big ticket items like cars, vacation homes and big screen TVs.

The real surprise however, comes when Mark further expands the individual consumer model to include the economy as a whole. When everyone’s net worth decreases at the same time a phenomena known as the “Paradox of Thrift” occurs. The paradox states that if everyone tries to save money during times of recession, total savings for the overall economy may fall. The dynamics generated by adding elements of the macro economy to the model are indeed surprising.

Mark’s easily understood model leads to some real insights concerning the policy implications for an economic recovery. It also provides a great example of how Systems Thinking can be used to deepen your understanding of a complex issue in order to make better decisions. If you haven’t seen the video, I highly recommend it. The following trailer highlights some of the key points in Mark’s presentation and will give you a taste of the full presentation.

(If you cannot see the video below in your RSS reader, please visit the post page)

For more information or to purchase Understanding the Economic crisis, click here.

Categories: simulation, strategy

Assessing individuals' understanding of nonlinear causal structures in complex systems

Mon, 22/02/2010 - 08:49
Educators have provided anecdotal evidence that systems-oriented instruction improves students' ability to comprehend complex systems, but little research has been done to test this hypothesis. This article reviews past attempts to assess systems-oriented instruction and suggests the need for an assessment tool that can be implemented broadly but still provides a nuanced view of individuals' understanding of complex systems. A tool called Cognitive Mapping Assessment of Systems Thinking (CMAST) is presented as a step toward addressing this need. Results from one study using this tool are included to illustrate analyses available and the significance of their results. Results from this study suggest that students receiving systems-oriented instruction exhibit significantly increased ability to understand information about a complex environmental system despite having received no specific training in natural resources. CMAST allows researchers to quickly obtain and evaluate quantitative data regarding students' ability to understand complex systems. Copyright © 2010 John Wiley & Sons, Ltd.
Categories: simulation, strategy

Evaluating system dynamics models of risky projects using decision trees: alternative energy projects as an illustrative example

Mon, 22/02/2010 - 08:49
Many important risky projects are characterized by stochastic processes embedded in nonlinear, feedback structures with delays. System dynamics models may be used to estimate the cash flow resulting from these projects for any given predetermined sequence of decisions. However, using system dynamics models to evaluate these cash flows when management has the flexibility to change its decisions in the face of future information often remains difficult in practice. To remedy this, we leverage the decision analysis literature to propose a methodology that transforms the system dynamics model into an approximate decision tree. The methodology then evaluates that tree to account for the value of managerial flexibility in executing a project. This approach has the virtue of combining system dynamics' capability to cope with dynamic complexity with that of decision analysis to model managerial flexibility. We illustrate this method with a model drawn from the wind power industry, which is characterized by numerous uncertainties and high managerial flexibility. We conclude with a discussion describing the limitations of this approach and the conditions under which its use would be most appropriate. Copyright © 2010 John Wiley & Sons, Ltd.
Categories: simulation, strategy

Modeling Bass Diffusion with Rivalry

Thu, 18/02/2010 - 14:00

This is the last of a three-part series on the Limits to Growth Archetype. The first part can be accessed here and the second part here.

Last time, we explored the effects of Type 1 rivalry (rivalry between different companies in a developing market) on the Bass diffusion model by replicating the model structure. This part will generalize this structure and add Type 2 rivalry (customers switching between brands).

Bass Diffusion with Type 1 Rivalry

To model the general case of an emerging market with multiple competitors, we can return to the original single company case and use arrays to add additional companies. In this case, everything except Potential Customers needs to be arrayed, as shown below (and available by clicking here).

For this example, three companies will be competing for the pool of Potential Customers. Each array has one-dimension, named Company, and that dimension has three elements, named A, B, and C, one for each company. Although each different parameter, wom multiplier, fraction gained per $K, and marketing spend in $K, can be separately specified for each company, all three companies use the same values initially. All three companies, however, do not enter the market at the same time. Company A enters the market at the start of the simulation, company B enters six months later, and company C enters six months after that.

Recall that the marketing spend is the trigger for a company to start gaining customers. Thus, the staggered market entrance can be modeled with the following equation for marketing spend in $K:

STEP(10, STARTTIME + (ARRAYIDX() – 1)*6)

The STEP function is used to start the marketing spend for each company at the desired time. The ARRAYIDX function returns the integer index of the array element, so it will be 1 for company A, 2 for company B, and 3 for company C. Thus, the offsets from the start of the simulation for the launch of each company’s marketing campaign are 0, 6, and 12, respectively.

This leads to the following behavior:

Note that under these circumstances, the first company to enter the market retains a leadership position. However, companies B and C could anticipate this and market more strongly. What if company B spent 50% more and company C spent 100% more than company A on marketing that is similarly effective? This could be modeling by once again changing the equation for marketing spend in $K, this time to:

STEP(10 + (ARRAYIDX() – 1)*5, STARTTIME + (ARRAYIDX() – 1)*6)

The effect in this case is quite different. All three companies end up with approximately equal market shares.

Bass Diffusion with Type 1 and Type 2 Rivalry

Once a market is established, companies will also make an effort to win competitor’s customers away. A previous post showed how to model switching between brands using arrays. Adding that structure to this model gives a model (available by clicking here) that implements both type 1 and type 2 rivalry.

The specific mechanism that convinces customers to switch brands is not explicitly modeled here so that the structure matches that in the earlier post. Instead, this model uses constant switching rates; the earliest entrant, company A is given the most favorable values. However, to make the model more dynamic and also useful, there should be factors that influence the relative attractiveness of the two brands, for example, marketing spend, product quality, product features, and customer service.

Giving an advantage to the early entrant to the market has the expected effect of boosting their customer base at the expense of the others. This another example of Success to the Successful.

Note the scale of this graph had to be changed relative to the earlier graphs to show all of company A’s customers. The effect of the customer switching is so strong that even increasing marketing for company’s B and C does not change the end result. Of course, the switching factors in this model are constant and increased marketing should indeed change them.

This does, however, show that it is important to intervene in the correct place to reach your desired outcome. Once the market is mature, the dynamics are dominated by the switching effects, not the process of gaining customers. Thus, efforts to change market share by changing the rate of gaining customers are ineffective. Energy should instead be focused on reducing the number of customers who switch to other brands and increasing the number of customers gained from other brands.

This model does not model the decline of the market, through customer loss, since we are mostly concerned with growth and maturation. If desired, the loss would be modeled with an outflow from Customers as shown in the earlier brand switching post.

Finally, this model assumes that Customers belong to one company alone, i.e., no one uses the product from more than one company at one time. Sharing customers is known as type 3 rivalry and is beyond the scope of this post.

A Note About Revenues

Gaining customers is, of course, not the entire story. The purpose of gaining customers is to create revenue for your business. There are two opportunities to generate revenue in this model:

  1. From your existing customer base. This stock-driven revenue stream is typical for manufacturers of non-durable goods such as bleach and razors, or for subscription-based or service businesses, such as magazines, cable TV, or beauty salons. If your customer base is large, your revenues will be high. The Bass diffusion model shows a growing customer base and therefore a growing revenue stream (see curve 1 below).
  2. When a person is converted from a Potential Customer to a Customer or a customer switches from one brand to another. This flow-driven revenue stream is the only source of revenue for manufacturers of durable goods, such as cars, computers, and refrigerators. However, it often also applies to software companies. Since the flow rate determines the revenue stream, if the rate at which you gain customers is large, your revenue will be high. Note, however, that the Bass diffusion model shows us this rate falls sharply as the market matures, as the number of Customers saturates (see curve 2 below). To keep revenues high in a mature market for this kind of business, it is necessary to entice customers away from competitors, build in product obsolescence (so your customers have to buy again), or enter new markets.

A Final Aside on the Bass Diffusion Model

In his excellent book Strategic Modelling and Business Dynamics, John Morecroft explains (on page 173) that the effect of marketing in the Bass diffusion model has a stronger purpose than just to start the ball rolling. Without the marketing effect, market growth through word-of-mouth alone is much slower than any business would desire, or typically experience. The following graph compares the growth with and without the marketing effect (Customers is initialized to one in both cases).

Without the marketing expenditure, the conversion of Potential Customers to Customers does not peak until the month 91, whereas, with marketing expenditure, it peaks in month 50, in almost half the time. This is also reflected in the time it takes the market to mature:

available by clicking here)
Categories: simulation, strategy

Modeling Real World Challenges Inspires Students

Thu, 04/02/2010 - 18:00

Last summer I had the opportunity to see students from Diana Fisher’s dynamic modeling class at Wilson High School in Portland, Oregon present their modeling projects to participants of the International System Dynamics Society Conference in Albuquerque. The parallel session was filled with educators and professionals from different fields, many of whom are renowned system dynamicists.

I think it is safe to say that we all were very impressed by the quality of the students’ work and how well they understood the dynamics associated with the issues they were presenting. Perhaps more striking however, was seeing how empowering modeling real-world issues is for young people and the enthusiasm they share for their work.

Now everyone can see the effect that modeling real-world issues has on students at the CC Modeling Systems web site. Dedicated to helping educators bring dynamic modeling into the classroom, the web site features videos of students presenting their work as compelling evidence to the value of incorporating System Thinking and system dynamics into curriculum.

You’ll be amazed to see what 14-18 year olds are capable of and the excitement they exuberate when addressing challenges such as:

Students are eager to understand the world better and are more than capable of building and understanding relatively sophisticated models in their attempts to understand the dynamics of real-world systems.

—Diana Fisher

Educators and administrators considering dynamic modeling curricula typically face challenges. No matter how compelling the evidence that Systems Thinking and the system dynamics methodology engages students and takes them to a higher level of reasoning, it is still difficult to justify without tying it to National Standards.

The CC Modeling Systems web site devotes an entire section to detailing very specific 21st Century Skills and National Standards addressed by curriculum that incorporates building system dynamics models. Much of the homework has been done aligning this type of work to standards in the following subject areas:

Many thanks to Diana Fisher for sharing her students and her experiences teaching dynamic modeling with all of us!

To learn more about the modeling course that Diana teaches, I recommend the following links:
Recorded webinar presentation by Diana Fisher
Modeling Dyamic Systems: Lessons for a First Course

Categories: simulation, strategy

Developing a Market Using the Bass Diffusion Model

Thu, 21/01/2010 - 17:08

This is part two of a three part series on Limits to Growth. Part one can be accessed here and part three can be accessed here.

In part one of this series, I explained the Limits to Growth archetype and gave examples in epidemiology and ecology. This part introduces the Bass diffusion model, an effective way to implement the capture of customers in a developing market. This is also used to implement what Kim Warren calls Type 1 rivalry in his book Strategy Management Dynamics, that is, rivalry between multiple companies in an emerging market.

The Bass Diffusion Model

The Bass diffusion model is very similar to the SIR model shown in part one. Since we do not usually track customers who have “recovered” from using our product, the model only has two stocks, corresponding loosely to the Susceptible and Infected stocks. New customers are acquired through contact with existing customers, just as an infection spreads, but in this context this is called word of mouth (wom). This is, however, not sufficient to spread the news of a good product, so the Bass diffusion model also includes a constant rate of customer acquisition through advertising. This is shown below (and can be downloaded by clicking here).

The feedback loops B1 and R are the same as the balancing and reinforcing loops between Susceptible and Infected in the SIR model. Instead of an infection rate, there is a wom multiplier which is the product of the Bass diffusion model’s contact rate and the adoption rate. If you are examining policies related to these variables, it would be important to separate them out in the model.

The additional feedback loop, B2, starts the ball rolling and helps a steady stream of customers come in the door. If you examine the SIR model closely, you will see that the initial value of Infected is one. If no one is infected, the disease cannot spread. Likewise, if no one is a customer, there is no one to tell others how great the product is so they want to become customers also. By advertising, awareness of the product is created in the market and some people will become customers without having encountered other customers who are happy with the product.

The behavior of this model is shown below. Note it is not different in character from the SIR model or the simple population model.

Implicit Type 1 Rivalry

In the face of competition for an emerging market, multiple companies will be fighting for these same potential customers. Ostensibly, they all follow the Bass diffusion model. However, if the exact dynamics of the competition is not important to the purpose of the model, it is possible to simply model the reverse pressure the competition is placing on your company’s growth.


In this version of the model (which can be downloaded by clicking here), both the wom multiplier and the marketing effectiveness (fraction gained per $K) are restricted by competitive pressure. The variable competitive pressure is an S-shaped graphical function meant to mimic the behavior of competitors in a developing market. In the beginning, there is no competition. As the market grows, more and more competitors enter the market until it becomes saturated. It is a simple time-series function, as shown below, but could instead be tied to the success of your company.

The variable competition is just 1 – competitive_pressure, i.e., it is a multiplier that reduces the effectiveness of wom and marketing spending as competitive pressure grows. Finally, a switch called competition switch has been added. When this is set to zero (the default), the model behaves as it did previously, i.e., without competition. When it is set to one, competition is active and the behavior changes to that shown below.

Explicit Type 1 Rivalry

Finally, another competitor can be explicitly modeled by replicating the structure (or by using arrays). This model is shown below (and can be downloaded by clicking here).

In this structure, each competitor can be given their own explicit parameters, which can also vary as the simulation progresses based on market share or product attractiveness. When the rival spends half as much on marketing as your company does, your company wins more market share:

In this simulation, the rival enters the market at the same time as your company. This is usually not the case in the real world. If all parameters are the same for both companies, but the rival company enters the market one year later, the end result is identical to that shown above. The transient response, however, is necessarily different:

This model does not include the process of developing a market for a product nor does it model persons leaving the market. I.e., it is assumed that the total market size is predefined and never changes. For a completely new product, the potential market will likely grow, so we may want to include this effect. However, when modeling a developing market, it is unlikely we are interested in the shrinking of the market that occurs after maturation.

The model also does not model losing customers to competitors (Type 2 rivalry) or customers who use products from multiple competitors (Type 3 rivalry). An example of modeling Type 2 rivalry is shown in a previous post.

My next post in this series will expand the above model to include Type 2 rivalry and to use arrays.

Categories: simulation, strategy

Humanities Major Attempts Dynamic Modeling and Survives!

Fri, 15/01/2010 - 21:00

This post is written by Rolf Olsen, a participant in our Introduction to Dynamic Modeling with iThink and STELLA workshop held last month in Colorado Springs. We thought Rolf’s perspective would offer insights for those of you who are new to Systems Thinking or curious about applying dynamic modeling to real-world issues.

Rolf Olsen, Workshop Participant

I was very excited about a last-minute chance to attend the introductory iThink/STELLA workshop, but to be honest, on the flight to Colorado Springs, I started to become apprehensive. Who was I trying to kid? Sure, I’d heard the terms “stock” and “flow” and I understood their roles as the nouns and verbs of the software. I’d even read a few chapters in Barry Richmond’s Introduction to Systems Thinking. But the first time I started up the software and stared at that blank workspace, I had no clue where to begin! Adding to my anguish, I was quite certain there would be others there who were much smarter than me and really knew what they were doing.

In college I spent most of my time and energy studying English and French, language, literature, cinema, art history, and so forth. I managed to avoid all higher math like the plague (although I did reasonably well in basic statistics). My engineer father often reminded me that my degree in Humanities prepared me for almost nothing. After college, I stumbled into a career in marketing – quite fertile territory for exploring system dynamics and modeling, as it turns out. I spent a few formative years in an ad agency and at a regional banking system, before finding my stride marketing and managing nonprofit arts and culture organizations. Today I work in marketing and communication in a large academic medical center.

For years I’ve used spreadsheets to model various ‘what if’ scenarios. In the arts, I used spreadsheets to create budgets and set ticket prices, always seeking ways to better predict revenue from ticket sales at different prices, for different types of performances (e.g., modern dance, string quartet, jazz ensemble), or on different days of the week.

Preparing for the iThink/STELLA workshop, I decided I’d like to try to model demand in a market area for laser vision correction surgery, popularly known as LASIK or PRK. That seemed simple enough. I might be able to bluff my way through this workshop after all!

In the end, all my concerns and fears of inadequacy were for naught. Corey Peck is a remarkable teacher. Within the first hour of the first day, he’d already explained that almost everybody who starts iThink for the first time takes a deep gulp at the sight of that blank workspace, wondering how to begin. That was comforting, to say the least.

Others in this workshop included a nurse from Nigeria, two men from a large consulting firm that counts the military among its principal clients, three people with separate interests in systems used to deliver electrical energy, two from the IS planning department of a large national insurance company, a woman from an Oregon health care system, and two women from Hong Kong who teach English at a university there. And there was me, the health care marketing geek.

Despite the diversity of our backgrounds and fields of endeavor, somehow, over two and a half days of workshop, Corey always managed to guide and instruct us, as a group and individually, in a way that was neither too complex and esoteric nor too simple. He obviously comprehends dynamic systems so well, and knows the software so thoroughly, that no matter what type of model one of us presented, Corey could quickly offer clear and helpful guidance. I never felt lost, and I always found myself learning something as I eavesdropped on Corey’s conversations with others in the class.

Our other instructor, Mark Paich, was a protégé and colleague of some of the pioneers of Systems Thinking, including Barry Richmond and Peter Senge. Mark’s tales from years of consulting work with clients, such as General Motors, were fascinating and, for me, they helped place the concepts we were exploring within a much larger context. Although the scope and complexity of some of the projects Mark described were daunting, these stories helped me appreciate more clearly what is possible when you begin to view almost any situation you encounter as a dynamic system. And the stories were fascinating and fun, providing an excellent “brain break” from the rigors of our lessons with Corey!

By the end of the first day, we’d all constructed our first working models, and begun to sketch out the models we hoped to build. As I mentioned, I wanted to try to create a simple model to explore dynamic demand, based on several variable factors, for LASIK vision correction surgery. I’d start with the population of our market area and then determine the number of people who wear glasses or contacts.

  • Of those people, how many are aware that our hospital offers LASIK surgery?
  • How many of the “aware” group might be willing to attend a free information session and preliminary evaluation?
  • Of all qualified candidates, how many would be willing and able to actually go through with the surgery?
  • Then, after successful LASIK surgery, how many people would tell their friends, neighbors or colleagues how happy they were, thus spreading awareness and influencing a new group of candidates to have LASIK surgery?
  • And what might be the impact on surgery volume of marketing efforts at various levels of expenditure? How about a discount or referral incentive?


I started out pretty simply because, as Corey reminded us often, “There’s plenty of time to make it more complex later.” That proved to be great advice. And in the end, I went home with a rudimentary model that seemed to work. Well, mostly. It needs more work and I need more practice. And when I mentioned to Corey that I hoped to figure out how to factor in the “word of mouth” effect into my model, he promised to send me information about the “Bass Diffusion Model” that addresses that very topic. And sure enough, an email arrived a few days after I’d returned home.

In all, my experience at the introductory iThink/STELLA workshop was excellent, even transformative. I now often find myself thinking in terms of stocks, flows, converters and connectors. I don’t literally model every situation I encounter, of course, but I see applications all around me. I know I have an enormous amount yet to learn, the introductory course covered just the basics for me. But now I have more confidence and I feel inspired to move forward, because I’ve had a tantalizing glimpse of what’s possible with a proper grasp of key concepts, the right software tool – and remarkable teachers.

Categories: simulation, strategy

Change resistance as the crux of the environmental sustainability problem

Thu, 14/01/2010 - 08:39
Why, despite over 30 years of prodigious effort, has the human system failed to solve the environmental sustainability problem? Decomposing the problem into two sequential subproblems, (1) how to overcome change resistance and (2) how to achieve proper coupling, opens up a fresh line of attack. A simulation model shows that in problems of this type the social forces favoring resistance will adapt to the forces favoring change. If change resistance is high this adaptation response either prevents proper coupling from ever being achieved or delays it for a long time. From this we conclude that systemic change resistance is the crux of the problem and must be solved first. An example of how this might be done is presented. Copyright © 2010 John Wiley & Sons, Ltd.
Categories: simulation, strategy

Improving model understanding using statistical screening

Thu, 24/12/2009 - 03:54
System dynamics models are often constructed to improve system performance by identifying and modifying feedback mechanisms that drive system behavior. Once identified, these feedback mechanisms can be used to design and test policies for system performance improvement. A preliminary step in developing policies is the identification of high-leverage parameters and structures, the influential model sections that drive system behavior. The current work clarifies and extends the use of statistical screening as a tool to improve model understanding, explanation, and development with a six-step process. Statistical screening adds rigor to model analysis by objectively identifying high-leverage model parameters and structures for further analysis. Statistical screening offers system dynamicists a user-friendly tool that can be used to help explain how model structure drives behavior. Copyright © 2009 John Wiley & Sons, Ltd.
Categories: simulation, strategy

Top Blog Posts of 2009

Fri, 18/12/2009 - 16:00

In 2009, the isee systems blog, “Making Connections” was created as a forum for sharing ideas and experiences with the Systems Thinking community. Blog topics cover subjects ranging from a systems perspective of current news events to modeling tips for advanced STELLA and iThink users.

As the first anniversary of the isee Blog approaches, we thought it would be interesting for folks to see the list of our most popular blog posts.


Top Ten Posts of 2009

  1. Modeling H1N1 Flu Outbreak
  2. Modeling Customers Switching Between Brands
  3. Modeling a Watershed with Arrays
  4. Matrix Arithmetic
  5. Spatial Modeling with isee Spatial Map
  6. “Thinking in Systems” book inspires online course
  7. Physics Textbook 2.0
  8. Insight-based Model Investigates the Housing Crisis
  9. Building a Health Care Model Hierarchically
  10. C02 in the Atmosphere Behaves Like a Bathtub
Categories: simulation, strategy

Limits to Growth

Thu, 03/12/2009 - 15:00

This is the first of a three-part series on the Limits to Growth Archetype. The second part can be accessed here and the third part here.

The Limits to Growth Systems Archetype, also known as Limits to Success, combines growth with an exogenous or endogenous limit. This Systems Archetype was formally identified in Appendix 2 of The Fifth Discipline by Peter Senge (1990), but made its first prominent appearance in World Dynamics by Jay Forrester (1971) and then The Limits to Growth by Meadows, Meadows, Randers, and Behrens (1972). The Causal Loop Diagram (CLD) is shown below.

Real growth processes have inherent limits to growth. Identifying these limits can help avoid problems in the future, whether the problem is overpopulation, increasing demand for a product that cannot be met, or growing a business in a mature market. When growth is desired, but limited, it is always better to find ways to increase the limit before pushing for more growth. Excessive growth in the face of a limit often leads to collapse. Driving the system to the point of collapse can erode the ability to continue after the collapse, for example, by reducing the production capability of a piece of farmland or destroying the reputation of a company.

Classic examples of limits to growth include:

  • The collapse of the deer population on the Kaibab plateau and on St. Matthew Island due to overpopulation and the attendant overgrazing of their habitat
  • The overshoot and collapse of the human population on Easter Island
  • Overgrazing in the Sahel region of Africa by cattle herders
  • Overfishing of the oceans by fishermen
  • The collapse of People Express due to sharp customer growth combined with slow personnel growth
  • The sharp exodus of America Online subscribers after an intense marketing campaign increased the number of subscribers far beyond their capacity
  • The contraction of the world economy in 2008 due to limiting oil supplies
  • The productivity of staff deteriorating as a company grows, due to increased interactions and reporting overhead
  • Business growth limited by the size of the potential market
  • Yeast cells in the fermentation process, who suffer from both the loss of exogenously supplied sugar and the increase of endogenously produced pollution

Exploring Limits to Growth with the SIR Model

The SIR (Susceptible-Infected-Recovered) model, also known as the Kermack-McKendrick model, is used to predict the spread of an infectious disease. The disease is ultimately limited by the number of potential hosts.

In this model (available by clicking here), the Susceptible population becomes infected based on their rate of contact with an Infected population and the probability of being infected (infection rate combines these parameters). After some amount of time (1/recovery rate), the disease runs its course and people either recover or die, moving into the Recovered population.

The infection feeds on susceptible people. As the number of susceptible people falls, the number who can become infected also falls. Since infected people eventually recover, the number of infected people will ultimately fall. This behavior is reflected in the graph below.

The sharp increase in Infected, followed by a dramatic drop is known as overshoot and collapse. It is a characteristic behavior of the Limits to Growth Archetype. The stock of Recovered people is also limited – by the total population. It exhibits a different characteristic behavior of Limits to Growth: S-shaped growth, so called because the graph of this growth pattern looks like the letter S. This is also known as logistic growth. In the beginning, growth is very rapid, but as the limit is approached, growth slows and then stops. In feedback terms (refer back to the CLD), the rapid growth on the left side of the S occurs because the reinforcing loop dominates while the right side slowdown occurs because the balancing loop dominates.

There are two separate limits to growth: one on the sustainable level of the condition of interest and one on its rate of growth. The former is defined by a system’s carrying capacity (named limiting condition in the CLD). As Khalid Saeed, Professor of Social Science and Policy Studies at Worcestor Polytechnic Institute, recently reminded me, the carrying capacity of a system is always a flow. Any system that requires something, either energy or mass, to persist cannot exist beyond the level at which that something can be provided. The second limit, that on the rate of growth, is defined by the system slack, which is always a stock.

In the SIR model, the infectious disease feeds off of the susceptible people. The stock of Susceptible people is therefore the slack in the system. The growth of the disease is limited by the contents of this stock. However, the carrying capacity of the system is zero, as there is no inflow to Susceptible to provide an endless supply of victims for the disease. The net result is that eventually, and after a sharp rate of growth, the number of infected people will also drop to zero.

In either a closed or a quarantined community, this may be true. However, ease of travel creates an inflow to Susceptible, i.e., a carrying capacity, and thus the disease can persist. The graph below shows what happens when an inflow is added Susceptible and set to 10 people per day (10% of the initial population).

Rather than going to zero, both Susceptible and Infected wind up at non-zero steady-state values that reflect the new carrying capacity (10). Note in particular that this value is not 10 for either stock; it is about 50. Note also that the Infected peak has risen from roughly 17 to 90 due to the inflow of susceptible people.

For more information about the spread of infectious disease, read our blog post on Modeling H1N1 Flu Outbreak.

Exploring Limits to Growth in Population Dynamics

Another example occurs in population dynamics. The simple example shown below demonstrates the impact of a limit (click here to download this model).

The food available is a simple linear relationship that reduces available food as population increases. The death rate increases as the available food per member of the population falls. The behavior of this model is shown below.

While this shows the desired behavior, an exogenous limit (food available) enforced as the population grows, this model has no slack and no explicit carrying capacity. The lack of an explicit stock to model the slack in the system will result in an incorrect transient response (i.e., the system’s response to a change in its variables) when something happens that might require that slack, for example, a drought or a surge in the population due to immigration.

A more accurate and useful, though more complex, model appears below (and is available by clicking here).

Both the carrying capacity (replenishment) and the slack (Food Available) are explicitly modeled. The behavior is quite different:


There is now a proper transient response to an increase in the birth rate. The slack, Food Available, fuels growth in the Population until the slack is exhausted (relative to the carrying capacity), at which point the population collapses to its approximate equilibrium value – the value supported by the carrying capacity.

Next time, I will explore limits to growth in the context of business development models.

Categories: simulation, strategy