Excel · ChatGPT

How to Build a 3-Statement Financial Model in Excel with ChatGPT

Provide ChatGPT with a complete historical base period, forecast assumptions, and model conventions, then use it to draft a linked income statement, balance sheet, cash flow statement, and supporting roll-forwards. Reconcile the historical period and validate every forecast year before relying on the model.

Choose your situation — copy the prompt:
ROLE
You are helping me build an auditable 3-statement Excel model.

OBJECTIVE
Draft a fully linked Income Statement, Balance Sheet and Cash Flow Statement
(indirect method) using one historical base year and [3] forecast years.

EXCEL / MODEL CONVENTIONS
- Excel version: [Microsoft 365 / 2024 / 2021 / 2019 / 2016]
- Currency / units: [e.g. GBP £000]
- Forecast years: [e.g. FY25E–FY27E]
- Sign convention: [state whether expenses/outflows are positive or negative]
- Dividends/distributions policy: [amount / payout ratio / none]
- Minimum cash / revolver rule, if any: [describe or "none"]
- Circularity: do NOT use iterative calculation unless I explicitly ask for it.

HISTORICAL BASE YEAR — FY [year]

Income Statement:
[Revenue, COGS, operating expenses excluding D&A, D&A,
 interest expense, other income/expense, tax expense, net income]

Balance Sheet:
[Cash, Accounts Receivable, Inventory, Other Current Assets,
 Gross PP&E or Net PP&E, any accumulated depreciation if separately available,
 Other Assets, Accounts Payable, Accrued Liabilities, Other Current Liabilities,
 Current Debt, Long-Term Debt, Other Liabilities,
 Share Capital / APIC or equivalent, Retained Earnings,
 Other Equity, Total Assets, Total Liabilities, Total Equity]

Important:
- The historical Balance Sheet must already balance.
- If any listed line does not exist, write "not applicable"; do not invent it.
- If I provide Net PP&E only, do not pretend you have a full fixed-asset schedule.

FORECAST ASSUMPTIONS
- Revenue growth: [by year]
- COGS / gross-margin assumption: [by year]
- OpEx excluding D&A: [growth or % revenue]
- CapEx: [by year]
- Depreciation method: [existing asset base + new CapEx convention; useful life; timing]
- DSO / AR driver: [e.g. AR = Revenue × DSO / days in year]
- Inventory-days driver: [state whether based on COGS]
- DPO / AP driver: [state whether based on COGS]
- Drivers for Other Current Assets / Accrued Liabilities / Other Current Liabilities:
  [provide formulas/assumptions or say "hold flat"]
- Debt opening balance, repayments, new borrowing and interest rate: [by year]
- Interest convention: [beginning debt / average debt / other]
- Tax assumption: [tax rate + treatment of losses / NOLs if relevant]
- Dividends/distributions: [by year]

REQUIRED MODEL LOGIC
1. Income Statement:
   Revenue → operating profit → interest/other items → pre-tax income → tax → Net Income.
2. Retained Earnings:
   Ending RE = Beginning RE + Net Income − Dividends/Distributions
   (plus/minus any other explicitly provided RE adjustments).
3. Working capital:
   Forecast AR / Inventory / AP and every other driven WC balance on the BS.
   CFS uses period-over-period changes with the correct cash-flow sign.
4. PP&E:
   Ending Net PP&E = Beginning Net PP&E + CapEx − D&A
   only if that simplified roll-forward is consistent with the data I supplied.
5. Debt:
   Ending Debt = Beginning Debt + New Borrowing − Repayment.
   Do not let repayment exceed available debt unless I explicitly provide refinancing.
6. Interest:
   Use my stated convention. If I choose beginning debt, keep it non-circular.
7. Cash Flow Statement:
   CFO + CFI + CFF reconcile Beginning Cash to Ending Cash.
   BS Cash must link to CFS Ending Cash.
8. Balance Check:
   Total Assets − Total Liabilities − Total Equity.
   Show the check in every period and flag any non-zero amount above my rounding tolerance:
   [e.g. £1 in model units].

VALIDATION BEFORE OUTPUT
- Confirm the historical BS balances before forecasting.
- Confirm historical Net Income agrees with the IS data I supplied.
- Do not plug an unexplained number into Cash, Other Assets, Debt or Equity just to force balance.
- Do not invent missing assumptions.
- If an input is insufficient to build a valid formula, stop and list exactly what is missing.
- Distinguish assumptions from formulas and historical hardcodes.

OUTPUT
1. Assumptions section
2. Income Statement
3. Balance Sheet
4. Cash Flow Statement
5. Supporting schedules needed for working capital, PP&E and debt
6. Balance Check and cash reconciliation
7. Explicit Excel formulas using the cell layout you propose
8. A short audit checklist with at least one independent check per schedule

Use tab-separated tables suitable for pasting into Excel.

Replace all bracketed sections with your real data, then paste the prompt into ChatGPT.

My 3-statement financial model has a Balance Check that is not zero.

Balance Check shows: [e.g. −8,000 in FY25, 0 in FY24]

Here are the relevant rows from my model:
[Paste: Total Assets row, Total Liabilities + Equity row, Balance Check row,
 and the Net Income, Retained Earnings, and Ending Cash rows]

Please:
1. Recalculate the Balance Check from the rows I provide.
2. Trace whether the variance first appears in Assets, Liabilities, Equity or Cash.
3. Compare the variance with the relevant roll-forward movements, but do not assume
   a matching amount proves causation.
4. State which additional rows/cell formulas you need if the evidence is insufficient.
5. Only when the broken link is demonstrated, give the corrected formula.

Do not rebuild the entire model and do not force the Balance Check to zero with a plug.

A non-zero Balance Check means the model is not internally consistent; a broken linkage, omitted roll-forward item, or sign/formula error is a common cause.

I have a 3-statement model with [3] years of projections. I need to extend it
to [5] years.

Here are my existing projection years and assumptions:
[Paste the header row and assumption rows from your model]

New assumptions for years 4 and 5:
- Revenue growth: [e.g. 8% per year]
- CapEx: [e.g. $250,000 per year]
- Debt repayment: [e.g. same as current]
- All other assumptions: same as year 3 unless I specify otherwise

Please extend the model by two forecast years using the same row structure and
supporting schedules.

Before writing formulas:
- identify the last existing forecast column and the two new year headers
- list every schedule that must extend (working capital, PP&E, debt, interest,
  taxes, retained earnings and cash)
- flag any assumption that cannot safely be copied from Year 3

Then write the exact formulas for the two new columns, preserving relative/absolute
references correctly.

Validation:
- retained earnings roll-forward must continue
- debt cannot go below zero unless the model explicitly allows it
- BS Cash must equal CFS Ending Cash
- Balance Check must remain within the stated rounding tolerance
- do not hard-code a forecast output merely to make the model balance.

Provide the full assumption set for the new years — vague inputs produce vague projections.

Before — three statements contain numbers but no roll-forward links
ExcelHomeFormulasData
C7
fx
500000
ABC
1LineFY24FY25
2Income Statement
3Net Income£120,000£135,000
4Balance Sheet
5Cash£210,000£210,000 hardcoded
6Net PP&E£760,000£760,000 hardcoded
7Retained Earnings£500,000£500,000 hardcoded
8Cash Flow Statement
9Ending Cash£210,000not linked
ISBSCFSAssumptions
Scenario changes cannot propagate because Cash, PP&E and Retained Earnings are hardcoded instead of rolling forward from CFS / CapEx / Net Income. The example values are illustrative; the page does not contain enough underlying schedules to independently derive FY25 cash or PP&E.
After — core linkages roll through all three statements
ExcelHomeFormulasTrace Precedents
C4
fx
=B4+C2-C3
ABCD
1LineFY24FY25FY25 formula
2Net Income (IS)£120,000£135,000=IS!C18
3Dividends / Distributions£0£20,000=Assumptions!C12
4Retained Earnings (BS)£500,000£615,000=B4+C2-C3
5Net PP&E (BS)£760,000£850,000=B5+CapEx-D&A
6Ending Cash (CFS)£210,000£268,000=BeginningCash+CFO+CFI+CFF
7Cash (BS)£210,000£268,000=CFS!C30
8Balance Check£0£0=TotalAssets-(TotalLiab+Equity)
Core model logic
Retained Earnings:
Prior RE + Net Income − Dividends/Distributions

Net PP&E:
Prior Net PP&E + CapEx − D&A

Cash:
BS Cash = CFS Ending Cash

Balance Check:
Total Assets − (Total Liabilities + Equity) = 0 ✓

Net income does not simply "flow into retained earnings" if dividends/distributions exist.
Before — £8,000 cash mismatch is the demonstrated source of the imbalance
ExcelHomeFormulasTrace Precedents
C6
fx
=B6
ABCD
1LineFY24FY25Formula / source
2CFS Ending Cash£210,000£268,000CFS calculation
3BS Cash£210,000£260,000=B3 + £50,000
4Total Assets£1,800,000£1,972,000Includes BS Cash
5Total Liabilities + Equity£1,800,000£1,980,000
6Balance Check£0−£8,000Assets − L&E
Here the diagnostic is demonstrated, not guessed: Total Assets are £8,000 low and BS Cash is exactly £8,000 below CFS Ending Cash. Correcting that specific cash link raises Assets by £8,000 and closes the check.
After — BS Cash links directly to CFS Ending Cash
ExcelHomeFormulasTrace Precedents
C3
fx
=CFS!C30
ABCD
1LineFY24FY25Formula / source
2CFS Ending Cash£210,000£268,000CFS calculation
3BS Cash£210,000£268,000=CFS!C30
4Total Assets£1,800,000£1,980,000Cash corrected +£8,000
5Total Liabilities + Equity£1,800,000£1,980,000
6Balance Check£0£0=C4-C5
Targeted fix
Broken FY25 BS Cash: £260,000
CFS Ending Cash:       £268,000
Difference:             £8,000

Correct BS Cash formula:
=CFS!C30

Total Assets rise from £1,972,000 to £1,980,000.
Balance Check: £1,980,000 − £1,980,000 = £0 ✓
Before — projection logic stops after Year 3
ExcelHomeFormulasData
D5
fx
=C5*(1+D2)
ABCDE
1Assumption / OutputFY25EFY26EFY27EFY28E
2Revenue Growth10%10%10%
3CapEx£200k£200k£200k
4Debt Repayment£50k£50k£50k
5Revenue£1.100m£1.210m£1.331mNo FY28 formula
6Balance Check£0£0£0
Extending only the Revenue row is not enough: assumptions, debt, CapEx, PP&E, working capital, cash and the balance check all need new linked columns.
After — Years 4 and 5 extend the same linked model logic
ExcelHomeFormulasTrace Dependents
D5
fx
=C5*(1+D2)
ABCDE
1Assumption / OutputFY27EFY28EFY29EFormula pattern
2Revenue Growth10%8%8%Years 4–5 assumption
3CapEx£200k£250k£250kNew assumption
4Debt Repayment£50k£50k£50kSame as Year 3
5Revenue£1.3310m£1.4375m£1.5525m=PriorRevenue*(1+Growth)
6Net PP&ElinkedPrior + CapEx − D&APrior + CapEx − D&ARoll-forward
7BS Cash=CFS=CFS Ending Cash=CFS Ending CashCross-statement link
8Balance Check£0£0£0Must stay zero
Extension verification
FY28 Revenue = £1.3310m × 1.08 = £1.43748m ≈ £1.4375m
FY29 Revenue = £1.43748m × 1.08 = £1.5524784m ≈ £1.5525m ✓

But the extension is only valid if every linked schedule also continues:
working capital, debt, interest, CapEx, D&A, PP&E, cash and retained earnings.

Balance Check must remain £0 in every added year.
Four common linkage breaks to investigate when the balance sheet does not balance
Missing RE link
Retained Earnings roll-forward omits Net Income or dividends/distributions → equity is wrong
High risk
Cash link broken
BS Cash ≠ CFS Ending Cash → hardcoded / broken link instead of =CFS ending cash
High risk
CapEx not on BS
CFS shows CapEx outflow but PP&E not increased on BS
Easy fix
D&A lumped in OpEx
D&A should be separately traceable — it is an IS expense, a non-cash CFS add-back, and reduces the PP&E carrying amount / increases accumulated depreciation when that schedule is modelled
Invisible

Build a linked 3-statement model step by step

Build a 3-statement model with ChatGPT — 5 steps
1

Separate D&A from other OpEx

Keep D&A separately traceable from cash operating expenses. It is an income-statement expense and a non-cash add-back on the indirect CFS; the fixed-asset schedule must also reflect depreciation in PP&E / accumulated depreciation where applicable.

2

Prepare a complete historical balance sheet

Start from a complete historical balance sheet that already balances, including all material asset, liability and equity lines—not only selected working-capital accounts. Any forecast balance driven by operations should have an explicit roll-forward or assumption and a corresponding CFS treatment where applicable.

3

State assumptions as specific numbers

Revenue grows 10% per year is usable. "Revenue will increase" is not. ChatGPT needs specific percentages, dollar amounts, and ratios to build formulas. Vague inputs produce vague models.

4

Run the prompt and check the Balance Check row first

Check the Balance Check in every historical and forecast period. It should be zero within the model's stated rounding tolerance. A non-zero amount signals inconsistency, but the variance itself does not identify the cause; trace the affected roll-forwards before changing formulas.

5

Put all assumptions on a separate tab

Keep forecast assumptions in a clearly separated assumptions area and link forecast formulas to them. Historical actuals remain hardcoded inputs; forecast outputs should be formula-driven except where an explicit forecast assumption itself is the intended hardcode.

Circular reference trap: If interest expense depends on average debt, and debt depends on cash, and cash depends on interest expense — the model loops. This workflow defaults to beginning-of-period debt for interest to avoid that circularity. Excel can support intentional iterative calculation, but only use it when the model is deliberately designed and controlled for iteration.

Build the Core 3-Statement Model

Debug model balances — 3 steps
1

Identify the variance amount

Look at the Balance Check row to see exactly how much you are off by. A variance that matches a known flow amount can point to a missing linkage, but confirm the direction and the relevant roll-forward before changing a formula.

2

Check the 4 common culprits

Review the Diagnosis Table above. Ensure Cash is driven by the CFS, CapEx increases PP&E, and D&A is properly added back.

3

Paste specific rows to ChatGPT

Use the debug prompt with the affected period plus enough supporting roll-forward rows and formulas to prove the break. Do not dump the whole workbook, but do not omit a schedule merely because you assume it is unrelated.

Check and Refine the Model

Extend projection timeline — 3 steps
1

Define the new timeframe

Define the exact additional forecast years and label the last existing forecast column before extending formulas.

2

Set explicit forward assumptions

Specify exactly what happens to growth, margins, working-capital drivers, CapEx, depreciation, taxes, debt, interest and distributions in the added years; do not silently carry Year 3 assumptions forward.

3

Apply the new columns

Paste ChatGPT's new formula columns next to your existing ones. Verify the Balance Check row for the new years still equals 0 before saving.

Frequently asked questions

What links the three financial statements together?
Net income is the starting point for the cash flow statement and contributes to the retained earnings roll-forward on the balance sheet, net of dividends or distributions where applicable. Working capital changes (ΔAR, ΔAP, ΔInventory) flow from the balance sheet to the operating section of the CFS. CapEx on the CFS increases PP&E on the balance sheet. Ending cash on the CFS must equal cash on the balance sheet.
Can ChatGPT build this without historical data?
It can build the structure and formulas, but the output is a blank template. A base historical period can anchor the first forecast, but some drivers and validation checks are stronger with multiple historical periods. At minimum, provide a complete historical income statement and a balance sheet that already balances, plus all assumptions required for the forecast schedules.
How does the Balance Check row work?
ChatGPT adds a row that calculates Total Assets minus Total Liabilities and Equity. It should be zero within the model's stated rounding tolerance. A non-zero result means the statements are not internally consistent, but it does not identify the cause by itself; trace the relevant roll-forwards and links before changing formulas.
Direct or indirect method for the cash flow statement?
This workflow uses the indirect method: start with Net Income and adjust for non-cash items and changes in operating assets/liabilities. Use the direct method only if that is what your reporting/model objective requires; the two methods differ in presentation of operating cash flows.
Can I extend this to a 5-year projection?
Yes — use the Extend tab above. Change the horizon in the prompt, provide your assumptions for each additional year, and ChatGPT adds the new columns following the same formula logic. Validate each added year and document which assumptions are explicitly new versus carried forward.

Related Excel workflows