Please enable JavaScript to view this site.

Vensim Help

(prod1.mdl)

In order to make use of our diffusion model from Chapter 4, we need to refine it to deal with the reality of purchasing a new product.  First, in that model, sales represents the number of people who are sold on the product.  In order to stay in business, however, we need to distinguish between the people who have adopted the product and the number of products actually being bought.  Though the two concepts are similar, it is useful to separate them and provide a dimensionally consistent view of the process.

Distinguishing people from products allows us to represent several other important characteristics of the real system, like order backlogs and replacement purchases. Once someone decides to purchase something it cannot always be immediately obtained.  Delivery delays are common when new markets are booming.  Since people who are waiting do not have the product, they are unlikely to be strong advocates. Finally, and fundamental to survival, people who have purchased a product use it and replace it when it wears out or becomes obsolete.  This process allows industries to prosper for extended periods of time, and should not be overlooked.

To address these issues we will set up two parallel stock and flow structures— one for customers and one for products.  When a potential customer orders a product for the first time this it called a New Order.  The order goes into New Backlog, and is filled over normal delivery delay to become a Product In Use.  While the customer is waiting for shipment of the product, they are in the Waiting Customers pool.  It is only after a new shipment occurs that customers become an active advocate of the product.

We will run the model for 5 years with TIME STEP at .0625.

Though we have added quite a bit of structure to this model, it still has the same dynamic character as the diffusion model.  The central feedback loops driving growth and saturation (more customers, more contacts, more sales eventually making everyone a customer) are unchanged.  There is a potential buffer (Waiting Customers) of people who are not active (neither advocates nor new purchasers) dampening the growth effects.  In this first round this will not have a significant impact since we will keep delivery delay short,  but when we introduce production it becomes quite important.

The equations for the model are:

average life product = 2

Units: Year

committals = customer with non customer contacts * sales fraction

Units: Person/Year

completions = new shipments/product per customer

Units: Person/Year

contact rate = 500

Units: 1/Year

The contact rate has been increased relative to the original diffusion model in Chapter 4  because it is much easier to show someone a product and say it is wonderful than it is to explain a complex methodology like System Dynamics.

customer prevalence = Customers/total market

Units: Dmnl

customer with non customer contacts = non customer contacts * customer prevalence

Units: Person/Year

Customers = INTEG(
completions,
       initial customers)

Units: Person

initial customers = 100000

Units: Person

We start with a significant number of customers.  If we were starting with a small number of customers it would be necessary to add in advertising or some other activity to get the diffusion process going in a reasonably short period of time (this is a good experiment to try on your own).

New Backlog = INTEG(
new orders - new shipments,
       new orders * normal delivery delay)

Units: Gadget

new orders = committals * product per customer

Units: Gadget/Year

new shipments = total shipments * New Backlog/total backlog

Units: Gadget/Year

new orders and replacement orders are both competing for the same supply of production (limited by available capacity).  This formulation says that those products are rationed proportional to the amount previously demanded.  This is a simple, and commonly useful way to represent the distribution of a scarce resource.  The formulation new shipments = New Backlog/normal delivery delay would give the same results.  This formulation was chosen because it will make adding a production sector simpler.

non customer contacts = Potential Customers * contact rate

Units: Person/Year

normal delivery delay = 0.125

Units: Year

Potential Customers = INTEG(
- committals,
       1e+007)

Units: Person

Product In Use = INTEG(
new shipments + replacement shipments - replacement orders,
       Customers * product per customer)

Units: Gadget

product per customer = 1

Units: Gadget/Person

Replacement Backlog = INTEG(
replacement orders - replacement shipments,
       replacement orders * normal delivery delay)

Units: Gadget

replacement orders = Product In Use/average life product

Units: Gadget/Year

replacement shipments = total shipments * Replacement Backlog / total backlog

Units: Gadget/Year

sales fraction = 0.005

Units: Dmnl

total backlog = New Backlog + Replacement Backlog

Units: Gadget

total market = ACTIVE INITIAL(
Potential Customers + Waiting Customers + Customers, Potential Customers)

Units: Person

The ACTIVE INITIAL function is required here to break a simultaneous initial condition loop involving Waiting Customers.  What this function does is use the first expression during simulation, but the second expression during initialization to set the values for the different levels in the model.  Since both Waiting Customers and Customers are small at the beginning of the simulation this is a reasonable approximation that breaks the initial value interdependencies.

total shipments = total backlog/normal delivery delay

Units: Gadget/Year

This model was crafted somewhat carefully so that, when we add in the production structure, total shipments will be the only equation that requires modification.  Though such complete separation of structure is desirable for pedagogical purposes, it is not a goal that should be emphasized.  Feedback is pervasive, and excessive isolation of different sectors can lead to unrealistic models.

Waiting Customers = INTEG(
committals - completions,
       New Backlog/product per customer)

Waiting Customers is initialized to be in balance with the parallel flow of orders and shipments.

When you simulate this model you may, depending on your options settings, receive a series of warnings:

These warnings relate to the use of the ACTIVE INITIAL.  The value of total market used to initialize the Levels in the model was 1E7.  Once all the Levels were initialized, total market was computed with the active portion of ACTIVE INITIAL to have a value of 1.013E7.  Additional variables also went through these two computations even though the ACTIVE INITIAL function was not explicitly used for them.  The different values are reported.  All are small changes and no real cause for concern.

This basic model generates the same behavior as the diffusion model discussed in the previous chapter.  Because of the addition of replacement orders, however, total orders has a new profile.

Here orders grow rapidly, but instead of falling back to 0, they go to a sustained value of just under 5 million Gadget/Year.  This is the replacement demand of all the customers using the product.  Because of the way the model is formulated, total products in use does not reach the value of 5 million that would occur if everyone had the product.  This is because once a decision is made to replace a product, it takes time to get the replacement, so some portion of the population is always waiting to receive the product.