Slides for a workshop to build the pharma competition Living Business Model
1. www.strategydynamics.com
This material may be freely distributed.
“Agile System Dynamics” modeling workshop
Kim Warren
Get these slides to work with : sdl.re/PharmaModelWorkshop
See videos on AgileSD and the case-example: sdl.re/AgilePharmaVideos
2. 3. Go to www.Sysdea.com
Click Try Now For Free and create
an account (free for 1 month: then
models are retained and can be re-
activated)
Also see the video User Guide play-list at
sdl.re/sygfull … This is also accessible,
with a PDF Guide, from the software itself
AgileSD modeling workshop: SETUP
1. Work in 2’s or 3’s
2. Get these slides : sdl.re/PharmaModelWorkshop
3. System Dynamics:
The use of quantified causal diagrams and simulation models to
understand and manage issues that feature complex behaviour
caused by stock-accumulation and feedback mechanisms
System Dynamicssoft hard
feedback systems thinking
Senge: The Fifth Discipline Living Business Models
How to build one … ?
4. Things have changed …
Simulating business systems and performance was previously difficult
… but better method and tools now make it practical
… easier, faster, more reliable than common spreadsheet-based
alternatives
5. The “Agile” approach to modeling*
… a style of model-development in which a working, quantified
model is built fast, with users, and repeatedly added-to
… with continuous involvement of the users or clients
… giving insights and actionable findings at every stage.
Experienced modelers note : there is no qualitative mapping in this process.
See article at sdl.re/AgileSD
* named for an equivalent fast-development approach for IT systems.
6. Agile modeling built on rock-solid theory
(there is no exception to these principles) …
1. Set out the performance over time to improve
2. Quantify how the Stocks drive performance at all times
3. Quantify how flow-rates make the Stocks accumulate
4. Quantify how decisions, external factors and
existing stocks drive the flow-rates (causing feedback)
actionable results
actionable results
actionable results
rapid
repetition
… a reliable, working model that can
be continually updated and exploited
7. This company dominated a seasonal market for
travel vaccines with the only licensed product
A major rival product was approved in March
… their sales force could take most of our
customers in 10 weeks with a lower price
Feared loss of 80% of product sales and
30% of Division’s cash flow
How to minimise the loss of sales?
Example: Competitive threat in pharmaceuticals
Note the time-scale … but
this is certainly “strategic” !
weeks
5 10 15
60
40
20
late-March … August
Sales ‘000 units/week
rival
launch
feared
preferred
(no rival)
8. How we did this …
Ask the CEO a question
… put his answer into the model
… ask what the numbers are doing
… make sure the model matches his answer
repeat
9. In Sysdea’s Dash, click New Model
Enter your choice of name
Click ‘Create’ - the empty
model opens …
Pharma competition model
10. Click the Settings button
Change End-time to 15 ..
we are modeling 5 weeks
before and 10 weeks after
the competitor launch
Click the Workspace
to close Settings
How long will this issue last? Well, we expect the
competitor to launch 5 weeks from now, and try to
win as many physicians and sales as possible over
the peak 10-week season, so 15 weeks in all.
11. 1. Right-click and
select Add Textbox
(… or simply hit N
on the keyboard)
2. Click the textbox to open its
Inspector … add a note and set
the colour
4. Click the Workspace to
close the Inspector
Add a Note to explain the model
3. Add a note and set
the colour
12. 1. Right-click the workspace
and select Add Variable
(… or simply hit V
on the keyboard)
2. Click the object to open its Inspector
… add a name:
our sales with/without rival – units/week
4. “Sketch” a time-chart with
roughly these values .. a red
chart-line is immediately covered
by a blue line
3. Change the chart Max
to 60000
What sales would you expect without this competitor?
Sales would start around 20,000 units/week, then
grow to a peak of about 60,000/week, before falling
off to about 30,000/week.
Would you (CEO) like to
sketch this time-pattern into
the model yourself? (hand
over the mouse)
13. 1. Click the Variable’s Table tab
to see the Sketched values
red are input values (sketched, typed or pasted)
blue are simulated values
Simulated values are set to = the sketched values if
there is no Formula - the model says … “You have not
told me how to calculated this item, so I will assume its
values are as sketched”
We can copy these numbers in
from your budget if you like …
2. Click the top ‘Sketched’
cell and paste in values (if
you have them)
14. 1. Hit the S key to add
a Stock
… all items appear at the
cursor location
2. Click to open the Inspector
… name it Physicians …
… set chart Max to 10000
… the Stock’s Simulated values are
constantly equal to the initial sketched
value (see sdl.re/sygfull clip 20-21)
Ctrl-Z to undo any number of steps … like
redrawing a Sketch line you don’t like!
Ctrl-Y to re-do any number of steps
How many physicians are there – and how fast do
you fear you could lose them? About 10,000 in total,
and we could lost most of them over the 10 weeks
3. Sketch a chart-line falling
from week 5
15. What is a Stock – and why should you care?!
An asset stock - or simply “Stock” - is a collection, group, population, mass or
volume of materials or entities that accumulates or depletes over time. … the
quantity of liquid in a tank, the amount of cash in a bank account (or debt on a credit card), the population of a
country (or fish in a fishery, bears in a forest, etc), the inventory of goods in a store (often called the store's stock),
and the quantity of CO2 in the atmosphere. See sdl.re/LIPstock for a full explanation.
… their quantitative behaviour is ‘axiomatic’ – it simply is how the world works … today’s
quantity = last week’s quantity +/- any amounts added or lost … there can be no other explanation
… their quantities drive all other items’ values … our sales/week = the Stock of our Physicians
multiplied by their average prescriptions/week (if we deliver each week)
… they provide the ‘memory’ of the system … Physicians lost in week 1 will continue to affect
our sales in all later weeks
… they allow related items to differ … our sales may not = the prescription rate if Physicians
hold inventory
No model, of any kind, can be correct if it does not recognise Stocks’ behaviour.
16. 1. Add another Variable (not a Stock) …
prescriptions/week per physician
2. Chart Max = 6
… “Sketch” a time-chart with
roughly these values
Our sales must come from the number of our physicians
and their average prescriptions/week …
17. 3. Move the pointer close to prescriptions …
… a ‘cloud’ will appear
… click, and a link-arrow will start
4. Drag the arrow-head until it sticks
to ‘our sales …’ - then release
red link shows that the source-Variable is
not yet used to calculate the target
5. Link physicians …
to our sales in the same way
Our sales must come from the number of our physicians
and their average prescriptions/week …
18. 6. Click our sales … to open its Inspector
red items can be used in the
Formula – but are not yet used
7. Single-click prescriptions/week… to add
it to the Formula
… in the Formula box hit the * key
… click Physicians… to complete the
Formula
grey shows that the item has been used in
the Formula, but it can still be used again
Our sales must come from the number of our physicians
and their average prescriptions/week …
19. 8. Click the </> “Act as Variable”
toggle to make the number of
Physicians fall as Sketched
Notice how this cuts
sales from week 5
9. Click </> again to stop its “Act
as Variable” behaviour
Our sales must come from the number of our physicians
and their average prescriptions/week …
For more on this feature of how
Stocks are used in a model, see
sdl.re/sygfull clips 20, 21, 28
20. 1. To the right, hit the F key to add
a “Flow” that will drain the Stock
of Physicians
2. Click, hold and drag the
“tail” of the Flow until it sticks
to the Physicians Stock
The falling number of our physicians must come from
the rate we lose them! …
How fast could your rival take your
physicians? They have 50 sales people,
making 50 calls/week – if 80% of those calls
succeeded, that’s 2,000 lost per week !!
21. 3. Name the Flow physicians lost/week
and type the formula … step (2000,5)
… the model “drains” the Stock
of Physicians until it goes
negative – clearly impossible!
The falling number of our
physicians must come from
the rate we lose them! …
22. 1. To the left, hit the V key to add a
Variable, named total physicians
… with a value of 10000
2. Drag a link to connect total physicians
to the Stock of Physicians
The dashed line shows that a Variable can ONLY set the
initial value of the Stock – all later values are caused by
the Flow-rates … “We start with 10000, then lose
2000/week from week 5”
3. In the Physicians Inspector,
click “total physicians” to add
it to the Formula and set the
Stock’s initial value
So you can’t keep losing 2,000 physicians per
week – why would that rate slow down?
Well, as we lose more physicians, our
competitor will struggle to find more to win.
Make the remaining number of
physicians slow our loss-rate …
23. 4. Add and link a Variable .. our
remaining % of physicians
5 … and in its Inspector, click the linked
item names to create this Formula
Make the remaining number of physicians
slow our loss-rate …
24. 6. Link this new item to ..
Physicians lost/week
7. … and change the Flow’s Formula,
so we only lose a fraction of
remaining Physicians each week
Make the remaining number of physicians
slow our loss-rate …
25. Formula is a single
value … 80
Formula … step (50, 5)
… they will start making calls on
this product from week 5
Formula is a single
value … 50
Formula is … "Rival's
sales-force" *
"calls/week per sales
person"
Add these items and Formulae for the
competitor’s sales force, calls and
success-rate …
You said “They have 50 sales people,
making 50 calls/week with perhaps
80% of those calls succeeding”
26. Change the Formula for Physicians lost/week
… so it is driven by total rivals sales calls/week
Make physicians lost be driven by the competitor’s sales calls
and success-rate, limited by the remaining % of physicians …
80% sales success seems very high –
why is that? “They always offer a big
price discount” …
27. So if 20% is their ‘normal’ success rate, this is how success changes with the price gap …
This is a very common approach to “looking up” how an item’s value depends on the
value of another item
… values may come (ideally!) from analysis of similar cases
… or be estimated by experienced management
price-gap = 0 … success =
1.0 * ‘normal’
price-gap = €20 … success =
5.0 * ‘normal’, that is 100%
So how do you think their success rate will vary with the price difference?
“If their price = our price, they may win a Physician on 20% of calls
… If their price = our price - €20, they may win 100% of calls !!
… If their price = our price + €10, they will win zero calls”
28. 1. At lower left of the model hit U to
add a look-up function with this name
2. Set Min = -10, Max = 20,
Step = 2
3. Click the Table tab and
enter a value of 5 for X=20
(this sets the Chart max-Y)
4. On the Settings tab sketch
how the success multiple
varies with the price-gap
[You could simply have the success % go from 0 to 100, and ignore ‘normal’ success % ]
Sketch a function to look up how the competitor’s success-
rate varies with the difference in price …
29. Formula is simply a
value of 50
Formula is simply a
value of 40
Formula …
"our price" - "rival launch price"
Formula is simply a
value of 20
Formula "sales success multiplier v price
advantage"("rival price advantage €")
* "normal % success rival sales calls"
Syntax for using the Lookup function is …
function-name (input item to the look-up table)
see sdl.re/sygfull clip 32
… now add these items and Formulae to make the competitor’s
success-rate depend on the price difference …
30. Add a larger Chart for the key outcome – our sales
1. Hit the C key to add a blank Chart,
and in its Inspector give it a Title 2. Drag a link from our sales
… to add it to the Chart
Dashed line is the Sketched time-series
Solid line is the Simulated time-series
31. Make Decision-controls to ‘play’ the model …
In our price click ‘Toggle Decision’
This allows you to Compare
a scenario of a changing
price with the base-case of
our price = 50
32. 1. Click ‘^’ on the time-bar at
bottom of the screen
2. Click [+] to add a
Comparison Run
3. Step through the model,
changing ‘our price’ to protect
Physicians, sales and profits
4. Click to reset and
try again
A Comparison time-series is added,
based on your changing Decision
‘Play’ your model …
33. 1. The performance
we want to control:
feared v preferred
The pharma competition model … 2. The Stock driving
performance
3. The Flow, draining
the Stock
4. The Stocks driving
the flow-rate
4. A Decision driving
the flow-rate
4. An External factor
driving the flow-rate
This model: sdl.re/BMpharma4a
34. Every link = a column of cell-
references (cell-reference
errors are impossible)
This is easy !! … Every object = a spreadsheet column
with its name in the top cell and each
period value in the cells below
Each item has a simple formula
revenue = sales * price
… not a38 = c$24 * $b$18 !
red = real-world
blue = calculated
… if blue ≠ red, it’s wrong !!
This could be copied to a spreadsheet – but why would you want to?
35. Critical to ensure early failure for the rival – their demotivated sales people
will stop trying to sell the new product
The drug must be cooled – so pre-sell many weeks’ sales to fill the fridges!
(but only get paid later)
Some claims for the rival drug are unproven – so attack its credibility
with Physicians
Test our response to alternative options the competitor may try
More mechanisms in the full model …
See the full model: sdl.re/BMpharma8a
36. Use and share the case videos: sdl.re/AgilePharmaVideos
Get these slides … sdl.re/PharmaModelWorkshop
You are welcome to teach others with this exercise
Want to learn more?
Free getting started online classes: sdl.re/modeling-getting-started/
StrategyDynamics.com … much free material
YouTube.com/StrategyDynamics … many topic-videos
Enquiries to sdl.re/contact
Next …
37. To ‘play’ the model at sdl.re/BMpharma4a
1. Click ‘^’ on
the time-bar
2. Click ‘+’ to add a
Comparison Run
3. Step through the model,
changing ‘our price’ to
protect Physicians, sales
and profits
4. Click twice to
reset and try again