Free Cash Flow

This is post three of my Crunching Numbers in APL series. I’m returning to my database of the top twenty stocks in the Standard and Poor’s 500.

      sp20[;1 2 3 4 7]
 Symbol Name                        Price    Div $    FCF
 WMT    Walmart                    142.09     2.28 ¯10929
 AMZN   Amazon                      95.82     0     ¯1112
 AAPL   Apple                      149.4      0.92  ¯2343
 CVS    CVS Health                  86.04     2.42   2832
 UNH    UnitedHealth Group         488.17     6.6    8651
 XOM    Exxon Mobil                110.74     3.64  28024
 BRK-B  Berkshire Hathaway         300.69     0         0
 GOOG   Alphabet                    91.07     0         0
 MCK    McKesson                   360.33     2.16      0
 ABC    AmerisourceBergen          159.5      1.94      0
 COST   Costco Wholesale           493.14     3.6       0
 CI     Cigna                      295.65     4.92      0
 T      AT&T                        19.25     1.11      0
 MSFT   Microsoft                  254.77     2.72      0
 CAH    Cardinal Health             77.7      1.98      0
 CVX    Chevron                    161.93     6.04      0
 HD     Home Depot                 299.31     8.36      0
 WBA    Walgreens Boots Alliance    36.21     1.92      0
 MPC    Marathon Petroleum         125.52     3         0
 ELV    Elevance Health            486.12     5.92      0
 KR     Kroger                      43.91     1.04      0
 F      Ford Motor                  12.07     0.6       0
VZ     Verizon Communications      38.53     2.61      0

You’ll note I’ve added a column with some data. FCF is Free Cash Flow. I’m using my own definition. I hope that it will act as sieve to highlight stocks which deserve a closer look.

First I’d like to discuss databases. Chapter 11 of Crunching Numbers in APL applies the principles of database design to APL variables. We’re not to that point. We’re still in discovery mode.

I set up a workspace for my research into companies that do not pay dividends it includes the table sp20 shown above. As I’ve done calculations I’ve tried to save those calculations and the workspace as I played with Free Cash Flow. Here is where I stand:

      )vars
aapl_free_cash      amzn_free_cash  cvs_free_cash   date∆US
date∆cal            date∆dates      date∆delim      date∆time∆M
date∆time∆delim     date∆time∆utce  date∆tz         final_vym
free_cash           g_data          g_return        goog
goog_covar          goog_free_cash  goog_hist       goog_variance
s_data              s_return        sp20            sp500
sp500_df            tmp             unh_free_cash   v_divs
v_lillian           vd_lillian      voo             vym
vym2                vym_div         vym_hist        wmt_free_cash
xom_free_cash

All the variables that begin date∆ belong the to the date workspace in library 3 DALY and I’ll ignore them. The variables sp500..., goog..., and vym... were used for last week’s post on zero dividend. The variables that end free_cash are for today’s column.

APL’s workspace concept allows us this luxury. As I explore a subject I can save my work in variables. They just exist and don’t get in the way once I move on to something else.

For this project I created the variable free_cash and the function calc_free_cash.

      free_cash
 Cash from operations       0
 Interest                   0
                      -------
 Adj Cash from ops          0
 Capital exp                0
 Dividends paid             0
 Debt serv                  0
 Stock repurchases          0
                       ------
 Free cash                  0
                      =======
 Debt service
 Interest                   0
 Debt repayment             0
 other                      0
                      -------
                            0

      rs←calc_free_cash fc
[001] ⍝ Function calculate free cash flow from a free_cash
[002] ⍝ workpaper and returns a free_cash workpaper with
[003] ⍝ those results.
[004] rs←fc
[005] rs[4;2]←+/rs[1 2;2]
[006] rs[13;2]←-rs[2;2]
[007] rs[7;2]←rs[17;2]←+/rs[13 14 15;2]
[008] rs[10;2]←+/rs[4 5 6 7 8;2]

My idea is a measure of the cash available from the operations that can be used to grow the company. Today’s Wall Street Journal has an article on evaluating companies that pay dividends. It recommends ignoring the amount of the dividend and instead focusing on cash flow.

The financial statements have five basic statements:

Balance Sheet Income Statement Comprehensive Income Stockholder’s Equity Cash flow

My free cash flow calculation pulls amounts from that last statement, Cash flow. Its worth looking the statement as whole. First it reconciles net income to cash from operations. That reconciliation includes items used to calculate net income which do not use or provide cash, depreciation for example. The reconciliation also includes changes in working capital that require or provide cash.

Second it shows investment activity. I get my capital expenditures from this section. I know that the company must replace plant, property and equipment as it wears out. I use this line as an estimate for future operations.

Third it shows financing activity, debt and equity transactions. Here I find the amount of dividends paid and stock repurchased. I calculate debt service as interest (from the income statement) plus debt repayment for this section of the cash flow statement.

The decision to finance the company through debt requires consideration of the payment of interest and the retirement of principle. I recognize this by adding interest to cash from operations, and including it in debt service.

Many things may be said about this approach. It is too simple. A thorough reading the financial statements and Management’s Discussion and Analysis of Financial Condition and Results of Operations might yield better estimates. In fact those estimates my be buried in the 10-K somewhere. This method is quick and dirty but I like it.

MCK, McKesson, is next on my list. I found its 10-K for the year ended March 31, 2022 at www.sec.gov and its statement of cash flow on page 74. Here is how I calculate free cash flow.

      mck_free_cash←free_cash
      mck_free_cash[1;2]←4434
      ⍝ This from the bottom of the cash flow statement
      mck_free_cash[2;2]←186
      ⍝ The total of property, plant and equipment and software
      mck_free_cash[5;2]←¯388 + ¯147
      mck_free_cash[6;2]←¯277
      ⍝ Repayment of long-term debt and debt extinguishments
      mck_free_cash[12;2]←¯1648 + ¯184
      mck_free_cash[8;2]←¯3516

      ⍞←mck_free_cash←calc_free_cash mck_free_cash
 Cash from operations    4434
 Interest                 186
                      -------
 Adj Cash from ops       4620
 Capital exp             ¯535
 Dividends paid          ¯277
 Debt serv              ¯2018
 Stock repurchases      ¯3516
                       ------
 Free cash              ¯1726
                      =======
 Debt service           ¯1832
 Interest                ¯186
 Debt repayment             0
 other                      0
                      -------
                        ¯2018

Now I’ll update my database and cross McKesson of my list.

      sp20[10;]
 MCK McKesson 360.33 2.16 21.79 263966 0
      sp20[10;7]←¯1726
      sp20[;1 2 3 4 7]
 Symbol Name                        Price    Div $    FCF
 WMT    Walmart                    142.09     2.28 ¯10929
 AMZN   Amazon                      95.82     0     ¯1112
 AAPL   Apple                      149.4      0.92  ¯2343
 CVS    CVS Health                  86.04     2.42   2832
 UNH    UnitedHealth Group         488.17     6.6    8651
 XOM    Exxon Mobil                110.74     3.64  28024
 BRK-B  Berkshire Hathaway         300.69     0         0
 GOOG   Alphabet                    91.07     0         0
 MCK    McKesson                   360.33     2.16  ¯1726
 ABC    AmerisourceBergen          159.5      1.94      0
 COST   Costco Wholesale           493.14     3.6       0
 CI     Cigna                      295.65     4.92      0
 T      AT&T                        19.25     1.11      0
 MSFT   Microsoft                  254.77     2.72      0
 CAH    Cardinal Health             77.7      1.98      0
 CVX    Chevron                    161.93     6.04      0
 HD     Home Depot                 299.31     8.36      0
 WBA    Walgreens Boots Alliance    36.21     1.92      0
 MPC    Marathon Petroleum         125.52     3         0
 ELV    Elevance Health            486.12     5.92      0
 KR     Kroger                      43.91     1.04      0
 F      Ford Motor                  12.07     0.6       0
 VZ     Verizon Communications      38.53     2.61      0
 JPM    JPMorgan Chase             139.67     4         0
 GM     General Motors              39.25     0.36      0