Skill Tracer
Skills › Financial Services › 3-statement-model

3-statement-model

skill · 408 lines · Apache-2.0 · plugins/vertical-plugins/financial-analysis/skills/3-statement-model/SKILL.md

The facts

Its description

Complete, populate and fill out 3-statement financial model templates (Income Statement, Balance Sheet, Cash Flow Statement) . Use when asked to fill out model templates, complete existing model frameworks, populate financial models with data, complete a partially filled IS/BS/CF framework, or link integrated financial statements within an existing template structure. Triggers include requests to fill in, complete, or populate a 3-statement model template

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

The agent would pick this skill when the person already has a 3-statement model template or a partially built IS/BS/CF framework and wants it filled in, populated with data, or properly linked — not when they want a model built from scratch. The description keys on template completion: filling out, completing, or populating an existing structure.

Things a person might say (the model's guesses)

  • “I've got a 3-statement model template in Excel — can you fill in the historicals and build out the projections?”
  • “Here's a partially completed IS/BS/CF framework; populate it with the numbers from these financials.”
  • “Can you link the income statement, balance sheet, and cash flow inside this existing template?”

A model's summary of when it is used.

A model's reading

Files it mentions

references/sec-filings.md, references/formulas.md

Files the text names, such as ones to read or write. Found by matching words, so treat them as pointers.

Found by matching wordsline 171 line 304

What leads to it

Other skills that hand off to this one, call it, require it or offer it instead, as a model read them.

A model's reading

Licence

Apache-2.0, from LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text
Other files in this skill (3) Close

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: 3-statement-model
3description: Complete, populate and fill out 3-statement financial model templates (Income Statement, Balance Sheet, Cash Flow Statement) . Use when asked to fill out model templates, complete existing model frameworks, populate financial models with data, complete a partially filled IS/BS/CF framework, or link integrated financial statements within an existing template structure. Triggers include requests to fill in, complete, or populate a 3-statement model template
4---
5
6# 3-Statement Financial Model Template Completion
7
8Complete and populate integrated financial model templates with proper linkages between Income Statement, Balance Sheet, and Cash Flow Statement.
9

3-Statement Financial Model Template Completion

Complete and populate integrated financial model templates with proper linkages between Income Statement, Balance Sheet, and Cash Flow Statement.

Raw lines 1 to 9
10## ⚠️ CRITICAL PRINCIPLES — Read Before Populating Any Template
12**Environment — Office JS vs Python:**
13- **If running inside Excel (Office Add-in / Office JS):** Use Office JS directly. Write formulas via `range.formulas = [["=D14*(1+Assumptions!$B$5)"]]` — never `range.values` for derived cells. No separate recalc; Excel computes natively. Use `context.workbook.worksheets.getItem(...)` to navigate tabs.
14- **If generating a standalone .xlsx file:** Use Python/openpyxl. Write `ws["D15"] = "=D14*(1+Assumptions!$B$5)"`, then run `recalc.py` before delivery.
15- **Office JS merged cell pitfall:** Do NOT call `.merge()` then set `.values` on the merged range — throws `InvalidArgument` because the range still reports its pre-merge dimensions. Instead write value to top-left cell alone, then merge + format the full range: `ws.getRange("A1").values = [["INCOME STATEMENT"]]; const h = ws.getRange("A1:G1"); h.merge(); h.format.fill.color = "#1F4E79";`
16- All principles below apply identically in either environment.
18**Formulas over hardcodes (non-negotiable):**
19- Every projection cell, roll-forward, linkage, and subtotal MUST be an Excel formula — never a pre-computed value
20- When using Python/openpyxl: write formula strings (`ws["D15"] = "=D14*(1+Assumptions!$B$5)"`), NOT computed results (`ws["D15"] = 12500`)
21- The ONLY cells that should contain hardcoded numbers are: (1) historical actuals, (2) assumption drivers in the Assumptions tab
22- If you find yourself computing a value in Python and writing the result to a cell — STOP. Write the formula instead.
23- Why: the model must flex when scenarios toggle or assumptions change. Hardcodes break every downstream integrity check silently.
25**Verify step-by-step with the user:**
261. **After mapping the template** → show the user which tabs/sections you've identified and confirm before touching any cells
272. **After populating historicals** → show the user the historical block and confirm values/periods match source data
283. **After building IS projections** → run the subtotal checks, show the user the projected IS, confirm before moving to BS
294. **After building BS** → show the user the balance check (Assets = L+E) for every period, confirm before moving to CF
305. **After building CF** → show the user the cash tie-out (CF ending cash = BS cash), confirm before finalizing
316. **Do NOT populate the entire model end-to-end and present it complete** — break at each statement, show the work, catch errors early

⚠️ CRITICAL PRINCIPLES — Read Before Populating Any Template

Environment — Office JS vs Python:

  • If running inside Excel (Office Add-in / Office JS): Use Office JS directly. Write formulas via range.formulas = [["=D14*(1+Assumptions!$B$5)"]] — never range.values for derived cells. No separate recalc; Excel computes natively. Use context.workbook.worksheets.getItem(...) to navigate tabs.
  • If generating a standalone .xlsx file: Use Python/openpyxl. Write ws["D15"] = "=D14*(1+Assumptions!$B$5)", then run recalc.py before delivery.
  • Office JS merged cell pitfall: Do NOT call .merge() then set .values on the merged range — throws InvalidArgument because the range still reports its pre-merge dimensions. Instead write value to top-left cell alone, then merge + format the full range: ws.getRange("A1").values = [["INCOME STATEMENT"]]; const h = ws.getRange("A1:G1"); h.merge(); h.format.fill.color = "#1F4E79";
  • All principles below apply identically in either environment.

Formulas over hardcodes (non-negotiable):

  • Every projection cell, roll-forward, linkage, and subtotal MUST be an Excel formula — never a pre-computed value
  • When using Python/openpyxl: write formula strings (ws["D15"] = "=D14*(1+Assumptions!$B$5)"), NOT computed results (ws["D15"] = 12500)
  • The ONLY cells that should contain hardcoded numbers are: (1) historical actuals, (2) assumption drivers in the Assumptions tab
  • If you find yourself computing a value in Python and writing the result to a cell — STOP. Write the formula instead.
  • Why: the model must flex when scenarios toggle or assumptions change. Hardcodes break every downstream integrity check silently.

Verify step-by-step with the user:

  1. After mapping the template → show the user which tabs/sections you've identified and confirm before touching any cells
  2. After populating historicals → show the user the historical block and confirm values/periods match source data
  3. After building IS projections → run the subtotal checks, show the user the projected IS, confirm before moving to BS
  4. After building BS → show the user the balance check (Assets = L+E) for every period, confirm before moving to CF
  5. After building CF → show the user the cash tie-out (CF ending cash = BS cash), confirm before finalizing
  6. Do NOT populate the entire model end-to-end and present it complete — break at each statement, show the work, catch errors early
Raw lines 10 to 32
33## Formatting — Professional Blue/Grey Palette (Default unless template/user specifies otherwise)
35**Keep colors minimal.** Use only blues and greys for cell fills. Do NOT introduce greens, yellows, oranges, or multiple accent colors — a clean model uses restraint.
37| Element | Fill | Font |
38|---|---|---|
39| Section headers (IS / BS / CF titles) | Dark blue `#1F4E79` | White bold |
40| Column headers (FY2024A, FY2025E, etc.) | Light blue `#D9E1F2` | Black bold |
41| Input cells (historicals, assumption drivers) | Light grey `#F2F2F2` or white | Blue `#0000FF` |
42| Formula cells | White | Black |
43| Cross-tab links | White | Green `#008000` |
44| Check rows / key totals | Medium blue `#BDD7EE` | Black bold |
46**That's 3 blues + 1 grey + white.** If the template has its own color scheme, follow the template instead.
48Font color signals *what* a cell is (input/formula/link). Fill color signals *where* you are (header/data/check).

Formatting — Professional Blue/Grey Palette (Default unless template/user specifies otherwise)

Keep colors minimal. Use only blues and greys for cell fills. Do NOT introduce greens, yellows, oranges, or multiple accent colors — a clean model uses restraint.

ElementFillFont
Section headers (IS / BS / CF titles)Dark blue #1F4E79White bold
Column headers (FY2024A, FY2025E, etc.)Light blue #D9E1F2Black bold
Input cells (historicals, assumption drivers)Light grey #F2F2F2 or whiteBlue #0000FF
Formula cellsWhiteBlack
Cross-tab linksWhiteGreen #008000
Check rows / key totalsMedium blue #BDD7EEBlack bold

That's 3 blues + 1 grey + white. If the template has its own color scheme, follow the template instead.

Font color signals what a cell is (input/formula/link). Fill color signals where you are (header/data/check).

Raw lines 33 to 49
50## Model Structure

Model Structure

Raw lines 50 to 51
52### Identifying Template Tab Organization
54Templates vary in their tab naming conventions and organization. Before populating, review all tabs to understand the template's structure. Below are common tab names and their typical contents:
56| Common Tab Names | Contents to Look For |
57|------------------|----------------------|
58| IS, P&L, Income Statement | Income Statement |
59| BS, Balance Sheet | Balance Sheet |
60| CF, CFS, Cash Flow | Cash Flow Statement |
61| WC, Working Capital | Working Capital Schedule |
62| DA, D&A, Depreciation, PP&E | Depreciation & Amortization Schedule |
63| Debt, Debt Schedule | Debt Schedule |
64| NOL, Tax, DTA | Net Operating Loss Schedule |
65| Assumptions, Inputs, Drivers | Driver assumptions and inputs |
66| Checks, Audit, Validation | Error-checking dashboard |
68**Template Review Checklist**
69- Identify which tabs exist in the template (not all templates include every schedule)
70- Note any template-specific tabs not listed above
71- Understand tab dependencies (e.g., which schedules feed into the main statements)
72- Locate input cells vs. formula cells on each tab

Identifying Template Tab Organization

Templates vary in their tab naming conventions and organization. Before populating, review all tabs to understand the template's structure. Below are common tab names and their typical contents:

Common Tab NamesContents to Look For
IS, P&L, Income StatementIncome Statement
BS, Balance SheetBalance Sheet
CF, CFS, Cash FlowCash Flow Statement
WC, Working CapitalWorking Capital Schedule
DA, D&A, Depreciation, PP&EDepreciation & Amortization Schedule
Debt, Debt ScheduleDebt Schedule
NOL, Tax, DTANet Operating Loss Schedule
Assumptions, Inputs, DriversDriver assumptions and inputs
Checks, Audit, ValidationError-checking dashboard

Template Review Checklist

  • Identify which tabs exist in the template (not all templates include every schedule)
  • Note any template-specific tabs not listed above
  • Understand tab dependencies (e.g., which schedules feed into the main statements)
  • Locate input cells vs. formula cells on each tab
Raw lines 52 to 73
74### Understanding Template Structure
76Before populating a template, familiarize yourself with its existing layout to ensure data is entered in the correct locations and formulas remain intact.
78**Identifying Row Structure**
79- Locate the model title at top of each tab
80- Identify section headers and their visual separation
81- Find the units row indicating $ millions, %, x, etc.
82- Note column headers distinguishing Actuals vs. Estimates periods
83- Confirm period labels (e.g., FY2024A, FY2025E)
84- Identify input cells vs. formula cells (typically distinguished by font color)
86**Identifying Column Structure**
87- Confirm line item labels in leftmost column
88- Verify historical years precede projection years
89- Note the visual border separating historical from projected periods
90- Check for consistent column order across all tabs
92**Working with Named Ranges**
93Templates often use named ranges for key inputs and outputs. Before entering data:
94- Review existing named ranges in the template (Formulas → Name Manager in Excel)
95- Common named ranges include: Revenue growth rates, cost percentages, key outputs (Net Income, EBITDA, Total Debt, Cash), scenario selector cell
96- Ensure inputs are entered in cells that feed into these named ranges

Understanding Template Structure

Before populating a template, familiarize yourself with its existing layout to ensure data is entered in the correct locations and formulas remain intact.

Identifying Row Structure

  • Locate the model title at top of each tab
  • Identify section headers and their visual separation
  • Find the units row indicating $ millions, %, x, etc.
  • Note column headers distinguishing Actuals vs. Estimates periods
  • Confirm period labels (e.g., FY2024A, FY2025E)
  • Identify input cells vs. formula cells (typically distinguished by font color)

Identifying Column Structure

  • Confirm line item labels in leftmost column
  • Verify historical years precede projection years
  • Note the visual border separating historical from projected periods
  • Check for consistent column order across all tabs

Working with Named Ranges Templates often use named ranges for key inputs and outputs. Before entering data:

  • Review existing named ranges in the template (Formulas → Name Manager in Excel)
  • Common named ranges include: Revenue growth rates, cost percentages, key outputs (Net Income, EBITDA, Total Debt, Cash), scenario selector cell
  • Ensure inputs are entered in cells that feed into these named ranges
Raw lines 74 to 97
98### Projection Period
99- Templates typically project 5 years forward from last historical year
100- Verify historical (A) vs. projected (E) columns are clearly separated
101- Confirm columns use fiscal year notation (e.g., FY2024A, FY2025E)

Projection Period

  • Templates typically project 5 years forward from last historical year
  • Verify historical (A) vs. projected (E) columns are clearly separated
  • Confirm columns use fiscal year notation (e.g., FY2024A, FY2025E)
Raw lines 98 to 102
103## Margin Analysis
105**Note: The following margin analysis should only be performed if prompted by the user or if the template explicitly requires it. If no prompt is given, skip this section.**
107Calculate and display profitability margins on the Income Statement (IS) tab to track operational efficiency and enable peer comparison.

Margin Analysis

Note: The following margin analysis should only be performed if prompted by the user or if the template explicitly requires it. If no prompt is given, skip this section.

Calculate and display profitability margins on the Income Statement (IS) tab to track operational efficiency and enable peer comparison.

Raw lines 103 to 108
109### Core Margins to Include
111| Margin | Formula | What It Measures |
112|--------|---------|------------------|
113| Gross Margin | Gross Profit / Revenue | Pricing power, production efficiency |
114| EBITDA Margin | EBITDA / Revenue | Core operating profitability |
115| EBIT Margin | EBIT / Revenue | Operating profitability after D&A |
116| Net Income Margin | Net Income / Revenue | Bottom-line profitability |

Core Margins to Include

MarginFormulaWhat It Measures
Gross MarginGross Profit / RevenuePricing power, production efficiency
EBITDA MarginEBITDA / RevenueCore operating profitability
EBIT MarginEBIT / RevenueOperating profitability after D&A
Net Income MarginNet Income / RevenueBottom-line profitability
Raw lines 109 to 117
118### Income Statement Layout with Margins
120Display margin percentages directly below each profit line item:
121- Gross Margin % below Gross Profit
122- EBIT Margin % below EBIT
123- EBITDA Margin % below EBITDA
124- Net Income Margin % below Net Income

Income Statement Layout with Margins

Display margin percentages directly below each profit line item:

  • Gross Margin % below Gross Profit
  • EBIT Margin % below EBIT
  • EBITDA Margin % below EBITDA
  • Net Income Margin % below Net Income
Raw lines 118 to 125
126## Credit Metrics
128**Note: The following Credit analysis should only be performed if prompted by the user or if the template explicitly requires it. If no prompt is given, skip this section.**
130Calculate and display credit/leverage metrics on the Balance Sheet (BS) tab to assess financial health, debt capacity, and covenant compliance.

Credit Metrics

Note: The following Credit analysis should only be performed if prompted by the user or if the template explicitly requires it. If no prompt is given, skip this section.

Calculate and display credit/leverage metrics on the Balance Sheet (BS) tab to assess financial health, debt capacity, and covenant compliance.

Raw lines 126 to 131
132### Core Credit Metrics to Include
134| Metric | Formula | What It Measures |
135|--------|---------|------------------|
136| Total Debt / EBITDA | Total Debt / LTM EBITDA | Leverage multiple |
137| Net Debt / EBITDA | (Total Debt - Cash) / LTM EBITDA | Leverage net of cash |
138| Interest Coverage | EBITDA / Interest Expense | Ability to service debt |
139| Debt / Total Cap | Total Debt / (Total Debt + Equity) | Capital structure |
140| Debt / Equity | Total Debt / Total Equity | Financial leverage |
141| Current Ratio | Current Assets / Current Liabilities | Short-term liquidity |
142| Quick Ratio | (Current Assets - Inventory) / Current Liabilities | Immediate liquidity |

Core Credit Metrics to Include

MetricFormulaWhat It Measures
Total Debt / EBITDATotal Debt / LTM EBITDALeverage multiple
Net Debt / EBITDA(Total Debt - Cash) / LTM EBITDALeverage net of cash
Interest CoverageEBITDA / Interest ExpenseAbility to service debt
Debt / Total CapTotal Debt / (Total Debt + Equity)Capital structure
Debt / EquityTotal Debt / Total EquityFinancial leverage
Current RatioCurrent Assets / Current LiabilitiesShort-term liquidity
Quick Ratio(Current Assets - Inventory) / Current LiabilitiesImmediate liquidity
Raw lines 132 to 143
144### Credit Metric Hierarchy Checks
146Validate that Upside shows strongest credit profile:
147- Leverage: Upside < Base < Downside (lower is better)
148- Coverage: Upside > Base > Downside (higher is better)
149- Liquidity: Upside > Base > Downside (higher is better)

Credit Metric Hierarchy Checks

Validate that Upside shows strongest credit profile:

  • Leverage: Upside < Base < Downside (lower is better)
  • Coverage: Upside > Base > Downside (higher is better)
  • Liquidity: Upside > Base > Downside (higher is better)
Raw lines 144 to 150
151### Covenant Compliance Tracking
153If debt covenants are known, add explicit compliance checks comparing actual metrics to covenant thresholds.

Covenant Compliance Tracking

If debt covenants are known, add explicit compliance checks comparing actual metrics to covenant thresholds.

Raw lines 151 to 154
155## Scenario Analysis (Base / Upside / Downside)
157Use a scenario toggle (dropdown) in the Assumptions tab with CHOOSE or INDEX/MATCH formulas.
159| Scenario | Description |
160|----------|-------------|
161| Base Case | Management guidance or consensus estimates |
162| Upside Case | Above-guidance growth, margin expansion |
163| Downside Case | Below-trend growth, margin compression |
165**Key Drivers to Sensitize**: Revenue growth, Gross margin, SG&A %, DSO/DIO/DPO, CapEx %, Interest rate, Tax rate.
167**Scenario Audit Checks**: Toggle switches all statements, BS balances in all scenarios, Cash ties out, Hierarchy holds (Upside > Base > Downside for NI, EBITDA, FCF, margins).

Scenario Analysis (Base / Upside / Downside)

Use a scenario toggle (dropdown) in the Assumptions tab with CHOOSE or INDEX/MATCH formulas.

ScenarioDescription
Base CaseManagement guidance or consensus estimates
Upside CaseAbove-guidance growth, margin expansion
Downside CaseBelow-trend growth, margin compression

Key Drivers to Sensitize: Revenue growth, Gross margin, SG&A %, DSO/DIO/DPO, CapEx %, Interest rate, Tax rate.

Scenario Audit Checks: Toggle switches all statements, BS balances in all scenarios, Cash ties out, Hierarchy holds (Upside > Base > Downside for NI, EBITDA, FCF, margins).

Raw lines 155 to 168
169## SEC Filings Data Extraction
171If the template specifically requires pulling data from SEC filings (10-K, 10-Q), see [references/sec-filings.md](references/sec-filings.md) for detailed extraction guidance. This reference is only needed when populating templates with public company data from regulatory filings.

SEC Filings Data Extraction

If the template specifically requires pulling data from SEC filings (10-K, 10-Q), see references/sec-filings.md for detailed extraction guidance. This reference is only needed when populating templates with public company data from regulatory filings.

Raw lines 169 to 172
Reads a file references/sec-filings.md :171
173## Completing Model Templates
175This section provides general guidance for completing any 3-statement financial model template while preserving existing formulas and ensuring data integrity.

Completing Model Templates

This section provides general guidance for completing any 3-statement financial model template while preserving existing formulas and ensuring data integrity.

Raw lines 173 to 176
177### Step 1: Analyze the Template Structure
179Before entering any data, thoroughly review the template to understand its architecture:
181**Identify Input vs. Formula Cells**
182- Look for visual cues (font color, cell shading) that distinguish input cells from formula cells
183- Common conventions: Blue font = inputs, Black font = formulas, Green font = links to other sheets
184- Use Excel's Trace Precedents/Dependents (Formulas → Trace Precedents) to understand cell relationships
185- Check for named ranges that may control key inputs (Formulas → Name Manager)
187**Map the Template's Flow**
188- Identify which tabs feed into others (e.g., Assumptions → IS → BS → CF)
189- Note any supporting schedules and their linkages to main statements
190- Document the template's specific line items and structure before populating

Step 1: Analyze the Template Structure

Before entering any data, thoroughly review the template to understand its architecture:

Identify Input vs. Formula Cells

  • Look for visual cues (font color, cell shading) that distinguish input cells from formula cells
  • Common conventions: Blue font = inputs, Black font = formulas, Green font = links to other sheets
  • Use Excel's Trace Precedents/Dependents (Formulas → Trace Precedents) to understand cell relationships
  • Check for named ranges that may control key inputs (Formulas → Name Manager)

Map the Template's Flow

  • Identify which tabs feed into others (e.g., Assumptions → IS → BS → CF)
  • Note any supporting schedules and their linkages to main statements
  • Document the template's specific line items and structure before populating
Raw lines 177 to 191
192### Step 2: Filling in Data Without Breaking Formulas
194**Golden Rules for Data Entry**
196| Rule | Description |
197|------|-------------|
198| Only edit input cells | Never overwrite cells containing formulas unless intentionally replacing the formula |
199| Preserve cell references | When copying data, use Paste Values (Ctrl+Shift+V) to avoid overwriting formulas with source formatting |
200| Match the template's units | Verify if template uses thousands, millions, or actual values before entering data |
201| Respect sign conventions | Follow the template's existing sign convention (e.g., expenses as positive or negative) |
202| Check for circular references | If the template uses iterative calculations, ensure Enable Iterative Calculation is turned on |
204**Safe Data Entry Process**
2051. Identify the exact cells designated for input (usually highlighted or labeled)
2062. Enter historical data first, then verify formulas are calculating correctly for those periods
2073. Enter assumption drivers that feed forecast calculations
2084. Review calculated outputs to confirm formulas are working as intended
2095. If a formula cell must be modified, document the original formula before making changes
211**Handling Pre-Built Formulas**
212- If formulas reference cells you haven't populated yet, expect temporary errors (#REF!, #DIV/0!) until all inputs are complete
213- When formulas produce unexpected results, trace precedents to identify missing or incorrect inputs
214- Never delete rows/columns without checking for formula dependencies across all tabs

Step 2: Filling in Data Without Breaking Formulas

Golden Rules for Data Entry

RuleDescription
Only edit input cellsNever overwrite cells containing formulas unless intentionally replacing the formula
Preserve cell referencesWhen copying data, use Paste Values (Ctrl+Shift+V) to avoid overwriting formulas with source formatting
Match the template's unitsVerify if template uses thousands, millions, or actual values before entering data
Respect sign conventionsFollow the template's existing sign convention (e.g., expenses as positive or negative)
Check for circular referencesIf the template uses iterative calculations, ensure Enable Iterative Calculation is turned on

Safe Data Entry Process

  1. Identify the exact cells designated for input (usually highlighted or labeled)
  2. Enter historical data first, then verify formulas are calculating correctly for those periods
  3. Enter assumption drivers that feed forecast calculations
  4. Review calculated outputs to confirm formulas are working as intended
  5. If a formula cell must be modified, document the original formula before making changes

Handling Pre-Built Formulas

  • If formulas reference cells you haven't populated yet, expect temporary errors (#REF!, #DIV/0!) until all inputs are complete
  • When formulas produce unexpected results, trace precedents to identify missing or incorrect inputs
  • Never delete rows/columns without checking for formula dependencies across all tabs
Raw lines 192 to 215
216### Step 3: Validating Formulas
218**Formula Integrity Checks**
220Before relying on template outputs, validate that formulas are functioning correctly:
222| Check Type | Method |
223|------------|--------|
224| Trace precedents | Select a formula cell → Formulas → Trace Precedents to verify it references correct inputs |
225| Trace dependents | Verify key inputs flow to expected output cells |
226| Evaluate formula | Use Formulas → Evaluate Formula to step through complex calculations |
227| Check for hardcodes | Projection formulas should reference assumptions, not contain hardcoded values |
228| Test with known values | Input simple test values to verify formulas produce expected results |
229| Cross-tab consistency | Ensure the same formula logic applies across all projection periods |
231**Common Formula Issues to Watch For**
232- Mixed absolute/relative references causing incorrect results when copied across periods
233- Broken links to external files or deleted ranges (#REF! errors)
234- Division by zero in early periods before revenue ramps (#DIV/0! errors)
235- Circular reference warnings (may be intentional for interest calculations)
236- Inconsistent formulas across projection columns (use Ctrl+\ to find differences)
238**Validating Cross-Tab Linkages**
239- Confirm values that appear on multiple tabs are linked (not duplicated)
240- Verify schedule totals tie to corresponding line items on main statements
241- Check that period labels align across all tabs

Step 3: Validating Formulas

Formula Integrity Checks

Before relying on template outputs, validate that formulas are functioning correctly:

Check TypeMethod
Trace precedentsSelect a formula cell → Formulas → Trace Precedents to verify it references correct inputs
Trace dependentsVerify key inputs flow to expected output cells
Evaluate formulaUse Formulas → Evaluate Formula to step through complex calculations
Check for hardcodesProjection formulas should reference assumptions, not contain hardcoded values
Test with known valuesInput simple test values to verify formulas produce expected results
Cross-tab consistencyEnsure the same formula logic applies across all projection periods

Common Formula Issues to Watch For

  • Mixed absolute/relative references causing incorrect results when copied across periods
  • Broken links to external files or deleted ranges (#REF! errors)
  • Division by zero in early periods before revenue ramps (#DIV/0! errors)
  • Circular reference warnings (may be intentional for interest calculations)
  • Inconsistent formulas across projection columns (use Ctrl+\ to find differences)

Validating Cross-Tab Linkages

  • Confirm values that appear on multiple tabs are linked (not duplicated)
  • Verify schedule totals tie to corresponding line items on main statements
  • Check that period labels align across all tabs
Raw lines 216 to 242
243### Step 4: Quality Checks by Sheet
245Perform these validation checks on each sheet after populating the template:
247**Income Statement (IS) Quality Checks**
248- Revenue figures match source data for historical periods
249- All expense line items sum to reported totals
250- Subtotals (Gross Profit, EBIT, EBT, Net Income) calculate correctly
251- Tax calculation logic is appropriate (handles losses correctly)
252- Forecast drivers reference assumptions tab (no hardcodes)
253- Period-over-period changes are directionally reasonable
255**Balance Sheet (BS) Quality Checks**
256- Assets = Liabilities + Equity for every period (primary check)
257- Cash balance matches Cash Flow Statement ending cash
258- Working capital accounts tie to supporting schedules (if applicable)
259- Retained Earnings rolls forward correctly: Prior RE + Net Income - Dividends +/- Adjustments = Ending RE
260- Debt balances tie to debt schedule (if applicable)
261- All balance sheet items have appropriate signs (assets positive, most liabilities positive)
263**Cash Flow Statement (CF) Quality Checks**
264- Net Income at top of CFO matches Income Statement Net Income
265- Non-cash add-backs (D&A, SBC, etc.) tie to their source schedules/statements
266- Working capital changes have correct signs (increase in asset = use of cash = negative)
267- CapEx ties to PP&E schedule or fixed asset roll-forward
268- Financing activities tie to changes in debt and equity accounts on BS
269- Ending Cash matches Balance Sheet Cash
270- Beginning Cash equals prior period Ending Cash
272**Supporting Schedule Quality Checks**
273- Opening balances equal prior period closing balances
274- Roll-forward logic is complete (Beginning + Additions - Deductions = Ending)
275- Schedule totals tie to main statement line items
276- Assumptions used in calculations match Assumptions tab

Step 4: Quality Checks by Sheet

Perform these validation checks on each sheet after populating the template:

Income Statement (IS) Quality Checks

  • Revenue figures match source data for historical periods
  • All expense line items sum to reported totals
  • Subtotals (Gross Profit, EBIT, EBT, Net Income) calculate correctly
  • Tax calculation logic is appropriate (handles losses correctly)
  • Forecast drivers reference assumptions tab (no hardcodes)
  • Period-over-period changes are directionally reasonable

Balance Sheet (BS) Quality Checks

  • Assets = Liabilities + Equity for every period (primary check)
  • Cash balance matches Cash Flow Statement ending cash
  • Working capital accounts tie to supporting schedules (if applicable)
  • Retained Earnings rolls forward correctly: Prior RE + Net Income - Dividends +/- Adjustments = Ending RE
  • Debt balances tie to debt schedule (if applicable)
  • All balance sheet items have appropriate signs (assets positive, most liabilities positive)

Cash Flow Statement (CF) Quality Checks

  • Net Income at top of CFO matches Income Statement Net Income
  • Non-cash add-backs (D&A, SBC, etc.) tie to their source schedules/statements
  • Working capital changes have correct signs (increase in asset = use of cash = negative)
  • CapEx ties to PP&E schedule or fixed asset roll-forward
  • Financing activities tie to changes in debt and equity accounts on BS
  • Ending Cash matches Balance Sheet Cash
  • Beginning Cash equals prior period Ending Cash

Supporting Schedule Quality Checks

  • Opening balances equal prior period closing balances
  • Roll-forward logic is complete (Beginning + Additions - Deductions = Ending)
  • Schedule totals tie to main statement line items
  • Assumptions used in calculations match Assumptions tab
Raw lines 243 to 277
278### Step 5: Cross-Statement Integrity Checks
280After validating individual sheets, confirm the three statements are properly integrated:
282| Check | Formula | Expected Result |
283|-------|---------|-----------------|
284| Balance Sheet Balance | Assets - Liabilities - Equity | = 0 |
285| Cash Tie-Out | CF Ending Cash - BS Cash | = 0 |
286| Net Income Link | IS Net Income - CF Starting Net Income | = 0 |
287| Retained Earnings | Prior RE + NI - Dividends - BS Ending RE | = 0 (adjust for SBC/other items as needed) |

Step 5: Cross-Statement Integrity Checks

After validating individual sheets, confirm the three statements are properly integrated:

CheckFormulaExpected Result
Balance Sheet BalanceAssets - Liabilities - Equity= 0
Cash Tie-OutCF Ending Cash - BS Cash= 0
Net Income LinkIS Net Income - CF Starting Net Income= 0
Retained EarningsPrior RE + NI - Dividends - BS Ending RE= 0 (adjust for SBC/other items as needed)
Raw lines 278 to 288
289### Step 6: Final Review
291Before considering the model complete:
292- Toggle through all scenarios (if applicable) to verify checks pass in each case
293- Review all #REF!, #DIV/0!, #VALUE!, and #NAME? errors and resolve or document
294- Confirm all input cells have been populated (search for placeholder values)
295- Verify units are consistent across all tabs
296- Save a clean version before making any additional modifications

Step 6: Final Review

Before considering the model complete:

  • Toggle through all scenarios (if applicable) to verify checks pass in each case
  • Review all #REF!, #DIV/0!, #VALUE!, and #NAME? errors and resolve or document
  • Confirm all input cells have been populated (search for placeholder values)
  • Verify units are consistent across all tabs
  • Save a clean version before making any additional modifications
Raw lines 289 to 297
298## Model Validation and Audit
300This section consolidates all validation checks and audit procedures for completed templates.

Model Validation and Audit

This section consolidates all validation checks and audit procedures for completed templates.

Raw lines 298 to 301
302### Core Linkages (Must Always Hold)
304See [references/formulas.md](references/formulas.md) for all formula details.
306| Check | Formula | Expected Result |
307|-------|---------|-----------------|
308| Balance Sheet Balance | Assets - Liabilities - Equity | = 0 |
309| Cash Tie-Out | CF Ending Cash - BS Cash | = 0 |
310| Cash Monthly vs Annual | Closing Cash (Monthly) - Closing Cash (Annual) | = 0 |
311| Net Income Link | IS Net Income - CF Starting Net Income | = 0 |
312| Retained Earnings | Prior RE + NI + SBC - Dividends - BS Ending RE | = 0 |
313| Equity Financing | ΔCommon Stock/APIC (BS) - Equity Issuance (CFF) | = 0 |
314| Year 0 Equity | Equity Raised (Year 0) - Beginning Equity Capital (Year 1) | = 0 |

Core Linkages (Must Always Hold)

See references/formulas.md for all formula details.

CheckFormulaExpected Result
Balance Sheet BalanceAssets - Liabilities - Equity= 0
Cash Tie-OutCF Ending Cash - BS Cash= 0
Cash Monthly vs AnnualClosing Cash (Monthly) - Closing Cash (Annual)= 0
Net Income LinkIS Net Income - CF Starting Net Income= 0
Retained EarningsPrior RE + NI + SBC - Dividends - BS Ending RE= 0
Equity FinancingΔCommon Stock/APIC (BS) - Equity Issuance (CFF)= 0
Year 0 EquityEquity Raised (Year 0) - Beginning Equity Capital (Year 1)= 0
Raw lines 302 to 315
Reads a file references/formulas.md :304
316### Sign Convention Reference
318| Statement | Item | Sign Convention |
319|-----------|------|-----------------|
320| CFO | D&A, SBC | Positive (add-back) |
321| CFO | ΔAR (increase) | Negative (use of cash) |
322| CFO | ΔAP (increase) | Positive (source of cash) |
323| CFI | CapEx | Negative |
324| CFF | Debt issuance | Positive |
325| CFF | Debt repayments | Negative |
326| CFF | Dividends | Negative |

Sign Convention Reference

StatementItemSign Convention
CFOD&A, SBCPositive (add-back)
CFOΔAR (increase)Negative (use of cash)
CFOΔAP (increase)Positive (source of cash)
CFICapExNegative
CFFDebt issuancePositive
CFFDebt repaymentsNegative
CFFDividendsNegative
Raw lines 316 to 327
328### Circular Reference Handling
330Interest expense creates circularity: Interest → Net Income → Cash → Debt Balance → Interest
332Enable iterative calculation in Excel: File → Options → Formulas → Enable iterative calculation. Set maximum iterations to 100, maximum change to 0.001. Add a circuit breaker toggle in Assumptions tab.

Circular Reference Handling

Interest expense creates circularity: Interest → Net Income → Cash → Debt Balance → Interest

Enable iterative calculation in Excel: File → Options → Formulas → Enable iterative calculation. Set maximum iterations to 100, maximum change to 0.001. Add a circuit breaker toggle in Assumptions tab.

Raw lines 328 to 333
334### Check Categories
336**Section 1: Currency Consistency**
337- Currency identified and documented in Assumptions
338- All tabs use consistent currency symbol and scale
339- Units row matches model currency
341**Section 2: Balance Sheet Integrity**
342- Assets = Liabilities + Equity (for each period)
343- Formula: Assets - Liabilities - Equity (must = 0)
345**Section 3: Cash Flow Integrity**
346- Cash ties to BS (CF Ending Cash = BS Cash)
347- Cash Monthly vs Annual: Closing Cash (Monthly) = Closing Cash (Annual)
348- NI ties to IS (CF Net Income = IS Net Income)
349- D&A ties to schedule
350- SBC ties to IS
351- ΔAR, ΔInventory, ΔAP tie to WC schedule
352- CapEx ties to DA schedule
354**Section 4: Retained Earnings**
355- RE roll-forward check: Prior RE + NI + SBC - Dividends = Ending RE
356- Show component breakdown for debugging
358**Section 5: Working Capital**
359- AR, Inventory, AP tie to BS
360- DSO, DIO, DPO reasonability checks (flag if outside normal ranges)
362**Section 6: Debt Schedule**
363- Total Debt ties to BS (Current + LT Debt)
364- Interest calculation ties to IS
366**Section 6b: Equity Financing**
367- Equity issuance proceeds tie to BS Common Stock/APIC increase
368- Cash increase from equity = Equity account increase (must balance)
369- Equity Raise Tie-Out: ΔCommon Stock/APIC (BS) = Equity Issuance (CFF) (must = 0)
370- Year 0 Equity Tie-Out: Equity Raised (Year 0) = Beginning Equity Capital (Year 1)
372**Section 6c: NOL Schedule**
373- Beginning NOL (Year 1 / Formation) = 0 (new business starts with zero NOL)
374- NOL increases only when EBT < 0 (losses must be realized to generate NOL)
375- DTA ties to BS (NOL Schedule DTA = BS Deferred Tax Asset)
376- NOL utilization ≤ 80% of EBT (post-2017 federal limitation)
377- NOL balance is non-negative (cannot utilize more than available)
378- NOL generated only when EBT < 0
379- Tax expense = 0 when taxable income ≤ 0
381**Section 7: Scenario Hierarchy**
382- Absolute metrics: Upside > Base > Downside (NI, EBITDA, FCF)
383- Margins: Upside > Base > Downside (GM%, EBITDA%, NI%)
384- Credit metrics: Upside < Base < Downside for leverage (inverted)
386**Section 8: Formula Integrity**
387- COGS, S&M, G&A, R&D, SBC driven by % of Revenue (no hardcodes)
388- Consistent formulas across projection years
389- No #REF!, #DIV/0!, #VALUE! errors
391**Section 9: Credit Metric Thresholds**
392- Flag metrics as Green/Yellow/Red based on covenant thresholds
393- Summary of any red flags

Check Categories

Section 1: Currency Consistency

  • Currency identified and documented in Assumptions
  • All tabs use consistent currency symbol and scale
  • Units row matches model currency

Section 2: Balance Sheet Integrity

  • Assets = Liabilities + Equity (for each period)
  • Formula: Assets - Liabilities - Equity (must = 0)

Section 3: Cash Flow Integrity

  • Cash ties to BS (CF Ending Cash = BS Cash)
  • Cash Monthly vs Annual: Closing Cash (Monthly) = Closing Cash (Annual)
  • NI ties to IS (CF Net Income = IS Net Income)
  • D&A ties to schedule
  • SBC ties to IS
  • ΔAR, ΔInventory, ΔAP tie to WC schedule
  • CapEx ties to DA schedule

Section 4: Retained Earnings

  • RE roll-forward check: Prior RE + NI + SBC - Dividends = Ending RE
  • Show component breakdown for debugging

Section 5: Working Capital

  • AR, Inventory, AP tie to BS
  • DSO, DIO, DPO reasonability checks (flag if outside normal ranges)

Section 6: Debt Schedule

  • Total Debt ties to BS (Current + LT Debt)
  • Interest calculation ties to IS

Section 6b: Equity Financing

  • Equity issuance proceeds tie to BS Common Stock/APIC increase
  • Cash increase from equity = Equity account increase (must balance)
  • Equity Raise Tie-Out: ΔCommon Stock/APIC (BS) = Equity Issuance (CFF) (must = 0)
  • Year 0 Equity Tie-Out: Equity Raised (Year 0) = Beginning Equity Capital (Year 1)

Section 6c: NOL Schedule

  • Beginning NOL (Year 1 / Formation) = 0 (new business starts with zero NOL)
  • NOL increases only when EBT < 0 (losses must be realized to generate NOL)
  • DTA ties to BS (NOL Schedule DTA = BS Deferred Tax Asset)
  • NOL utilization ≤ 80% of EBT (post-2017 federal limitation)
  • NOL balance is non-negative (cannot utilize more than available)
  • NOL generated only when EBT < 0
  • Tax expense = 0 when taxable income ≤ 0

Section 7: Scenario Hierarchy

  • Absolute metrics: Upside > Base > Downside (NI, EBITDA, FCF)
  • Margins: Upside > Base > Downside (GM%, EBITDA%, NI%)
  • Credit metrics: Upside < Base < Downside for leverage (inverted)

Section 8: Formula Integrity

  • COGS, S&M, G&A, R&D, SBC driven by % of Revenue (no hardcodes)
  • Consistent formulas across projection years
  • No #REF!, #DIV/0!, #VALUE! errors

Section 9: Credit Metric Thresholds

  • Flag metrics as Green/Yellow/Red based on covenant thresholds
  • Summary of any red flags
Raw lines 334 to 394
395### Master Check Formula
397Aggregate all section statuses into a single master check:
398- If all sections pass → "✓ ALL CHECKS PASS"
399- If any section fails → "✗ ERRORS DETECTED - REVIEW BELOW"

Master Check Formula

Aggregate all section statuses into a single master check:

  • If all sections pass → "✓ ALL CHECKS PASS"
  • If any section fails → "✗ ERRORS DETECTED - REVIEW BELOW"
Raw lines 395 to 400
401### Quick Debug Workflow
403When Master Status shows errors:
4041. Scroll to find red-highlighted sections
4052. Identify which check category has failures
4063. Navigate to source tab to investigate
4074. Fix the underlying issue
4085. Return to Checks tab to verify resolution

Quick Debug Workflow

When Master Status shows errors:

  1. Scroll to find red-highlighted sections
  2. Identify which check category has failures
  3. Navigate to source tab to investigate
  4. Fix the underlying issue
  5. Return to Checks tab to verify resolution
Raw lines 401 to 408

From anthropics/financial-services at 6056506, 2026-10-28. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.