Building a 3-Statement Financial Model in Excel: Step-by-Step Guide

A 3-statement model links the income statement, balance sheet, and cash flow statement into a single Excel workbook, so a change in one assumption (say, revenue growth) automatically flows through profitability, the balance sheet, and cash. It is the foundation underneath almost every valuation, budgeting, or forecasting exercise in finance.

This guide walks through the entire build, in order, with the actual formulas used at each step. By the end, you will have a working model with a balance check that ties to zero.

What You Need Before Starting

  • Excel (desktop or Microsoft 365). Google Sheets works too, but the formula examples below use Excel syntax.
  • Basic comfort with relative and absolute cell references (the $ symbol), SUM, and IF.
  • A historical year of financials, real or assumed, to anchor your first forecast period.
  • About two to four hours of focused time for a first pass.
Why build all three statements together

A standalone income statement can tell you if a company is profitable. It cannot tell you if the company will run out of cash while growing. Only a linked balance sheet and cash flow statement reveal that, which is why every professional financial model is built this way.

How the Three Statements Connect

Before building anything, it helps to see the full loop. Net income flows into retained earnings on the balance sheet and starts the cash flow statement. Working capital and investing activity move cash and balance sheet items together. Ending cash closes the loop back onto the balance sheet.

How the income statement, balance sheet, and cash flow statement connect Diagram showing net income flowing from the income statement into retained earnings on the balance sheet and into the top of the cash flow statement. The cash flow statement adjusts for depreciation and working capital, subtracts capital expenditure, and adds financing activity, then the ending cash balance flows back into the balance sheet cash line. Income Statement Revenue to Net Income Drives profitability Balance Sheet Assets, liabilities, equity Point-in-time snapshot Cash Flow Statement Operating, investing, financing Explains the change in cash Net income starts CFS Net income builds retained earnings Ending cash updates BS cash Working Capital & CapEx Links BS items to CFS Balance Check = 0
Figure 1. The three statements form one closed loop, not three separate documents.

Step 1: Build the Assumptions Tab

STEP 1

Assumptions and drivers

Put every input in one place, never buried inside a formula on another tab. This is what makes the model easy to update and audit later.

Table 1. Typical assumptions for a simple operating company.
DriverExample valueUsed in
Revenue growth rate8% per yearIncome statement
Gross margin45%Income statement
Operating expenses (% of revenue)25%Income statement
Tax rate21%Income statement
Days sales outstanding (AR)45 daysBalance sheet, cash flow
Days inventory outstanding60 daysBalance sheet, cash flow
Days payable outstanding (AP)30 daysBalance sheet, cash flow
Capital expenditure (% of revenue)4%Balance sheet, cash flow
DepreciationStraight-line over 10 yearsIncome statement, balance sheet, cash flow
Interest rate on debt6%Income statement

Format every assumption cell with a distinct fill color (light blue is a common convention) so anyone opening the model can instantly tell inputs from calculations.

Step 2: Build the Income Statement

STEP 2

Revenue through net income

Each line pulls from the assumptions tab rather than hardcoding a number. That is what lets you change one input and watch the whole model update.

Table 2. Income statement formula pattern (columns represent years).
Line itemFormula patternNotes
Revenue=Prior_Year_Revenue*(1+Growth_Rate)First forecast year references the last historical year
Cost of goods sold=-Revenue*(1-Gross_Margin)Kept negative to sum cleanly
Gross profit=Revenue+COGSShould equal Revenue times Gross Margin
Operating expenses=-Revenue*Opex_PercentKept negative
EBIT=Gross_Profit+Operating_ExpensesEarnings before interest and taxes
Interest expense=-Beginning_Debt*Interest_RateUses beginning debt balance to avoid circularity
Earnings before tax=EBIT+Interest_Expense
Taxes=-MAX(EBT,0)*Tax_RateMAX prevents a tax benefit on a loss in a simple model
Net income=EBT+TaxesFlows to both the balance sheet and cash flow statement

Step 3: Build the Balance Sheet

STEP 3

Assets, liabilities, and equity

Build assets first, then liabilities and equity. Every line should reference either the income statement, the assumptions tab, or the cash flow statement, never a typed-in number.

Table 3. Balance sheet formula pattern.
Line itemFormula patternNotes
Cash=Prior_Cash+Net_Change_in_CashNet_Change_in_Cash comes from the cash flow statement
Accounts receivable=Revenue*(DSO/365)Higher DSO means more cash tied up in receivables
Inventory=-COGS*(DIO/365)Negative sign on COGS cancels out
PP&E, net=Prior_PPE+CapEx-DepreciationCapEx increases it, depreciation reduces it
Total assets=Cash+AR+Inventory+PPEAdd any other asset lines you include
Accounts payable=-COGS*(DPO/365)
Debt=Prior_Debt+Draws-RepaymentsSet draws and repayments as their own assumption rows
Total liabilities=AP+Debt
Common stock=Prior_Common_StockHeld flat unless modeling an equity raise
Retained earnings=Prior_RE+Net_Income-DividendsThe main link back to the income statement
Total equity=Common_Stock+Retained_Earnings

Step 4: Build the Cash Flow Statement

STEP 4

Operating, investing, and financing activity

The cash flow statement starts with net income and reconciles it to the actual change in cash by adjusting for non-cash items and balance sheet movements.

Table 4. Cash flow statement formula pattern (indirect method).
Line itemFormula patternNotes
Net income=Income_Statement!Net_IncomeStarting point
Add back depreciation=DepreciationNon-cash expense, added back
Change in accounts receivable=-(AR_Current-AR_Prior)An increase in AR uses cash, hence the negative sign
Change in inventory=-(Inventory_Current-Inventory_Prior)Same logic as AR
Change in accounts payable=AP_Current-AP_PriorAn increase in AP frees up cash
Cash from operations=SUM(above rows)
Capital expenditure=-CapExCash outflow, matches the balance sheet PP&E build
Cash from investing=CapEx_rowAdd any other investing items here
Debt draws=Debt_DrawsMatches the balance sheet debt roll-forward
Debt repayments=-Debt_Repayments
Dividends paid=-DividendsMatches the retained earnings roll-forward
Cash from financing=SUM(above rows)
Net change in cash=CFO+CFI+CFFFlows to the balance sheet cash line
Ending cash=Beginning_Cash+Net_Change_in_CashShould match the balance sheet cash line exactly

Step 5: Link the Three Statements

STEP 5

Close the loop

  1. Point the balance sheet cash line at the cash flow statement's net change in cash, not a typed number.
  2. Point the balance sheet retained earnings line at the income statement's net income, minus any dividends assumption.
  3. Point the cash flow statement's depreciation, working capital changes, and CapEx at the same cells the balance sheet uses, so both statements always move together.
  4. Confirm the income statement's interest expense uses beginning-of-period debt (not ending), which avoids a circular reference between debt, interest, cash, and the balance sheet.

Step 6: Add the Balance Check

STEP 6

Confirm the model actually balances

Table 5. The single most important row in any 3-statement model.
Line itemFormula patternWhat it should show
Balance check=Total_Assets-(Total_Liabilities+Total_Equity)Zero, in every single period

Add conditional formatting so this cell turns red the moment it is anything other than zero. This one row will catch almost every linking error you make.

Step 7: Stress Test the Model

STEP 7

Flex the assumptions

Change the revenue growth rate from 8% to negative 5%, then to 20%. Change the tax rate. Change days sales outstanding. If the balance check stays at zero through every change, the model is genuinely linked, not just coincidentally balanced in the base case.

Common mistakes to avoid

Hardcoding a plug in the balance sheet. If the model does not balance, do not force it to balance with a manual adjustment. Find the actual broken link.

Using ending debt for interest expense without enabling iterative calculations. This creates a genuine circular reference. Either use beginning-of-period debt, or turn on iterative calculation under Excel's formula options.

Forgetting to add back depreciation in the cash flow statement. It is an expense on the income statement but not an actual cash outflow.

Mixing up signs on working capital changes. An increase in a current asset like AR uses cash (negative); an increase in a current liability like AP frees up cash (positive).

Typing a number directly into a formula cell. Every input should live on the assumptions tab, not buried inside a calculation.

Quick Reference: What Feeds What

Table 6. Where each cash flow and balance sheet driver actually comes from.
ItemAppears onSourced from
Net incomeBalance sheet (retained earnings), cash flow statementIncome statement
DepreciationIncome statement (embedded in opex or COGS), cash flow statement, balance sheet (PP&E)Assumptions tab
Capital expenditureBalance sheet (PP&E), cash flow statement (investing)Assumptions tab
Change in receivables, inventory, payablesCash flow statement (operating)Balance sheet, driven by income statement and days assumptions
Debt draws and repaymentsBalance sheet (debt), cash flow statement (financing)Assumptions tab or a separate debt schedule
Ending cashBalance sheet (cash)Cash flow statement

Key Takeaways

  • Build in this order: assumptions, income statement, balance sheet, cash flow statement, then link them together.
  • Every number should trace back to an assumption or another statement, never a typed value inside a formula.
  • The balance check (Assets minus Liabilities and Equity, equal to zero) is the single most useful cell in the entire workbook.
  • Use beginning-of-period debt for interest expense unless you deliberately want to work with circular references.
  • A model that only balances in the base case is not actually linked. Stress test it before you trust it.

Frequently Asked Questions

What is a 3-statement financial model?

A 3-statement model links the income statement, balance sheet, and cash flow statement into one Excel workbook, so a change in one assumption automatically flows through all three statements.

How long does it take to build a 3-statement model?

A simple model for a small company can take two to four hours once you know the structure. More complex models with detailed schedules can take several days.

Why doesn't my balance sheet balance?

The most common causes are a missing link between the cash flow statement and the balance sheet cash line, an incorrect retained earnings roll-forward, or a sign error on working capital changes.

Do I need circular references for a 3-statement model?

Only if you model interest expense based on the average or ending debt balance, since debt depends on cash flow, which depends on interest. A simpler version uses beginning-of-period debt to avoid circularity.

Is a 3-statement model the same as a DCF model?

No. A 3-statement model forecasts all three financial statements together. A DCF model uses those forecasts, particularly free cash flow, to estimate the value of a business.

What Excel skills do I need before starting?

Comfort with basic formulas, absolute and relative cell references, and simple functions like SUM and IF is enough to get started.

Related Articles

External References

About this guide. This tutorial is checked periodically for formula accuracy and updated Excel functionality.