ACCT 101: Financial Statement Analysis


Session 11


Dr. Richard M. Crowley

http://rmc.link/

Front matter

Learning objectives

Diagram

  1. Learn about financial statement analysis
  2. Calculate and interpret financial ratios

Financial statement analysis

What matters?

  1. The business environment
    • Economy health
    • Other countries (particularly for multinational firms)
    • Industry demand
    • Resource scarcity or supplier concentration
    • Consumer concentration

What matters?

  1. Historical financials
    • Financial statements and notes
    • Competitors statements


https://rmc.link/101class11-1

What matters?

  1. Historical non-financials
    • Governance, Risk disclosures, Audit report
    • Shareholders, supplier relationships

Predicting firm value

  1. Trend analysis (a.k.a. Horizontal analysis)
    • Compare dollar and percent changes across years
  2. Common size financial statements (a.k.a. Vertical analysis)
    • Compare financials across years or firms
    • A subset of ratio analysis
  3. Ratio analysis
  4. Analytics

Only ratio analysis is on the final – we’ll cover the others briefly.

Trend analysis

What is it?

  • Comparing different years or quarters of data to see the trend in measures.
  • Examples:
    • Revenue grew by 3% this year
    • Net income grew by 4% this quarter
    • Quarterly revenue decreased 2% year over year

Examples

That is a reflection of a strong quarter: Nike reported earnings of 68 cents a share, beating analysts’ estimates by 15 cents, and grew revenue by 7%.

The plans emerged as the Shenzhen-based company said its fourth-quarter revenue grew 51% year over year to 66.4 billion yuan ($10.2 billion), boosted by strong growth in mobile payments, digital content subscriptions and advertising on its flagship mobile social apps, WeChat and QQ.

How to do it

  1. Get 2 financial statements from the same company (typically the income statement)
  2. Find the percentage change from the old figures to the new figures

Common-size financial statements

What is it?

  • Standardizing figures in a financial statement by dividing by another figure.
  • Allows for comparing financial statements across companies
  • Ex.:
    • Divide an income statement by revenue
      • \(\frac{Gross\ profit}{Revenue}=Gross\ Margin\)
      • \(\frac{Net\ income}{Revenue}=Profit\ Margin\)
    • Divide financial statements by total assets

Examples

Fourteen of the last 15 packaged food makers to [report] earnings posted lower-than-expected gross margins, said J.P. Morgan analyst Ken Goldman.

The company is forecasting an 8% global profit margin by about 2022, a number that would put it closer to better-performing peers, including GM. Ford’s 5% operating margin last year was disappointing…

How to do it

  1. Get a financial statement
  2. Divide every number by the same amount (sales, total assets, etc.) to get the percent (of sales, of assets, etc.)

We can compare accross companies or years

Balance sheet ratios

What is ratio analysis?

  • Using various ratios of numbers from financial statements to better understand companies

All examples use the following data

Caveats

  1. There are a few differences between the ratios in these slides and in the book. These differences are due to simplifications I have made – you can use these ratios on the final instead of the book’s ratios without penalty.
  2. Some ratios have many definitions. If you look online, you may find other definitions for some of these ratios. Don’t use those on the final.

Inventory turnover

\[ \frac{COGS}{\frac{1}{2}\left(Inventory_T + Inventory_{T-1}\right)} \]

  • How many times per year a company sells its inventory on hand
  • A similar measure is Inventory resident period
    • A.k.a. Number of days’ sales in inventory
    • Calculated as \(\frac{365}{Inventory\ turnover}\)
    • The number of days it take to sell the company’s inventory

Microsoft’s 2017 inv. turnover: \(\frac{34,261}{\frac{1}{2}\left(2,181 + 2,251\right)} = 15.46\)

Microsoft’s 2017 inv. period: \(\frac{365}{15.46}=23.6\ days\)

Accounts receivable turnover

\[ \frac{Revenue}{\frac{1}{2}\left(A/R_T + A/R_{T-1}\right)} \]

  • How many times per year a company collects its A/R on hand
  • A similar measure is Receivable collection period
    • A.k.a. Number of days’ sales in receivables
    • Calculated as \(\frac{365}{Accounts\ receivable\ turnover}\)
    • The number of days it take to collect the company’s A/R

Microsoft’s 2017 A/R turnover: \(\frac{89,950}{\frac{1}{2}\left(19,792 + 18,277\right)} = 4.73\)

Microsoft’s 2017 A/R period: \(\frac{365}{4.73}=77.2\ days\)

Payable turnover

\[ \frac{COGS}{\frac{1}{2}\left(A/P_T + A/P_{T-1}\right)} \]

  • How many times per year a company pays its A/P it owes
  • A similar measure is Payable outstanding period
    • Calculated as \(\frac{365}{Payable\ turnover}\)
    • The number of days it take to pay the company’s A/P

Microsoft’s 2017 A/P turnover: \(\frac{34,261}{\frac{1}{2}\left(7,390 + 6,898\right)} = 4.80\)

Microsoft’s 2017 A/P period: \(\frac{365}{4.80}=76.1\ days\)

Cash conversion cycle

\[ \begin{equation*} \frac{365}{Inventory\ turnover} + \frac{365}{A/R\ turnover} - \frac{365}{A/P\ turnover}\\ \Updownarrow\\ \scriptstyle Receivable\ collection\ period + Inventory\ resident\ period - Payable\ outstanding\ period \end{equation*} \]

  • Measures how long it takes from paying payables to receiving cash for a sale
  • Can calculate from turnover ratios or periods

An image of

Microsoft’s 2017 cash conversion cycle: \(23.6 + 77.2 - 76.1 = 24.7\ days\)

Asset turnover

\[ \text{Asset turnover} = \frac{Net~revenue}{\frac{1}{2}\left(Assets_T + Assets_{T-1}\right)} \]

  • Measures sales volume in relation to asset base

Microsoft’s 2017 asset turnover: \(\frac{89,950}{\frac{1}{2}\left(241,086+193,468)\right)}=41.4\%\)

Current ratio

\[ \frac{Current\ assets}{Current\ liabilities} \]

  • Measures a company’s ability to pay current liabilities
  • This should usually be \(>2\)

Microsoft’s 2017 current ratio: \(\frac{159,851}{64,527}=2.48\)

Quick ratio

\[ \frac{Cash + Short\ term\ investments + A/R}{Current\ liabilities} \]

  • A.k.a. acid-test ratio
  • Measures a company’s ability to pay current liabilities
    • Only factors in liquid current assets
  • This should be \(>1\)

Microsoft’s 2017 quick ratio: \(\frac{7,663 + 125,318 + 19,792}{64,527}=2.37\)

Debt ratio

\[ \frac{Total\ liabilities}{Total\ assets} \]

  • A.k.a. Debt to assets ratio
  • Measures a company’s leverage
    • Leverage = how much the company is financed by debt
  • Higher = more leverage = more debt financing

Microsoft’s 2017 debt ratio: \(\frac{168,692}{241,086}=70.0\%\)

Times-interest-earned ratio

\[ \frac{Income\ from\ operations}{Interest\ expense} \]

  • Measures a company’s ability to cover interest payments
  • Higher is better, \(<1\) should cause some worry

Microsoft’s 2017 times-interest-earned ratio: \(\frac{22,326}{2,222}=10.05\)

Practice

Calculate the following ratios for Microsoft in 2016

  • Payable outstanding period
  • Quick ratio
  • Debt ratio
  • Times-interest-earned ratio

Extra info: Microsoft’s A/P in 2015 was $6,591M

Income statement ratios

Profit Margin

\[ \frac{Profit}{Revenue} \]

  • Gross profit margin tells you about the company’s selling margins
  • Operating profit margin tells you about its operating efficiency
  • Net profit margin tells you about its overall profitability

Microsoft’s 2017 gross profit margin: \(\frac{55,689}{89,950}=61.9\%\)

Microsoft’s 2017 operating profit margin: \(\frac{22,326}{89,950}=24.8\%\)

Microsoft’s 2017 net profit margin: \(\frac{21,204}{89,950}=23.6\%\)

Return on assets (ROA)

\[ \frac{Net\ income}{\frac{1}{2}\left(Assets_T + Assets_{T-1}\right)} \]

  • Measures overall profitability based on the company’s size
  • Very common measure in practice
  • Higher is better

Microsoft’s 2017 ROA: \(\frac{21,204}{\frac{1}{2}\left(241,086+193,468)\right)}=9.76\%\)

Return on equity (ROE)

\[ \frac{Net\ income}{\frac{1}{2}\left(Equity_T + Equity_{T-1}\right)} \]

  • Measures overall profitability based on the company’s size
    • Stockholder focussed
  • Very common measure in practice
  • Higher is better

Microsoft’s 2017 ROE: \(\frac{21,204}{\frac{1}{2}\left(72,394+71,997)\right)}=29.4\%\)

Practice

Calculate the following ratios for Microsoft in 2016

  • Net profit margin
  • Return on assets (ROA)
  • Return on equity (ROE)

Extra info: Microsoft’s 2015 total assets was $176,223M and Microsoft’s 2015 total equity was $80,083M

Equity ratios

Earnings per share (EPS)

\[ \frac{Net\ income - Dividends\ on\ pref.\ shares}{\frac{1}{2}\left(\#Shares_T+\#Shares_{T-1}\right)} \]

  • Measures the amount of profit tied to each share of stock
  • Very common measure in practice
  • Assume shares in year \(T\) and \(T-1\) are the same if not stated
  • Very easily manipulated

Microsoft’s 2017 EPS: \(\frac{21,204 - 0}{\frac{1}{2}\left(7,708+7,808)\right)}=\$2.73/share\)

Price/earnings ratio (P/E ratio)

\[ \frac{Stock\ price}{EPS} \]

  • A measure of if a stock is overpriced
  • 6 to 8 is common, 20+ is common for tech firms
    • Higher = overpriced
    • Lower = underpriced
  • Very common measure in practice
  • Very easily manipulated, since EPS is easily manipulated

Microsoft’s 2017 P/E ratio: \(\frac{68.93}{2.73}=25.2\)

Practice

Calculate the following ratios for Microsoft in 2016

  • EPS
  • P/E Ratio

Extra info: Microsoft’s 2015 outstanding shares was 8,027M

Equations

Balance sheet ratio equations

\[ {\scriptsize \begin{align*} \text{Inventory turnover} &= \frac{COGS}{\frac{1}{2}\left(Inventory_T + Inventory_{T-1}\right)} \\ \text{A/R turnover} &= \frac{Revenue}{\frac{1}{2}\left(A/R_T + A/R_{T-1}\right)} \\ \text{A/P turnover} &= \frac{COGS}{\frac{1}{2}\left(A/P_T + A/P_{T-1}\right)}\\ \text{Cash conversion cyle} &= \frac{365}{Inv.\ turnover} + \frac{365}{A/R\ turnover} - \frac{365}{A/P\ turnover}\\ \text{Asset turnover} &= \frac{Net~revenue}{\frac{1}{2}\left(Assets_T + Assets_{T-1}\right)} \\ \text{Current ratio} &= \frac{Current\ assets}{Current\ liabilities} \\ \text{Quick ratio} &= \frac{Cash + Short\ term\ investments + A/R}{Current\ liabilities} \\ \text{Debt ratio} &= \frac{Total\ liabilities}{Total\ assets} \\ \text{Times-interest-earned} &= \frac{Income\ from\ operations}{Interest\ expense} \end{align*}} \]

Income statement ratio equations

\[ \scriptsize \begin{align*} \text{Gross (profit) margin} &= \frac{Gross\ profit}{Revenue} \\ \text{Operating profit margin} &= \frac{Operating\ profit}{Revenue} \\ \text{Net profit margin} &= \frac{Net\ income}{Revenue} \\ \text{Return on assets (ROA)} &= \frac{Net\ income}{\frac{1}{2}\left(Assets_T + Assets_{T-1}\right)} \\ \text{Return on equity (ROE)} &= \frac{Net\ income}{\frac{1}{2}\left(Equity_T + Equity_{T-1}\right)} \end{align*} \\ \]

Equity ratio equations

\[ \scriptsize \begin{align*} \text{Earnings per share (EPS)} &= \frac{Net\ income - Dividends\ on\ pref.\ shares}{\frac{1}{2}\left(\#Shares_T+\#Shares_{T-1}\right)} \\ \text{Price/earnings ratio (P/E)} &= \frac{Stock\ price}{EPS} \end{align*} \]

Analytics

Background

This is a quick preview of a module called “Forecasting and Forensic Analytics,” part of the Analytics major in SOA

  • You don’t need to know this for this class, but the techniques covered here are becoming more and more important

Revenue prediction

Predicting ROA for tech companies using prior year data

summary(fit)
## 
## Call:
## lm(formula = ROA ~ ROA_lag + Revenue_lag + Debt_lag + factor(gind), 
##     data = df_tech)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.4421 -0.0238  0.0107  0.0467  0.4378 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         0.004095   0.031227   0.131  0.89569    
## ROA_lag             0.469025   0.061576   7.617 6.91e-14 ***
## Revenue_lag         0.030639   0.015260   2.008  0.04498 *  
## Debt_lag            0.121253   0.040732   2.977  0.00299 ** 
## factor(gind)451020 -0.092444   0.035630  -2.595  0.00964 ** 
## factor(gind)451030 -0.035024   0.033293  -1.052  0.29310    
## factor(gind)452010 -0.138055   0.034286  -4.027 6.16e-05 ***
## factor(gind)452020 -0.077091   0.032478  -2.374  0.01784 *  
## factor(gind)452030 -0.090377   0.034553  -2.616  0.00906 ** 
## factor(gind)453010 -0.014934   0.032090  -0.465  0.64178    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1827 on 851 degrees of freedom
##   (134 observations deleted due to missingness)
## Multiple R-squared:  0.1201, Adjusted R-squared:  0.1108 
## F-statistic: 12.91 on 9 and 851 DF,  p-value: < 2.2e-16

Code: Revenue prediction

library(readr)
library(dplyr)
df <-read.csv("/media/Data/Data/Compustat/Compustat_199301-201703.csv")
df <- data.frame(df)
df_tech <- subset(df,gsector == 45 & at > 10000,
                  select=c("gvkey","datadate","at","ni","lt","revt","gind"))
df_tech <- arrange(df_tech, gvkey, datadate)
df_tech$ROA <- df_tech$ni / df_tech$at
df_tech$Revenue <- df_tech$revt / df_tech$at
df_tech$Debt <- df_tech$lt / df_tech$at
x <- c("ROA", "Revenue","Debt") # Columns to lag
df_tech <- df_tech %>%
  group_by(gvkey) %>%
  mutate_at(.cols=x, .funs=funs(lag = dplyr::lag(., n=1, default=NA)))
is.na(df_tech) <- sapply(df_tech, is.infinite)
fit <- lm(ROA ~ ROA_lag + Revenue_lag + Debt_lag + factor(gind), data=df_tech)
save(fit, file = "Data/fit.rda")
summary(fit)

Revenue prediction for Microsoft

Predict out Microsoft’s 2018 ROA

Code: Revenue prediction for Microsoft

df_ms <- subset(df,gvkey==12141, select=c("gvkey","datadate","at", "ni","lt",
                                          "revt","gind"))
df_ms2 <- data.frame(gvkey=12141, datadate=20170630, at=241086,ni=21204,
                     lt=168692,revt=89950,gind=451030)
df_ms3 <- data.frame(gvkey=12141, datadate=20180630, at=NA,ni=NA,
                     lt=NA,revt=NA,gind=451030)
df_ms <- rbind(df_ms, df_ms2, df_ms3)
df_ms$ROA <- df_ms$ni / df_ms$at
df_ms$Revenue <- df_ms$revt / df_ms$at
df_ms$Debt <- df_ms$lt / df_ms$at
x <- c("ROA", "Revenue","Debt") # Columns to lag
df_ms <- df_ms %>%
  group_by(gvkey) %>%
  mutate_at(.cols=x, .funs=funs(lag = dplyr::lag(., n=1, default=NA)))
df_ms$ROA_predicted <- predict(fit, df_ms)
df_ms$year = floor(df_ms$datadate/10000)
save(df_ms, file="Data/df_ms.rda")
suppressPackageStartupMessages(library(plotly))
m <- list(l = 60,  r = 50,  b = 60,  t = 100,  pad = 4)
plot_ly(df_ms,x=~year,y=~ROA, name='Actual ROA', type='scatter',
        mode='lines', width = 800, height = 500) %>%
  add_trace(y=~ROA_predicted, name='Predicted ROA') %>%
  layout(autosize = F, margin = m,
         xaxis=list(title="Year"), yaxis=list(title="ROA"))

Fraud detection

  • Using 3 components:
    1. Topic – what companies say in annual reports
    2. Style – writing style used in annual reports
    3. Financials – financial ratios

  • Brown, Crowley, & Elliott (2020, Journal of Accounting Research)

Text classification of what you found interesting on HW2

End matter

Wrap up

  • For next week
    1. Homework 5
      • Cash flows and financial ratios
      • Turn in by next week
    2. Next week:
      • Groups will present in order
        • Group numbers were randomly assigned initially!
      • Group project presentations
      • Email me slides by 10am of that class day
    3. Extra practice available
      • Financial ratios eLearn quiz

Packages used for these slides

  • dplyr
  • kableExtra
  • knitr
  • lda
  • LDAvis
  • plotly
  • revealjs
  • servr
  • tm