Enterprise Value with DCF

This approach aims to evaluate a company by its ability to generate money in future.It uses two terms: Future Cash Flows (FCF) and Weighted Average Cost of Capital (WACC)

FCFs are defined as the cash created by the company’s operating activities. WACC is the risk-adjusted discount rate appropriate to the risk of the FCFs. And the value of the company is calculated as net present value of FCFs discounted at WACC.

There is one assumption to this approach is that cash flows occur approximately mid-year. In that case, the formula for the enterprise value (EV) is:

\[EV = NPV*(FCF_i, WACC)*(1+WACC)^{0.5}\]

There are two steps in getting FCFs:

  • get historical FCFs either from cash flow statements
  • project FCFs to the future assuming growth percentages

FCF from cash flow statement

The API provides all the data

from pyfinmod.financials import Financials
from pyfinmod.ev import fcf

parser = Financials("AAPL")
fcf(parser.cash_flow_statement)

WACC

The formula is the following:

\[WACC = \frac{E}{E+D}r_e + \frac{D}{E+D}r_d(1-T_c)\]

where - E = market value of the firm’s equity - D = market value of the firm’s debt - Tc = firm’s corporate tax rate - rE = firm’s cost of equity - rD = firm’s cost of debt

There are some difficulties in calculating certain parts:

  1. Firm’s cost of equity rE has two approaches to it: Gordon model and capital asset pricing model (CAPM).
  • The Gordon model calculates the cost of equity based on the anticipated cash flows paid to the shareholders of the firm
  • The capital asset pricing model (CAPM) uses the correlation between firm’s equity return and a broad market portfolio.
  1. Cost of debt rD, the anticipated future cost of the firm’s borrowing.
  • The cost of debt rD is computed dividing current net interestpayments by average net debt
  • Alternatively, it can be obtained from an yield curve

Equity, E

For a public company E equals its market cap:

from pyfinmod.financials import Financials
parser = Financials("AAPL")
parser.mktCap

Debt, D

A sum of Long-term debt and Short-term debt

from pyfinmod.financials import Financials
from pyfinmod.wacc import total_debt
parser = Financials("AAPL")
total_debt(parser.balance_sheet_statement)

Tax Rate

The Income tax expense and Income before taxes can be found in the income statement. The tax rate is equal to the quotient of the two:

from pyfinmod.financials import Financials
from pyfinmod.wacc import tax_rate

parser = Financials("AAPL")
tax_rate(parser.income_statement)

Cost of Debt

I’ll cover basic calculation which uses interest paid value from the income statement and debt taken from the balance sheet

from pyfinmod.financials import Financials
from pyfinmod.wacc import cost_of_debt
parser = Financials("AAPL")
cost_of_debt(parser.balance_sheet_statement, parser.income_statement)

Cost of equity

The most widely used approach is the CAMP model. The classic CAPM formula uses a security market line (SML) equation that ignores taxes:

\[r_e = r_f + \beta[E(r_m) - r_f]\]

rF equal to the risk-free interest rate in the economy (for example, the yield on Treasury bills) E(rM) equal to the historic average of the market return, defined as the average return of a broad-based market portfolio

The beta value can be easily accessed from the finance summary. So the cost of equity can be calculated as follows

from pyfinmod.financials import Financials
from pyfinmod.wacc import cost_of_equity
parser = Financials("AAPL")
cost_of_equity(parser.beta, risk_free_interest_rate = 0.02, market_return = 0.08)

Calculate WACC

from pyfinmod.financials import Financials
parser = Financials("AAPL")
from pyfinmod.wacc import wacc
aapl_wacc = wacc(parser.mktCap,
                 parser.balance_sheet_statement,
                 parser.income_statement,
                 parser.beta,
                 risk_free_interest_rate=0.02,
                 market_return=0.08)

DCF

So now we have historical free cash flows and WACC and we need to project them into the future. But to what extent? Let’s assume 2 growth factors:

  • optimistic short term (year 1-5)
  • pessimistic long term

Then we take the latest known FCF value and project it by incrementing with short term growth rate until year 5. The rest will be represented by terminal value - FCF at year 5 multiplied by pessimistic growth rate and discounted by WACC.

from pyfinmod.ev import dcf, fcf
from pyfinmod.financials import Financials
parser = Financials("AAPL")
dcf(fcf(parser.cash_flow_statement), aapl_wacc, short_term_growth=0.08, long_term_growth=0.04)