0% found this document useful (0 votes)
8 views18 pages

CS Capital Budgeting

This case study focuses on a capital budgeting application that utilizes simulation to determine the most beneficial products for investment by calculating expected total profit and NPV. It incorporates both deterministic and stochastic inputs, allowing users to input values for various parameters and run simulations to analyze product performance. The application generates detailed outputs for each product and overall comparisons, helping users make informed investment decisions.

Uploaded by

Rediet Alex
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views18 pages

CS Capital Budgeting

This case study focuses on a capital budgeting application that utilizes simulation to determine the most beneficial products for investment by calculating expected total profit and NPV. It incorporates both deterministic and stochastic inputs, allowing users to input values for various parameters and run simulations to analyze product performance. The application generates detailed outputs for each product and overall comparisons, helping users make informed investment decisions.

Uploaded by

Rediet Alex
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

CASE STUDY

thirteen
Capital Budgeting

case study
OVERVIEW

CS13.1 Application Overview and Model Development


CS13.2 Worksheets
CS13.3 User Interface
CS13.4 Procedures
CS13.5 Re-solve Options
CS13.6 Summary
CS13.7 Extensions
CASE STUDY 13 Capital Budgeting 2

CS13.1 Application Overview and Model Development


In this application, the user can consider which of several possible future products would
be most beneficial to invest in. This problem is typically modeled as an integer-
programming problem in which binary variables determine which products to invest in and
which not to invest in. However, in this application, we seek to solve this problem using
simulation. For each run of the simulation, we calculate the expected total profit and NPV
for several products with given input values. We then summarize which product can be
expected to perform the best and suggest that the user invest in it.

CS13.1.1 Model Definition and Assumptions

This application has both deterministic and stochastic input. The stochastic input includes
the sales volume, the product development cost, and the time horizon. Since these values
are unknown, we prompt the user for the best case, worst case, and most likely values
they have. A triangular random variable analyzes the values that may occur between the
best case and worst case values. For this application, we want to generate a random
number from the triangular distribution for a given probability of this input. We therefore
model the inverse triangular distribution function; for a best case, a, worst case, b, and
most likely value, m, and a given probability, p, the formula is:

a≤m≤b
⎛ (b − a )(m − a ) p ⎞ m−a
F −1 ( p ) = a + ⎜ ⎟ , if 0 ≤ p ≤
⎝ 2 ⎠ b−a
⎛ (b − a)(b − m)(1 − p ) ⎞ m−a
F −1 ( p ) = b − ⎜ ⎟ , if ≤ p ≤1
⎝ 2 ⎠ b−a

The Triang function procedure takes as input the best case, worst case, and most likely
values and outputs a random number that is found from this triangular distribution for a
given probability.

Function Triang(Best, Worst, MostLikely) 'triangular distribution function


Dim p As Double
p = Rnd()
If p < (MostLikely - Worst) / (Best - Worst) Then
Triang = Abs(Worst + ((Best - Worst) * (MostLikely - Worst) * p) / 2)
Else If p > (MostLikely - Worst) / (Best - Worst) Then
Triang = Abs(Best - ((Best - Worst) * (Best - MostLikely) * (1 - p)) / 2)
End If
End Function

We use this function to create values for this stochastic input during the simulation runs. In
each run, these values are updated and placed on a simulation calculation worksheet that
contains several formulas. The formulas are therefore updated with these new values, and
the run results are recorded.

For runs = 1 To NumRuns


For i = 1 To NumProd
'calculate unknown values using Triang function and put in table
'PRODUCT COST
CASE STUDY 13 Capital Budgeting 3

Range("Prod" & i & "Start").Offset(7, 1).Value = Triang(ProdCost(i, 1), ProdCost(i,


2), ProdCost(i, 3))

'TIME HORIZON
NumYears = Triang(Time(i, 1), Time(i, 2), Time(i, 3))
Range(Range("Prod" & i & "NPV").Offset(-1, 0), Range("Prod" & i & "NPV") _
.Offset(-1, NumYears)).Name = "Prod" & i & "Time"

'SALES VOLUMES
For year = 1 To NumYears
Range("Prod" & i & "Start"). Offset(6, year + 1).Value = Triang (Sales(i, 1),
Sales(i, 2), Sales(i, 3))
Next
Range(Range("Prod" & i & "Start").Offset(6, NumYears + 2), _
Range("Prod" & i & "Start").Offset(6, 11)).ClearContents
'record NPV and profit to SimDetails
Range("DetailsStart").Offset(runs + 1, 2 * i - 1).Value = Range("Prod" & i &
"NPV").Value
Range("DetailsStart").Offset(runs + 1, 2 * i - 1).Offset(0, 1).Value = _
Application.WorksheetFunction.Sum(Range(Range("Prod" & i & "NPV").Offset(-2,
1), _Range("Prod" & i & "NPV").Offset(-2, NumYears)))
Next i
Next

The simulation calculations seek to determine the total profit and net present value (NPV)
of each product given its input values. The deterministic input values include the tax rate,
the discount rate, the labor cost, the variable cost, and the selling price. Using these
values as well as the stochastic values calculated for each run, the application calculates
the depreciation, the before tax profit, the after tax profit, the cash flow, and the NPV. The
simple formulas for these calculations appear in the table below; the NPV Excel function
calculates the NPV.

Range(“Prod” & i & “Start”)


Product Name 0 1… (to 10)
Tax Rate (from input sheet)
Discount Rate (from input sheet)
Labor Cost (from input sheet)
Variable Cost (from input sheet)
Selling Price (from input sheet)
Sales Volume (from Triang function)
Product Development Cost (from Triang function)
Depreciation Prod. Devel. Cost / 5

Before tax profit Labor Cost + Selling Price * Sales Vol – Variable
Cost * Sales Vol – Depreciation
After tax profit ((1-Tax Rate) * Before Tax Profit
Range(“Prod” & i & “Time”)… Range(“Prod1Time”) …
Cash flow
Prod. Devel. Cost After Tax Profit + Depreciation
Range(“Prod” & i & “NPV”)
NPV (NPVfunction using Discount
Rate and Time Horizon)

Please refer to Practical Management Science by Winston and Albright as well as


Introduction to Probability Models by Winston for more details.
CASE STUDY 13 Capital Budgeting 4

CS13.1.2 Input

This application requires two types of input: deterministic and stochastic. The deterministic
input is:
ƒ Tax rate
ƒ Discount rate
ƒ Labor cost
ƒ Variable cost
ƒ Selling price
ƒ Desired NPV

The stochastic input for the application is:


ƒ Sales volume (best, worst, and most likely)
ƒ Product development cost (best, worst, and most likely)
ƒ Time horizon (best, worst, and most likely)

CS13.1.3 Output

This application has two types of output: output per product and overall, or comparative,
output. The output per product is:
ƒ Depreciation
ƒ Before tax profit
ƒ After tax profit
ƒ Cash flow
ƒ Actual NPV

The overall output is:


ƒ Product with best average NPV
ƒ Product with best average total profit

CS13.2 Worksheets
This application requires five worksheets: the welcome sheet, the input sheet, the
simulation calculations sheet, the simulation details sheet, and the results sheet. The
welcome sheet contains the title, the description of the application, and the “Start” button.
(See Figure CS13.1.) The “Start” button on the welcome sheet prompts the user for the
input values and then displays the input sheet.

The input sheet stores the input values for each product entered by the user. (See Figure
CS13.2.) These input values are recorded from a user form, which we will describe in the
next section. This sheet stores the deterministic values for the labor cost, the variable
cost, the selling price, the tax rate, the discount rate, and the desired NPV. The stochastic
input is recorded by best, worst, and most likely values for the sales volume, production
development cost, and time horizon.
CASE STUDY 13 Capital Budgeting 5

Figure CS13.1 The welcome sheet.

Figure CS13.2 (a)


In the simulation calculations sheet, the application calculates the simulation formulas to
determine each product’s total profit and NPV. (See Figure CS13.3.) The deterministic
input values are referenced from this sheet as input for the formulas for depreciation,
before tax profit, after tax profit, cash flow, and NPV. The stochastic input values are
updated for each run of the simulation using the triangular distribution function with the
best, worst, and most likely parameters provided by the user. As these values are updated
for each run of the simulation, the formula results are also updated and recorded on the
simulation details sheet.

The simulation details sheet records the NPV and total profit values for each product for
each run of the simulation. (See Figure CS13.4.) The application employs these values to
determine each product’s minimum, maximum, and average NPV and profit values, which
are stored on the results sheet.
CASE STUDY 13 Capital Budgeting 6

Figure CS13.2 (b)


Figure CS13.2 The input sheet.

Figure CS13.3 The simulation calculations sheet.


CASE STUDY 13 Capital Budgeting 7

Figure CS13.4 The simulation details sheet.

The results sheet displays each product’s minimum, maximum, and average NPV and
profit values in a table. (See Figure CS13.5.) It also uses the simulation details sheet
values to calculate the probability that the NPV will be greater than or equal to the desired
NPV provided by the user. The comparative, or overall, output shows which product has
the largest average NPV and profit values.

Figure CS13.5 The results sheet.


CASE STUDY 13 Capital Budgeting 8

Welcome sheet Contains the application description and the “Start” button.
Stores the deterministic and stochastic input values for each
Input sheet
product.
Summary Calculates the simulation formulas to find the NPV and profit
Simulation calculations
values for each product. Formulas and results are updated for
sheet
new stochastic values for each run of the simulation.
Simulation details Records the NPV and profit values calculated for each product
sheet for each run of the simulation.
Shows the minimum, maximum, and average NPV and profit
values for each product, the probability that the NPV is greater
Results sheet
than or equal to the desired NPV for each product, and the
product with the best overall NPV and profit values.

CS13.3 User Interface


For this application’s user interface, we include navigational buttons, input boxes, and a
user form. From the “Start” button on the welcome sheet, the user first views two input
boxes. The first prompts the user for the number of products to compare. (See Figure
CS13.6.) The second input box then prompts the user for the number of simulation runs.
(See Figure CS13.7.)

Figure CS13.6 The input box for the number of products.

Figure CS13.7 The input box for the number of runs.

Then, the user views an input form for each product he or she is comparing. (See Figure
CS13.8.) This form prompts the user for the deterministic and stochastic input; each set of
input values is grouped into a respective frame. Text boxes are used for all the data, and
the stochastic input text boxes are arranged in a tabular format since each requires a best,
worst, and most likely value.
CASE STUDY 13 Capital Budgeting 9

Figure CS13.8 The input form.

This same form is shown to the user for each product; therefore, the product number label
is updated for each product shown. Default values are provided for all the input, including
the product name. As the user enters the input values for each product, they are recorded
to the input sheet, which appears in the background. For example, in Figure CS13.9, the
input values have already been entered and recorded for the first two products on the
input sheet. The input form now prompts the user for the input values of the third product.

Input boxes For the number of products and the number of runs.

For the deterministic and stochastic input values; shown for


Summary Input form
each product; the values are recorded on the input sheet.

“Start” on the welcome sheet; “Go Back” on the input,


simulation calculations, and details sheets; “Return to Input,”
Navigational buttons
“View Output Details,” and “View Sim Calc” on the results
sheet; and “End” on all the sheets.

“Start Simulation” on the input sheet and “Re-solve” on the


Functional buttons
results sheet.
CASE STUDY 13 Capital Budgeting 10

Figure CS13.9 The input form appears in front of the input sheet.

CS13.4 Procedures
We will now outline the procedures for this application beginning with the variable
declarations and initial sub procedures. (See Figure CS13.10.) The Main procedure is
called from the “Start” button. It calls the ClearPrev procedure to clear previous values and
tables from all the sheets. It then prompts the user with the two input boxes for the number
of products and the number of runs for the simulation. Notice that the error checking code
is used for both of these input boxes. ClearPrev then uses the number of products to re-
dimension some arrays and takes the user to the input sheet. Once the input sheet
appears, the Main procedure performs a loop to display the input form for each product.
The product number label on the form is updated in each loop along with the default value
of the product name.

The input form procedures record all of the input values on the input sheet. (See Figure
CS13.11.) Notice that the variable i used in the loop in the Main procedure to show the
input form is used in the input form procedures to determine on which row on the input
sheet values will be recorded. This variable also indexes the arrays to store the stochastic
input parameters. This code also performs some error checking to ensure that the value
for the time horizon worst case input is less than or equal to 10.

The Main procedure ends by calling the FormatSheets and RunSim procedures.
CASE STUDY 13 Capital Budgeting 11

Figure CS13.10 The variable declarations and the Main procedure.

The RunSim procedure performs the simulation calculations. (See Figure CS13.12.) For
each simulation run, each product’s production development cost, time horizon, and sales
volume values are updated with the triangular distribution function. The formulas on the
simulation calculation sheet are then updated, and the resulting NPV and profit values are
recorded on the simulation details sheet. When all of the runs are complete, the RunSim
procedure calls the CreateResults procedure.
CASE STUDY 13 Capital Budgeting 12

Figure CS13.11 The procedures for the input form.

The Triang function procedure generates a possible value from the triangular distribution
function using the best case, worst case, and most likely case values as parameters. (See
Figure CS13.12.) These parameter values are passed to the Triang function procedure
using the corresponding arrays for product development cost, time horizon, and sales
volume. (Refer to Section CS16.1.1 for details about the triangular distribution function.)

The CreateResults procedure displays the results on the results sheet. (See Figure
CS13.13.) First, it first creates some dynamic range names on the simulation details
sheet. Then, with these range names, it finds the minimum, maximum, and average NPV
and profit values for each product. It next loops over all of the average NPV and profit
values to find the product with the best NPV and the product with the best profit.
CASE STUDY 13 Capital Budgeting 13

Figure CS13.12 The RunSim procedure and the Triang function procedure.

The FormatSheets procedure creates tables for each product on various sheets. (See
Figure CS13.14.) It begins by creating tables for each product on the simulation
CASE STUDY 13 Capital Budgeting 14

calculations sheet. It also creates some dynamic range names on this sheet; these names
are used in the formulas for the simulation calculations. FormatSheets then references the
input values from the input sheet on these new tables on the simulation calculation sheet.
It then creates columns for storing the simulation results on the simulation details sheet
and also updates some of its dynamic range names. Finally, it formats the results sheet by
creating the tables for each product to store the results. Notice that for each product,
tables are created by copying and pasting an initial table that is never cleared from the
sheet.

Figure CS13.13 The CreateResults procedure.


CASE STUDY 13 Capital Budgeting 15

Figure CS13.14 The FormatSheets procedure.

The ClearPrev and navigational procedures are illustrated in Figure CS13.15.


CASE STUDY 13 Capital Budgeting 16

Figure CS13.15 ClearPrev and the navigational procedures.

Initializes the application and prompts the user with the input
Main
boxes and the input form.
ClearPrev Clears the previous values and tables from all the sheets.
Summary
Record the deterministic input values to the input sheet;
Input form procedures record the stochastic input parameters to the input sheet and
the arrays.
Creates the tables for all the products on all the sheets;
FormatSheets
creates the dynamic range names.

Performs the simulation calculations; updates the stochastic


RunSim
values by calling the Triang function procedure.

Triang function Uses the triangular distribution function to generate values for
procedure the stochastic input.

Displays the results for each product on the results sheet;


CreateResults
finds the product with the best NPV and profit values.

Navigational For the “End,” “View Output Details,” “View Sim Calc,” and
CASE STUDY 13 Capital Budgeting 17

CS13.5 Re-solve Options


The user can re-solve this application by pressing the “Re-solve” button on the results
sheet or the “Start Simulation” button on the input sheet. The “Re-solve” button (as well as
the “Return to Input” button) on the results sheet calls the Re-solve procedure. (See
Figure CS13.16.) This procedure, shown in Figure CS13.17, simply returns the user to the
input sheet where he or she can change any of the input values or stochastic input
parameters. Once the user updates the input values, he or she can click on the “Start
Simulation” button to re-call the RunSim procedure and re-run the simulation. (See Figure
CS13.18.)

Figure CS13.16 The buttons on the results sheet; both “Re-solve” and “Return to Input”
lead the user to the re-solve options.

Figure CS13.17 The Re-solve procedure.

Figure CS13.18 The buttons on the input sheet; “Start Simulation” re-solves the
application.

Returns the user to the input sheet where he or she


“Re-solve” button on the
can change the input values before resolving the
results sheet
problem.
Summary “Start Simulation” button on the Re-calls the RunSim procedure to re-run the
input sheet simulation.
CASE STUDY 13 Capital Budgeting 18

CS13.6 Summary
ƒ In this application, the user can consider which of several possible future
products would be most beneficial to invest in.
ƒ This application requires five worksheets: the welcome sheet, the input sheet, the
simulation calculations sheet, the simulation details sheet, and the results sheet.
ƒ For this application’s user interface, we use navigational buttons, input boxes,
and a user form.
ƒ Several procedures in this application collect the input for the model and solve
the model by running a simulation.
ƒ The user can re-solve this application by pressing the “Re-solve” button on the
results sheet or the “Start Simulation” button on the input sheet.

CS13.7 Extensions
ƒ Add to the results sheet the product that has the highest probability of having a
NPV greater than or equal to the desired NPV.
ƒ Add histograms to the results sheet that illustrate the frequency with which each
product’s profit and NPV values were achieved. (Remember to also add to the
ClearPrev procedure so that each histogram is deleted for the previous
products.)
ƒ Restructure this application to solve the capital budgeting problem with an integer
programming model. Which procedures change and which can be retained?
Which sheets change and which can be retained?

You might also like