Analyzing Warren Buffett Cash Level

Warren Buffett the sage

It’s always interesting to understand investment gurus’ thought process. And one of the ways is to look at their companies’ balance sheet.

Warren Buffett, the Sage & CEO of Berkshire, in recent decade has always been known to hoard cash. And before the 2008 crisis, he held cash level of 40-50% relative to its equity - probably trying to stay out of the overvalued market and waiting for the right opportunity to swoop in for a ‘BIG CATCH’. And his efforts (or no effort) paid off. He made huge bets on companies like Goldman Sachs when prices are really depressed. And he was rewarded handsomely.

At the moment, his cash level ratios for both cash/equity & cash/asset are on the low side - suggesting that the markets aren’t overvalued. And he’s willing to stay invested in the market.

That being said, there’re few factors in play,

  • As your assets grows, it may be really hard to maintain a high proportion of cash since opportunity of holding cash is really high!
  • Types of business will affect your appetite to hold cash. Insurance business, for instance requires more cash for payout during disasters and calamaties.

In the near future, I will probably integrate quarterly earnings and display the charts as an interactive dashboard - hosting live on the cloud.

PS:

  • Honestly, the time series here is a bit disjointed. But I guess it still yields some useful information.
  • I painstakingly keyed in the numbers from gurufocus.com (can’t extract the numbers from the chart)
dat = read.csv("berkshire_fin_statement.csv", stringsAsFactors = F)
dat$cash_over_asset = round(100 * (dat$cash / dat$asset),1)
dat$cash_over_equity = round(100 * (dat$cash / dat$equity), 1)
library(ggplot2)
library(reshape2)
dat_long = melt(dat, id = c("year"))
dat_long = subset(dat_long, dat_long$variable == "cash_over_asset" |
                    dat_long$variable == "cash_over_equity")

ggplot(data = dat_long,
       aes(x = year, y = value, colour = variable)) +
       geom_line() + scale_x_continuous(breaks = seq(1990, 2017, 2)) +
       labs(x="Year",y="Percentage")

Related

comments powered by Disqus