Project 04Financial reporting
Cash Flow
StatementAn indirect-method statement of cash flows built from two balance sheets, an income statement and six notes, with every derived figure worked and every tie-out checked.
The cash flow statement is the one statement nobody records. It is derived: the change in every balance-sheet line has to be explained as cash in, cash out, or no cash at all. This builder does that derivation in the open. Edit any figure and the statement, the workings behind each derived number, the map of where every balance-sheet change went, and the seven tie-out checks all recompute, under IAS 7, the IFRS 18 amendments that take effect in 2027, or ASPE.
- Inputs
- Comparative balance sheets, income statement, six items of additional information (sample included; edit in place or import a CSV)
- Method
- Indirect method, with a direct-method view of operating cash flows derived from the same figures
- Policies
- IAS 7, IFRS 18 (2027) and ASPE 1540 presets; classification of interest and dividends; short-term investments as cash equivalents
- Outputs
- The statement, a cash bridge chart, workings for derived figures, balance-sheet change map, non-cash disclosure, tie-out checks, CSV export
- Sample data
- Forest City Cycle Works Inc., a fictional bicycle retailer, year ended December 31, 2025
- Privacy
- Static page, no server. Everything is computed in your browser; nothing is sent anywhere.
InputsStep 01
Forest City Cycle Works Inc.
Sample data · all figures inventedEverything the statement needs is on this screen: the balance sheet at both dates, the income statement for the year, and the handful of facts a preparer would pull from the fixed-asset register, the loan statement and the minutes. Every amount is editable. Enter negative amounts with a leading minus or in brackets.
Rows are Type,Item,Opening,Closing. Type is balance (two amounts), income or other (one amount). Items are matched by name, case-insensitively, against the lines below; unmatched items are reported and skipped. The easiest route is to download the sample, change the numbers in a spreadsheet, and import it back.
Depreciation, amortization and the loss or gain on disposal come from the income statement; interest paid, taxes paid, dividends paid, loan repayments, PPE purchases and share issues are derived from these inputs and the balance-sheet movements, and shown in the workings below.
StatementStep 02
Statement of cash flows
Indirect method. The presets set the classification of interest and dividends and the line the operating section starts from; under IAS 7 those are accounting policy choices and can be changed individually.
From net income to the change in cash
WorkingsStep 03
Where every balance-sheet change went
The discipline of the indirect method is that no balance-sheet movement is left unexplained. Each line below is either a cash flow, a non-cash item that was added back, or something disclosed rather than presented.
The accountingWhy it works this way
Why the statement is derived
Every other statement comes straight out of the ledger. The cash flow statement is reconstructed from the other two: start with accrual-basis income, strip out what didn't involve cash, and explain every other change in the balance sheet as cash that came in or went out. The proof that you have explained everything is the cash proof at the bottom: the three sections must add to the change in the cash balance, to the dollar. When they don't, a balance-sheet movement is missing or a non-cash item has been treated as cash.
Working capital: the sign rule
An increase in a current asset is a use of cash. Receivables that grew by $8,500 mean $8,500 of revenue was recognized but not collected, so it is deducted from net income. Inventory fell by $11,300, which means the company sold more than it bought, and that is cash it didn't have to spend. An increase in a current liability is a source: unearned revenue rose $1,500 because customers paid deposits on bikes not yet delivered. A decrease is a use: payables fell $5,600, so suppliers were paid down. The rule is mechanical, but the interpretation matters: in the sample, receivables grew by almost a quarter in a year, which is worth a question about collections.
Interest and taxes: add back, then show paid
Starting from net income, interest expense and tax expense are added back and then the amounts actually paid are deducted, because IAS 7 requires interest paid and income taxes paid to be disclosed separately. The paid amounts aren't on the income statement; they're derived. Interest paid is the expense adjusted for the change in interest payable ($8,900 expense, payable fell $300, so $9,200 was paid). Taxes paid is the expense less the increase in taxes payable and less the increase in the deferred tax liability, neither of which was cash this year.
The disposal
Selling equipment produces one cash flow, the proceeds, and it belongs in investing. The loss on the sale is in net income but is not a cash flow, so it is added back in operating, exactly like depreciation. Leave it in and you double-count: the $9,500 of proceeds already reflects the full economic effect of the disposal. The workings derive the loss independently from the register (cost less accumulated depreciation less proceeds) and check that it equals the income statement figure.
PPE purchases are derived, not read
The cost of PPE rose by $33,500, but that is not what was spent. Assets costing $18,000 left the register, so gross additions were $51,500. Of those, a $12,000 van was financed directly by the bank and no cash moved. IAS 7.43 excludes non-cash investing and financing transactions from the statement and requires them to be disclosed elsewhere, so the purchase line shows $39,500 and the van appears in the non-cash note. The loan roll-forward is done the same way: opening balance plus the van financing less closing balance gives the repayments, which are shown gross, as IAS 7.21 requires, rather than as a net $17,000 decrease.
Dividends: declared is not paid
Retained earnings moved by net income less dividends declared. The financing section needs dividends paid, which is the declared amount less any increase in dividends payable. In the sample, $7,500 was declared, $5,000 was still owing at year end, and $2,500 was paid.
Policy choices, and what changes in 2027
Under IAS 7 as it stands, interest paid may be classified as operating or financing, interest and dividends received as operating or investing, and dividends paid as financing or operating, provided the choice is applied consistently. Most Canadian issuers, and most textbooks, keep interest in operating and dividends paid in financing, which is what the IAS 7 preset does. IFRS 18 amends IAS 7 for annual periods beginning on or after January 1, 2027: for a company without specified main business activities such as banking or investing, my reading is that interest paid moves to financing, interest and dividends received move to investing, dividends paid stay in financing, and the indirect method starts from operating profit rather than net income. The preset applies that reading. ASPE Section 1540 removes the choice the other way: interest paid, interest received and dividends received are operating; dividends charged to retained earnings are financing.
Cash equivalents
Whether the short-term investments are part of "cash" changes the statement. If they are cash equivalents (highly liquid, convertible to known amounts, three months or less to maturity), their movement is part of the change being explained and disappears from investing. If they are not, the $15,000 net sale is an investing inflow. The toggle above shows both, and the cash proof re-ties either way.
Direct and indirect
The direct method lists receipts from customers and payments to suppliers instead of adjusting net income. Both frameworks allow either; almost everyone uses indirect because the figures fall out of the ledger. The direct-method view in the workings is derived from the same inputs, which is a useful check: revenue adjusted for receivables and unearned revenue, less cost of sales and operating expenses adjusted for inventory, prepaids and payables, must equal cash generated from operations.
Reading the sample
Operating cash flow of $60,150 against net income of $28,350 is a conversion ratio of about 2.1x, which sounds excellent until you notice that $26,800 of the gap is depreciation, the cost of assets that will need replacing, and $11,300 is an inventory run-down that cannot be repeated indefinitely. Free cash flow after $39,500 of capital spending is $20,650, which covered the $2,500 of dividends and $18,150 of the $29,000 loan repayment. The rest of the repayment, the $15,000 long-term investment and a $13,650 increase in cash were funded by the $15,000 share issue, $15,000 of short-term investments sold and $9,500 from the equipment sale. A profitable, cash-generative year in which the company shifted its funding from debt toward equity.
How it's builtNotes
One self-contained HTML file, no libraries. The inputs are a fixed chart of accounts so that every line has a known treatment; amounts are carried in integer cents and every subtotal is recomputed from the inputs on each change. The statement logic was first written as an independent Python model with assertions for every tie-out (balanced balance sheets, roll-forwards of accumulated depreciation and retained earnings, the disposal, the cash proof, and the direct-method agreement) under each preset, and the browser implementation is tested against that model's output. The bridge chart is hand-drawn SVG with a hover tooltip.
- Stack
- HTML, CSS, vanilla JavaScript, inline SVG
- Dependencies
- None (fonts from Google Fonts)
- Data handling
- Entirely client-side; nothing leaves the page
- Standards
- IAS 7 Statement of Cash Flows; IFRS 18 Presentation and Disclosure in Financial Statements (consequential amendments to IAS 7); ASPE Section 1540 Cash Flow Statement
- Sample
- Forest City Cycle Works Inc., a fictional company. All figures are invented and chosen so that every roll-forward ties.