Capital budgeting uses various capital projects to find the one that will maximize a company’s return on its financial investment. Planning for capital investments involves:
capital budgeting evaluation process
net present value method
capital budgeting challenges
internal risks of return method
annual rate of return method
A company is pondering the investment of $130,000 in new equipment, this new equipment is expected to last 10 years. This equipment will not have any salvageable value at the end of the decade of use. Cash inflows from this equipment will be 200,000 dollars and the outflow of cash will be 176,000 dollars.
Net annual cash flow from investment ........... $24,000.0
Cash payback technique ....... 5.42 years (54.17% of asset's life)
13.1 Cash Payback Technique
The cash payback technique identifies the time period required to recover the cost of the capital investment from the net annual cash flow produced by the investment.
cash payback technique (CPT) = (cost of capital investment) / (net annual cash flow)
13.1.1 Example
A company is considering a new machine, the new machine would cost $900,000, with an estimated 6 years of life and no salvage value after 6 years.
Net annual cash flow ......... $210,000.0
Cash payback technique ....... 4.29 years (71% of asset's life)
13.2 Net Present Value
Net present value (NPV) method involves discounting net cash flows to their present value and then comparing that present value with the capital required by the investment. A proposal is acceptable when net present value is 0 or positive.
NPV = net cash flow - capital investment
13.3 Equal Annual Cash Flows
Using the cash flow data from previously, if an asset’s life is to be assumed to be uniform, calculate the present value of net annual cash flow by using the present value of an ordinary annuity. To get the value of ordinary annuity, use a table which requires to know the n periods and the discount rate n %, in this case the periods are 10 (10 years) and discount rate of 12%.
Net annual cash flow ..... $24,000.0
Net present value ........ $5605.28
13.4 Unequal Annual Cash Flow
For unequal annual cash flows, need to use tables that show present value of a single future amount that must be applied to each annual cash flow.
total net cash flow for the 10 years = $240,000
each year of annual net cash flow is assumed and is more or less around 24,000
the discount factor annuities for 12% are found using a table (present value of a single sum)
capital investment is $130,000
This code is inside a function only to bring attention that the calculations are for unequal_cashflows. If you have the table values in an array as shown in the discount factor array. The NumPy library is used to quickly make an array list of integers from 0 to 9, instead of typing the numbers by hand.
Show the code
def unequal_cashflows():import numpy as np# create an array 0 to 9 years = np.arange(10)# assumed annual net cash flows 18,000 to 24,000 (for 10 years) yearly_cashflows = [34e3, 30e3, 27e3,25e3,24e3,22e3,21e3,20e3,19e3, 18e3]# discount_factor for 12% values from a table for 10 periods (n) discount_factor = [0.89286, 0.79719,0.71178,0.63552,0.56743,0.50663,0.45235,0.40388,0.36061,0.32197] capital_investment =130e3# present values pv = []for x inrange(len(years)): PV = yearly_cashflows[x] * discount_factor[x] pv.append(PV)# comment out this line to only show the final total present valueprint("Year: {} Present value @ 12% ... ${:.2f}".format(years[x]+1, pv[x])) total_pv =sum(pv) npv = total_pv - capital_investment print("Present value @ 12% cash flows ..... ${:,}".format( total_pv ))print("Net present value .................. ${:.2f}".format( npv ))unequal_cashflows()
Year: 1 Present value @ 12% ... $30357.24
Year: 2 Present value @ 12% ... $23915.70
Year: 3 Present value @ 12% ... $19218.06
Year: 4 Present value @ 12% ... $15888.00
Year: 5 Present value @ 12% ... $13618.32
Year: 6 Present value @ 12% ... $11145.86
Year: 7 Present value @ 12% ... $9499.35
Year: 8 Present value @ 12% ... $8077.60
Year: 9 Present value @ 12% ... $6851.59
Year: 10 Present value @ 12% ... $5795.46
Present value @ 12% cash flows ..... $144,367.18
Net present value .................. $14367.18
13.5 Choosing a Discount Rate
In the world of business, the discount rate is chosen by using a rate that is equal to its cost of capital which is the rate that a company must pay to get funds from creditors and shareholders.
company can compare 12% vs 15% (riskier investment): 5.65022 and 5.01877
net cash flow = $24,000
investment $130,000
This quick function has the 2 values for 10 periods and for 12% and 15% inside the function.
- Discount Rate -
Net present value for 12% ..... $5,605.28
Net present value for 15% ..... $-9,549.52
13.5.1 Example
This example is the extension of the cash payback, but now with the discount rate (rate of return) being 9%. The value is found by using the table present value of an ordinary annuity of 1. The period being 6 years and at 9% has the value of 4.48592.
Net annual cash flow ......... $210,000.0
Cash payback technique ....... 4.29 years (71% of asset's life)
Net present value ............. $42,043.2
For a fully formed function, you could have rate of return (discount rate) and the n periods and return the value for annuity by using a CSV table or some data structure.
13.6 Intangible Benefits
Intangible benefits are values such as increased quality, improved safety, greater employee loyalty, etc. and are values typically eliminated from the equation when doing net present value using tangible costs and benefits.
if the NPV is negative, are the intangible assets worth at least the amount of the negative NPV
estimated values of the intangible benefits are used in the NPV calculation
Function to get the present value that takes the annuity value, assuming the user looks up the value for the function input.
Show the code
present_value( 5.65022, robot_investment )
Net annual cash flow ......... $30,000.0
Cash payback technique ....... 6.67 years (67% of asset's life)
Net present value ............. $-30,493.4
Staff at the company estimate that sales will increase of $10,000 annually due to the increase in quality from customers point of view. Staff also estimate the cost outflows will be reduced by 5,000 as a result from lower injury claims. Update the robot investment data and call the present value function with the annuity value.
Net annual cash flow ......... $45,000.0
Cash payback technique ....... 4.44 years (44% of asset's life)
Net present value ............. $54,259.9
Business decision based on net present values. Ideally the conditional statement would be inside a function.
Show the code
npv1 =abs(-30493.4)npv2 =54259.9if npv2 > npv1:print("Company should accept project")else:print("do not accept project")
Company should accept project
13.7 Mutually Exclusive Projects
Most project proposals are mutually exclusive, which means only 1 project is afforded the finances to proceed. One appealing method of selecting a project is to go with the project with the higher NPV. Profitability index is a method that evaluates both the size of the original investment and the discounted cash flows.
profitability index = present value net cash flows / initial investment
Project A : present value of net cash flows ............. $58,112.05
Project B : present value of net cash flows ............. $110,573.88
Project A : Net present value ............. $18,112.05
Project B : Net present value ............. $20,573.88
Project B has higher NPV 🟡
Project A : Profitability Index ............. 1.45
Project B : Profitability Index ............. 1.23
Project A has higher profitability 🟢
13.8 Internal Rate of Return
The internal rate of return is the interest rate that will cause the present value of the proposed capital expenditure to equal the present value of the expected net annual cash flows.
If the cash flows are uneven, then trial-and-error approach or a financial calculator is to be used. Once the internal rate of return (IRR), compare it with the required rate of return (RRR) (discount rate).
if IRR >= RRR:
Accept project
else:
Reject project
Net annual cash flow ....................... $210,000.0
Internal Rate of Return factor (IRR) ....... 4.29 years
Now that we have the IRR value, we look up in a table for present value of ordinary annuity to find closest value. In this case, there are two numbers at the 10% and 11% place that when averaged equal the IRR. So the IRR is > RRR (the 9%), the accept the project.
Show the code
# table values for 10% and 11%nums = [4.35526, 4.23054]print("IRR factors for 10% and 11% (averaged) = ",sum(nums)/2)
IRR factors for 10% and 11% (averaged) = 4.2929
13.9 Annual Rate of Return
Annual rate of return method is based on directly on accrual accounting data rather than on cash flows. This annual rate of return indicates the profitability of a capital expenditure.
annual rate of return (ARR) = expected net income / annual average investment
def annual_return( dict ): sales =dict['sales'] manuf_costs =dict['manufacturing_costs'] depreciation =dict['investment_cost'] /dict['estimated_life'] sell_admin=dict['selling_admin'] tax_exp =dict['income_tax_expense'] cost_expenses = manuf_costs + depreciation + sell_admin print("Costs & Expenses ........................ ${:,}".format(cost_expenses)) income_b4_tax = sales - cost_expensesprint("Income before income taxes .............. ${:,}".format(income_b4_tax)) net_income = income_b4_tax - tax_expprint("Net income .............................. ${:,}".format(net_income)) avg_investment = (dict['investment_cost'] +dict['estimated_salvage'])/2print("Average investment ...................... ${:,}".format(avg_investment))# expected annual rate of return on investment in new equipment/ machine exp_return = net_income / avg_investmentprint("Expected annual rate of return ...................... {:,}%".format(exp_return *100))
Show the code
annual_return( machine_investment2 )
Costs & Expenses ........................ $180,000.0
Income before income taxes .............. $20,000.0
Net income .............................. $13,000.0
Average investment ...................... $65,000.0
Expected annual rate of return ...................... 20.0%