Build a Three-Statement Model in Excel
Build a linked Excel model that forecasts profit, cash, and the balance sheet.
Introduction
30 Second Summary
Profit can look healthy while cash tells a different story. A valuation becomes harder to trust when those numbers never reconcile.
In this project, you will build an integrated three-statement model for Harbor Roasters in Excel for Microsoft 365. One revenue-growth assumption will flow through the entire model.
What You'll Build
Your finished model recalculates from one revenue-growth change while its balance check stays at zero.
By the end of this project, you'll have:
- A three-year historical foundation with reconciled income statement and balance sheet results.
- A driver-based 2026 forecast that responds when you change an operating assumption.
- An indirect cash flow reconciliation that keeps ending cash linked to a zero balance check.
- Secret Mission: Add a Base/Downside selector that stress-tests several operating drivers while preserving a zero balance check.
Are there any prerequisites?
You need Excel for Microsoft 365 desktop on Windows. No accounting or financial modeling experience is required.
Before We Start
Before the hands-on work begins, this checkpoint locks in what you are building. It connects operating decisions to profit, cash, the balance sheet, and your valuation goal.
Set Up the Model Workspace
Your Harbor Roasters commitment needs a workbook that stays easy to trace as it grows. A clean single-sheet layout keeps every input close to the statement it drives.
In this step, you will build the historical foundation in Excel for Microsoft 365. You will finish with three balanced years plus a dedicated assumptions area.
In this step, get ready to:
- Save a single-sheet workbook for the Harbor Roasters model.
- Load the assumptions beside the historical income statement.
- Complete the historical balance sheet with a zero balance check.
Create and save the workbook
A named workbook gives every later formula a stable home. The single-sheet structure also makes links easier to audit.
- Press the Windows key to open Windows Search.
- Type Excel into the search field.
- Press Enter to open Excel for Microsoft 365.
You will see Excel's workbook start screen.
- Select File in the upper-left corner.
- Select New.
- Select Blank workbook.
You will see an empty workbook with one sheet ready for the model.
- Double-click the first sheet tab at the bottom of the workbook.
- Enter Model as the sheet name.
- Press Ctrl+S to open Save As for the first save.
- Enter Harbor_Roasters_3_Statement_Model.xlsx in the File name field.
- Select Save.
You will see Harbor_Roasters_3_Statement_Model.xlsx in the title bar. Your workbook now has a permanent name.
Why use one sheet?
A single sheet places assumptions beside the statements they drive. You can trace a formula without jumping between tabs.
This layout keeps your first integrated model compact. The links stay visible while you learn how the statements fit together.
Workbook saved with the wrong name?
Use Save As again if the title bar shows a different filename. Enter the exact Harbor_Roasters_3_Statement_Model.xlsx name before saving.
Help me correct the workbook name without losing my work.
Enter assumptions and historical profit
The income statement shows how revenue becomes net income. Historical values provide the starting point for the forecast you build later.
- Select cell A1.
- Populate A1:E13 by copying the grid below into A1:
Harbor Roasters - Integrated 3-Statement Model
2023A 2024A 2025A 2026E
Income Statement
Revenue 250.0 275.0 300.0
COGS 150.0 165.0 180.0
Gross Profit =B4-B5 =C4-C5 =D4-D5
Operating Expenses 62.5 68.75 75.0
Depreciation 8.0 9.0 10.0
EBIT =B6-B7-B8 =C6-C7-C8 =D6-D7-D8
Interest Expense 2.0 2.0 2.0
EBT =B9-B10 =C9-C10 =D9-D10
Taxes 6.875 7.5625 8.25
Net Income =B11-B12 =C11-C12 =D11-D12
How does this grid work?
- The leading tab on the second line leaves A2 empty. This places the year headers in B2:E2.
- Rows 4 to 13 move from revenue to net income.
- The formulas calculate profit subtotals from the historical values.
- Column E stays empty below the year header. It is reserved for the 2026 forecast.
- Press Ctrl+S to save the income statement.
- Select cell D13.
You will see 24.75 before display formatting. This confirms the 2025 net income formula is calculating.
Did the grid land in one column?
Undo the paste if every value appears in column A. Copy the entire grid directly from the code block before pasting it into A1.
Help me fix tab-separated data that pasted into one Excel column.
The assumptions area separates changeable drivers from calculated outputs. This distinction makes the model easier to test.
- Select cell G2.
- Populate G2:H14 by copying the grid below into G2:
Active Case Base
Assumption Base
Revenue Growth 8.0%
COGS % Revenue 60.0%
Operating Expenses % Revenue 25.0%
Tax Rate 25.0%
Accounts Receivable % Revenue 10.0%
Inventory % COGS 15.0%
Accounts Payable % COGS 12.0%
Capital Expenditures 25.0
Depreciation % Beginning PP&E 10.0%
Interest Rate on Beginning Debt 5.0%
Dividends 0.0
What do these assumptions control?
- Revenue growth sets the forecast sales change.
- Cost percentages connect operating expenses to revenue.
- Working-capital percentages connect receivables to revenue. They connect inventory plus payables to COGS.
- Capital expenditures plus depreciation control how net PP&E changes.
- Press Ctrl+S to save the assumptions.
- Select cell H4.
- Select cell H11.
Cell H4 shows 8.0%. Cell H11 shows 25.0.
Do the percentages look too large?
Confirm that percentage inputs include the percent sign. Entering 8.0 without that sign gives Excel a value one hundred times larger than 8.0%.
Help me correct the percentage assumptions in my Excel model.
Build and audit the historical balance sheets
The balance sheet tests whether assets equal liabilities plus equity. A balance check of zero confirms the historical data reconciles.
- Select cell A16.
- Populate A16:D27 by copying the grid below into A16:
Balance Sheet
Cash 35.0 42.0 50.0
Accounts Receivable 25.0 27.5 30.0
Inventory 18.0 19.0 20.0
Net PP&E 92.0 96.0 100.0
Total Assets =SUM(B17:B20) =SUM(C17:C20) =SUM(D17:D20)
Accounts Payable 20.0 22.0 24.0
Debt 40.0 40.0 40.0
Share Capital 60.0 60.0 60.0
Retained Earnings 50.0 62.5 76.0
Total Liabilities & Equity =SUM(B22:B25) =SUM(C22:C25) =SUM(D22:D25)
Balance Check =B21-B26 =C21-C26 =D21-D26
What does the balance check prove?
- Total assets add cash through net PP&E.
- Total liabilities plus equity add accounts payable through retained earnings.
- The balance check subtracts the second total from the first.
- A zero result confirms that the accounting equation holds.
- Select cells B27:D27.
You will see zero in all three cells before display formatting. Each historical balance sheet reconciles.
Seeing a non-zero balance check?
Compare the hardcoded balance sheet values with the grid above. Check that the total formulas include the full ranges ending in rows 20 plus 25.
Help me trace a non-zero historical balance check in my Excel model.
The cash flow statement section needs labels now so the forecast can use them later. Its rows will explain how profit turns into cash.
- Select cell A30.
- Populate A30:A43 by copying the labels below into A30:
Cash Flow Statement
Net Income
Depreciation
Less: Increase in Accounts Receivable
Less: Increase in Inventory
Add: Increase in Accounts Payable
Cash from Operations
Capital Expenditures
Cash from Investing
Dividends
Cash from Financing
Net Change in Cash
Beginning Cash
Ending Cash
Why add these labels now?
These rows create the structure for an indirect cash reconciliation. The formulas arrive after you have seen why net income alone cannot explain cash.
- Press Ctrl+S to save the statement labels.
- Select cells A30:A43.
You will see the cash flow section run from Cash Flow Statement through Ending Cash.
Are the labels starting on the wrong row?
Undo the paste if Cash Flow Statement does not start in A30. Select A30 before pasting the full label block again.
Help me align the cash flow statement labels with rows 30 to 43.
Color conventions make inputs easy to distinguish from linked calculations. Blue cells identify values you can change. Black cells identify formulas.
- Hold Ctrl while selecting H2, H4:H14, B4:D5, B7:D8, B10:D10, B12:D12, B17:D20, plus B22:D25.
- Use the font color control in the ribbon to set the selected cells to blue.
- Hold Ctrl while selecting B6:D6, B9:D9, B11:D11, B13:D13, B21:D21, plus B26:D27.
- Use the font color control in the ribbon to set the selected cells to black.
- Select cells H4:H10.
- Hold Ctrl while selecting cells H12:H13.
- Format the selected assumptions as percentages with one decimal place.
What do the colors communicate?
Blue tells a reviewer that a cell contains a hardcoded input. Black tells the reviewer that a cell calculates from another part of the model.
This visual split makes accidental overwrites easier to spot. It also speeds up formula tracing.
- Select cells B4:D13.
- Hold Ctrl while selecting cells B17:D27.
- Format the selected financial values with one decimal place.
- Select cell H11.
- Hold Ctrl while selecting cell H14.
- Format the selected financial assumptions with one decimal place.
- Press Ctrl+S to save the formatted workbook.
Before you inspect the audit row, do you expect all three historical columns to produce the same result?
- Select cells B27:D27.
You will see 0.0 in all three cells. That is the proof that each historical balance sheet balances.
Still missing a 0.0 result?
Check that every formula begins with an equals sign. Confirm that the values in rows 17 to 25 match the reference grid exactly.
Help me find why B27:D27 does not show 0.0 in my Harbor Roasters model.
✔️ Awesome, I've got everything!
Your workbook is saved with the correct filename. The Model sheet now contains the assumptions plus three balanced historical years.
ⓧ I'd like to double check the full code
Compare your Model sheet with this complete cell map. Blank tab-separated positions represent intentionally empty cells.
Harbor Roasters - Integrated 3-Statement Model
2023A 2024A 2025A 2026E Active Case Base
Income Statement Assumption Base
Revenue 250.0 275.0 300.0 Revenue Growth 8.0%
COGS 150.0 165.0 180.0 COGS % Revenue 60.0%
Gross Profit =B4-B5 =C4-C5 =D4-D5 Operating Expenses % Revenue 25.0%
Operating Expenses 62.5 68.75 75.0 Tax Rate 25.0%
Depreciation 8.0 9.0 10.0 Accounts Receivable % Revenue 10.0%
EBIT =B6-B7-B8 =C6-C7-C8 =D6-D7-D8 Inventory % COGS 15.0%
Interest Expense 2.0 2.0 2.0 Accounts Payable % COGS 12.0%
EBT =B9-B10 =C9-C10 =D9-D10 Capital Expenditures 25.0
Taxes 6.875 7.5625 8.25 Depreciation % Beginning PP&E 10.0%
Net Income =B11-B12 =C11-C12 =D11-D12 Interest Rate on Beginning Debt 5.0%
Dividends 0.0
Balance Sheet
Cash 35.0 42.0 50.0
Accounts Receivable 25.0 27.5 30.0
Inventory 18.0 19.0 20.0
Net PP&E 92.0 96.0 100.0
Total Assets =SUM(B17:B20) =SUM(C17:C20) =SUM(D17:D20)
Accounts Payable 20.0 22.0 24.0
Debt 40.0 40.0 40.0
Share Capital 60.0 60.0 60.0
Retained Earnings 50.0 62.5 76.0
Total Liabilities & Equity =SUM(B22:B25) =SUM(C22:C25) =SUM(D22:D25)
Balance Check =B21-B26 =C21-C26 =D21-D26
Cash Flow Statement
Net Income
Depreciation
Less: Increase in Accounts Receivable
Less: Increase in Inventory
Add: Increase in Accounts Payable
Cash from Operations
Capital Expenditures
Cash from Investing
Dividends
Cash from Financing
Net Change in Cash
Beginning Cash
Ending Cash
Each tab-separated row maps directly to the same row on the Model sheet. The historical formulas should display in black. The historical hardcodes plus assumptions should display in blue.
Your historical foundation is saved and balanced. Next up, you will forecast 2026 profit before testing the tempting shortcut that treats net income as cash.
Forecast Profit and Expose the Cash Gap
Your historical income statement and balance sheet now reconcile across three years. The 2026E column is ready to turn those historical results into a forecast.
A profit forecast looks complete until you ask where cash ends up. This step carries the forecast into the balance sheet so the balance check can answer that question.
In this step, get ready to:
- Forecast the 2026 income statement from operating assumptions.
- Project the non-cash balance sheet accounts with forecast drivers.
- Test a profit-equals-cash shortcut with the balance check.
Forecast the 2026 income statement
A driver-based forecast connects each projected result to an operating assumption. Changing one assumption then updates every formula that depends on it.
- Return to the Model sheet from the previous step.
- Select cell E4.
- Fill cells E4:E13 by pasting the formulas below:
=D4*(1+$H$4)
=E4*$H$5
=E4-E5
=E4*$H$6
=D20*$H$12
=E6-E7-E8
=D23*$H$13
=E9-E10
=E11*$H$7
=E11-E12
How does the forecast flow?
- Cell E4 applies the revenue growth assumption to the previous year's revenue.
- Cell E5 converts forecast revenue into COGS using the selected percentage.
- Cell E7 connects operating expenses to forecast revenue.
- Cells E8:E13 carry depreciation and interest through to net income.
- The dollar signs in references such as $H$4 lock the assumption cell when formulas move elsewhere.
- Save Harbor_Roasters_3_Statement_Model.xlsx by pressing Ctrl+S.
- Confirm that E4 displays 324.0.
- Confirm that E13 displays 27.5.
Your operating assumptions now produce a complete 2026E profit forecast.
Forecast values look different?
Confirm that you started the paste in E4. Check that every formula begins with =.
Compare the locked assumption references carefully. A missing dollar sign can point the forecast at the wrong cell.
Help me troubleshoot my 2026E income statement formulas.
Forecast the non-cash balance sheet accounts
The balance sheet needs forecast drivers for working capital. A PP&E roll-forward also connects capital expenditures and depreciation to ending net PP&E.
- Enter each formula below in the cell named on its left:
E18 =E4*$H$8
E19 =E5*$H$9
E20 =D20+$H$11-E8
E22 =E5*$H$10
E23 =D23
E24 =D24
E25 =D25+E13-$H$14
E26 =SUM(E22:E25)
What do these forecasts capture?
- Accounts receivable follows revenue through the assumption in H8.
- Inventory follows COGS through the assumption in H9.
- Accounts payable follows COGS through the assumption in H10.
- Net PP&E starts with the prior balance. Capital expenditures increase it. Depreciation reduces it.
- Retained earnings starts with the prior balance. Net income increases it. Dividends reduce it.
- Save Harbor_Roasters_3_Statement_Model.xlsx by pressing Ctrl+S.
- Confirm that E20 displays 115.0.
- Confirm that E25 displays 103.5.
- Confirm that E26 displays 226.8.
Balance sheet forecast looks different?
Check that the working-capital formulas reference forecast revenue or forecast COGS in column E. Confirm that the beginning PP&E and retained earnings references point to column D.
Help me troubleshoot my forecast balance sheet formulas.
Test the profit-equals-cash shortcut
Cash is the final missing balance sheet account. A simple first pass adds forecast net income to beginning cash so the balance check can test that approach.
Before you enter the formulas, do you think adding net income to beginning cash will keep the 2026E balance check at zero?
- Enter each formula below in the cell named on its left:
E17 =D17+E13
E21 =SUM(E17:E20)
E27 =E21-E26
What does this shortcut test?
- Cell E17 treats net income as the full change in cash.
- Cell E21 totals forecast cash and the other asset balances.
- Cell E27 compares total assets with total liabilities plus equity.
- Save Harbor_Roasters_3_Statement_Model.xlsx by pressing Ctrl+S.
- Inspect the forecast revenue in E4.
- Inspect the forecast net income in E13.
- Inspect the forecast balance check in E27.
Cell E4 displays 324.0. Cell E13 displays 27.5.
Cell E27 displays approximately 27.2. The non-zero check is the intended result.
You have exposed the cash gap. The balance check is doing its job.
Why is the model out of balance?
Net income captures accounting profit. Cash also responds to balance sheet movements.
- Higher accounts receivable uses cash.
- Higher inventory uses cash.
- Higher accounts payable provides cash.
- Capital expenditures use cash.
The temporary shortcut omits these movements. The balance check exposes the missing reconciliation.
Seeing a different balance check?
Confirm that E17 contains =D17+E13. Check that E21 totals E17:E20.
Confirm that E27 subtracts E26 from E21. A different result usually points to an earlier forecast formula.
Help me find why my forecast balance check differs from 27.2.
✔️ Awesome, I've got everything!
Your 2026E profit forecast and non-cash balance sheet forecast are complete. Keep the non-zero balance check because it is the result this step is designed to expose.
ⓧ I'd like to double check the full code
Compare the formulas in your Model sheet with this complete 2026E formula set.
E4 =D4*(1+$H$4)
E5 =E4*$H$5
E6 =E4-E5
E7 =E4*$H$6
E8 =D20*$H$12
E9 =E6-E7-E8
E10 =D23*$H$13
E11 =E9-E10
E12 =E11*$H$7
E13 =E11-E12
E18 =E4*$H$8
E19 =E5*$H$9
E20 =D20+$H$11-E8
E22 =E5*$H$10
E23 =D23
E24 =D24
E25 =D25+E13-$H$14
E26 =SUM(E22:E25)
E17 =D17+E13
E21 =SUM(E17:E20)
E27 =E21-E26
Your model now shows why profit alone cannot determine cash. Next, you will reconcile the missing cash movements and bring the balance check back to zero.
Reconcile Cash and Balance the Model
Your forecast already calculates profit. The model still shows an imbalance of approximately 27.2.
The gap comes from working capital movements plus capital expenditures that net income omits. An indirect cash flow statement reconciles those cash movements before linking ending cash back to the balance sheet.
In this step, get ready to:
- Build the indirect cash flow reconciliation.
- Link ending cash back to the forecast balance sheet.
- Format the integrated model for a final audit.
Build the indirect cash flow statement
The indirect method begins with net income. It then captures the cash effects that the income statement leaves out.
- Select cell A31 on the Model sheet.
- Populate cells A31:A43 by pasting these cash flow labels:
Net Income
Depreciation
Less: Increase in Accounts Receivable
Less: Increase in Inventory
Add: Increase in Accounts Payable
Cash from Operations
Capital Expenditures
Cash from Investing
Dividends
Cash from Financing
Net Change in Cash
Beginning Cash
Ending Cash
How Is the Reconciliation Organized?
- Rows 31:36 reconcile net income to cash from operations.
- Rows 37:38 capture capital expenditures as investing cash flow.
- Rows 39:40 capture dividends as financing cash flow.
- Rows 41:43 calculate the movement from beginning cash to ending cash.
- Save the workbook by pressing Ctrl+S.
- Inspect cells A31:A43.
You should see one cash flow label in each row from Net Income through Ending Cash.
Did the labels land in one cell?
- Undo the paste if every label appears in one cell.
- Select cell A31 before pasting the newline-separated list again.
Ask for help if the labels still do not fill separate rows: Help me paste a newline-separated list into cells A31:A43 in my Excel Model sheet.
Cash from operations starts with net income. Depreciation is added back because it reduced profit without using cash.
- Select cell E31.
- Populate cells E31:E36 by pasting these formulas:
=E13
=E8
=-(E18-D18)
=-(E19-D19)
=E22-D22
=SUM(E31:E35)
What Do These Formulas Reconcile?
- Cell E31 links net income from the forecast income statement.
- Cell E32 adds back non-cash depreciation.
- Cells E33:E35 convert changes in receivables, inventory, and payables into cash effects.
- Cell E36 totals the operating reconciliation.
- Save the workbook by pressing Ctrl+S.
- Select cell E36.
You should see cash from operations of 25.218 before display rounding.
Is the operating cash result different?
- Change cells E31:E36 from a text format to a numeric format if formulas appear instead of results.
- Paste the formulas into E31 again.
- Compare each reference with the income statement and balance sheet cells shown above.
Help me trace the difference in my operating cash calculation.
Capital expenditures purchase long-term assets. Dividends distribute cash to shareholders.
- Select cell E37.
- Populate cells E37:E40 by pasting these formulas:
=-$H$11
=E37
=-$H$14
=E39
Why Are These Values Negative?
Capital expenditures reduce cash when the company buys PP&E. Dividends also reduce cash when the company makes a distribution.
The absolute references keep both formulas connected to the assumptions section.
- Save the workbook by pressing Ctrl+S.
- Inspect cells E38 and E40.
You should see cash from investing of -25.000. Cash from financing should show 0.000.
Are the cash outflows positive?
- Check that the formula in E37 begins with a minus sign.
- Check that the formula in E39 begins with a minus sign.
Help me correct the investing or financing cash flow signs.
The last three rows turn the operating, investing, and financing sections into an ending cash balance. This creates the value that the balance sheet needs.
- Select cell E41.
- Populate cells E41:E43 by pasting these formulas:
=SUM(E36,E38,E40)
=D17
=SUM(E41:E42)
How Does Ending Cash Roll Forward?
- Cell E41 combines cash from operating, investing, and financing activities.
- Cell E42 links the prior year's ending cash as beginning cash.
- Cell E43 adds the net change to beginning cash.
- Save the workbook by pressing Ctrl+S.
- Inspect cells E41:E43.
You should see a net change in cash of 0.218. Ending cash should show 50.218 before display rounding.
Is ending cash different?
- Check that E41 uses cash from operations, investing, and financing.
- Check that E42 points to beginning cash in D17.
- Check that E43 adds cells E41:E42.
Help me trace my ending cash calculation.
Link ending cash to the balance sheet
Cell E43 now calculates the forecast ending cash. Cell E17 still contains the temporary profit-equals-cash shortcut.
Before you replace the shortcut, do you expect the balance check to remain non-zero or return to zero?
- Select cell E17.
- Replace =D17+E13 with =E43.
- Press Enter.
You should see E17 and E43 equal 50.218 before display rounding.
Cells E21 and E26 should both equal 226.778. The E27 balance check should return 0.000.
That is the cash gap closed. Your income statement, cash flow statement, and balance sheet now reconcile through one linked ending cash value.
Why Does the Model Balance Now?
- Cell E17 now receives ending cash from the cash flow statement.
- Cell E21 includes that cash in total assets.
- Cell E26 includes the existing retained earnings roll-forward in total liabilities plus equity.
- Cell E27 confirms that both sides of the accounting equation match.
Is the balance check still non-zero?
- Check that cell E17 contains only =E43.
- Confirm that E21 remains =SUM(E17:E20).
- Confirm that E27 remains =E21-E26.
Help me find the remaining balance-sheet difference.
Finish the audit-friendly formatting
Consistent formatting separates assumptions from calculations. It also makes formula errors easier to spot during an audit.
- Enter Income Statement in cell A3.
- Enter Balance Sheet in cell A16.
- Enter Cash Flow Statement in cell A30.
- Enter Assumptions in cell G1.
- Format cells A3, A16, A30, and G1 as bold section headers.
- Set the font color for formulas in E17 plus E31:E43 to black.
Why Use Blue and Black?
Blue identifies hardcoded assumptions that someone can change. Black identifies formulas that calculate or link values.
The color difference lets a reviewer scan the model without opening every cell.
- Inspect the historical hardcodes to confirm their font remains blue.
- Inspect cells H2 plus H4:H14 to confirm their font remains blue.
- Apply one decimal place to the displayed financial values in E31:E43.
- Keep every financial line on the unit scale used by the historical values.
Before the final check, do you expect formatting to change any underlying calculations?
- Save the workbook by pressing Ctrl+S.
- Inspect cells E13, E36, E41, E43, E21, E26, and E27.
You should see net income of 27.5, cash from operations of 25.2, net cash growth of 0.2, and ending cash of 50.2.
Total assets and total liabilities plus equity should both display as 226.8. The balance check should display as 0.0.
Did a value change during formatting?
- Undo the last entry if formatting replaced a formula.
- Compare the affected cell with the formula reference below.
- Apply the number format again without typing over the cell value.
Help me restore a formula that changed during formatting.
✔️ Awesome, I've got everything!
Your workbook is saved with a linked cash flow statement. Ending cash now feeds the balance sheet, and the forecast balance check displays 0.0.
ⓧ I'd like to double check the full code
Compare the complete 2026E formula map below with the Model sheet.
E4 =D4*(1+$H$4)
E5 =E4*$H$5
E6 =E4-E5
E7 =E4*$H$6
E8 =D20*$H$12
E9 =E6-E7-E8
E10 =D23*$H$13
E11 =E9-E10
E12 =E11*$H$7
E13 =E11-E12
E17 =E43
E18 =E4*$H$8
E19 =E5*$H$9
E20 =D20+$H$11-E8
E21 =SUM(E17:E20)
E22 =E5*$H$10
E23 =D23
E24 =D24
E25 =D25+E13-$H$14
E26 =SUM(E22:E25)
E27 =E21-E26
E31 =E13
E32 =E8
E33 =-(E18-D18)
E34 =-(E19-D19)
E35 =E22-D22
E36 =SUM(E31:E35)
E37 =-$H$11
E38 =E37
E39 =-$H$14
E40 =E39
E41 =SUM(E36,E38,E40)
E42 =D17
E43 =SUM(E41:E42)
How to Use This Reference
Each line pairs a forecast cell with its formula. The cash flow formulas reconcile profit to ending cash before E17 carries that cash into total assets.
Your three statements are now fully integrated. Next, you will change one operating driver to prove that profit, cash, and the balance check move together.
Audit the Model Through a Driver Change
Your indirect cash flow statement now links ending cash back to the balance sheet. The model balances in the base case.
An integrated model keeps the accounting equation intact while operating assumptions change. This driver audit tests that linkage by setting revenue growth to zero before restoring the base case.
In this step, get ready to:
- Stress-test the integrated model with a zero-growth assumption.
- Confirm that the change flows through every affected statement.
- Restore the base revenue-growth assumption.
Run a zero-growth stress test
Scenario analysis changes an assumption to reveal how the model responds. Revenue growth is a useful test because it reaches the income statement before flowing through the rest of the model.
- Confirm cell H4 on the Model sheet currently shows 8.0%.
Before you change H4, make a quick prediction about whether E27 stays at zero when revenue growth falls to zero.
- Replace 8.0% in H4 with 0.0%.
- Press Enter to recalculate the workbook.
Your one-decimal display should show 300.0 in E4. It should show 24.8 in E13.
You should see 50.4 in E43. You should see 222.4 in E21.
Cell E27 should remain at 0.0.
- Inspect cells E18, E19, E22, and E25.
- Compare cell E21 with cell E26.
What Did the Stress Test Prove?
Before display rounding, E4 calculates 300.000. Cell E13 calculates 24.750.
Cell E43 calculates 50.350. Cell E21 calculates 222.350.
Cell E27 calculates 0.000. The balance sheet stays balanced under zero growth.
Cells E18, E19, E22, and E25 also recalculate from their linked drivers. This carries the revenue change through working capital and retained earnings.
Outputs Not Changing?
- Check that you changed H4 on the Model sheet.
- Undo any forecast formula edit if you changed more than H4.
Help me troubleshoot a driver change that is not flowing through my integrated model.
You have now proved that one operating driver updates profit, cash, equity, and both sides of the balance sheet together.
Restore and save the base model
Before you restore H4, make a quick prediction about which figures return to their base-case values.
- Replace 0.0% in H4 with 8.0%.
- Press Enter to recalculate the workbook.
Your one-decimal display should show 27.5 in E13. It should show 25.2 in E36.
You should see 50.2 in E43. Cells E21 and E26 should both show 226.8.
Cell E27 should return to 0.0.
Base Outputs Not Returning?
- Confirm cell H4 shows 8.0%.
- Check that E4 still contains =D4*(1+$H$4).
Help me restore the base-case outputs in my integrated model.
- Press Ctrl+S to save Harbor_Roasters_3_Statement_Model.xlsx.
That completes the audit. Your saved base model now responds to a driver change without breaking its balance check.
✔️ Awesome, I've got everything!
Your driver audit is complete. Cell H4 is back at 8.0% with the original base-case outputs restored.
ⓧ I'd like to double check the full code
- Confirm cell H4 shows 8.0%.
- Compare the integrated forecast formulas on the Model sheet with this reference:
E4 =D4*(1+$H$4)
E5 =E4*$H$5
E6 =E4-E5
E7 =E4*$H$6
E8 =D20*$H$12
E9 =E6-E7-E8
E10 =D23*$H$13
E11 =E9-E10
E12 =E11*$H$7
E13 =E11-E12
E17 =E43
E18 =E4*$H$8
E19 =E5*$H$9
E20 =D20+$H$11-E8
E21 =SUM(E17:E20)
E22 =E5*$H$10
E23 =D23
E24 =D24
E25 =D25+E13-$H$14
E26 =SUM(E22:E25)
E27 =E21-E26
E31 =E13
E32 =E8
E33 =-(E18-D18)
E34 =-(E19-D19)
E35 =E22-D22
E36 =SUM(E31:E35)
E37 =-$H$11
E38 =E37
E39 =-$H$14
E40 =E39
E41 =SUM(E36,E38,E40)
E42 =D17
E43 =SUM(E41:E42)
Why These Formulas Matter
The listed formulas connect operating assumptions to the forecast statements. The revenue-growth input reaches income before moving through the balance sheet.
The roll-forwards carry the result into cash and equity. This chain keeps total assets equal to total liabilities plus equity.
- Inspect cells E13, E36, E43, E21, E26, and E27.
Cell E13 calculates 27.450. Cell E36 calculates 25.218.
Cell E43 calculates 50.218. Cells E21 and E26 both calculate 226.778.
Cell E27 calculates 0.000.
Your integrated model has passed a real driver audit. One assumption now moves every affected statement while the accounting equation stays intact.
Secret mission
Add a Base and Downside Case
One driver test proved that your model responds to change. Now you will add a selector that switches several operating assumptions at once while keeping every statement balanced.
Clean Up Your Resources
Clean Up Your Resources
Your finished model lives in the local Harbor_Roasters_3_Statement_Model.xlsx workbook in Excel for Microsoft 365. This project adds no ongoing cloud or API costs.
Choose the cleanup path that fits what you want next. You can keep the workbook available, pause the Excel session, or delete the file entirely.
Resources you used:
- Local workbook named Harbor_Roasters_3_Statement_Model.xlsx.
Keep everything running
No action is needed. Choose this option if you want to continue testing how operating assumptions flow through your model.
- Keep Harbor_Roasters_3_Statement_Model.xlsx saved in its current folder.
- Continue switching H2 between Base and Downside when you want to compare the two cases.
Pause - I'll come back to this later
Pausing closes the current Excel session. Your integrated model stays available in its current folder.
- Save your latest changes by pressing Ctrl+S.
- Close Harbor_Roasters_3_Statement_Model.xlsx from its Excel window.
- Navigate to the workbook's saved folder in File Explorer when you are ready to return.
- Open Harbor_Roasters_3_Statement_Model.xlsx to continue from the saved model.
Delete - I don't want to use this again
Deleting the workbook becomes permanent after you empty the Recycle Bin. Your Excel installation and other files stay untouched.
- Save any final changes by pressing Ctrl+S.
- Close Harbor_Roasters_3_Statement_Model.xlsx from its Excel window.
- Navigate to the workbook's saved folder in File Explorer.
- Select Harbor_Roasters_3_Statement_Model.xlsx.
- Press the Delete key.
- Open the Recycle Bin from the Windows desktop.
- Choose Empty Recycle Bin.
The workbook should no longer appear in its original folder.
Nice Work!
Nice Work!
Congratulations, you built a balanced Harbor Roasters three-statement model that responds to operating assumptions. As the first project in your valuation sequence, it gives you the statement-linkage foundation for later DCF work.
You've learned how to:
- Build a three-year historical foundation that reconciles before the forecast begins. Use a driver-based 2026 forecast to update revenue, costs, working capital, PP&E, retained earnings, and cash.
- Expose why net income differs from cash with a deliberately unbalanced forecast. Fix the gap with an indirect cash flow statement that returns the balance check to zero.
- Prove three-statement integration by changing one revenue-growth driver. Watch every affected statement update while the automated balance check stays at zero.
- Secret Mission: Add a Base/Downside case selector that swaps multiple active assumptions. Confirm both cases keep the balance check at zero.
Ready to quiz yourself?