Analyzing Cash Flow Statements

Understand real cash movement across operating, investing, and financing activities.

25 min read
Beginner

Introduction to the Cash Flow Statement

The cash flow statement tells the story of how cash actually moves through a business over a period of time.

It steps in where the income statement and balance sheet leave off and answers a question every investor eventually asks:

Is this business really generating cash?

A company can look profitable on paper and still feel tight on money. That’s because profits don’t pay the bills – cash does. Salaries, suppliers, interest payments, and dividends all demand real cash, not accounting earnings.

This is why many long-term investors quietly trust the cash flow statement the most. Cash is harder to manipulate, harder to delay, and harder to explain away. It reflects what actually happened, not just how it was reported.

In this lesson, we’ll walk through a simplified cash flow statement for Kekkei Company Ltd. Using Python, we’ll connect each line back to real business activity and link it directly to the income statement and balance sheet you’ve already learned.

The Structure of a Cash Flow Statement

Every cash flow statement is organized around three simple questions, grouped into three sections:

  • Cash Flow from Operating Activities – Is the core business producing cash?
  • Cash Flow from Investing Activities – Where is the company putting its money?
  • Cash Flow from Financing Activities – How is the business funded, and who is getting paid?

Together, these sections explain why the company’s cash balance changed over the period.

Unlike the income statement, which follows accounting rules, the cash flow statement tracks actual cash movement.

And unlike the balance sheet, which captures a single moment in time, the cash flow statement explains what changed and why.

How Cash Flow Is Calculated: Indirect vs Direct Method

There are two ways companies can present cash flow from operating activities:

  • The direct method lists actual cash received from customers and cash paid to suppliers.
  • The indirect method starts with net income and adjusts it to reflect cash reality.
If a cash flow statement starts with net income, you’re looking at the indirect method.

Almost all public companies use the indirect method, which is what we’ll focus on here.

This approach makes it easier to connect:

  • profits from the income statement,
  • changes from the balance sheet,
  • and real cash movement.

That connection is what makes the cash flow statement so powerful for investors.

Our Running Example: Kekkei Company Ltd.

Below is a simplified cash flow statement for Kekkei Company Ltd. for Year 3.

Just like in earlier lessons, we’ll return to this same statement repeatedly, building intuition line by line instead of treating it as a one-time calculation.

Cash Flow Statement (Kekkei Company Ltd., USD)
Item
Year 3
Cash Flow from Operating Activities-
Net Income120,000
Depreciation & Non-Cash Items60,000
Changes in Working Capital-30,000
Net Cash from Operations150,000
Cash Flow from Investing Activities-
Capital Expenditures-90,000
Net Cash Used in Investing-90,000
Cash Flow from Financing Activities-
Debt Repayment-40,000
Dividends Paid-20,000
Net Cash Used in Financing-60,000
Net Change in Cash0

Let’s bring this into Python so we can explore each section carefully and see how the pieces fit together.

python
cash_flow = {
    "operating": {
        "net_income": 120_000,
        "depreciation": 60_000,
        "working_capital_change": -30_000
    },
    "investing": {
        "capital_expenditures": -90_000
    },
    "financing": {
        "debt_repayment": -40_000,
        "dividends_paid": -20_000
    }
}

cash_flow

Operating Cash Flow: Cash from the Core Business

Cash flow from operating activities shows how much cash the business generates from doing what it exists to do – selling products or services.

Because accounting profits include estimates and timing assumptions, the cash flow statement starts with net income and then adjusts it to reflect reality.

In formula form:

Operating Cash Flow=Net Income+Non-Cash Expenses±Working Capital Changes\text{Operating Cash Flow} = \text{Net Income} + \text{Non-Cash Expenses} \pm \text{Working Capital Changes}
python
operating_cash_flow = (
    cash_flow["operating"]["net_income"]
    + cash_flow["operating"]["depreciation"]
    + cash_flow["operating"]["working_capital_change"]
)

operating_cash_flow

Strong operating cash flow is reassuring. It tells you that profits are not just accounting entries – they are turning into usable money.

Weak or negative operating cash flow, especially when profits look healthy, is often an early warning sign.

Non-Cash Items and Working Capital

Not every expense reduces cash immediately.

Depreciation lowers reported profit, but no cash leaves the business during the period. That’s why it gets added back.

Working capital changes capture timing effects in everyday operations:

  • customers paying later,
  • inventory building up,
  • suppliers being paid sooner.
python
cash_flow["operating"]["working_capital_change"]

Here, $30,000 of cash is tied up in running the business.

For growing companies, this is often normal. But when working capital consistently absorbs cash, it can quietly strain even profitable businesses.

Investing Cash Flow: Building for the Future

Cash flow from investing activities shows how the company is positioning itself for the future.

Most of the time, this section is dominated by capital expenditures – spending on equipment, infrastructure, software, or technology.

python
investing_cash_flow = cash_flow["investing"]["capital_expenditures"]
investing_cash_flow

Negative investing cash flow is not automatically bad. In fact, it’s often exactly what you want to see.

The real question is whether today’s spending will lead to stronger cash generation tomorrow.

Financing Cash Flow: Capital Decisions in Action

Financing cash flow shows how the business funds itself and how it returns money to capital providers.

This includes borrowing, repaying debt, issuing equity, or paying dividends.

python
financing_cash_flow = (
    cash_flow["financing"]["debt_repayment"]
    + cash_flow["financing"]["dividends_paid"]
)

financing_cash_flow

Here, Kekkei Company Ltd. is sending cash back to lenders and shareholders rather than raising new money.

That often signals confidence that the business is generating enough cash internally to stand on its own.

Net Change in Cash: Connecting the Statement

When you combine all three sections, you arrive at the net change in cash:

ΔCash=Operating+Investing+Financing\Delta \text{Cash} = \text{Operating} + \text{Investing} + \text{Financing}
python
# Operating cash of 150,000 was fully allocated:
# 90,000 went into capital expenditures and 60,000 was returned
# to lenders and shareholders, leaving net cash change = 0.

net_change_in_cash = (
    operating_cash_flow
    + investing_cash_flow
    + financing_cash_flow
)

net_change_in_cash

This number should match the change in cash on the balance sheet.

That’s why the cash flow statement is often described as the bridge between two balance sheets.

Seeing the Bridge: Cash Flow Meets the Balance Sheet

If cash increased by $0 during the year, then ending cash must equal beginning cash.

python
beginning_cash = 200_000
ending_cash = beginning_cash + net_change_in_cash

ending_cash

This reconciliation is not optional.

If the cash flow statement does not tie back to the balance sheet, something is wrong.

Free Cash Flow: What Truly Remains

Free cash flow answers a very practical question: how much cash is left after the business maintains itself?

Free Cash Flow=Operating Cash Flow−Capital Expenditures\text{Free Cash Flow} = \text{Operating Cash Flow} - \text{Capital Expenditures}
python
free_cash_flow = operating_cash_flow - abs(investing_cash_flow)
free_cash_flow

This $60,000 is flexible cash. It can reduce debt, reward shareholders, or fund new opportunities.

Businesses that generate free cash flow consistently tend to be more resilient during tough times.

Cash Conversion Ratio: Are Profits Turning Into Cash?

Profits matter – but only if they turn into cash.

The cash conversion ratio measures the quality of earnings by comparing operating cash flow to net income.

Cash Conversion Ratio=Operating Cash FlowNet Income\text{Cash Conversion Ratio} = \frac{\text{Operating Cash Flow}}{\text{Net Income}}
python
cash_conversion_ratio = operating_cash_flow / cash_flow["operating"]["net_income"]
cash_conversion_ratio

A ratio of 1.25 means the business generated 25% more cash than accounting profit.

That’s a strong signal of high-quality earnings.

As a rough guide:

  • Above 1.0 → profits are backed by cash
  • Around 1.0 → profits and cash align
  • Below 1.0 → profits may rely on timing, estimates, or working capital build-up

Sustained gaps are more important than one-year results.

Cash Flow Red Flags Investors Watch For

Experienced investors don’t just read numbers, they watch for patterns.

  • Profits rising while operating cash flow falls
  • Working capital consuming cash year after year
  • Capital expenditures consistently larger than operating cash flow
  • Dividends paid despite weak or negative free cash flow
Cash problems rarely arrive suddenly: they show up quietly in the cash flow statement first.

Bringing It All Together

The cash flow statement grounds accounting numbers in reality.

It shows whether profits become cash, whether growth is self-funded, and whether the business can absorb financial shocks.

Read alongside the income statement and balance sheet, it completes the picture – not just of performance, but of durability.

The Mental Model to Keep

The income statement tells a story about performance. The balance sheet shows position. The cash flow statement tells the truth in motion.