An AI tool can produce an integrated three-statement model faster than anyone can type the history, and the result usually looks finished: coloured inputs, tidy schedules, a balance check reading zero. The errors that matter are the ones that survive that look. A historical line that is wrong while its subtotal is right, a forecast cell that holds a number instead of a formula, a debt balance that never moves, a balance sheet closed by a plug. None of them shows on the screen. They show only when the model is tied to its source and pushed. What follows is the audit in the order that finds them fastest, with a pass standard for each step, written for a model you did not build and whose intent you cannot assume.
Reviewing a model you built yourself before it goes out? The four-layer review is the better fit
What you will build
- A tie-out of every historical line to the filing, with the page it came from
- A map of every hardcoded number in a forecast cell, each fixed or justified
- A flex test that proves each key assumption moves the outputs the right way
- A verdict on debt, interest, circularity and the diluted share count
Contents · 8 steps
Step 1 of 8
Start from the filing, line by line
Open the 10-K or annual report beside the model and tie every historical line, not every subtotal. A tool that misreads a filing tends to misallocate between lines rather than invent a total, so the subtotals still agree and a reviewer who checks only revenue, operating profit and net income passes a history that is wrong underneath.
An invented example shows why it matters. The filing reports SG&A of 210 and R&D of 90; the model shows 230 and 70. Operating profit is 180 either way. Forecast SG&A at 3% growth and R&D at 15%, and the model’s operating costs come out 2.4 lower than the filing’s in the first forecast year, a gap that compounds because the faster-growing line started too small.
Record the source of each historical line in a comment or a sources column: the document, the page and the period. Watch for the usual traps: a restated prior year, where the latest filing’s comparative column replaces the original; a fiscal year that does not end in December; figures in thousands mixed with figures in millions; and a non-GAAP measure such as adjusted EBITDA taken from a results release and labelled as if it were reported.
Pass standard: every historical cell matches the filing to the unit, each with a stated source, and any restatement is noted.
Step 2 of 8
Trace every input to a source or a stated judgement
List every assumption the forecast reads: growth rates, margins, working-capital days, capex, the tax rate, the interest rate, the payout. For each, ask where it came from. Acceptable answers are a historical average the model calculates, a consensus figure with its date, management guidance with the document it appeared in, or a judgement labelled as one. An unsourced input is treated as a judgement until someone owns it.
Check that each input lives in one place. An AI-built model often restates the same assumption on two sheets, and the copy on the second sheet is the one the formulas read. Change the visible input and see whether anything moves; if nothing does, find the cell the formulas actually use.
Pass standard: one cell per assumption, each with a source or a label, and every forecast formula reading that cell.
Step 3 of 8
Hunt the hardcodes
Show formulas (Ctrl+` in Excel) and scan each forecast row. A number where a formula should be is among the commonest defects in a model a tool built, and the most dangerous, because it is right today and wrong after the first change. Look for three kinds: a whole cell typed in, a constant buried inside a formula such as =B12*1.05 where the 5% belongs on the inputs sheet, and a formula that breaks the pattern of its row in one year.
Go To Special, set to constants, selects every typed number on a sheet at once; on a calculation sheet the selection should be empty or explainable. Then read across each row: the formula in the first forecast year should be the formula in the last, with only the column moving.
Pass standard: no typed number on a calculation sheet, no constant inside a forecast formula, and every exception to a row’s pattern explained.
Step 4 of 8
Flex each key assumption and predict the result first
This is the step that separates a model that looks right from one that is right. Change one assumption at a time, say revenue growth down five points, and before looking at the outputs write down what should happen: revenue, EBITDA and cash fall, debt is repaid more slowly, leverage rises and equity value falls. Then look. Every output should move, and in the direction predicted.
An invented example: opening debt of 500, an EBITDA margin of 20%, and 40% of EBITDA left to repay debt. On revenue of 1,000, closing debt is 420. Cut revenue to 800 and it should be 436, with leverage of 2.73 times. If the closing balance was typed, it still reads 420 and leverage 2.63 times; against a 2.70 times covenant the model reports headroom on a breach.
The same test catches sign errors. Raise receivables days and cash must fall. If it rises, the change in working capital is being added rather than subtracted: on net income of 100, depreciation of 30 and receivables up from 150 to 180, operating cash flow is 100, and the reversed sign reports 160.
Pass standard: each key assumption flexed, every output moving, and every movement in the predicted direction and of a plausible size.
Step 5 of 8
Make the checks prove something
A balance check reading zero proves less in a tool-built model than in one built by hand, because tools reach for plugs. Find how cash is set. On the balance sheet it should be the closing figure of the cash flow statement and nothing else. If cash, or any other line, is the balancing item, the check reads zero by construction and proves nothing.
Remove the plug and let the check fail. The size of the failure is a clue: an amount equal to one year’s change in a balance points to a line missing from the cash flow statement, and twice a movement points to a sign error. Then add the checks that matter beyond the balance sheet: closing cash equal across the statements, retained earnings rolling forward by net income less dividends, every debt tranche tying to the balance sheet.
Pass standard: no balancing item anywhere, every check at zero in every year and every case, and each check able to fail.
Step 6 of 8
Debt, interest and the circular reference
Follow each tranche from its opening balance through drawings, mandatory repayment and any sweep to its closing balance, and confirm the closing balance is a formula of those movements. Then follow interest: it should be a rate times a balance from the debt schedule, and interest income a rate times cash. A flat or typed interest line means financing and operations are not integrated at all.
Then decide whether the model is circular, and whether it should be. Interest on average balances depends on the closing balance, which depends on cash after interest. On invented figures (opening debt of 500 at 8% and 120 of cash before interest to repay it, ignoring tax), interest on the opening balance is 40.00 and closing debt 420.00; on the average balance, solved by iteration, interest is 36.67 and closing debt 416.67.
Both are defensible if stated. Average-balance interest needs iterative calculation enabled and a circuit breaker: a switch cell that, when set, replaces the average with the opening balance so an error in the loop can be cleared. Opening-balance interest gives up a small timing difference for a model that calculates without iteration. The audit fails only a model that has neither, or a loop nobody can switch off.
Pass standard: every balance and interest line a formula of the schedule, the convention stated, and any circularity behind a working switch.
Step 8 of 8
Formatting, units and signs
Formatting is not decoration in a model someone else will read. Inputs in one colour and formulas in another let a reviewer see at a glance which cells a person chose, and in a tool-built model the colours are often applied by appearance rather than by content. Spot-check a dozen input-coloured cells for formulas and a dozen formula-coloured cells for constants.
Then units and signs. Every row should state its unit, and a sheet should not mix thousands with millions. Pick one sign convention for costs and cash outflows and confirm the model keeps it, because a subtraction written for one convention and applied to the other doubles a line instead of removing it. Check the period labels too: a forecast headed by calendar years for a company with a September year end is a timing error waiting to be quoted.
Pass standard: colours that mean what they say, one unit per row and one sign convention across the model, and periods that match the company’s fiscal year.
Write down what you found
An audit is worth what it leaves behind. Keep a short log beside the model: each step, what was checked, what was found, what was fixed and what remains a judgement. It is the record that lets the next reader, or you in a month, trust the model without repeating the work, and it is the answer when someone asks how you know a figure is right.
The fastest way to get quick at this is to audit a model whose answers you already know. Build the schedules of a starter workbook yourself, then run every step above on your own work: tie the history, flex the drivers, break the balance check on purpose and watch where it fails.
Next
Audit a model whose answers you know.
Download a three-statement model with six mistakes of the kind an AI tool makes, and find them with the steps on this page. Each one either breaks a check or shows only when an assumption changes.
What the download contains. The worked integrated three-statement model is an Excel file: 11 sheets (Cover, Assumptions, Income Statement, Balance Sheet, Cash Flow, Working Capital, PP&E, Debt, Equity, Operating Leverage, Checks), 779 live formulas and every check reading zero, so a changed input moves the whole model. The starter workbook is the same file with the debt schedule left blank for you to build.
Every starter workbook downloads with a free L3VLUP account. A worked model downloads with L3VLUP Plus (one each billing month, kept for good) or L3VLUP Pro (every model).
Build the integrated three-statement model yourself
A free account downloads the starter workbook: the same model with the schedules this guide describes left blank, to fill in and check against the worked version online. One email, no password.
- Practise: Try Three-Statement Linker (8 min, free)
- Model: Discounted cash flow model
Frequently asked questions
Can I trust historical figures an AI tool pulled from a filing?
Not without tying them line by line. The characteristic error is a misallocation between lines that leaves the subtotals right, so checking revenue, operating profit and net income is not enough. Give the tool the filing itself rather than asking it to find one, and record the page each figure came from.
Should an integrated model have a circular reference?
It may. Interest on average balances is more accurate and makes the model circular, so it needs iterative calculation and a circuit breaker. Interest on opening balances avoids the loop at the cost of a small timing difference. Either is defensible if it is stated; interest typed in as a number is not.
What is the quickest test of whether a model is really integrated?
Change one assumption and predict the result before you look. Cut revenue growth and cash, debt repayment, leverage and value should all move, in the directions you predicted. A debt balance or an interest line that does not move was never calculated.
Why does a balance check reading zero not prove the model is right?
Because a plug can make it read zero. If cash or any other line is set as the balancing item, the check passes by construction. Remove the plug, let the check fail, and use the size of the failure to find the missing or reversed line.




