Back to the student project listing page


powered by NetLogo

view/download model file: Midsize_Vehicle_Market.nlogo

WHAT IS IT?

Agent based model for midsize vehicle in U.S. is a multi-agent based simulation model, where new vehicle purchase is simulated through interactions among customers, dealers, and manufacturers and the utility theory from economics is assumed here. As my research work has been focusing on customer preference study in vehicle purchase using discrete choice model, in which preference coefficients are estimated from survey data, it would be interesting to see the backward realization and therefore validate our approach of discrete choice model.

The guiding questions we want to answer with this midsize vehicle market model are as follows:
How do customers make their choices when purchasing the vehicle?
How does dealer�s pricing strategy influence their sales?
How do manufacturers� vehicle designs influence their market share?
How does customers� shift from conventional cars to alternative fuel cars, hybrid cars in this case, respond to interactions between customers, i.e. the �word of mouth� effect?

In the context of customer behavior study, we assume that every customer makes rational decision in purchasing products, i.e. he / she chooses one product that maximize his / her utility among all available alternatives (in this case, all available choices). The utility is formulated as a function of price, brand, vehicle attributes, and demographic attributes (gender, age, income, etc.). For example, the utility of customer i for alternative j can be written as follows:

U_ij = A * price_j + B * brand_j + C * vehicle attribute_j + D * demographic attribute_i + ?_ij

In Equation 1, A, B, C, D are parameter coefficients of the utility function. Usually, they are calibrated by estimating a discrete choice model using customer satisfaction survey data. In order to test the robustness of this utility function, simulation of changing coefficient values within certain range are conducted. In other words, we can make small changes in coefficient values in the utility function to see whether it will lead to different customer choices. For price_j, coefficient A is negative, as customers prefer lower price. The brand_j variable represents the preference for different brands. The vehicle attribute_j can be expanded to a set of engineering attributes, e.g. front headroom of the driver seat. Similarly, the demographic attribute_i includes a set of characteristics of the respondents, such as age, gender, etc. The random term ?_ij follows a normal distribution with zero mean, which introduces uncertainty into the utility function.

In the midsize vehicle market model simulation, the fluctuations of transaction price are observed. At the beginning of each week, dealers adjust their selling price according to the sales in the last three weeks and their inventory level. Since price is an important factor in the utility function, different pricing strategy will have impact on the sales.

Moreover, this model can also be used to predict market share of manufacturers. Let�s assume that there are M automotive manufacturers in the midsize vehicle market. Each of them has one car model in the midsize market segment. Each car model has different vehicle attributes. At the beginning of simulation, manufacturers can determine the vehicle price and attributes by plugging in the value into corresponding input windows.

Furthermore, the process of how customers shift their choice from conventional vehicle to alternative fuel vehicle (we only consider hybrid cars) is another interesting focus in today�s market. Most of the automotive manufacturers have launched alternative fuel vehicles in the past few years. Although many customers have chosen alternative fuel vehicles, the majority are still driving conventional vehicles. There are many reasons behind their choices. Study shows that the much higher selling price and customers� uncertain attitude toward new technology are two of the most important reasons. Adding customers� attitudes towards �green vehicles� in the utility function, and allowing interactions between customers enable customers� shift from conventional cars to alternative fuel cars.


HOW IT WORKS

 AGENTS

Cars

�Cars� turtles are cars for sale at each dealer. In current version, we assume that each manufacturer has only one car model in the midsize vehicle market segment. Therefore, the car turtles are not actually used at the moment. However, as they are critical in expanding the model to the multiple-car-model scenario, I decided to keep them in the model.

Cars are represented as little car shaped turtles with the color representing their brands. They have properties like �price� (selling price), �front headroom� (front headroom of the driver seat), �MPG� (stands for mileage per gallon), �green?� (true indicates it�s an alternative fuel car, false indicates it�s a conventional car), �sold?� (true indicates it�s sold, false indicates it�s still in market), and �brand� (brand).

Customers

�Customers� turtles are buyers in the market. Customers arrive at the market each week following a Poisson distribution. Individual customer characteristics are generated based on a predetermined distribution of age, gender, income, etc. Each customer visits four randomly selected dealers and purchases a car offered by the dealers in a week and then leaves the market. The decision making rule is to always pick the car that maximizes the utility.

Customers are represented as white little person in NetLogo world. They have properties like �home-x� (x coordinate value of home address), �home-y� (y coordinate value of home address), �age� (age), �gender� (1 for female and 0 for male), �income� (annual household income /10k), �c_hybrid� (preference for hybrid cars, 100 for potential adopters, 0 otherwise), �found-dealer?� (a local indicator for the use of visiting dealers), �early-adopters?� (an indicator for whether he/she owns a hybrid car), �potential-adopters?� (an indicator for whether he/she is influenced by neighbors who are early-adopters).

Dealers

�Dealers� turtle represents franchised dealers selling cars of a particular brand. They are spread out randomly in the world and cannot move during the simulation. At the beginning of each sales week, they can adjust their price according to the sales volume in the past 3 weeks and their inventory value. At the end of each sales week, they order new cars from the manufacturers.

Dealers are represented as house shaped turtles standing in the world. Their properties of interest includes: �BSC� (brand specific constants in the utility function, reflecting customers� preference in brands), �ccar-price� (selling price of the car they offer), �ccar-front-head-room� (front headroom dimension of the car they offer), �ccar-MPG� (mileage per gallon of the car they offer), �inventory� (inventory level), �sales-volume� (sales volume so far), �sales-volume-t� (sales volume this week), �sales-volume-t-1� (sales volume last week), �sales-volume-t-2� (sales volume 2 weeks ago), �revenue� (revenue so far), �revenue-t� (revenue this week), �utility� (value of utility function), �invoice price� (invoice price from the manufacturer), �order� (number of vehicles ordered from manufacturer), �hybrid?� (an indicator of whether it is a hybrid car dealer), �hybrid� (dummy variable of hybrid car dealer for the use in utility function).

Manufacturers

�Manufacturers� turtles are manufacturers in the vehicle market. Each manufacturer produces only one unique car model and has a couple of franchised dealers selling their cars. At the end of each sales week, manufacturers receive orders from their dealers and provide certain incentives, i.e. discount of invoice price, according to the order size.

Manufacturers are represented as car shaped turtles at the lower left corner of the world. Different color represents their brands. Their properties are interest includes: �sales-volume� (summation of sales volume over all their dealers), �revenue� (summation of revenue over all their dealers), �incentive-rate� (discount rate of invoice price they offer to the dealers)

 RULES

If I am a customer, I arrive at the market at the beginning of each week following a Poisson distribution. My age, gender, and income are randomly generated. I wiggle around until to find a dealer. At the dealer, I�ll calculate the value of utility function of buying the car. Then I continue to wiggle around and repeat these steps until I visited as many dealers as I want. I will make a choice, i.e. buy from the dealer that maximizes my utility function. At the end I�ll go home and hide myself.

When the alternative fuel car option is turn on, if I am a customer and I am influenced by my early-adopter neighbors (the probability of me getting influenced by my neighbor is determined by the �adopt-rate� slider), I become a potential adopter, turn yellow, and have strong preference for hybrid car. If I decide to buy a hybrid car, I become an early adopter. If I do not buy a hybrid car, I will stay a majority buyer.

If I am a dealer, I will order new cars from manufacturers. I take the average sales volumes in the past three weeks as my order size, as shown in Equation 2. Then I�ll adjust my price at the end of each week. If the inventory level is larger than the maximum inventory, I�ll lower the price by 100 dollars; if the inventory level is less than the minimum inventory, I�ll increase the price by 100 dollars.

If I am a manufacturer, I will provide incentive to my dealers. The incentive rate is randomly generated from 0 to 1. The new invoice price is calculated by: invoice price_t+1=invoice price_t-incentive rate*(order-10). Any order size larger than 10 will induce a decrease in invoice price, vice versa.


HOW TO USE IT

Green people represent the early adopters, while the remaining are majority buyers. Yellow people represent the potential buyers, as they are influenced by their early adopter neighbors (most of them are hidden, so that we cannot see them).

On the left hand side, there are six sections. The procedure section contains �setup� button, �go forever� button, and �go once� button. The customers section contains �number-of-customers� slider and �choice-set-size� slider to set up the initial number of customers and choice set, respectively. The dealers section contains �number-of-dealers� slider, �show-price?� switch, �min-dealer-inventory� and �max-dealer-inventory� slider to set up initial number of dealers, turn on/off price label of the dealer, set up the minimum and maximum inventory level, respectively. The manufacturer section contains �number-of-manufacturer� slider and �show-incentive?� switch to set up the initial number of manufacturers and turn/off incentive label of the manufacturers, respectively. The alternative fuel car section includes �alternative-fuel?� switch and �adopt-rate� slider to turn on/off hybrid car option and change adopt-rate, respectively. In the results section on the lower left corner, brand market share and population percentage are plotted over time, together with four monitors of customer population construction, namely, early adopters, potential adopters, majority buyers, and total customers.

On the right hand side, a set of input windows are organized to initialize vehicle parameters including price, front headroom, and MPG. Before simulation, reasonable values are typed into each of the spots.

Click on SETUP button, several manufacturers are created in the market, each with its own unique brand color. Similarly dealers are created to representing each of the brands.

Click on GO or GO ONCE button, a new sales week starts. Customers arrive at the market, visit the dealers, make their choice and leave the market (become invisible). Dealers adjust their price and place order on new cars. Manufacturers give incentive to their dealers.


THINGS TO NOTICE

How does the market share respond to change in price?

How does the market share respond to change in vehicle attributes, for example front headroom?

How does the market share respond to change in MPG?


THINGS TO TRY

By turning on the alternative-fuel-car switch, you can explore customers' shift from conventional car to hybrid car. You can change the choice-set-size slider, the adopt-rate slider or change the attributes of hybrid car, and observe how this influences the population composition.


EXTENDING THE MODEL

First, more comprehensive pricing strategy can be implemented into the model.

Second, multiple hybrid cars of different brand can be introduced to the market, competing with the conventional car of the same brand.

Third, alternative fuel station construction can be modeled, as availability of alternative fuel is a critical factor in the utility function.


PROCEDURES

globals [
brands  
A-brand
B-brand
C-brand
D-brand
E-brand
F-brand
G-brand
H-brand
p1                                                      ; parameter 1 in utility function
p2                                                      ; parameter 2 in utility function
p3                                                      ; parameter 3 in utility function
p4                                                      ; parameter 4 in utility function
p5                                                      ; parameter 5 in utility function
p6                                                      ; parameter 6 in utility function
p7                                                      ; parameter 7 in utility function
u_price
u_fhr
u_MPG
u_age
u_gender
u_income
u_hybrid
temp-color
plot-sales-volume
A-sales-volume
B-sales-volume
C-sales-volume
D-sales-volume
E-sales-volume
F-sales-volume
G-sales-volume
H-sales-volume
total-sales-volume
A-market-share
B-market-share
C-market-share
D-market-share
E-market-share
F-market-share
G-market-share
H-market-share
orders
incentives
local-hybrid
%-MB                                                     ; percentage of majority-buyers in population
%-EA                                                     ; percentage of early-adopters in population
]

breed [cars car]
breed [customers customer]
breed [dealers dealer]
breed [manufacturers manufacturer]

cars-own [
  price                                                  ; selling price, set by dealer at the beginning of each week
  front-head-room                                        ; vehicle attributes - front headroom in the utility function
  MPG                                                    ; vehicle attributes - mileage per gallon in the utility function
  green?                                                 ; indicates whether it is an alternative fuel vehicle
  sold?                                                  ; status, true = sold, false = for sale
  brand                                                  ; brand, responding to manufacturer
]

customers-own [
  home-x                                                 ; home address x cor
  home-y                                                 ; home address y cor
  age                                                    ; age, from 20 to 80
  gender                                                 ; gender, either female (1) or male (0)
  income                                                 ; annual household income, unit: 10k
  c_hybrid                                               ; preference for hybrid cars, 100 for potential adopters, 0 otherwise
  found-dealer?                                          ; indicates whether they found a dealer nearby
  early-adopters?                                        ; indicates whether he/she owns a hybrid car
  potential-adopters?                                    ; indicates wheterh he/she is influenced by neighbors who are early-adopters
]

dealers-own [
  BSC                                                    ; brand specific constants in utility function, reflecting customers' preference in brands
  ccar-price                                             ; price of conventional car it offers
  ccar-front-head-room                                   ; front headroom of conventional car it offers
  ccar-MPG                                               ; MPG of conventional car it offeres
  inventory                                              ; inventory level, number of cars at the dealers
  sales-volume                                           ; sales volume so far
  sales-volume-t                                         ; sales volume this week
  sales-volume-t-1                                       ; sales volume last week
  sales-volume-t-2                                       ; sales volume 2 weeks ago
  revenue                                                ; revenue so far
  revenue-t                                              ; revenue this week
  utility                                                ; utility value
  invoice-price                                          ; invoice price from manufacturer
  order                                                  ; number of vehicles ordered from manufacturer
  hybrid?                                                ; indicates whether it is a hybrid car dealer
  hybrid                                                 ; dummy variable of hybrid car dealer for the utility function
]

manufacturers-own [
  sales-volume                                           ; summation of sales volume over all dealers
  revenue                                                ; summation of revenue over all dealers
  inventory                                              ; inventory level
  incentive-rate                                         ; discount rate of invoice price for dealers
]


;**************************************************
;******************  INITIALIZE  ******************
;**************************************************

to setup 
  clear-all
  
  ;; initialize parameters
  initialize
  
  ;; set up brands
  set brands [red green brown yellow blue pink grey turquoise] ; at most 8 brands in the model
  
  ;; initialize manufacturers
  set-default-shape manufacturers "car"
  let i 0
  repeat number-of-manufacturers
  [
    create-manufacturers 1
    ask manufacturer i
    [
      set size 1.5
      setxy min-pxcor + 0.5 min-pycor - i + 8                  ; align manufacturers in the lower left corner
      set color item i brands
    ]
    set i (i + 1)
  ]
  
  ;; create dealers
  set-default-shape dealers "house"
  ask n-of number-of-dealers patches
  [
    sprout-dealers 1 
    [ 
      set size 1.8
      set color item random number-of-manufacturers brands     ; set to different color representing different brands
      ifelse alternative-fuel? 
      [
        ifelse color = green
        [
          set hybrid? true 
          set hybrid 1
        ]
        [
          set hybrid? false
          set hybrid 0
        ]
      ]
      [
        set hybrid 0
      ]
      set inventory random max-dealer-inventory                ; set initial inventory levels
      set sales-volume 0                                       ; starts with zero sales
      set sales-volume-t 0
      set sales-volume-t-1 0
      set sales-volume-t-2 0
      set revenue 0
      set revenue-t 0
      set invoice-price (19000 + random 1000)
      ;show inventory                                          ; #debug
      set-up-vehicle-data                                      ; set up vehicle data of each brand
    ]
  ]

  ;; create cars
;  set-default-shape cars "car"
  
;  update-variables
  set %-MB 100
  set %-EA 0
;  setup-SD
  do-plots
end

;*******************************************
;******************  RUN  ******************
;*******************************************

to go
  ;; old customers leave the market
  ask customers 
  [
   set hidden? true
  ]

  ;; new customers enter the market
  initialize-customers
  ask customers with [not hidden?]
  [ 
    ask dealers
    [
      set utility -100000
    ]
    
    ifelse alternative-fuel?
    [
      if (potential-adopters? = true) and (random 100 < adopt-rate)
      [
        set c_hybrid 10000
      ]
    ]
    [
      set c_hybrid 0
    ]
    visit-dealers
    make-a-choice
    go-home 
  ]
  
  set %-MB count customers with [not early-adopters?] / count customers * 100
  set %-EA 100 - %-MB
    
  ;; at the end of each sales week
  ask dealers
  [
    order-from-manufacturer
    adjust-price
    if show-price? 
    [
      set label ccar-price
    ]
    set sales-volume-t-2 sales-volume-t-1
    set sales-volume-t-1 sales-volume-t
    set sales-volume-t 0
    set revenue-t 0
  ]
  
  ;; manufacturers gives incentives to dealers according to their order size
  ask manufacturers
  [
    give-incentives
    if show-incentive?
    [
      set label incentive-rate * 100
    ]
  ]
;  go-SD
  ;; updates variables
  update-variables
  tick
  do-plots
end

;; initialize parameters
to initialize
  set A-brand 0
  set B-brand 0.1
  set C-brand 0.2
  set D-brand 0.3
  set E-brand 0.4
  set F-brand 0.5
  set G-brand 0.6
  set H-brand 0.7
  set p1 1
  set p2 0 - (1 / 20000)
  set p3 (1 / 40)
  set p4 (1 / 22.5)
  set p5 (1 / 50)
  set p6 (1 / 0.5)
  set p7 (1 / 10)
end

; to set up vehicle attributes of each brand
to set-up-vehicle-data
  ifelse color = red
  [
   set BSC A-brand
   set ccar-price A-price
   set ccar-front-head-room A-front-head-room
   set ccar-MPG A-MPG   
  ]
  [
   ifelse color = green
   [
    set BSC B-brand
    set ccar-price B-price
    set ccar-front-head-room B-front-head-room
    set ccar-MPG B-MPG   
   ]
   [
    ifelse color = brown
    [
     set BSC C-brand
     set ccar-price C-price
     set ccar-front-head-room C-front-head-room
     set ccar-MPG C-MPG   
    ]
    [
     ifelse color = yellow
     [
      set BSC D-brand
      set ccar-price D-price
      set ccar-front-head-room D-front-head-room
      set ccar-MPG D-MPG   
     ]
     [
      ifelse color = blue
      [
       set BSC E-brand
       set ccar-price E-price
       set ccar-front-head-room E-front-head-room
       set ccar-MPG E-MPG   
      ]
      [
       ifelse color = pink
       [
        set BSC F-brand
        set ccar-price F-price
        set ccar-front-head-room F-front-head-room
        set ccar-MPG F-MPG   
       ]
       [
        ifelse color = grey
        [
         set BSC G-brand
         set ccar-price G-price
         set ccar-front-head-room G-front-head-room
         set ccar-MPG G-MPG   
        ]
        [
         set BSC H-brand
         set ccar-price H-price
         set ccar-front-head-room H-front-head-room
         set ccar-MPG H-MPG
        ]
       ]
      ]
     ]
    ]
   ] 
  ]
end

to order-from-manufacturer
  set order (sales-volume-t + sales-volume-t-1 + sales-volume-t-2) / 3
  set orders order
  ask manufacturers with [[color] of self = [color] of myself]
  [
    set inventory (inventory - orders)
  ]
  set inventory (inventory + order)
end

to adjust-price
  if ccar-price > invoice-price + 500
  [
    ifelse inventory > max-dealer-inventory
    [
      set ccar-price (ccar-price - 100)
    ]
    [
      if inventory < min-dealer-inventory
      [
        set ccar-price (ccar-price - 100)
      ]
    ]
  ]
end

to give-incentives
  set incentive-rate random 100 / 100
  set incentives incentive-rate * 10
  ask dealers with [[color] of self = [color] of myself]
  [
    set invoice-price (invoice-price - incentives * (order - 10) )
  ]
end

to initialize-customers
  set-default-shape customers "person"
  create-customers random-poisson number-of-customers
  [
    setxy random-xcor random-ycor
    set home-x xcor
    set home-y ycor
    set color white
    ifelse random 100 < 50
    [set gender 1]
    [set gender 0]
    set age (20 + random 60)
    set income (5 + random 10)
    set found-dealer? false
    set early-adopters? false
    ifelse any? customers in-radius 3 with [early-adopters? = true]
    [
      set potential-adopters? true
      set color yellow
    ]
    [
      set potential-adopters? false
    ]
  ]
end

; customers visit the first 4 dealers they see
to visit-dealers
  repeat choice-set-size
  [
   while [not found-dealer?] 
   [
     wiggle
     if any? dealers-here with [inventory >= 1]
     [
       set found-dealer? true
     ]
   ]
   calculate-utility
   set found-dealer? false
  ]
end

to wiggle
  forward random 3
  rt (random 180 - 90)
end

;; calculate utility for customer i and brand j
to calculate-utility
  set u_age age
  set u_gender gender
  set u_income income
  set u_hybrid c_hybrid
  ask one-of dealers-here
  [
    set utility ( p1 * BSC + p2 * ccar-price + p3 * ccar-front-head-room + p4 * ccar-MPG + p5 * u_age + p6 * u_gender + p7 * u_income + u_hybrid * hybrid + random-normal 0 1 )
    ; if utility > 100 [show utility]
    ; here utility is a function of brand specific constants, car price, car frontheadroom, car MPG, customer age, customer gender, cusomter income and hybrid dummy, plus random error term.
  ]
end

; customers make a choice among 4 cars
to make-a-choice
  ask one-of dealers with-max [utility]
  [
    if hybrid? = true
    [
      set local-hybrid 1
    ]
    set sales-volume (sales-volume + 1)
    set sales-volume-t (sales-volume-t + 1)
    set revenue (revenue + ccar-price)
    set revenue-t (revenue-t + ccar-price)
    ;show sales-volume
    set inventory (inventory - 1)
    ;show inventory
  ]
  if local-hybrid = 1
  [
    set early-adopters? true
    set potential-adopters? false
    set color green
  ]
  set local-hybrid 0
end

to go-home
  setxy home-x home-y
end

to update-variables
  set total-sales-volume sum [sales-volume] of dealers
  ;show total-sales-volume
  
    ask manufacturer 0
    [
      set temp-color color
      set sales-volume sum [ sales-volume ] of dealers with [color = temp-color] 
      set inventory sum [ inventory ] of dealers with [color = temp-color]
      set A-sales-volume sales-volume
      set A-market-share (A-sales-volume / total-sales-volume) * 100
    ]

    ask manufacturer 1
    [
      set temp-color color
      set sales-volume sum [ sales-volume ] of dealers with [color = temp-color] 
      set inventory sum [ inventory ] of dealers with [color = temp-color]
      set B-sales-volume sales-volume
      set B-market-share (B-sales-volume / total-sales-volume) * 100
    ]

    ask manufacturer 2
    [
      set temp-color color
      set sales-volume sum [ sales-volume ] of dealers with [color = temp-color] 
      set inventory sum [ inventory ] of dealers with [color = temp-color]
      set C-sales-volume sales-volume
      set C-market-share (C-sales-volume / total-sales-volume) * 100
    ]

    ask manufacturer 3
    [
      set temp-color color
      set sales-volume sum [ sales-volume ] of dealers with [color = temp-color] 
      set inventory sum [ inventory ] of dealers with [color = temp-color]
      set D-sales-volume sales-volume
      set D-market-share (D-sales-volume / total-sales-volume) * 100
    ]

    ask manufacturer 4
    [
      set temp-color color
      set sales-volume sum [ sales-volume ] of dealers with [color = temp-color] 
      set inventory sum [ inventory ] of dealers with [color = temp-color]
      set E-sales-volume sales-volume
      set E-market-share (E-sales-volume / total-sales-volume) * 100
    ]

    ask manufacturer 5
    [
      set temp-color color
      set sales-volume sum [ sales-volume ] of dealers with [color = temp-color] 
      set inventory sum [ inventory ] of dealers with [color = temp-color]
      set F-sales-volume sales-volume
      set F-market-share (F-sales-volume / total-sales-volume) * 100
    ]

    ask manufacturer 6
    [
      set temp-color color
      set sales-volume sum [ sales-volume ] of dealers with [color = temp-color] 
      set inventory sum [ inventory ] of dealers with [color = temp-color]
      set G-sales-volume sales-volume
      set G-market-share (G-sales-volume / total-sales-volume) * 100
    ]

    ask manufacturer 7
    [
      set temp-color color
      set sales-volume sum [ sales-volume ] of dealers with [color = temp-color] 
      set inventory sum [ inventory ] of dealers with [color = temp-color]
      set H-sales-volume sales-volume
      set H-market-share (H-sales-volume / total-sales-volume) * 100
    ]
end

to do-plots
  set-current-plot "market-share"
  set-current-plot-pen "1"
  plot A-market-share
  set-current-plot-pen "2"
  plot B-market-share
  set-current-plot-pen "3"
  plot C-market-share   
  set-current-plot-pen "4"
  plot D-market-share
  set-current-plot-pen "5"
  plot E-market-share 
  set-current-plot-pen "6"
  plot F-market-share  
  set-current-plot-pen "7"
  plot G-market-share  
  set-current-plot-pen "8"
  plot H-market-share
  set-current-plot "populations"
  set-current-plot-pen "early-adopters"
  plot %-EA
  set-current-plot-pen "majority-buyers"
  plot %-MB
end


;**************************************************
;*************  System Dynamics  ******************
;**************************************************

;to setup-SD
;  set-current-plot "populations"
;  clear-plot
;  ;; call procedure generated by aggregate modeler
;  system-dynamics-setup
;  system-dynamics-do-plot
;end
;
;to go-SD
;  system-dynamics-go
;  set-current-plot "populations"
;  system-dynamics-do-plot
;end