Super Sale WeekClaude Skills — 20% OFF
Tips

How to Create a Cash Flow Report: A Full Guide

Powerdrill Team·
How to Create a Cash Flow Report: A Full Guide

A cash flow report answers one question: how much cash came in, how much went out, and what is left. To build one, export your bank and payment transactions for a fixed period. Then classify each line as operating, investing, or financing, net them by month, and tie the closing balance to your bank statement.

The hard part is not the arithmetic. It is deciding which date counts as the date, and that decision changes every number in the report.

This guide covers what belongs in a cash flow report and the two choices you make before you start. It then covers how to build the report from an export.

What a cash flow report is, and is not

The management report you probably need is not the statement in a public company's filing.

A statutory statement of cash flows is prepared from your accounts under an accounting framework, and it reconciles to your income statement. That is your accountant's work, not a spreadsheet task.

What a team usually needs each month is narrower and more useful. It answers whether cash actually arrived, where it went, and how much runway that leaves.

Element Why it is there
Opening cash balance The report is worthless if it does not tie to a real balance
Cash in, by source Customer receipts, refunds netted, financing separated
Cash out, by category Payroll, vendors, tax, debt service
Net movement for the period The single number people came for
Closing cash balance Must match the bank statement to the cent
A stated date basis Which date each line was counted on
A stated scope Which accounts and entities are included

That last pair is what separates a report from a pile of numbers. Two people can pull the same export and disagree by thousands without either making an error.

This article covers reporting on cash that has already moved. If you need projections instead, our roundup of cash flow forecasting tools covers that category, and the tooling side is different.

Decision one: cash basis or accrual basis

Get this stated before you build anything, because the two bases answer different questions.

The IRS defines both plainly in Publication 538. Under the cash method, "you generally report income in the tax year you receive it." Expenses are deducted "in the tax year in which you pay the expenses."

The accrual method moves the timing. There, "you generally report income in the tax year you earn it, regardless of when payment is received," and expenses are deducted when incurred.

For a cash flow report, the cash basis is the natural fit. You are describing money that moved, so an invoice raised and unpaid does not belong in the total.

The trap is mixing them without noticing. Pulling receipts from the bank and expenses from your accounting system's accrual ledger produces a number that describes nothing.

Note that this is a reporting choice, not tax advice. Which method your business uses for filing is a question for your accountant.

Decision two: which date to count

This is where most cash flow reports quietly go wrong, and payment processors are the clearest example of why.

Stripe's payouts documentation separates the two events. It states that "the time when funds become available depends on your settlement timing." The bank "might take additional time to make the funds available after receiving them."

The gap can be large at the start. Stripe "typically schedules your initial payout to complete within 7–14 days" after a first live payment. It notes this "can take longer depending on your industry, country of operation, and risk level."

So one sale generates at least three candidate dates. The customer paid on one day, the processor settled on another, and the bank credited the account on a third.

A cash flow report built on the charge date will show cash you do not have yet. A report built on the bank credit date will match your balance and lag your sales.

Pick the bank credit date when the report has to tie to a balance. Pick it once, write it in the report, and use it for every line.

The same choice appears in accounts payable. A cheque written on the 30th and cleared on the 3rd belongs to different months under different rules.

What belongs in each of the three buckets

Classification is simpler than it looks once you accept that ambiguous lines exist.

Operating. Cash from customers, payments to suppliers and staff, tax paid, and interest where your policy puts it there. This is the bucket that tells you whether the business funds itself.

Investing. Purchases and sales of long-lived assets, and movements of money into or out of investments. Equipment, vehicles, and capitalised software land here.

Financing. Loan draws and repayments, equity raised, dividends and distributions paid. Money that comes from or returns to funders rather than from operations.

Two categories cause most of the arguments. Loan interest and owner drawings both have defensible homes in more than one bucket. Write your choice into the definitions tab rather than deciding again each month.

Internal transfers belong in none of them. Moving cash between your own accounts nets to zero, and counting both sides inflates gross inflow and outflow at once.

How to do it manually

Option 1: One tab per source, then a summary

Export each bank account, card, and processor separately, and keep them on their own tabs before combining.

Add a classification column and a normalised date column to each tab. Then use SUMIFS against a month-end series built with EOMONTH to roll everything into one grid.

Microsoft describes EOMONTH as returning "the serial number for the last day of the month." That makes your month boundaries explicit rather than implied by cell formatting.

The ceiling is reconciliation. Nothing here checks that your combined closing balance matches the bank, so you have to do that yourself, every month.

Option 2: Classify with a lookup table, not by hand

Build a two-column mapping table from transaction description to category, then look each line up rather than tagging rows individually.

This makes the classification auditable. When somebody asks why software renewals sat in operating, you point at the table instead of remembering.

Expect the table to miss. Leave unmatched lines visible in an "unclassified" bucket rather than defaulting them to operating, because a silent default is how errors survive.

The limit is drift. Vendor descriptions change, new suppliers appear, and the table needs maintenance the moment it stops catching things.

Option 3: A reconciliation row at the top

Put opening balance, net movement, computed closing balance, and actual bank closing balance in four adjacent cells, with a difference cell beside them.

If that difference is not zero, nothing below it is worth reading. Building the check first stops you from presenting a report you have not verified.

Our guide to reconciling transactions in a spreadsheet covers the matching side of this in more detail.

The limitation is that a zero difference proves totals, not classification. You can tie to the bank perfectly and still have payroll sitting in financing.

The shared ceiling. All three assume every source covers the identical date range on the identical date basis. Mismatched ranges across tabs is the most common silent error in this report.

Where the manual route slows down

The first cash flow report takes an afternoon. The fourth takes longer, because the inputs changed.

A new payment processor appears, so there is a fourth export with a different column layout. A card gets replaced, so the description strings shift and the lookup table starts missing rows.

Then the date basis question returns. Someone asks why the sales figure does not match the cash figure, and the honest answer needs the settlement lag explained again.

There is a fourth cost that only shows up under pressure. A board member asks what drove the movement, and the answer requires re-deriving three months of classifications you no longer remember making.

For the variance side of the same job, see our guide to building a budget versus actual report.

How to build it with Powerdrill Bloom

Step 1: Upload your bank and payment exports

Upload the bank statement export, the card export, and the processor payout export together. Powerdrill Bloom profiles the columns on arrival, so mismatched date ranges, duplicate transaction IDs, and blank amounts surface before any total is produced.

Upload bank exports to create a cash flow report in Powerdrill Bloom

Step 2: Describe the report in natural language

State the rules rather than building them. Name the date basis, the period, the three buckets, the accounts in scope, and the internal transfer pairs to eliminate.

Then ask the questions that catch the errors. Ask which lines failed to classify. Ask which transactions appear in two sources. Ask whether the computed closing balance equals the bank closing balance you supplied.

Step 3: Export the chart, report, or deck

Take out the monthly cash flow grid, a chart of net movement against closing balance, or slides that carry the date basis beside the totals.

Export the monthly cash flow grid with its reconciliation row

The AI cash flow analysis tool page covers the same job from the tool side.

Common mistakes

Mixing date bases across sources. Charge dates from the processor and credit dates from the bank cannot be added together.

Counting internal transfers. Both legs get counted, and gross inflow and outflow both inflate while net stays right.

Defaulting unclassified lines to operating. The bucket that matters most quietly absorbs everything you failed to map.

Skipping the reconciliation row. A report that does not tie to the bank balance is a guess with formatting.

Presenting one month alone. Cash is lumpy, and a single month invites a conclusion that three months would contradict.

Netting refunds into a single revenue line. You lose the ability to see whether inflow fell or returns rose.

Calling it a statement of cash flows. The statutory version is prepared from your accounts under an accounting framework, and the distinction matters to anyone reading it.

Conclusion

Fix the date basis, fix the scope, classify from a table, kill the internal transfers, and put the reconciliation check above everything else. That produces a cash flow report someone can act on.

The two decisions at the front are what make it defensible. Cash or accrual, and which date counts, explain almost every disagreement about a cash figure.

State both in the report itself. A reader who can see your basis can argue with your choice, which is far better than quietly assuming a different one.

If rebuilding it every month eats a day, try Powerdrill Bloom on your own export. See also the AI report generator page.

Frequently asked questions

What is the difference between a cash flow report and a statement of cash flows?

A statement of cash flows is prepared from your accounts under an accounting framework and reconciles to the income statement. A management cash flow report describes cash that actually moved in a period, built from bank and payment exports.

Should a cash flow report use the cash basis or the accrual basis?

The cash basis fits, because the report describes money that moved. The IRS describes the cash method as reporting income when received and deducting expenses when paid, which is the same timing a cash report needs.

Which date should I use for a card payment?

Use the date the money reached your bank when the report must tie to a balance. Stripe notes that fund availability depends on settlement timing and that your bank may add further time after receiving them.

How do I handle transfers between my own accounts?

Exclude both legs. Counting them inflates total inflow and total outflow by the same amount, so the net stays correct while every gross figure is wrong.

What are the three sections of a cash flow report?

Operating covers cash from customers and payments to suppliers, staff, and tax. Investing covers long-lived assets and investments. Financing covers loans, equity, and distributions.