Cash flow statement
The cash flow statement explains why your bank balance and your profit disagree. It reconciles the cash you held at the start of a period to the cash you held at the end, and shows what every movement in between was for.
If you hold money on behalf of other people - a marketplace collecting for sellers, a payroll product holding a payrun, a savings app holding deposits - the two numbers never agree, and the gap is not an error. Collect $1,000 on a booking and keep $150 of it: your profit and loss says you earned $150, your bank says $1,000 arrived. Both are right. This report is where the other $850 shows up.
What it answers
The statement runs top to bottom as one document: opening cash, then every movement grouped into three activities, then the net change, then closing cash. The last line is the balance you can actually spend.
- Operating - money moving because the business is doing what it does. Collecting from customers, paying suppliers, settling what you owe onward.
- Investing - money spent on or returned from things you own for the long term, like equipment.
- Financing - money from or to whoever funds you. An investment round, a loan drawn down, a loan repaid.
Ledfra uses the direct method: it lists the cash movements that actually happened. The alternative, the indirect method, starts from net profit and works backwards through adjustments until it arrives at cash. Both are permitted, and the indirect method is more common in published accounts because most systems cannot see individual movements. Ledfra can see every one, so it shows you them.
Reading the report
A marketplace month, as the statement renders it. The platform collects from buyers, holds the sellers’ share until payout, and keeps a commission.
| Account | Amount |
|---|---|
| Opening cash | $412,900 |
| Operating activities | |
| Seller payables | $150,000 |
| Commission income | $186,000 |
| Payment processing fees | −$38,600 |
| Salaries | −$120,000 |
| Marketing | −$24,000 |
| Net cash from operating activities | $153,400 |
| Investing activities | |
| Equipment | −$18,000 |
| Net cash used in investing activities | −$18,000 |
| Financing activities | |
| Term loan | −$25,000 |
| Net cash used in financing activities | −$25,000 |
| Net change in cash | $110,400 |
| Closing cash | $523,300 |
The bank balance grew by $110,400 this month. The profit and loss for the same month reports a profit of $3,400: commission of $186,000 less $38,600 of processing fees, $120,000 of salaries and $24,000 of marketing. Nothing else on this statement is income or expense.
Those two numbers are thirty times apart, and both are correct. The statement above accounts for every dollar between them:
- +$150,000 of seller money. The platform collected $1,240,000 for sellers and paid out $1,090,000, so it is sitting on $150,000 more of other people’s money than it was a month ago. That is cash in the bank and a liability on the balance sheet, never revenue. It is also the single most common way a platform mistakes itself for profitable.
- −$18,000 on equipment. Cash left the building, but buying an asset is not an expense, so the P&L never sees it.
- −$25,000 repaying a loan. Repaying principal reduces what you owe. It is not a cost of doing business, so it does not touch profit either.
$3,400 of profit, plus $150,000 held for sellers, less $18,000 of equipment and $25,000 of loan repayment, is $110,400. That is the whole reconciliation, and it is the question this report exists to answer: we earned this much and the bank moved by that much, so where is the difference?
Cash is attributed to what it moved against
Every line on this report names a counterparty account, never a bank account. That is deliberate: your bank is where the money is, and the question the report answers is what it was for.
One $1,000 booking, paid by card, splits across two lines. $850 lands against the payable you owe the seller and $150 against your commission income, because that is what the money was collected for. A report that simply said “Stripe +$1,000” would tell you nothing you did not already know from your bank.
When a movement touches several accounts at once, the cash is split across them in proportion to their amounts, to the cent. Nothing is rounded away and nothing is invented.
The two settings the statement reads
Ledfra cannot work either of these out from your chart of accounts, so this statement is the one report that is only as right as two switches you set yourself. Both live in the chart of accounts.
- Holds cash, on an asset account, says the account is a real balance rather than a claim. Your bank and your payment processor balances carry it. Opening and closing cash on this report are the sum of the accounts that do.
- Cash flow activity, on a category, says which section everything under it belongs to. Four of the five top-level categories default to operating and equity defaults to financing, which is right until you hold debt or own something long-term. Those two are yours to classify.
How to design your ledger covers both decisions where you actually make them: which accounts to mark, which categories to classify, how inheritance works, and what reclassifying a branch does to periods you have already reported.
It reconciles, and says so
At the top of the report, two figures sit side by side: the movements added up, and the change in your cash balances. They are worked out independently - one from the movements, one from the balances at each end - so when they agree, that agreement means something.
When they disagree the report says so plainly rather than quietly showing you a number. That is the same posture as the trial balance, which proves debits equal credits rather than asking you to take it on faith.
- It reports history, not a forecast. This is a statement of a period that has already happened. Ledfra does not project cash forward and has no runway or planning features.
- Direct method only. If your accountant needs the indirect presentation for a filing, they will need to prepare it from these figures.
- It depends on the flags you set. The report is only as right as your cash accounts and category classifications. Nothing else in Ledfra depends on them, so a mistake here is invisible until you read this page.
- It is available in the app, not the API. The public REST API covers ledgers, accounts, account balances, and transactions. There is no cash flow endpoint yet.
- One statement per currency. There is no consolidation across ledgers, and a ledger holding accounts in two currencies produces a statement for each rather than one blended total, because there is no exchange rate to blend them with.
Where to go next
- Profit & loss - what you earned in the period, which this report exists to reconcile against.
- Balance sheet - where you stand at one instant. Its cash figure is the closing line here.
- Chart of accounts - how to structure the accounts this report reads, including why held money is a liability.
- What is Ledfra? - how the ledger underneath all of these works.