Wow! I Didn’t Know I Could Do That with iThink/STELLA! Also known as the Ron Popeil (aka Ronco) approach: “But wait, there’s more!!” Chris Soderquist Pontifex Consulting
Wow!I Didn’t Know I Could Do
That with iThink/STELLA!
Also known as the Ron Popeil (aka Ronco) approach:“But wait, there’s more!!”
Chris SoderquistPontifex Consulting
Wow. I didn’t know I could…
• Use an attribute to determine transit time on conveyor
• Use a Weibull distribution to determine product life
• Run goodness of fit tests so easily• Link models to organizational "scorecards"• Create a multiplayer game • Excel forms• Build student models with built-in reports, and...more!
Plus…Q&A. Learn from each other what you can do with the software
Really Geeky stuff
• Attribute to determine transit times
• Weibull distributions• Linking models to external analyses (goodness of fit tests)
• Linking to organizational scorecards
Linking Attributes to Transit Times
Perhaps you want to model…
• Clinic operations, where different treatment types have different expected transit times
or perhaps…
• Logistics where different product types have different shipping times
Using an Attribute to Determine Transit Times
One Approach
• Use 2 chains Track the attributes entering (or average time)
e.g. treatment = physical vs. sick visit; time=30 min vs. 15 min Track people (actual units) in other chain
In Exam
In WaitingRoom
arrivingin waiting room
beingcalled
On Wayto Exam
enteringexam
BecomingNext on
List completing
moving upthe list
~time inexam
stop becausesomeone's in
exam
Patient typePeople Waitingin Waiting Room
counting upentering
peopleentering
leaving
People inExam
∑ Total Peoplein Process
Using an Attribute to Determine Transit Times
One Approach
In this example• Numbers enter (e.g. 5-15) Patient Type = INT(RANDOM(5,15))• If no one In Exam, patient moves right through process to exam (with a DT delay, so you might wish a small DT)• Once someone is In Exam stop the Becoming Next on List conveyor• PULSE from entering exam• Time in exam = entering exam*DT if using time value; • Value for entering exam will determine time in exam can also use a graphical function to relate patient type
In Exam
In WaitingRoom
arrivingin waiting room
beingcalled
On Wayto Exam
enteringexam
BecomingNext on
List completing
moving upthe list
~time inexam
stop becausesomeone's in
exam
Patient typePeople Waitingin Waiting Room
counting upentering
peopleentering
leaving
People inExam
∑ Total Peoplein Process
Weibull Survival Times
Say you want to model how long a product will last in the installed base…
The Weibull distribution works well for product survivability
mean time till failure; k=shape
Tech doc shows the equation for generating Weibull random numbers
Need a stock to hold units before stamping survival times onto it
Small DT is essential to get individual units
PULSE units onto conveyor to stamp failing
later IB
lambdaor mean time
to failure
Shape
RecentSales
SalesInstalled
Base
settingsurvival forrecent sales
selling
TotalFailed
Recent IB
ExpectedLifespan sales
Weibull Survival Times becomes challenging when there is initial stuff in system
• Sometimes you may start off a model with stuff already “in process”
• Because you need to stamp products to assign Weibull survival times, you can have an initial stock with everything in it and then quickly PULSE everything (1 at a time) onto the conveyor
• This “stamps” the survival time onto the unit
ExpectedLifespanInitial IB
Shapelambda
or mean timeto failure
UnassignedFailure Times
InitialInstalled
Base
setting survivalfor initial
Installed Base
failinginitial IB
TotalFailed
Initial IB
CT
Use Excel to calculate Thiel Statistics for Goodness of Fit
• Export model output to Excel
• Include real world series plus model series
• Thiel statistic calculates % of error attributable to Bias Unequal variation Unequal covariation
MonthsSubscribers model
Subscribers actual
Sq Error F/100 APE
Jan 50 50 0.000 0.00%Feb 60 56 18.404 7.66%Mar 73 74 1.664 1.74%Apr 88 84 13.542 4.38%May 106 109 10.693 3.00%Jun 128 123 20.250 3.66%July 154 147 45.563 4.59%Aug 185 192 43.560 3.44%Sep 224 211 158.256 5.96%Oct 270 279 88.172 3.37%Nov 325 347 478.734 6.31%Dec 392 383 81.903 2.36%Dec: Final 473 467 33.293 1.24%
MSE 82.836UM 0.001472US 0.009783UC 0.988745MAPE 3.98%
Goodness of Fit Tests (including Thiel statistic)
0
50
100
150
200
250
300
350
400
450
500
Jan Feb Mar Apr May Jun July Aug Sep Oct Nov Dec
Model forecast
Actual
*In isee systems sample model
Software features that support building scorecards and strategy
maps
Modeling features• Converters (to start)• Sector frames• Stock/flow maps• Generic templates keep it
operational (see appendix)
• Feedback loops improve Interface features• Numeric displays• Warning flashers• Sliders, knobs (other
input devices for testing strategies)
• Linking to Excel allows access to pie charts and other interesting dashboard output
Customer
Projects
Customers
generating
projects\customer
Staff
leaving
attrition %
Cash
revenue
completingavg project fee
Generic templates
0
0.0%
0.0%
0.00.0
0.00.0
0.0
Linking to Excel (and dashboard tools) can facilitate course
corrections
Real DashboardDynamic Strategy Dashboard
Mental Model
Mental Model
*made in iDashboard which links to Excel files
*
Fun Experiences
• Multiplayer sims Including Spreadsheet interfaces
• Student reports
Multiplayer Simulations
• Link up several control panels to one model
• Players/Teams can assume different roles in a system
• Easily done with iThink/STELLA and Excel in 9.1
Assumptions Assumptions
Assumptions
Assumptions
Assumptions Assumptions
Model
Multiplayer Simulations
How it’s done Pt.1
• Develop the model• Any arrayed variable inputs need
to be pulled out (e.g. orders[A,B] becomes orders A and orders B)
Inventoryselling
demand
Orders inPipeline
receivingordering
time delay
orders
orders A orders B • Create tables for each role--I usually put them all in 1 pad and create a page for each role
• You may need to duplicate variables
Multiplayer Simulations
How it’s done Pt.2
=INDEX('Table from model'!2:2,MATCH(9.99999999999E+307,'Table from model'!2:2))
Use a special equation on control panel to report the last value in a row. e.g. Variable for A’s inventory will be in row 2 in iThink
table, so following Index equation says 2:2
Create a Save button which will update the iThink model
Create a Link from the input fields to another sheet. I put
them in vertically
Create a Link from the input fields to 3rd sheet which will take date from
iThink/STELLA
Multiplayer Simulations
How it’s done Pt.3
Import from the Import sheet. Choose dynamic.
Export to the XLS sheet set up to take the table. Choose dynamic.
Multiplayer Simulations
How it’s done Pt.4
• In the input sheets, have the teams make decisions
• Then press Submit decisions to save
• This updates the iThink model• Run the model for the chosen period (I use a Simulate button to make it easy to see)
Student Reports
• Suppose you want students (or even teams of executive education participants) to hand in reports that show how they progressed through a learning lab
• You can create interactive student reports that allow you to get data on simulation runs, notes taken, questions answered, and more
• You can even set it up so that students cannot get some challenges/questions until they have solved simpler challenges
Set up
Main Menu Experiments Student Notebook
Switch a variable in the model on when navigating to this experiment to turn on a feedback loop
Don’t want student to enter Experiment 2 until after they’ve done Experiment 1. Choose password protect in navigation dialog.
Select Print Exports in graph so it will be sent to printer
Select Print Exports in text box so it will be sent to printer
Q&A
Contact Info
Chris SoderquistPontifex Consulting11 Sargent StreetHanover, NH 03755(603) 653-0228