Professional Documents
Culture Documents
A Spreadsheet Scenario Analysis Technique That Int
A Spreadsheet Scenario Analysis Technique That Int
net/publication/228923320
CITATIONS READS
3 2,143
2 authors:
All content following this page was uploaded by Thomas A. Grossman on 02 June 2014.
doi 10.1287/ited.1090.0027
I N F O R M S © 2009 INFORMS
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Transactions on Education
Özgür Özlük
College of Business, San Francisco State University, San Francisco, California 94132, ozgur@sfsu.edu
S cenario analysis is a widely used technique, and business students should be proficient in running scenarios
through a spreadsheet model. We propose 10 desirable properties for a scenario analysis technique, and
show that the Microsoft Excel Scenario Manager tool satisfies only one of them. We provide a tutorial for a
better technique that can be programmed into an existing spreadsheet in a matter of minutes. We show how to
integrate the technique with the Excel Solver to allow for rapid optimization of multiple scenarios and with the
Crystal Ball add-in for Monte Carlo simulation to enable simulation of multiple scenarios. Our undergraduate
and MBA students are able to learn the technique with little difficulty.
Key words: spreadsheets; scenarios; scenario analysis; optimization; simulation
History: Received: July 2008; accepted: January 2009.
stochastic ready, and scalable, and it should use standard As Markham and Palocsay (2006) point out, the Excel
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
Figure 1 The Core Model and Scenario List for the Direct Mail Example
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
A B C D E F G
1 CORE MODEL FOR DIRECTMAIL CAMPAIGN
2
3 MODEL
4
5 Model of responses
6 # of responses 8,000
7
8 INPUTS Model of profit
9 Total revenue $ 320,000.00
10 Mailing inputs Costs
11 Fixed cost to print $ 20,000.00 Fixed costs $ 20,000.00
12 Var. cost for printing $ 0.10 Var. mailing costs $ 25,000.00
13 Var. cost for mailing $ 0.15 Var. order costs $ 257,600.00
14 # of catalogs mailed 100,000 Total cost $ 302,600.00
15
16 Order inputs NET PROFIT $ 17,400.00
17 Average order $ 40.00
18 Var. % cost of order 80% Breakeven (BE) Model
19 Var. envelope cost $ 0.20 BE point 5,769.20
20 Response rate 8% BE response rate 5.77%
21
22
23
24
25
26 Fixed cost to print Average order Var % cost of order Response rate
27 Cell C11 Cell C17 Cell C18 Cell C20
28 1 Current $ 20,000.00 $ 40.00 80% 8%
29 2 Optimistic $ 18,000.00 $ 45.00 75% 9%
30 SCENARIO 3 Pessimistic $ 22,000.00 $ 35.00 85% 7%
31 LIST 4 High Average Order $ 20,000.00 $ 65.00 80% 8%
32 5 Very High Response $ 20,000.00 $ 40.00 80% 15%
33 6 Very Low Response $ 20,000.00 $ 40.00 80% 4%
34
Notes. The core model is in the INPUTS and MODEL modules. The scenarios are in Rows 28–33, with documentation in Rows 26 and 27.
A B C D E F G
1
2
3 MODEL
4
5 Model of responses
6 # of responses =C20*C14
7
8 INPUTS Model of profit
9 Total revenue =F6*C17
10 Mailing inputs Costs
11 Fixed cost to print 20,000 Fixed costs =C11
12 Var. cost for printing 0.1 Var. mailing costs =(C12+C13)*C14
13 Var. cost for mailing 0.15 Var. order costs =(C19+C18*C17)*F6
14 # of catalogs mailed 100,000 Total cost =SUM(F11:F13)
15
16 Order inputs NET PROFIT =F9-F14
17 Average order 40
18 Var. % cost of order 0.8 Breakeven (BE) Model
19 Var. envelope cost 0.2 BE point =(F11+F12)/(C17-C18*C17-C19)
20 Response rate 0.08 BE response rate =F19/C14
21
22
23
24
25
26 Fixed cost to print Average order Var % cost of order Response rate
27 Cell C11 Cell C17 Cell C18 Cell C20
28 1 Current 20,000 40 0.80 0.08
29 2 Optimistic 18,000 45 0.75 0.09
30 SCENARIO 3 Pessimistic 22,000 35 0.85 0.07
31 LIST 4 High Average Order 20,000 65 0.80 0.08
32 5 Very High Response 20,000 40 0.80 0.15
33 6 Very Low Response 20,000 40 0.80 0.04
34
Grossman and Özlük: A Spreadsheet Scenario Analysis Technique with Optimization and Simulation
22 INFORMS Transactions on Education 10(1), pp. 18–33, © 2009 INFORMS
• The “Current” scenario uses the base case data. Cell B26: = B4. We now need to program Cells C26:G26
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
• In the “Optimistic” scenario, the average order to display the input values from the scenario list
is $45; the fixed cost to print is $18,000; the variable that correspond to the scenario number in Cell
order cost percentage is 75%; the response rate is 9%; B26. For example, Cell D26 will display the “Fixed
whereas other inputs are at base. cost to print” for the selected scenario. We use the
• In the “Pessimistic” scenario, the average order INDEX function, Cell D26: = INDEX(D28:D33,$B$26)
is $35; the fixed cost to print is $22,000; the variable (Figure 4). This use of INDEX instructs Excel to exam-
order cost percentage is 85%; the response rate is 7%; ine the range D28:D33 and return the value of the cell
and other inputs are at base. in the row specified in Cell B26. For example, when the
• The “High Average Order” scenario is the same scenario number in Cell B26 is 2, the INDEX function
as the Current scenario, except that the average order examines the column range D28:D33, finds the second
size is $65. row within the column range (Row 29), and returns
• The “Very High Response” scenario is the same from Cell D29 the value 18,000.
as the Current scenario, except that the response rate We copy the formula in Cell D26 to Cells C26:G26.
is 15%. (To facilitate this copy operation, Cell B26 is pro-
• The “Very Low Response” scenario is the same grammed in the INDEX function using an absolute
as the Current scenario, except that the response rate reference of $B$26.) Note that the scenario number in
is 4%. Cells B28:B33 is a memory aid and is not directly ref-
The scenarios are in the SCENARIO LIST module erenced by the INDEX function.
in Figure 1. Rows 26 and 27 contain documentation.
Each scenario row contains information for one sce-
5.3. Step 3: Send the Input Values to
nario, including the scenario number (Cells B28:B33),
the Core Model
scenario name (Cells C28:C33), and a value for each
To complete the Scenario Engine, we need the core
input (Cells D28:G33). Scenario numbers are sequen-
model to “see” the input values from the selected sce-
tial starting from 1. By convention, we use scenario
nario. In each core model input cell that appears in
number 1 (Row 28) for the base case. Any number of
scenarios is possible; for illustration we use only six. the scenario list, we write a cell formula that echoes
(points to) the displayed scenario input value. For
example, the core model input “Fixed cost to print”
5. The Scenario Engine Technique for (Cell C11) is programmed to refer to the sales rep cost
Scenario Analysis value in Cell D25 (Figure 4), Cell C11: = D26. Simi-
Scenario analysis begins with a list of scenarios that lar changes are made for the other inputs. The input
need to be run through the core model. The Scenario “Average order” in Cell C17 is changed to refer to
Engine is programmed in three steps. First, we select the value in Cell E25; Cell C17: = E26. For the other
a scenario (§5.1) by writing the scenario number asso- two scenario inputs, we enter similar formulas; Cell
ciated with the selected scenario in Cell B4. Second, C18: = F26, and Cell C20: = G26.
we create an IN USE module and write cell formulas Typically, some core model inputs will not be
in Row 26 to display the input values for the selected included in the scenarios. The cells for these core
scenario (§5.2). Third, we “echo” the values from the model inputs are not modified when programming
IN USE module to the INPUTS module by replac- the Scenario Engine; they remain numeric values.
ing appropriate input values in the INPUTS modules This completes the programming of the Scenario
with cell references (§5.3). The existing core model Engine. To use the Scenario Engine, simply enter the
logic then “sees” the input values for the selected sce- selected scenario number into Cell B4, and the spread-
narios, and the spreadsheet automatically computes sheet instantly computes the core model using the
the key outputs. inputs from the selected scenario.
5.1. Step 1: Select a Scenario
We type into Cell B4 the scenario number of the sce- 5.4. Step 4 (Optional): Improved Spreadsheet
nario we want to evaluate (Figure 3). The Scenario Engineering
Engine takes it from there, obtaining the appropriate It is a wise spreadsheet engineering practice to sepa-
input values from the list of scenarios (§5.3) and feed- rate data from formulas. For this reason, the INPUTS
ing them to the core model (§5.4). module contains only numeric data. However, the
Scenario Engine approach places cell formulas into
5.2. Step 2: Display the Input Values for some data cells to “echo” the values of the selected
the Selected Scenario scenario.
For convenience, we have (Figure 3) Cell B26 echo Faculty who emphasize sound spreadsheet engi-
the scenario number in Cell B4, using the cell formula neering may want to redesign the INPUTS module to
Grossman and Özlük: A Spreadsheet Scenario Analysis Technique with Optimization and Simulation
INFORMS Transactions on Education 10(1), pp. 18–33, © 2009 INFORMS 23
A B C D E F G
1 SCENARIO ANALYSIS FOR DIRECTMAIL CAMPAIGN
2
SCENARIO
3 MODEL
SELECTED
4 2
5 Model of responses
6 # of responses 9,000
7
8 INPUTS Model of profit
9 Total revenue $ 405,000.00
10 Mailing inputs Costs
11 Fixed cost to print $ 18,000.00 Fixed costs $ 18,000.00
12 Var. cost for printing $ 0.10 Var. mailing costs $ 25,000.00
13 Var. cost for mailing $ 0.15 Var. order costs $ 305,550.00
14 # of catalogs mailed 100,000 Total cost $ 348,550.00
15
16 Order inputs NET PROFIT $ 56,450.00
17 Average order $ 45.00
18 Var. % cost of order 75% Breakeven (BE) Model
19 Var. envelope cost $ 0.20 BE point 3,891.40
20 Response rate 9% BE response rate 3.89%
21
22
23
Fixed cost to print Average order Var % cost of order Response rate
24
25 Scenario number Scenario Name Cell C11 Cell C17 Cell C18 Cell C20
26 IN USE 2 Optimistic $ 18,000.00 $ 45.00 75% 9%
27
28 1 Current $ 20,000.00 $ 40.00 80% 8%
29 2 Optimistic $ 18,000.00 $ 45.00 75% 9%
30 SCENARIO 3 Pessimistic $ 22,000.00 $ 35.00 85% 7%
31 LIST 4 High Average Order $ 20,000.00 $ 65.00 80% 8%
32 5 Very High Response $ 20,000.00 $ 40.00 80% 15%
33 6 Very Low Response $ 20,000.00 $ 40.00 80% 4%
34
Notes. The Scenario Engine is controlled using Cell B4. The Scenario Engine is programmed in Cells C11, C17, C18, C20, and B26:G26. Cells F16 and F20
display the key outputs for Scenario 2.
A B C D E F G
2 SCENARIO
3 SELECTED MODEL
4 2
5 Model of responses
6 # of responses =C20*C14
7
8 INPUTS Model of profit
9 Total revenue =F6*C17
10 Mailing inputs Costs
11 Fixed cost to print =D26 Fixed costs =C11
12 Var. cost for printing 0.1 Var. mailing costs =(C12+C13)*C14
13 Var. cost for mailing 0.15 Var. order costs =(C19+C18*C17)*F6
14 # of catalogs mailed 100,000 Total cost =SUM(F11:F13)
15
16 Order inputs NET PROFIT =F9-F14
17 Average order =E26
18 Var. % cost of order =F26 Breakeven (BE) Model
19 Var. envelope cost 0.2 BE point =(F11+F12)/(C17-C18*C17-C19)
20 Response rate =G26 BE response rate =F19/C14
21
22
23
24 Fixed cost to print Average order Var % cost of order Response rate
25 Scenario Number Scenario Name Cell C11 Cell C17 Cell C18 Cell C20
26 IN USE =B4 =INDEX(C28:C 30, $B$26) =INDEX(D28:D30, $B$26) =INDEX(E28:E30, $B$26) =INDEX(F28:F30, $B$26) =INDEX(G28:G30, $B$26)
27
28 1 Current 20,000 40 0.80 0.08
29 2 Optimistic 18,000 45 0.75 0.09
30 SCENARIO 3 Pessimistic 22,000 35 0.85 0.07
31 LIST 4 High Average Order 20,000 65 0.80 0.08
32 5 Very High Response 20,000 40 0.80 0.15
33 6 Very Low Response 20,000 40 0.80 0.04
34
Notes. The programming required for the Scenario Engine is in Cells C11, C17, C18, C20, and B26:G26.
Grossman and Özlük: A Spreadsheet Scenario Analysis Technique with Optimization and Simulation
24 INFORMS Transactions on Education 10(1), pp. 18–33, © 2009 INFORMS
A B C D E F G
1 SCENARIO ANALYSIS FOR DIRECTMAIL CAMPAIGN
2
SCENARIO
MODEL
3 SELECTED
4 2
5 Model of responses
6 # of responses 9,000
7
8 FIXED INPUTS Model of profit
9 Var. cost for printing $ 0.10 Total revenue $ 405,000.00
10 Var. cost for mailing $ 0.15 Costs
11 # of catalogs mailed 100,000 Fixed costs $ 18,000.00
12 Var. envelope cost $ 0.20 Var. mailing costs $ 25,000.00
13 Var. order costs $ 305,550.00
14 Total cost $ 348,550.00
15
16 INPUTS FROM SELECTED SCENARIO NET PROFIT $ 56,450.00
17 Fixed cost to print $ 18,000.00
18 Average order $ 45.00 Breakeven (BE) Model
19 Var. % cost of order 75% BE point 3,891.40
20 Response rate 9% BE response rate 3.89%
21
22
23
24 Fixed cost to print Average order Var % cost of order Response rate
25 Scenario Number Scenario Name Cell C17 Cell C18 Cell C19 Cell C20
26 IN USE 2 Optimistic $ 18,000.00 $ 45.00 75% 9%
27
28 1 Current $ 20,000.00 $ 40.00 80% 8%
29 2 Optimistic $ 18,000.00 $ 45.00 75% 9%
30 SCENARIO 3 Pessimistic $ 22,000.00 $ 35.00 85% 7%
31 LIST 4 High Average Order $ 20,000.00 $ 65.00 80% 8%
32 5 Very High Response $ 20,000.00 $ 40.00 80% 15%
33 6 Very Low Response $ 20,000.00 $ 40.00 80% 4%
34
Notes. The INPUTS module of Figure 1 is divided into two modules: FIXED INPUTS, containing only numeric data, and INPUTS FROM SELECTED SCENARIO,
containing cell formulas that echo the values in the selected scenario.
distinguish between standard numeric input cells and not dynamic. The Data Table is slightly harder to use,
input cells controlled by the Scenario Engine. but the results are dynamic (cf. Wagner and Keisler
Figure 5 presents such a redesign. The FIXED 2006). VBA code is difficult to write well, and we do
INPUTS module (Cells C9:C12) contains numbers, not use it in our courses.
and the INPUTS FROM SELECTED SCENARIO mod- We demonstrate in native Excel using the Data
ule (Cells C17:C20) contains formulas. Table feature. We create a scenario summary report
(using a process shown in Figure 6 with the results
5.5. Rapid Creation of a Scenario Summary Report in Figure 7) that shows for each scenario the cor-
It is often desirable to create a “scenario summary responding scenario name (Cell C26), average order
report” that presents the key outputs from each sce- (Cell C17), net profit (Cell F16), and the breakeven
nario, along with other information such as the sce- response rate (Cell F20).
nario number, scenario name, and selected input and To set up the table in Figure 6, we enter documen-
output values for each scenario. This can be done tation in Cells C36:F37 using text labels (Row 36) and
manually by entering different scenario numbers into the corresponding cell addresses (Row 37). In Row
Cell B4 and recording the results. 38, we enter a pointer to each cell documented in
It is less tedious and more reliable to create a sce- the row above. Thus, Cell C38: = C26 (as documented
nario summary report by performing a one-parameter in Cell C37). We do the same in the next cell to the
sensitivity analysis on the scenario number. The ana- right, Cell D38: = C17, and continue this process for
lyst can perform the sensitivity analysis by using the Cells E38:F38. We leave Cell B38 blank. We enter the
commercial add-in SensIt (2008), the Data Sensitivity value 1 in Cell B38, continuing down to the value 6
tool of the Sensitivity Toolkit (2007), the Data Table in Cell B44.
feature of Excel, or by writing simple VBA code. The To populate the data table (Figure 6), we select
Data Sensitivity tool is easy to use, but the results are Cells B38:F44 and perform Data\Table \, setting the
Grossman and Özlük: A Spreadsheet Scenario Analysis Technique with Optimization and Simulation
INFORMS Transactions on Education 10(1), pp. 18–33, © 2009 INFORMS 25
Notes. Select Cells B38:F44, open the Data Table Dialog Box, enter $B$4 in “Column input cell,” and click “OK.”
“Column input cell” to be the scenario number in 5.6. The Scenario Engine Technique Satisfies the
Cell B4, and click “OK” as shown in Figure 6. The Desirable Scenario Analysis Properties
results are shown in Figure 7 and the formula view The Scenario Engine technique satisfies all 10 of the
in Figure 8. desirable scenario analysis properties defined in §2.
The scenario summary report allows for quick The Scenario Engine is transparent because the input
comparison of model results for each scenario. The values are taken directly from the scenario list in
scenario summary report is suitable for inclusion the spreadsheets. It is verifiable because the output
in documents or presentations, and it can easily be values displayed in the model and in the summary
edited or formatted as desirable. Note that the ana- report (§5.5) can be traced back using cell formulas to
lyst can include in the scenario summary report any the values in the scenario list. It is easily made pro-
desirable inputs or outputs. tected by locking the scenario list values (using stan-
When created using Data Table, the scenario sum- dard Excel protections), so they cannot be accidentally
mary report is dynamic. Should there be a change to overwritten.
the original model or to inputs not included in the The Scenario Engine is flexible because it is easy to
scenarios (for example, a change to the number of modify input values and to use cell formulas for input
catalogs mailed in Cell C14), the information in the values. It is dynamic because the outputs are live; if
scenario summary report instantly updates. This pow- a cell formula is changed, the outputs—including the
erful functionality is not available with the Excel Sce- scenario summary table—automatically update with-
nario Manager tool. out further effort by the analyst. It is efficient because
A B C D E F
35
Breakeven
Scenario Name Average order Net Profit Response Rate
36
37 Cell C26 Cell C17 Cell F16 Cell F20
38 Optimistic $ 45.00 $ 56,450.00 3.89%
39 1 Current $ 40.00 $ 17,400.00 5.77%
SCENARIO
40 2 Optimistic $ 45.00 $ 56,450.00 3.89%
OUTPUT
41 3 Pessimistic $ 35.00 $ (11,650.00) 9.31%
42 4 High Average Order $ 65.00 $ 57,400.00 3.52%
43 5 Very High Response $ 40.00 $ 72,000.00 5.77%
44 6 Very Low Response $ 40.00 $ (13,800.00) 5.77%
45
Grossman and Özlük: A Spreadsheet Scenario Analysis Technique with Optimization and Simulation
26 INFORMS Transactions on Education 10(1), pp. 18–33, © 2009 INFORMS
A B C D E F
35
once the scenario input values have been defined, the needs to decide how an advertising budget of $40,000
programming is quick and easy, typically less than two should be allocated to the upcoming four quarters.
minutes. The product sells for $40 and costs $25 to produce.
The Scenario Engine is optimization ready because The overhead rate is 15%. Quarterly sales are adjusted
it integrates with Solver as shown in §7 below. It is by a seasonal factor: 90% for Quarter 1, 110% for
stochastic ready because it supports Monte Carlo sim- Quarter 2, 80% for Quarter 3, and 120% for Quarter 4.
ulation, as shown in §8 below. It is scalable because it There is sales expense of $8,000 for Quarters 1 and 2
supports any number of inputs and any number of and $9,000 for Quarters 3 and 4. There are also quar-
scenarios. It is consistent with standard MS/OR termi- terly ad expenditures (which are decision variables).
nology because it introduces no new terms. Consultants to the company assume the following
formula for the relationship between advertising and
6. Integrating Solver Optimization quarterly unit sales:
with the Scenario Engine
An analyst performing optimization with Solver unit sales = 35 × seasonal factor × 3000 + ad budget
might want to optimize multiple scenarios to see how
the optimal decisions are affected by different pos-
6.2. Scenarios
sible sets of future parameter values. Although this
We illustrate our approach using six scenarios
can be done manually, it is preferable to automate
(Figure 10). In practice, one might use many more.
the optimization and reporting process. We show how
For each scenario, inputs that are not mentioned are
to do this by integrating Solver with the Scenario
Engine. at their base case values.
• The “Current” scenario is the base case.
6.1. Example Model for Optimization • The “Optimistic” scenario has a price of $41, cost
We show in Figure 9 an example model from Powell of $24, overhead rate of 12%, and an ad budget of
and Baker (2007, §5.1). A product-marketing manager $45,000.
A B C D E F G H I J K L M
1 CORE MODEL FOR ADVERTISING BUDGET
2
3 DECISIONS Q1 Exp Q2 Exp Q3 Exp Q4 Exp Total
4 $972 $2,919 $135 $4,063 $8,089
5
6 INPUTS MODEL
7 Quarter Q1 Q2 Q3 Q4 Total
8 Price $ 40.00 Units Sold 1,985 2,962 1,568 3,530 10,045
9 Cost $ 25.00 Revenue $ 79,412 $ 118,475 $ 62,710 $ 141,192 $ 401,789
10 Ad Budget $ 40,000 Cost of Goods $ 49,632 $ 74,047 $ 39,194 $ 88,245 $ 251,118
11 Overhead Rate 15% Gross Margin $ 29,779 $ 44,428 $ 23,516 $ 52,947 $ 150,671
12 Sales Parameters 35 3,000
13 Sales Expense $ 8,000 $ 8,000 $ 9,000 $ 9,000 $ 34,000
14 Q1 Q2 Q3 Q4 Advertising $ 972 $ 2,919 $ 135 $ 4,063 $ 8,089
15 Sales Expense 8,000 8,000 9,000 9,000 Overhead $ 11,912 $ 17,771 $ 9,407 $ 21,179 $ 60,268
16 Seasonal 0.9 1.1 0.8 1.2 Total Fixed Cost $ 20,884 $ 28,690 $ 18,542 $ 34,242 $ 102,357
17
18 Profit $ 8,895 $ 15,738 $ 4,975 $ 18,705 $ 48,314
19 Profit Margin 11.20% 13.28% 7.93% 13.25% 12.02%
20
21 OUTPUTS
22 Profit $48,314
23
Note. The core model is in the INPUTS, DECISIONS, MODEL, and OUTPUTS modules.
Grossman and Özlük: A Spreadsheet Scenario Analysis Technique with Optimization and Simulation
INFORMS Transactions on Education 10(1), pp. 18–33, © 2009 INFORMS 27
A B C D E F G H I J K L M
1 SCENARIO ANALYSIS FOR ADVERTISING BUDGET
2
3 SCENARIO SELECTED DECISIONS Q1 Exp Q2 Exp Q3 Exp Q4 Exp Total
4 2 $8,261 $13,822 $5,898 $17,019 $45,000
5
6 MODEL
7 FIXED INPUTS Quarter Q1 Q2 Q3 Q4 Total
8 Sales Parameters 35 3,000 Units Sold 3,343 4,993 2,641 5,943 16,920
9 Revenue $ 137,051 $ 204,731 $ 108,287 $ 243,646 $ 693,715
10 Q1 Q2 Q3 Q4 Cost of Goods $ 80,225 $ 119,842 $ 63,388 $ 142,622 $ 406,077
11 Sales Expense 8,000 8,000 9,000 9,000 Gross Margin $ 56,826 $ 84,888 $ 44,900 $ 101,024 $ 287,638
12 Seasonal 0.9 1.1 0.8 1.2
13 Sales Expense $ 8,000 $ 8,000 $ 9,000 $ 9,000 $ 34,000
14 INPUTS FROM SELECTED SCENARIO Advertising $ 8,261 $ 13,822 $ 5,898 $ 17,019 $ 45,000
15 Price $ 41.00 Overhead $ 16,446 $ 24,568 $ 12,994 $ 29,238 $ 83,246
16 Cost $ 24.00 Total Fixed Cost $ 32,707 $ 46,390 $ 27,892 $ 55,257 $ 162,246
17 Ad Budget $ 45,000
18 Overhead Rate 12% Profit $ 24,119 $ 38,499 $ 17,008 $ 45,767 $ 125,392
19 Profit Margin 17.60% 18.80% 15.71% 18.78% 18.08%
20 OUTPUTS
21 Profit $125,392
22
Overhead
23 Price Cost Rate Ad Budget
Scenario
24 Scenario Number Name Cell C8 Cell C9 Cell C11 Cell C10
25 IN USE 2 Optimistic $ 41.00 $ 24.00 12% $ 45,000
26
27 1 Current $ 40.00 $ 25.00 15% $ 40,000
28 2 Optimistic $ 41.00 $ 24.00 12% $ 45,000
29 SCENARIO 3 Pessimistic $ 37.00 $ 26.00 18% $ 35,000
30 LIST 4 High Price $ 45.00 $ 25.00 15% $ 40,000
31 5 High Cost $ 40.00 $ 30.00 15% $ 40,000
32 6 High Budget $ 40.00 $ 25.00 15% $ 55,000
33
Notes. The INPUTS module is divided into the FIXED INPUTS and INPUTS FROM SELECTED SCENARIO modules. The Scenario Engine is programmed in Cells
B25:G25 and D15:D18. The scenarios are presented in Rows 27–32, with documentation in Rows 23–24. The Scenario Engine is controlled using Cell B4.
• The “Pessimistic” scenario has a price of $37, cost optimize multiple scenarios, we repeat this process
of $26, overhead rate of 18%, and an ad budget of using different values in Cell B4. The manual pro-
$35,000. cess of running Solver and summarizing optimization
• The “High Price” scenario has a price of $45. results for all the scenarios in a well-organized table
• The “High Cost” scenario has a cost of $30. is tedious and error prone, especially with a sizable
• The “High Budget” scenario has an ad budget of number of scenarios. It should be automated.
$55,000. Automation can be achieved using a parametric
optimization add-in such as Solver Table (2003) or the
6.3. Scenario Engine Solver Sensitivity tool of Sensitivity Toolkit (2007), or
We program a Scenario Engine as described in §5. In by writing VBA code. Solver Table and the Solver
Figure 10, the cells related to the Scenario Engine cells Sensitivity tools are easy to use. We used the Solver
are colored a shade of green. The scenarios themselves Sensitivity tool (Figure 11), which allows us to include
are in Rows 27–32. The IN USE scenario values are any outputs as long as they are in cells adjacent to one
in Row 25. The selected scenario is in Cell B4. We another, to generate the results shown in Figure 12.
split the INPUTS module (of Figure 9) into two mod- This section showed how to perform optimiza-
ules with the inputs controlled by the Scenario Engine tion on any number of scenarios. This approach is
placed in the INPUTS FROM SELECTED SCENARIO quick and easy. The prerequisites are a fully speci-
module and the remaining inputs placed in the FIXED fied Solver model and a set of scenarios. The analyst
INPUTS module. must program a Scenario Engine and then run Solver
Sensitivity. For an analyst who is comfortable imple-
6.4. Combining Solver with the Scenario Engine menting the Scenario Engine technique and using the
We program Solver with the ad expenditures (Cells Solver Sensitivity tool, this requires only a few min-
I4:L4) as the changing cells, the profit (Cell M22) utes of effort. More importantly, using the Scenario
as the target cell, and the constraint that the total Engine, the analyst can change any number of model
ad expenditures ⇐ ad budget (M4 ⇐ C17), plus inputs, as opposed to at most two inputs that can be
nonnegativity. changed using either Solver Table or the Solver Sen-
To manually connect optimization to the Scenario sitivity tool.
Engine, we simply set the scenario selected (Cell B4) Solver returns static output, so any approach
to the desired scenario number and invoke Solver. To that uses Solver will also have static output. Hence,
Grossman and Özlük: A Spreadsheet Scenario Analysis Technique with Optimization and Simulation
28 INFORMS Transactions on Education 10(1), pp. 18–33, © 2009 INFORMS
the Solver scenario analysis is not dynamic. Note that There is 30% probability that the company will fail
Solver does not function on worksheets that have in the first year and this probability remains the same
Excel’s “protect sheet” feature enabled, so whenever in each of the first five years. If the company does
Solver is used, cells on the worksheet cannot be not fail, then its stock value increases each year by a
protected. percentage given by a lognormal distribution with a
mean of 1.5% and standard deviation of 0.5%.
We place probability distributions into “Initial
7. Integrating Crystal Ball Simulation Price” (Cell D19), “Fail or Not” (Cells E22:I22), and “%
with the Scenario Engine Price Increase” (Cells E23:I23) by designating them as
Markham and Palocsay (2006) point out that the Crystal Ball “Assumptions.”
Excel Scenario Manager tool does not allow stochastic The company would like to determine the probabil-
analysis. This is a serious shortcoming for the man- ity distribution for the price of the stock in five years
agement scientist. In this section, we show how to (Cell D26); hence we designate this cell as a Crystal
combine stochastic analysis with scenario analysis by Ball “Forecast.”
integrating the Scenario Engine with the Crystal Ball
add-in for Monte Carlo simulation. 7.2. Scenarios
We will use the following six scenarios, although in
7.1. Example Model for Simulation practice one might use many more. For each scenario,
We illustrate (Figure 13) our approach using Prob- inputs that are not mentioned are at their base case
lem 15.9 from Powell and Baker (2007). A small pri- values.
vate company is considering an initial public offering. • The “Current” scenario is the base case.
The initial price of the stock ranges from $10 to $15 • In the “Optimistic” scenario, failure probability
with the discrete distribution shown in Table 1. in Year 1 is 15% in the first year and decreases by 2%
A B C D E F G
1 SCENARIO SELECTED Objective: Profit Change Q1 Exp Q2 Exp Q3 Exp Q4 Exp
2 1 $71,446.79 $7,273 $12,346 $5,117 $15,263
3 2 $125,392.21 $ 53,945.42 $8,261 $13,822 $5,898 $17,020
4 3 $1,650.45 $ (123,741.76) $1,672 $3,980 $692 $5,307
5 4 $140,130.00 $ 138,479.55 $7,273 $12,346 $5,117 $15,263
6 5 ($1,910.00) $ (142,040.00) $969 $2,929 $136 $4,056
7 6 $76,097.27 $ 78,007.27 $10,237 $16,773 $7,459 $20,532
8
Grossman and Özlük: A Spreadsheet Scenario Analysis Technique with Optimization and Simulation
INFORMS Transactions on Education 10(1), pp. 18–33, © 2009 INFORMS 29
A B C D E F G H I
1 CORE MODEL FOR IPO VALUE
2
3
4
5
6 INPUTS
7 LogNormal Distribution Failure Probability
8 Mean Std. dev. Annual Change
9 Distrn of Increase 1.50% 0.50% 0%
10
11 IPO Price $ 10.00 $ 11.00 $ 12.00 $ 13.00 $ 14.00 $ 15.00
12 Probability 0.10 0.20 0.30 0.20 0.10 0.10
13
14 Year 0 1 2 3 4 5
15 Probability of Failure 30% 30% 30% 30% 30%
16
17
18 MODEL
19 Initial Price 12.00
20
21 Year 0 1 2 3 4 5
22 Fail or Not (Fail=0) 1 1 1 1 1
23 % Price Increase 1.00% 1.00% 1.00% 1.00% 1.00%
24 Value 12.00 12.12 12.24 12.36 12.49 12.61
25
26 Price in 5 years 12.61
27
28
Notes. The core model is in the INPUTS and MODEL modules. The key output is in Cell D26.
every year. The mean of the lognormal distribution is to the desired scenario number and run Crystal Ball.
2%, and the standard deviation is 0.50%. To simulate multiple scenarios, we repeat this process
• In the “Pessimistic” scenario, failure probability using different values in Cell B4. The manual process
in Year 1 is 36% for the first year and increases by 3% of running Crystal Ball and summarizing simulation
every year. The mean of the lognormal distribution is results for all the scenarios in a well-organized table
1%, and the standard deviation is 0.90%. is tedious and error prone (especially with a sizable
• In the “High Mean” scenario, the mean of the number of scenarios). It should be automated.
lognormal distribution is 4.00%. To automate the simulation of each scenario, we
• In the “High Year 1 Probability” scenario, failure can use the Crystal Ball Sensitivity tool provided in
probability in Year 1 is 50%, for the first year. the Sensitivity ToolKit (2007), the Crystal Ball Deci-
• In the “High S.D.” scenario, the standard devia- sion Table tool (which, despite its name, is actually a
tion of the lognormal distribution is 2%. sensitivity analysis tool), or by writing VBA code. The
Crystal Ball Sensitivity tool is easy to use. The Crys-
7.3. Scenario Engine tal Ball Decision Table tool is slightly more difficult to
We program a Scenario Engine as described in use, but it generates the histogram plots of the simu-
§§5.1–5.3. In Figure 14, the cells related to the Scenario lation output values. We used the Crystal Ball Sensi-
Engine are colored a shade of green. The scenarios tivity tool (Figure 15) to generate the results shown in
themselves are in Rows 33–38. The IN USE scenario Figure 16. Note that in Figure 16 we do not report the
values (which are echoed into the INPUTS module) scenario name because Crystal Ball Sensitivity cannot
are in Row 31. The selected scenario is in Cell B4. do this. (If necessary, the scenario name could be pro-
grammed using a lookup function.)
7.4. Combining Crystal Ball with
This approach is consistent with the use of common
the Scenario Engine
random numbers, because the random numbers are
To manually connect simulation to the Scenario
controlled by the simulation add-in.
Engine, we simply set the scenario selected (Cell B4)
This section showed how to perform Monte Carlo
simulation using Crystal Ball on any number of
Table 1 Probability Distribution for Simulation Model
scenarios. This approach is quick and easy. The prereq-
Price ($) 10 11 12 13 14 15 uisites are a fully specified Crystal Ball model and a
set of scenarios. The analyst must program a Scenario
Probability 0.10 0.20 0.30 0.20 0.10 0.10
Engine and then run the Crystal Ball Sensitivity tool.
Grossman and Özlük: A Spreadsheet Scenario Analysis Technique with Optimization and Simulation
30 INFORMS Transactions on Education 10(1), pp. 18–33, © 2009 INFORMS
A B C D E F G H I
1 SCENARIO ANALYSIS FOR IPO VALUE
2
3 SCENARIO SELECTED
4 3
5
6 FIXED INPUTS
7 Year 0 1 2 3 4 5
8 IPO Price $ 10.00 $ 11.00 $ 12.00 $ 13.00 $ 14.00 $ 15.00
9 Probability 0.10 0.20 0.30 0.20 0.10 0.10
10
11 INPUTS FROM SELECTED SCENARIO
12 LogNormal Distribution Failure Probability
13 Mean Std. dev. Annual Change
14 Distrn of Increase 1.00% 0.90% 3%
15
16 Year 0 1 2 3 4 5
17 Probability of Failure 36% 39% 42% 45% 48%
18
19
20 MODEL
21 Initial price 12.00
22
23 Year 0 1 2 3 4 5
24 Fail or Not (Fail=0) 1 1 1 1 1
25 % Price Increase 1.00% 1.00% 1.00% 1.00% 1.00%
26 Value 12.00 12.12 12.24 12.36 12.49 12.61
27
28 Price in 5 years 12.61
29
30
Failure
Failure Probability
Probability Annual LogNormal LogNormal
31 Year One Change Mean SD
32 Scenario Name Cell E17 Cell G14 Cell D14 Cell E14
33 IN USE 3 Pessimistic 0.36 3% 1% 0.90%
34
35 1 Current 30% 0% 1.50% 0.50%
36 2 Optimistic 15% –2% 2.00% 0.10%
37 SCENARIO 3 Pessimistic 36% 3% 1.00% 0.90%
38 LIST 4 High Mean 30% 0% 4.00% 0.50%
39 5 High Year 1 Prob. 50% 0% 1.50% 0.50%
40 6 High S.D. 30% 0% 1.50% 2.00%
41
Notes. The INPUTS module is divided into the FIXED INPUTS and INPUTS FROM SELECTED SCENARIO modules. The Scenario Engine is programmed in Cells
D14, E14, G14, E17:I17, and B33:G33. The scenarios are in Rows 35–40, with documentation in Rows 31–32. The Scenario Engine is controlled using Cell B4.
For an analyst who is comfortable implementing the time, in a setting where all students have comput-
Scenario Engine technique and using the Crystal Ball ers. Many of our MBA students are well aware, from
Sensitivity tool, this requires only a few minutes of prior experience, of the cumbersome nature of Excel’s
effort. Scenario Manager tool and greatly prefer the Scenario
Because the simulation results generated by Crystal Engine technique.
Ball are static, the simulation scenario analysis is not With a bit of practice, our students are able to build
dynamic. a Scenario Engine for any existing spreadsheet model.
Those students who apply themselves tell us they can
do this in less than two minutes—even on a spread-
8. Classroom Experience with sheet they have not seen before. The only requirement
the Scenario Engine is that the inputs be organized in a well-documented
We have taught the Scenario Engine to hundreds of inputs module, and that the scenarios be predefined
students. With an explanation of the INDEX function in a well-documented scenario list such as in Figure 1.
and a bit of practice, both undergraduate and MBA Students’ Excel skills upon entering our course typ-
students are able to learn it in 30–60 minutes of class ically range from beginner to expert. We take action
Grossman and Özlük: A Spreadsheet Scenario Analysis Technique with Optimization and Simulation
INFORMS Transactions on Education 10(1), pp. 18–33, © 2009 INFORMS 31
to fix student spreadsheet deficiencies with minimal As discussed in Markham and Palocsay (2006), stu-
use of class time using “student-led remediation” dents should be proficient in scenario analysis. We
described in Grossman (2006). Students need to be present a set of 10 desirable scenario analysis prop-
able to use the INDEX function to program the Sce- erties. Unfortunately, the Excel Scenario Manager sat-
nario Engine and Excel’s Data Table tool to build the isfies only one of these properties, sorely limiting its
scenario summary report. We teach both during class usefulness for serious analytical work.
before we spend the 30–60 minutes on the Scenario We present the Scenario Engine technique for sce-
Engine. We present a simple tutorial on INDEX (see nario analysis in a spreadsheet. It satisfies all 10
the appendix) that takes 5 to 10 minutes. We provide a desirable scenario analysis properties. The Scenario
simple handout with screenshots that walks students Engine can be quickly programmed into any well-
through the use of Data Table, described in Gross- designed spreadsheet model. This approach greatly
man (2008). Teaching Data Table takes about 10 min- reduces manual data entry and copying of outputs
utes with MBAs and 20 minutes with undergraduates. into summary reports, increasing analyst productivity
They have no difficulty learning it, provided that we and accuracy.
motivate them with an interesting context. We demonstrate the ease with which an analyst
When we teach parametric optimization or simula- can integrate the Scenario Engine with Solver for
tion sensitivity, students have no difficulty combining optimization and with Crystal Ball for Monte Carlo
these techniques with the Scenario Engine. simulation.
Markham and Palocsay (2006) demonstrate the
straightforward integration of the Scenario Manager
9. Conclusion tool with the decision analysis add-in TreePlan (SensIt
Scenario analysis is an important and useful tech- 2008). We believe that integration of the Scenario
nique for obtaining business insight from a model. Engine with TreePlan for decision analysis would be
A B C D E
1 SCENARIO SELECTED Price in 5 years: Mean Price in 5 years: StDev Price in 5 years: Min Price in 5 years: Max
2 1 $ 2.26 $ 5.04 $ - $ 16.66
3 2 $ 7.62 $ 6.83 $ - $ 16.67
4 3 $ 0.82 $ 3.18 $ - $ 16.67
5 4 $ 2.60 $ 5.72 $ - $ 18.93
6 5 $ 0.40 $ 2.27 $ - $ 16.48
7 6 $ 2.27 $ 5.03 $ - $ 22.80
8
straightforward, and we see this as an avenue for fur- Choice of Lookup Functions
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
ther research. Excel provides a class of “lookup” functions that are useful
We have used the Scenario Engine with undergrad- for extracting data from a list. We recommend the INDEX
uate and MBA students and have found they can function. However, Tennent and Friend (2001) use OFFSET,
learn it with modest effort. We anticipate that it will and Powell and Baker (2007) use CHOOSE. Each of these
three functions is capable of providing the necessary func-
be of value in many business school management sci-
tionality. However, from a spreadsheet engineering perspec-
ence courses.
tive, OFFSET should be avoided whenever possible, and
CHOOSE requires excessive programming and can be dif-
Acknowledgments ficult to verify. INDEX has none of these difficulties and
We thank the editors and the anonymous referees for their therefore is preferred. (Note that VLOOKUP does not work
thoughtful reviews and valuable comments. We also thank well for this application because it requires a column num-
Patrick O’Beirne for his comments on the OFFSET function. ber that has to be changed for each column. LOOKUP can
be used for this application, but it requires one more range
Appendix argument than INDEX and is therefore more challenging to
This appendix describes the INDEX function, which might
program.)
not be familiar to some readers or their students. We pro-
vide to students a spreadsheet containing this information OFFSET. The OFFSET function (along with the INDI-
prior to teaching the Scenario Engine. RECT function) works not by the usual spreadsheet cell
referencing but instead by addressing a cell that is a spec-
Essential Functionality of INDEX ified number of rows and columns away from a specified
The INDEX function is a convenient way to obtain the con- location in the spreadsheet. This poses serious problems for
tents of a cell located within a particular range of cells. For accurate, reliable programming. In general in Excel, when
the Scenario Engine, we need to make use of only a subset a user drags-and-drops (or cuts-and-pastes) a cell contain-
of the functionality of INDEX, described here. ing a formula, the spreadsheet automatically adjusts and
The syntax for our purposes is =INDEX(range, row_num), cells return the same values they contained prior to the edit.
where range is a single column of cells, and row_num is the However, OFFSET does not reliably exhibit this behavior.
row number within the range. The INDEX function returns A simple drag-and-drop can cause the value returned by the
the value in the cell at row_num within the range. OFFSET function to change. Likewise, in general in Excel,
Examples (see Figure A.1): when a user inserts or deletes a new row, the spread-
=INDEX(G7:G9,2) returns 20, the value in Cell G8: Row 2 sheet automatically adjusts, and cells return the same val-
of G7:G9. ues they contained prior to the row insertion. However,
=INDEX(G7:G9,5) returns #REF!; Row 5 was specified for OFFSET does not reliably exhibit this behavior. If a row
a range with only three rows. is inserted or deleted between the “range” of OFFSET and
the offset location, the value returned by the OFFSET func-
Enrichment: Additional Functionality of INDEX tion changes. Due to this unusual behavior in response to
Note that there is an “advanced” syntax for INDEX that is normally benign programming actions, a spreadsheet con-
not required for the Scenario Engine. It can be desirable to taining OFFSET must be considered inherently risky.
expand students’ knowledge of Excel by showing them this Furthermore, OFFSET does not work properly with
functionality. Excel’s formula auditing tools. A cell whose value is
The “advanced” syntax is =INDEX(range, row_num, returned by OFFSET does not provide an arrow to the OFF-
col_num). Range is a rectangular selection of cells, row_num SET cell when Trace Dependents is used. This can cause
is the row number within the range, and col_num is the col- such a cell to be perceived as “orphan data” (and therefore
umn number within the range. INDEX returns the value in a candidate for deletion during routine quality assurance),
the cell at row_num and col_num within the range. when in fact it is used by the OFFSET function. Finally,
Examples (see Figure A.1): OFFSET is one of a handful of “volatile” functions (mean-
=INDEX(G7:K9,1,1) returns 10, the value in Cell G7: ing that it always recalculates), which increases calculation
Row 1, Column 1 of G7:K9. time in larger spreadsheets.
=INDEX(H8:J9,1,1) returns 70, the value in Cell H8:
Row 1, Column 1 of H8:J9. CHOOSE. The CHOOSE function is unwieldy and
=INDEX(G7:K9,2,5) returns 220, the value in Cell K8: requires excessive programming. With CHOOSE, the pro-
Row 2, Column 5 of G7:K9. grammer cannot provide a single range for all scenarios but
=INDEX(G7:K9,4,5) returns the error message #REF!; the must program an individual argument for each scenario.
range has only three rows. For example, with six scenarios the programmer might
write CHOOSE(Scenario_Number, L14, L15, L16, L17, L18,
L19) but cannot write this as CHOOSE(Scenario_Number,
Figure A.1 INDEX Example for Additional Functionality L14:L19). If there were 20 scenarios, the CHOOSE function
would require 21 separate arguments, which is impractical
G H I J K
7 10 60 110 160 210 as well as hard to verify.
8 20 70 120 170 220 In addition, in Excel 2003 and earlier, CHOOSE was lim-
9 30 80 130 180 230 ited to 29 scenarios. This has increased in Excel 2007 to 254
10 scenarios (requiring 255 arguments). Conceptually, there is
Grossman and Özlük: A Spreadsheet Scenario Analysis Technique with Optimization and Simulation
INFORMS Transactions on Education 10(1), pp. 18–33, © 2009 INFORMS 33
no limit on the number of scenarios a user might want to Grossman, T. A., V. Mehrotra, Ö. Özlük. 2007. Lessons from
Additional information, including supplemental material and rights and permission policies, is available at http://ite.pubs.informs.org.
deploy; hence, Excel’s limitation to 254 scenarios compro- mission-critical spreadsheets. Comm. Assoc. Inform. Systems
mises scalability. 20(60) 1009–1042.
LeBlanc L. J., T. A. Grossman. 2008. The use of spreadsheet soft-
INDEX. In contrast, the INDEX function has none of the ware in the application of management science and operations
above shortcomings. Unlike OFFSET, it uses standard cell research. Interfaces 38(4) 225–227.
referencing and hence is well behaved with regard to cut- Markham, I. S., S. W. Palocsay. 2006. Scenario analysis in spread-
and-paste and row insertions and deletions. It works well sheets with Excel’s scenario tool. INFORMS Trans. Ed. 6(2)
with Excel’s Trace Dependents feature, and like most Excel 23–31, http://ite.pubs.informs.org/.
functions, is nonvolatile. In contrast to CHOOSE, it accepts Postma, M. J., M. A. Heijnen, J. C. Jager. 2001. Cost-effectiveness
a single range for all the scenarios; it is therefore faster to analysis of pneumococcal vaccination for elderly individuals
program and easier to verify. in The Netherlands. PharmacoEconom. 19(2) 215–222.
Powell, S. G., K. R. Baker. 2007. Management Science: The Art of Mod-
eling with Spreadsheets, 2nd ed. John Wiley & Sons, Hoboken,
References NJ.
Buehlmann U., C. T. Ragsdale, B. Gfeller. 2000. Spreadsheet-based Ragsdale, C. T. 2001. Teaching management science with spread-
decision support system for wood panel manufacturing. Deci- sheets: From decision models to decision support. INFORMS
sion Support Systems 29(3) 207–227. Trans. Ed. 1(2) 68–74, http://ite.pubs.informs.org/.
Coles, S., J. Rowley. 1996. Spreadsheet modelling for manage- Ryan, P. A., G. P. Ryan. 2002. Capital budgeting practices of the
ment decision making. Indust. Management Data Systems 96(7) Fortune 1000: How have things changed. J. Bus. Management
17–23. 8(4) 355–364.
Croll, G. 2005. The importance and criticality of spreadsheets in the SensIt. 2008. SensIt sensitivity analysis add-in. Accessed July 1,
city of London. Eur. Spreadsheet Risks Interest Group 6th Annual 2008, http://www.treeplan.com/sensit.htm.
Conf., London, European Spreadsheet Risks Interest Group, Sensitivity Toolkit. 2007. Accessed July 1, 2008, http://mba.tuck.
Greenwich, UK, 83–93. Accessed July 1, 2008, http://sprig. dartmouth.edu/toolkit/.
section.informs.org/sprigfiles/Croll05.pdf. Solver Table. 2003. Accessed July 1, 2008, http://highered.mcgraw-
Grossman, T. A. 2006. Integrating spreadsheet engineering in hill.com/sites/0073129038/student_view0/solver_table.html.
a management science course—A hierarchical approach.
Tennent, J., G. Friend. 2001. Guide to Business Modelling. Profile
INFORMS Trans. Ed. 7(1) 18–36, http://ite.pubs.informs.org/.
Books, London.
Grossman, T. A. 2008. A primer on spreadsheet analytics. Eur.
Spreadsheet Risks Interest Group 9th Annual Conf., European Wagner, J. M., J. Keisler. 2006. Enhance your own research produc-
Spreadsheet Risks Interest Group, Greenwich, UK, 129–139. tivity using spreadsheets. Tutorials Oper. Res. 148–162.
Grossman, T. A., Ö. Özlük. 2004. A paradigm for spreadsheet engi- Weisel, J. 2004. Add muscle to what-if analyses. J. Accounting 198(3)
neering methodologies. Eur. Spreadsheet Risks Interest Group 76–79.
5th Annual Conf., European Spreadsheet Risks Interest Group, Winston, W. L., S. C. Albright. 2001. Practical Management Science,
Greenwich, UK. 2nd ed. Thomson Learning, Duxbury, Pacific Grove, CA.