../

Financial analysis

Prompting chat assistants to read, analyze and model companies, projects and household finances when you are not an analyst: how analysts think, the vocabulary, what to hand the model and what to ask for by name, a prompt chain that takes one company's filings to a full analysis, a prompt library for ratios, comps, earnings calls, budgets, projects and personal debt, and how to check every number. Every full prompt uses the skeleton from Prompting fundamentals. The finance itself lives in Financial statements, Valuation and Corporate finance; this sheet is about getting a model to do it well.

How experts think

  • Question first. "Can this company keep paying its dividend?" needs different work than "is it cheap?" Analysts pick the analysis from the decision.
  • Every number has a source. A figure without a filing, page or cell reference is a guess. Analysts can trace any output back to its input.
  • The statements must tie. Net income flows to the cash flow statement and retained earnings; ending cash matches the balance sheet; assets equal liabilities plus equity. A model that does not tie is wrong somewhere.
  • Cash versus accruals. Accrual earnings involve judgment; cash flow is harder to dress up. Experts compare the two.
  • Compare, always. A ratio means little alone. Compare it with the company's own history, close peers and the plan.
  • Drivers, not plugs. Forecasts are built from drivers (customers × price, headcount × cost) rather than "revenue grows 10%".
  • Assumptions are visible and separate. Inputs on one sheet, calculations on another, outputs on a third.
  • Ranges, not points. Value and forecasts are given as scenarios and sensitivity tables, because the inputs are uncertain.
  • Skepticism about adjusted numbers. "Adjusted", "one-time" and "non-recurring" invite a closer look.

Vocabulary

TermWhat it meansSay it like
Income statementrevenue, costs and profit over a period"Common-size the income statement: every line as % of revenue"
Balance sheetassets, liabilities and equity at a date"Show the balance sheet trend over three years"
Cash flow statementcash in and out over a period: operating, investing, financing"Reconcile net income to operating cash flow"
Revenuesales recognized in the period"Split revenue by segment and by recurring vs one-off"
COGS (cost of goods sold, cost of revenue)direct cost of what was sold"Which costs are in COGS here?"
Gross margin(revenue − COGS) ÷ revenue"Explain the gross margin change in basis points"
Operating income / EBITprofit from operations before interest and tax"Bridge operating income year over year"
EBITDAEBIT plus depreciation and amortization"Show EBITDA and say what it leaves out"
Net incomethe bottom line after interest and tax"Why did net income grow faster than revenue?"
EPSnet income per share (basic and diluted)"Use diluted EPS"
Accrual accountingrevenue and costs recorded when earned or incurred, not when cash moves"Where do accruals and cash diverge most?"
Working capitalcurrent assets − current liabilities; operating version uses receivables, inventory, payables"How much cash did working capital absorb?"
Deferred revenuecash received for service not yet delivered: a liability"How does deferred revenue affect cash flow here?"
CFO (cash from operations)operating cash flow"Compare CFO with net income for five years"
Capexcapital expenditure: spending on long-lived assets"Separate maintenance from growth capex if disclosed"
Free cash flow (FCF)cash after the investment needed to run and grow; definitions vary"State the FCF definition you use"
NOPATnet operating profit after tax: EBIT × (1 − tax rate)"Compute NOPAT with a 25% tax rate assumption"
ROE / ROICnet income ÷ equity / NOPAT ÷ invested capital"Is ROIC above the cost of capital?"
Leveragehow much is financed with debt"Net debt to EBITDA, with covenant context"
Liquidityability to meet near-term obligations"Current and quick ratios, with what they miss"
WACCweighted average cost of capital: the blended return lenders and shareholders require"Show the WACC inputs as a table with sources"
DCFdiscounted cash flow: value = present value of future free cash flows"Build a 5-year DCF in a spreadsheet with formulas"
Terminal valuevalue of all cash flows after the forecast period"What share of value is terminal value?"
Enterprise value (EV)value of the operating business to all capital providers"Bridge EV to equity value"
Multipleprice or EV divided by a metric (EBITDA, earnings, revenue)"Comps table with EV/EBITDA and P/E, median and range"
LTM / NTMlast twelve months / next twelve months"Use LTM figures for every company"
CAGRcompound annual growth rate"Five-year revenue CAGR, with the formula"
Run-ratea recent period annualized"Don't annualize a seasonal quarter"
Basis point (bp)0.01 percentage point"Margin fell 120 bp"
Unit economicsrevenue and cost per customer or unit"Unit economics per subscriber: CAC, gross margin, payback"
CAC / LTVcustomer acquisition cost / lifetime value of a customer"LTV to CAC, with the formula and assumptions"
Churn / retentionshare of customers or revenue lost / kept per period"Logo churn and net revenue retention by cohort"
Contribution marginrevenue minus variable costs"Contribution margin per order"
Variance analysisexplaining actual vs budget differences"Variance commentary for lines over 5% and $10k"
Flex budgetbudget restated at actual volume"Split the variance using a flex budget"
Driver-based forecastforecast built from operating drivers"Driver-based revenue: stores × transactions × ticket"
Sensitivity / scenario analysischange one input at a time / change several together as a coherent story"Sensitivity grid of WACC vs terminal growth; three scenarios"
Non-GAAPcompany-defined measures outside accounting standards (GAAP or IFRS)"Reconcile adjusted EBITDA to net income"
Quality of earningshow well reported profit reflects sustainable cash generation"Run a quality-of-earnings check"
10-K / 10-Q / 8-KUS annual report / quarterly report / current report on material events"Cite the 10-K item and note number"
MD&Amanagement's discussion and analysis: management explains results"Summarize MD&A drivers with quotes"
StatementShowsCoversKey lines
Income statementprofitabilitya periodrevenue, COGS, gross profit, operating expenses, operating income, interest, tax, net income
Balance sheetfinancial positiona datecash, receivables, inventory, PP&E (property, plant and equipment), intangibles; payables, debt, deferred revenue; equity
Cash flow statementcash movementsa periodoperating (CFO), investing (CFI), financing (CFF)

The links an analyst checks, and you should ask a model to check in anything it builds:

  1. Net income starts the cash flow statement (indirect method) and adds to retained earnings, less dividends.
  2. Ending cash on the cash flow statement equals cash on the balance sheet.
  3. Capex in investing adds to PP&E; depreciation reduces PP&E and is added back in operating cash flow.
  4. Changes in working capital (receivables, inventory, payables, deferred revenue) explain the gap between net income and CFO.
  5. Borrowing, repayments, dividends and buybacks in financing move debt and equity on the balance sheet.
  6. Assets = liabilities + equity, every period.

The links on a small example company, one at a time:

Income statement the year Cash flow statement the year Balance sheet start end Revenue 500 COGS −250 Operating expenses −90 D&A −40 Interest −10 Tax −30 Net income 80 Net income 80 + D&A (non-cash) 40 − rise in receivables −20 Cash from operations 100 Capex (investing) −60 Dividends (financing) −30 Net change in cash +10 Beginning cash 50 Ending cash 60 Cash 50 60 Receivables 80 100 PP&E 300 320 Total assets 430 480 Debt 150 150 Share capital 100 100 Retained earnings 180 230 Total L + E 430 480 net income 80 starts the cash flow statement and adds to retained earnings the cash flow statement's ending cash, 60, is the balance sheet's cash D&A cost no cash this year: added back; PP&E 300 + 60 capex − 40 D&A = 320 receivables rose 80 → 100: 20 of profit not yet collected, so CFO is 100, not 120 retained earnings 180 + net income 80 − dividends 30 = 230 assets 480 = liabilities + equity 480, at the start (430) and at the end

1/6

Net income (80) is the first line of the cash flow statement and is added to retained earnings on the balance sheet.

Line-by-line anatomy and a worked transaction through all three are in Financial statements.

Ratio analysis

Ask for the formula next to every ratio, and say whether balance-sheet items are period-end or averages (averages are better when dividing a flow by a stock). Definitions vary between sources; consistency matters more than the choice.

CategoryRatioFormulaWhat it tells you
Marginsgross margingross profit ÷ revenuepricing power and delivery cost
operating marginoperating income ÷ revenuecore profitability
EBITDA marginEBITDA ÷ revenueprofitability before depreciation; ignores capex
net marginnet income ÷ revenueafter interest and tax
FCF marginfree cash flow ÷ revenuecash profitability
ReturnsROAnet income ÷ average total assetsprofit per unit of assets
ROEnet income ÷ average equityreturn on book equity; inflated by leverage or buybacks
ROICNOPAT ÷ average invested capital (debt + equity − excess cash, one common version)whether growth creates value; compare with WACC
Liquiditycurrent ratiocurrent assets ÷ current liabilitiesshort-term cover
quick ratio(cash + short-term investments + receivables) ÷ current liabilitiescover without inventory
Leveragedebt-to-equitytotal debt ÷ total equityfinancing mix (some use total liabilities: say which)
net debt / EBITDA(debt − cash) ÷ EBITDAyears of EBITDA to repay debt; common in loan covenants
interest coverageEBIT ÷ interest expenseability to service debt
Efficiencyasset turnoverrevenue ÷ average total assetshow hard assets work
DSOaverage receivables ÷ revenue × 365days to collect
DIOaverage inventory ÷ COGS × 365days inventory sits
DPOaverage payables ÷ COGS × 365days to pay suppliers
cash conversion cycleDSO + DIO − DPOdays cash is tied up in operations
Cash qualitycash conversionCFO ÷ net incomewhether profit turns into cash

The margins are income-statement subtotals divided by revenue; for the same example company:

500 revenue −250 COGS 250 gross profit 50% −90 operating expenses −40 D&A 120 operating income 24% −10 interest −30 tax 80 net income 16% EBITDA 160 · 32% Revenue to net income, the example company's year % = margin: subtotal ÷ revenue
Each subtotal answers a different question, which is why the ratio table has several margins.

DuPont analysis (ROE = net margin × asset turnover × equity multiplier) and worked values for an example company are in Financial statements.

Growth and unit economics

Growth formulas to make the model use (and show)
 
YoY growth     = this period ÷ same period last year − 1
CAGR           = (ending value ÷ starting value)^(1 ÷ years) − 1
Run-rate       = recent period × periods per year  (not for seasonal)
Organic growth = growth excluding acquisitions and FX effects
MetricFormula (simple form)Watch for
CACsales and marketing spend ÷ new customers in the periodwhich costs are included; time lag between spend and customers
Contribution marginrevenue − variable costs (per unit or %)which costs are variable
LTVARPU × gross margin ÷ churn rate, all for the same periodsensitive to churn; ignores discounting in this form
LTV : CACLTV ÷ CAConly as good as both inputs
CAC payback (months)CAC ÷ (monthly ARPU × gross margin)use gross-margin dollars, not revenue
Logo churncustomers lost ÷ customers at startvs revenue churn
Net revenue retention(starting recurring revenue + expansion − contraction − churned) ÷ starting recurring revenuedefine the cohort and period
Cohort analysisbehavior of customers grouped by start monthblended averages hide decay

ARPU is average revenue per user (or account). SaaS definitions and benchmarks are in Startup finance.

DCF basics

A discounted cash flow values a business as the present value of its future free cash flows. The full method, with a worked model and the common mistakes, is in Valuation; the cost of capital is in Corporate finance.

DCF formulas to make the model use (and show)
 
FCFF  = EBIT × (1 − tax rate) + D&A − capex − change in NWC
WACC  = E/(D+E) × cost of equity + D/(D+E) × cost of debt × (1 − t)
PV    = FCF in year t ÷ (1 + WACC)^t
TV    = FCF in year n+1 ÷ (WACC − g)          (Gordon growth)
   or = metric in year n × exit multiple      (exit multiple)
EV    = sum of PV of FCF + PV of TV
Equity value = EV − debt + cash (− preferred, − minority interest)
Value per share = equity value ÷ diluted shares
Forecast free cash flow, years 1–5 100 100 91 yr 1 ÷1.10 105 105 87 yr 2 ÷1.21 110 110 83 yr 3 ÷1.33 116 116 79 yr 4 ÷1.46 122 122 75 yr 5 ÷1.61 sum of present values ≈ 415 cash the business generates each year Terminal value Enterprise value to equity TV 1,550 at year 5 ÷1.61 → 962 today all the years after year 5, in one number 415 962 1,377 −300 +50 1,127 EV 70% is TV debt cash equity 11.27/share FCF = EBIT × (1 − tax) + D&A − capex − change in working capital PV = FCF ÷ (1 + WACC)^t, with WACC 10%: money later is worth less now TV = year-6 FCF ÷ (WACC − g) = 124 ÷ (10% − 2%) = 1,550 EV 1,377 − debt 300 + cash 50 = 1,127; ÷ 100 shares = 11.27

1/4

Forecast free cash flow for each year, built from drivers. Here it grows 5% a year from 100.

What to make the model state and test: the forecast drivers, the tax rate, the WACC inputs with sources, the terminal growth rate (it must stay below long-run nominal growth of the economy), the share of value in the terminal value (it is often most of it), whether it uses a mid-year convention, and a sensitivity table of value per share across a grid of WACC and terminal growth. Free cash flow to the firm pairs with WACC; free cash flow to equity pairs with the cost of equity.

Value per share terminal growth g → 1.0% 1.5% 2.0% 2.5% 3.0% WACC ↓ 8% 13.82 14.80 15.94 17.30 18.92 9% 11.74 12.45 13.27 14.22 15.32 10% 10.12 10.66 11.27 11.97 12.76 11% 8.83 9.25 9.72 10.24 10.83 12% 7.77 8.11 8.48 8.88 9.33 base case: 10%, 2% = 11.27 a share range 7.77–18.92: 2.4× from the same cash flows highest where WACC − g is smallest: 8% − 3% = 5 points same 5-year forecast as above; only the two assumptions change
Same cash flows, two inputs nobody can observe: the value spans 2.4× across the grid.

Comparables and multiples

MultipleFormulaUse forWatch for
EV/EBITDAenterprise value ÷ EBITDAprofitable companies with different leverageignores capex intensity; adjusted EBITDA definitions vary
EV/EBITEV ÷ EBITcapital-intensive peers
EV/RevenueEV ÷ revenueunprofitable or early companiessays nothing about margins
P/Eprice per share ÷ EPS (or market cap ÷ net income)mature, stable earnersdistorted by leverage, one-offs, tax
P/Bprice ÷ book value per sharebanks and insurersmeaningless for asset-light firms
P/FCF or FCF yieldmarket cap ÷ FCF (or its inverse)cash-generative firmsFCF definition

Enterprise value is commonly approximated as market capitalization + debt + preferred stock + minority interest − cash. Pair EV with metrics before interest (revenue, EBITDA, EBIT) and price with metrics after interest (earnings, book value). Use the same period (LTM or NTM) for every company, prefer the median to the mean, and justify each comparable: same business model, growth and margins, not just the same industry label.

Budgeting and variance analysis

Variance = actual − budget
  favorable: revenue above budget, cost below budget
  unfavorable: the reverse
 
Price/volume split for revenue (sums to the total variance):
  price variance  = (actual price − budget price) × actual volume
  volume variance = (actual volume − budget volume) × budget price
 
Flex budget = budget cost per unit × actual volume (for variable
costs); compare actual with the flex budget to isolate efficiency.

Ask for variance commentary only on lines above a threshold you set (for example 5% and $10,000), with the driver behind each ("volume up 8% from two new accounts; price down 2% from promotions") and whether it is timing (will reverse) or permanent. A rolling forecast updates the outlook every month or quarter rather than once a year.

Forecasting, scenarios and sensitivity

TechniqueWhat it isAsk the model to
Driver-based forecastrevenue and costs built from operating driverslist the drivers, their historical values and the assumptions, then build formulas from them
Top-down vs bottom-upmarket size × share vs units × pricedo both and reconcile the gap
Sensitivity analysisone input changed at a timebuild a data table or grid; rank inputs by impact (a tornado chart)
Scenario analysisseveral inputs changed together as a coherent storydefine base, upside and downside narratives first, then numbers
Break-eventhe volume where profit is zero: fixed costs ÷ contribution margin per unitshow the formula and the margin of safety
Monte Carloinputs as distributions, simulated many timeswrite the code, state every distribution, report percentiles

Project appraisal (NPV, IRR and their traps) and break-even analysis are covered in Corporate finance.

Personal finance analyses

AnalysisWhat to give the modelAsk for
Budgetafter-tax income, a few months of categorized spending (export from your bank)categories vs a starting rule such as 50/30/20 (needs, wants, saving, from Elizabeth Warren and Amelia Warren Tyagi's All Your Worth, 2005), with the three biggest levers
Debt payoffeach balance, APR and minimum payment; monthly amount availablean amortization schedule comparing avalanche (highest rate first: least interest) and snowball (smallest balance first: quick wins), in a spreadsheet with formulas
Emergency fundessential monthly costs, income stabilitytarget range and months to reach it
Retirement projectionage, savings, contributions, employer match, fees, planned retirement ageprojections with returns as ranges, real (after inflation) not nominal, and a sensitivity to return and retirement age; the "4% rule" from Bengen (1994) is a historical US rule of thumb, not a guarantee
Rent vs buy, loansprices, rates, terms, taxes, maintenanceamortization with PMT, total cost over the holding period, break-even year

Background is in Money basics, Credit & debt, Investing and Retirement & taxes. Tax rules, account limits and benefits change every year and differ by country: give the model the current figures or verify them.

Red flags and quality of earnings

Ask the model to check these against the statements and notes you provide, and to cite where it found each one. The full table with cases is in Financial statements.

  • Net income growing much faster than operating cash flow, for several years.
  • Receivables growing faster than revenue (rising DSO); inventory growing faster than sales.
  • More costs capitalized than peers (software, customer acquisition), moving expense off the income statement.
  • "One-time" charges that recur; a widening gap between GAAP and adjusted earnings.
  • Stock-based compensation excluded from adjusted metrics while share count rises.
  • Customer or supplier concentration; related-party transactions.
  • Changes in accounting estimates or policies; reserve releases boosting profit.
  • Auditor change, late filing, material weakness in internal control, going-concern language.
  • Off-balance-sheet obligations: leases, guarantees, supplier finance, factoring.

Reading filings and calls

US public companies file on SEC EDGAR: the 10-K (annual, audited), 10-Q (quarterly, unaudited), 8-K (material events; earnings releases are typically furnished under Item 2.02), DEF 14A (proxy statement: executive pay, governance) and S-1 (registration statement for an IPO). Key 10-K items: 1 Business, 1A Risk Factors, 7 MD&A, 7A market risk, 8 Financial Statements and Supplementary Data, 9A Controls and Procedures. Other countries have their own regulators and filing systems.

How to prompt with them:

  • Give the document. Upload the PDF or HTML, or paste the sections. Don't ask "what did the company report" from memory: training data is stale and mixes companies.
  • Demand locations. "Cite the item, note number and page for every figure, with a short quote. If it isn't in the document, say so."
  • Work section by section on long filings: statements first, then notes, then MD&A, then risk factors.
  • Compare like with like. Give both years' filings to compare language changes in risk factors or MD&A.
  • Earnings calls have prepared remarks and a Q&A. Ask for guidance changes, new metrics, dodged questions and tone shifts, quoted with the speaker's name.
  • Structured data. EDGAR's XBRL APIs return reported figures as data; ask for a script that downloads them instead of having the model retype numbers.

Make the model calculate, not recall

Language models predict text; long arithmetic done "in their head" goes wrong. The fixes:

  1. Paste the actual numbers as a table or CSV, with units (thousands or millions) and period end dates.
  2. Ask for formulas, not values: "give Excel formulas with cell references", "build it so I can change the inputs".
  3. Use code. If the assistant can run code, tell it to compute in Python and show the code; otherwise ask for a script or spreadsheet you run yourself.
  4. Assumptions table first: every input with value, source and rationale, separate from calculations.
  5. Tie-outs: totals match the source; the balance sheet balances; ending cash matches; subtotals recompute.
  6. Spot-check by hand two or three numbers that matter most.
Excel / Sheets functionUseGotcha
NPV(rate, values)present value of evenly spaced cash flowstreats the first value as one period out: add the time-0 flow separately
XNPV, XIRRNPV and IRR with actual datesneed a date column
IRRinternal rate of returnmultiple sign changes can give several IRRs
PMT, PV, FV, NPER, RATEloans, savings, annuitiesmatch rate and periods (monthly rate for monthly payments)
SUMIFS, XLOOKUP (or INDEX + MATCH)pull and total data from tablesexact-match defaults
Data Table (What-If Analysis)sensitivity grids in Excelrecalculation can slow large models
Goal Seekthe input that hits a target (break-even)one input at a time

Brief the model

Each input has a slot in the skeleton; the prompts below show them in place. Source documents and data always go in <materials>, first, so the model reads them before the request.

InputSlotWhy it mattersExample
The source data<materials>prevents inventionpasted statements, CSV export, the 10-K PDF, the budget file
Peers or benchmarks<materials>for comparison"Compare with these three companies' figures (attached)"
Units, currency, periods<context>avoids thousand-vs-million and fiscal-year errors"US$ thousands; fiscal year ends 30 June"
Assumptions you already hold<context>the model shouldn't override them silently"Tax rate 25%; WACC 9% to 11%"
Audience<context>sets depth and register"For a non-finance founder who reads the summary only"
The question and decision<task>picks the analysis"Should we lease or buy this machine?" "Can this company cover its debt if sales fall 20%?"
Definitions<requirements>consistent metrics"FCF = CFO − capex; ROIC on average invested capital"
What not to do<requirements>boundaries"No buy/sell recommendation; flag what needs an accountant"
Format<output_format>memo, table, spreadsheet"One-page memo plus an Excel model"
Tools available<process>whether it can run code or must write formulas"You can run Python" / "I use Google Sheets"

What to ask for

TaskDeliverables to ask for by name
Understand a companybusiness model summary from Item 1; revenue by segment table; common-size statements; three-year trend table; ratio table with formulas; cash conversion check; risk factor changes year over year
Assess healthliquidity and leverage summary; debt maturity schedule from the notes; covenant headroom if disclosed; quality-of-earnings checklist; red-flag list with citations
Valueassumptions table; DCF in a spreadsheet; sensitivity table (WACC × g); comps table with medians; football-field summary of value ranges by method
Plan and controldriver-based budget; monthly variance report with commentary; flex budget; rolling forecast; cash runway
Project decisionsincremental cash flow table; NPV and IRR; break-even; scenario table
Personalbudget breakdown; debt payoff comparison; savings and retirement projections with ranges; questions for an adviser
Check someone's workmodel audit (hard-coded values, broken links, ties); citation check against the filing

The prompt chain

Four prompts take one company's filings to an analysis: tied-out three statements, a ratio table, a DCF with a sensitivity grid, and red flags from the notes. Every number is computed in code or spreadsheet formulas from the documents and cited to its item, note and page; none is recalled from memory. Run stages 1–3 in one chat with the filings attached. Run stage 4 in a fresh chat, because a model reviewing its own draft shares its blind spots, including any table it misread.

1. Interview

When you have the filings and a question: the model asks what an analyst would ask before opening a spreadsheet.

<materials>
[attach the filings, e.g. the last two 10-Ks and the latest 10-Q as
PDF or HTML, or the annual reports of a non-US company]
</materials>
 
<task>
I want an analysis of this company from these filings. Don't analyze
anything yet, and don't state any figure about the company. Interview
me first: at most 10 questions, grouped under the decision, the
documents and periods, definitions and peers, valuation inputs,
tools, and the audience.
</task>
 
<output_format>
For each question: one line on why it matters and 2–3 typical
answers, e.g. decision: "researching a possible investment",
"checking a supplier's health", "a job offer at the company".
</output_format>
 
<process>
Ask all the questions in one message, then stop and wait. Where the
filings answer a question (fiscal year end, units, GAAP or IFRS), say
where, cite the page and ask me to confirm. Never invent numbers,
names, quotes or sources: write [NEEDS SOURCE].
</process>

2. Options

Once you've answered: choose the kind of analysis, because each answers a different question with different data.

<task>
From my answers, propose 2–4 materially different ways to analyze
this company, such as: a full three-statement analysis with an
intrinsic DCF; a reverse DCF (what growth today's price implies);
comparables first, with a DCF cross-check; a credit view (liquidity,
leverage, maturities, covenants) with no valuation.
</task>
 
<output_format>
A table: Approach | Question it answers | Data it needs beyond the
filings | Most sensitive input | Effort. Then recommend one for my
decision and say what would change your mind.
</output_format>
 
<process>
Don't compute anything yet; mark guesses [NEEDS SOURCE]. Stop after
the recommendation and wait for my choice.
</process>

3. Produce

When you've picked the approach: the full analysis, computed and cited.

<materials>
[attach the filings, and paste the statements as CSV if you have them
(e.g. from EDGAR's XBRL data) with units and period ends; add peers'
figures and a dated share price if the approach needs them]
</materials>
 
<context>
Decision:
[decision: investment research | credit | supplier check | learning].
The company reports under [standard: US GAAP | IFRS] in
[units: thousands | millions] of [currency, e.g. US$]; fiscal year
ends [date, e.g. 30 June]. Approach chosen:
[approach: full DCF | reverse DCF | comps with DCF check | credit focus].
The memo is for [reader, e.g. me, a non-analyst who will spot-check
the code].
</context>
 
<task>
Write an analysis of the company from these filings: tie-out, ratios,
valuation with sensitivity, and red flags.
</task>
 
<requirements>
- Use only <materials>. Recall no figure about this company, its
  peers or the market from memory.
- Cite item, note and page for every figure from a filing, using the
  GAAP or IFRS line item as filed (e.g. "Net cash provided by
  operating activities").
- Compute every derived number in Python and show the code, or as
  spreadsheet formulas with cell references; never type a result.
- Tie out first: net income to the cash flow statement, ending cash to
  the balance sheet, assets = liabilities + equity. Report any
  mismatch before going on.
- Ratios with formulas, using [balances: period-end | average] balances
  where a flow is divided by a stock.
- DCF: FCFF = EBIT × (1 − t) + D&A − capex − ΔNWC, discounted at WACC;
  an inputs table (value, source, rationale); terminal value by
  [terminal value: Gordon growth | exit multiple]; the share of EV from
  terminal value; a 5 × 5 grid of value per share by WACC × g.
- Quality of earnings: CFO vs. net income, DSO and inventory days,
  capitalized costs, non-GAAP measures reconciled to GAAP, stock-based
  compensation, the auditor's report and Item 9A, each cited.
- No buy, sell or hold recommendation.
- Never invent numbers, names, quotes or sources: write [NEEDS SOURCE]
  where support is missing, and [VERIFY] beside any figure read from
  a table that was hard to parse.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- The statements tie, or the mismatch is reported first.
- Every figure has a citation, and the cited page contains it.
- EBITDA, FCF and debt mean the same thing in every period.
- Terminal growth is below long-run nominal growth of the economy,
  and the terminal share of EV is stated.
- Each red flag cites the note it came from.
</quality_bar>
 
<output_format>
A memo under 1,200 words: a 5-line summary; a tie-out table; a ratio
table (Ratio | Formula | one column per year | Source); DCF inputs,
output and sensitivity grid; red flags (Finding | Numbers | Citation |
Severity: low, medium or high); open questions. Code or spreadsheet
layout in an appendix.
</output_format>
 
<process>
Compute with:
[tool: Python, run by you | a script I run | Excel | Google Sheets].
Ask me up to 3 questions first if anything missing would change your
answer; otherwise go on.
End with a list of the assumptions you made.
</process>

4. Review

In a fresh chat with the filings attached, so the reviewer recomputes from the source instead of repeating the author's misreadings.

This is a fresh chat. Audit the analysis below against the filings
it cites. Don't rewrite it, and don't add analysis of your own.
 
<materials>
[attach the same filings]
<brief>
[paste the stage 3 prompt]
</brief>
<analysis>
[paste the memo and its code or spreadsheet]
</analysis>
</materials>
 
<task>
Audit the analysis: which numbers, links and conclusions hold up, and
what to fix first.
</task>
 
<requirements>
- Pick the 10 figures that matter most to the conclusion; check each
  citation against the filing and recompute each in code.
- Check the tie-outs, units and periods, and that each definition is
  the same in every period.
- DCF mechanics: FCFF with WACC (not FCFE); terminal growth below
  WACC and long-run growth; terminal share of EV; mid-year convention
  stated; the grid's base cell equals the headline value.
- Red flags the analysis missed, each cited.
- Never invent numbers, names, quotes or sources: write [NEEDS SOURCE]
  where support is missing.
</requirements>
 
<output_format>
A check table (Item | Analysis says | Filing says | Citation | OK?),
then fixes ranked by how much each moves the conclusion, worst first.
</output_format>
 
<process>
Don't rewrite the memo. End with a list of the assumptions you made.
</process>

Goals and loops

In an agent that runs commands and checks its own work, such as Claude Code, the Produce stage can run until it measurably passes: /goal keeps starting turns until a condition holds, and /loop repeats a prompt or skill on an interval. The checker reads only the conversation, so every condition below names a check whose output Claude prints, the constraints that must survive, and a bound. How to write your own: Goals and loops.

TaskCompletion condition
Tie out the statements/goal python model.py prints that assets minus liabilities minus equity is 0 for every year, that ending cash on the cash-flow statement equals cash on the balance sheet, and that every input cites a filing page; or stop after 15 turns
DCF and sensitivity/goal the notebook recomputes enterprise value from the inputs table, prints the terminal value's share of EV, and fills all 25 cells of the WACC × growth grid; no input changed without a note; or stop after 10 turns
Ratio dashboard/goal python check_ratios.py recomputes every ratio in ratios.csv from its two inputs within 0.1% and prints the source cell of each input; or stop after 10 turns

Loops that fit: in earnings season, /loop 1h to check SEC EDGAR for a new 10-Q from your watchlist and summarize what changed from last quarter, with citations. A weekly portfolio review fits /schedule better.

What a checker can't judge: whether the assumptions are reasonable. A checker confirms the arithmetic and the citations, not the judgment, and none of this is investment advice.

Prompt library

One entry per deliverable, outside the company analysis above. Quick is the minimum that still works; Full is the skeleton filled in. In every one the model works from pasted or attached numbers, computes in code or formulas, and cites its sources.

Filing questions with citations

Stage: produce · Use when: you need facts from a 10-K, 10-Q or annual report and must be able to check each one.

Quick

Attached: [filing, e.g. Acme's 10-K for fiscal 2025]. Answer only from
it: [paste your questions]. Cite item, note and page for each figure,
with a short quote; write "not found" rather than estimate.

Full

<materials>
[attach the filing; for year-over-year questions, also attach the
prior year's]
</materials>
 
<context>
The filing is a [filing: 10-K | 10-Q | annual report | 20-F] for
[period, e.g. fiscal 2025, ending 30 June]. I'm reading it for
[decision: investment research | credit | supplier check | learning]
and I'm not an analyst: define each term once.
</context>
 
<task>
Answer my questions from the filing: [paste your questions, e.g.
revenue by segment and its drivers per MD&A; debt amounts, rates,
maturities and covenants; changes in accounting policies or
estimates; new or expanded risk factors vs. last year; anything in
the auditor's report beyond a clean opinion].
</task>
 
<requirements>
- Use only the attached documents, never memory.
- For every figure or claim: item, note number and page, plus a quote
  of 25 words or fewer.
- Name line items as filed; keep the filing's units and state them.
- Never invent numbers, names, quotes or sources: write [NEEDS SOURCE]
  or "not found" where the filing is silent.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- Each quote appears word for word on the cited page.
- Every figure carries its units and period.
- Management's views (MD&A, risk factors) are labeled as theirs.
- Anything inferred rather than read is marked as inference.
</quality_bar>
 
<output_format>
One section per question: the answer in 1–3 sentences, then a table
(Figure or claim | Value | Citation | Quote).
</output_format>
 
<process>
Find and quote the relevant passages first, then answer from them.
End with a list of the assumptions you made.
</process>

Ratio dashboard

Stage: produce · Use when: you have three years of statements and want a quick health check you can verify line by line.

Quick

From these statements [paste 3 years as CSV, with units], compute
margins, ROE, ROIC, liquidity, leverage, DSO/DIO/DPO and CFO ÷ net
income in code, showing each formula and the code. Flag the three
ratios that moved most. Use no figure I didn't give you.

Full

<materials>
[paste the income statement, balance sheet and cash flow statement
for 3–4 years as CSV, one column per year, with units and period ends]
</materials>
 
<context>
Company: [business, e.g. a regional food distributor]. Reports under
[standard: US GAAP | IFRS] in [units: thousands | millions].
I'm checking its health for this decision:
[decision: investment research | credit | supplier check | learning].
</context>
 
<task>
Build a ratio dashboard I can check line by line.
</task>
 
<requirements>
- Margins (gross, operating, EBITDA, net, FCF), ROA, ROE, ROIC
  (NOPAT ÷ average invested capital; state the tax rate), current and
  quick ratios, debt-to-equity, net debt/EBITDA, interest coverage,
  DSO, DIO, DPO, cash conversion cycle, CFO ÷ net income.
- Use [balances: period-end | average] balances where a flow is
  divided by a stock.
- Compute in code and show it, or give spreadsheet formulas.
- Tie the statements first and report any mismatch.
- Never invent numbers, names, quotes or sources: write [NEEDS SOURCE]
  where support is missing.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- Every ratio recomputes from the CSV.
- Definitions are the same in every year.
- Each reading compares with the company's own history.
- Moves are explained by line items, not adjectives.
</quality_bar>
 
<output_format>
A table: Ratio | Formula | one column per year | Trend | One-line
reading. Then the 3 biggest changes, the line items behind them, and
questions to answer from the notes.
</output_format>
 
<process>
Ask me up to 3 questions first if anything missing would change your
answer; otherwise go on.
End with a list of the assumptions you made.
</process>

Comparable companies

Stage: produce · Use when: you want to see how a company is priced against its peers.

Quick

Target [target, e.g. a regional food distributor], peers [peers, e.g.
6 listed distributors]; LTM data: [paste CSV: price, shares, debt,
cash, revenue, EBITDA, EBIT, net income]. Build a comps table: EV
(formula shown), EV/Revenue, EV/EBITDA, P/E, median and range. Say
which peers to drop and why. Use only my numbers.

Full

<materials>
[paste one row per company, same period for all: share price and
date, diluted shares, debt, cash, preferred stock, minority interest,
revenue, EBITDA, EBIT, net income, revenue growth, margins, and the
filing each came from]
</materials>
 
<context>
Target: [target, e.g. a regional food distributor]. Peers: [peers,
e.g. 6 listed distributors named in its 10-K]. Period for every
company: [period: LTM | NTM | last fiscal year]. For this decision:
[decision: investment research | credit | supplier check | learning].
</context>
 
<task>
Build a comparable-companies table and a value range for the target.
</task>
 
<requirements>
- EV = market cap + debt + preferred + minority interest − cash, with
  the formula shown per row.
- EV/Revenue, EV/EBITDA, EV/EBIT and P/E; median, mean, low, high.
- Pair EV with pre-interest metrics and price with post-interest ones.
- Judge comparability on business model, growth and margins; drop
  peers that fail, say why, and recompute the medians.
- Apply the medians to the target for a value range by method.
- Compute in code or formulas; don't fetch or recall any number.
- Never invent numbers, names, quotes or sources: write [NEEDS SOURCE]
  where support is missing.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- Every company uses the same period and the same EBITDA definition.
- Negative or near-zero denominators are excluded, not averaged in.
- The median, not the mean, drives the range.
- The result is a range, with the method behind each end.
</quality_bar>
 
<output_format>
The comps table; the dropped peers with reasons; a range table
(Method | Low | Median | High) for the target.
</output_format>
 
<process>
Ask me up to 3 questions first if anything missing would change your
answer; otherwise go on.
End with a list of the assumptions you made.
</process>

Earnings call read

Stage: produce · Use when: a quarterly call just happened and you have the transcript.

Quick

Transcript attached: [company and quarter, e.g. Acme Q3 FY2026].
Summarize results vs. guidance, guidance changes (quoted), new or
dropped metrics, and the analyst questions management dodged. Quote
with speaker names; keep facts apart from forward-looking claims.

Full

<materials>
[attach this quarter's transcript and last quarter's, plus the
earnings release if you have it]
</materials>
 
<context>
Company: [company and quarter, e.g. Acme, Q3 fiscal 2026]. I follow
it for this decision:
[decision: investment research | credit | supplier check | learning].
What I already watch: [metrics, e.g. same-store sales, gross margin,
net debt].
</context>
 
<task>
Write an earnings call read: what changed this quarter, and what
management avoided saying.
</task>
 
<requirements>
- Results vs. prior guidance; guidance changes, quoted.
- New, renamed or dropped metrics vs. last quarter's call.
- The 5 most important analyst questions and whether each was
  answered directly.
- Changes in tone vs. last quarter, each with the quotes that show it.
- Forward-looking statements labeled as management's.
- Never invent numbers, names, quotes or sources: write [NEEDS SOURCE]
  where support is missing.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- Every quote has a speaker and appears in the transcript.
- Numbers said on the call are marked [VERIFY] until matched to the
  release or the 10-Q.
- "Dodged" is shown by quoting both the question and the answer.
- Facts and management's outlook never share a sentence.
</quality_bar>
 
<output_format>
A 5-bullet summary, then sections for guidance, metrics, Q&A (table:
Question | Asked by | Answered directly? | Quote) and tone.
</output_format>
 
<process>
Go straight to the read.
End with a list of the assumptions you made.
</process>

Budget variance report

Stage: produce · Use when: it's month-end or quarter-end and managers need actuals explained against budget.

Quick

Budget vs. actual for [period, e.g. October] [paste CSV: line, budget,
actual, prior year; units]. For lines over [threshold, e.g. 5% and
$10k]: the variance, a price/volume split for revenue, and one line of
driver, timing or permanent, and action. Show formulas; tie totals
to my CSV.

Full

<materials>
[paste budget, actual and prior year by account as CSV, with units,
plus volumes and prices if you have them]
</materials>
 
<context>
Business: [business, e.g. a bakery with 3 locations]. Period:
[period, e.g. October 2026]. Readers: [readers, e.g. the owner and two
store managers, who read only the summary].
</context>
 
<task>
Write the monthly variance report with commentary.
</task>
 
<requirements>
- Variance = actual − budget, in amount and %, marked favorable or
  unfavorable.
- Revenue split into price variance (at actual volume) and volume
  variance (at budget price); the two sum to the total.
- Variable costs compared with a flex budget at actual volume.
- Commentary only for lines over [threshold, e.g. 5% and $10,000]:
  the driver, whether it's timing (will reverse) or permanent, the
  owner and the action.
- Formulas shown; totals tie to the CSV.
- Never invent numbers, names, quotes or sources: write [NEEDS SOURCE]
  where support is missing.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- Price and volume variances sum to the revenue variance.
- Each comment names a driver with a number, not "higher costs".
- Timing differences are labeled so nobody acts on them twice.
- The summary fits its readers: five bullets, no jargon.
</quality_bar>
 
<output_format>
A variance table (Line | Budget | Actual | Variance | % | F/U), the
price/volume and flex-budget tables, the commentary, and a 5-bullet
summary.
</output_format>
 
<process>
Ask me up to 3 questions first if anything missing would change your
answer; otherwise go on.
End with a list of the assumptions you made.
</process>

Project NPV and sensitivity

Stage: produce · Use when: you're deciding on an investment (a machine, a location, a product line) whose inputs are uncertain.

Quick

Project: [project, e.g. a $250k oven, 8-year life, 40k more loaves a
year]. Build an NPV model as spreadsheet formulas with an Inputs block,
a data table of NPV by discount rate and volume, a tornado ranking at
±20% and break-even volume. Every cell a formula, no typed results.

Full

<materials>
[paste the quotes, cost estimates and volume assumptions you have,
with where each came from]
</materials>
 
<context>
Project: [project, e.g. a second bakery oven, $250k, 8-year life].
Drivers: [drivers, e.g. extra loaves a year × price; flour and energy
per loaf; one more baker]. Tax rate: [tax rate, e.g. 25%]. Discount
rate: [discount rate, e.g. 10%, our cost of capital]. The choice:
[decision: go or no-go | choose between options | timing].
</context>
 
<task>
Build an NPV model and sensitivity analysis for this project.
</task>
 
<requirements>
- An Inputs block (value, source, rationale), separate from the
  calculations.
- Incremental after-tax cash flows only, with the depreciation tax
  shield, working capital and salvage value.
- NPV and IRR; XNPV and XIRR if dates are uneven; remember that NPV()
  treats its first value as one period out.
- A data table of NPV across discount rate [range, e.g. 6–12%] and
  volume [range, e.g. −30% to +30%]; a tornado ranking of inputs at
  ±20%; break-even volume.
- Every cell a formula with cell references.
- Never invent numbers, names, quotes or sources: write [NEEDS SOURCE]
  where support is missing.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- Sunk costs are excluded and opportunity costs included.
- Cash flows and discount rate are both nominal or both real.
- Whether NPV changes sign inside the likely range is stated.
- The input that deserves more research before deciding is named.
</quality_bar>
 
<output_format>
A spreadsheet layout (Inputs, Cash flows, NPV, Sensitivity) as cell
formulas, then a half-page note for [reader, e.g. my business
partner].
</output_format>
 
<process>
Ask me up to 3 questions first if anything missing would change your
answer; otherwise go on.
End with a list of the assumptions you made.
</process>

Personal debt payoff

Stage: produce · Use when: you have several debts and want the cheapest or the fastest way out.

Quick

My debts: [paste name, balance, APR, minimum payment for each]. I can
pay [amount, e.g. $900] a month in total. Compare avalanche and
snowball month by month as spreadsheet formulas: total interest,
months to debt-free, the month each is cleared. Check the math in code.

Full

<materials>
[paste each debt: name, balance, APR, minimum payment, and any
promotional rate with its end date]
</materials>
 
<context>
I can pay [amount, e.g. $900] a month in total, maybe [extra, e.g.
$150] more from [month, e.g. March]. What I care about most:
[priority: least interest | a quick first win | lowest monthly stress].
I'm in the US and use [tool: Excel | Google Sheets].
</context>
 
<task>
Build a debt payoff plan comparing these methods:
[method: avalanche | snowball | both].
</task>
 
<requirements>
- A month-by-month schedule as spreadsheet formulas: interest at
  APR ÷ 12 on each balance, all minimums paid, the rest to the target
  debt (highest APR for avalanche, smallest balance for snowball).
- For each method: total interest, months to debt-free, the month
  each debt is cleared; then the effect of the extra payment.
- Check the totals in code if you can run it.
- No product recommendations (cards, loans, consolidation offers).
- Never invent numbers, names, quotes or sources: write [NEEDS SOURCE]
  where support is missing.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- Every balance reaches zero and never goes negative.
- Each freed-up minimum rolls to the next debt.
- Promotional rates end on their dates.
- If the minimums exceed what I can pay, the plan says so first.
</quality_bar>
 
<output_format>
A comparison table (Method | Total interest | Months | Order cleared),
the schedule layout as formulas, then 3 questions for a nonprofit
credit counselor if the numbers look unmanageable.
</output_format>
 
<process>
Ask me up to 3 questions first if anything missing would change your
answer; otherwise go on.
End with a list of the assumptions you made.
</process>

Spreadsheet model audit

Stage: review · Use when: someone (or a model) handed you a financial model and you need to know whether to trust it.

Quick

Audit this model [attach the file, or paste each sheet with formulas
visible]: hard-coded numbers in formulas, broken links, sign and unit
errors, a balance sheet that doesn't balance, cash that doesn't tie.
List each issue with its cell, severity and fix, worst first. Don't
rebuild it.

Full

<materials>
[attach the spreadsheet, or paste each sheet with formulas visible,
plus the source documents it draws on]
</materials>
 
<context>
The model is a
[model: three-statement | DCF | budget | project NPV | loan schedule]
built by [builder, e.g. a consultant, or a chat assistant last week].
I'll use it to [decision, e.g. set next year's prices], and I can't
audit formulas myself.
</context>
 
<task>
Audit the model and tell me which problems to fix before I rely on
it. Don't rebuild it.
</task>
 
<requirements>
- Structure: inputs separate from calculations and outputs; no
  hard-coded numbers inside formulas; formulas consistent along rows.
- Integrity: statements tie (cash, retained earnings, the balance
  check); no unintended circular references; no #REF! or broken links.
- Logic: signs; units (thousands vs. millions); periods (monthly vs.
  annual rates); NPV() timing; terminal value inputs.
- Inputs traced to the source documents; untraced ones flagged.
- The 5 outputs that matter most, recomputed in code and compared.
- Never invent numbers, names, quotes or sources: write [NEEDS SOURCE]
  where support is missing, and [VERIFY] for anything you couldn't
  check.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- Each issue names its cell or row and shows the formula.
- Severity reflects the effect on the decision, not the count.
- Recomputed outputs sit beside the model's own.
- Nothing is called fine that wasn't actually checked.
</quality_bar>
 
<output_format>
An issue table (Cell | Issue | Effect on outputs | Severity: high,
medium or low | Fix), worst first; then the recomputation table.
</output_format>
 
<process>
Ask me up to 3 questions first if anything missing would change your
answer; otherwise go on.
End with a list of the assumptions you made.
</process>

Worked example

Weak prompt

Is Acme a good stock to buy right now?

What's wrong

  • It asks for a personal recommendation the model can't responsibly give, without your situation.
  • It supplies no documents, so the model recalls figures from training: stale, mixed up with other companies, or invented.
  • "Good" has no criteria: cheap, safe, growing?
  • No horizon, no comparison and no format, so the answer is an unverifiable narrative.

Strong prompt

<materials>
Attached: Acme's 10-K filings for fiscal 2024 and fiscal 2025, and
its 10-Q for Q1 fiscal 2026. Share price: $42.10 on 7 November 2026.
Diluted shares: use the EPS note of the latest 10-Q.
</materials>
 
<context>
Acme is a company I'm researching while learning to read filings;
I'm not an analyst, so define each term once. Acme reports under US
GAAP in US$ millions; its fiscal year ends 30 June. I can't judge
code, but I will spot-check numbers against the filing.
</context>
 
<task>
Analyze Acme from these filings and show what the current price
implies, so I can decide whether it deserves more research.
</task>
 
<requirements>
- Use only the attached filings; cite item, note and page for every
  figure.
- Compute everything in Python and show the code.
- Tie out the statements first and report any mismatch.
- A three-year table: revenue growth, gross and operating margin, FCF
  (CFO − capex), cash conversion (CFO ÷ net income), net debt /
  EBITDA, ROIC (NOPAT ÷ average invested capital; state the tax rate).
- Quality of earnings: receivables vs. revenue growth, capitalized
  costs, non-GAAP measures reconciled to GAAP, stock-based
  compensation, the auditor's report.
- Reverse DCF: the 5-year revenue growth the price implies at WACC
  9–11% and terminal growth 2–3%, as a sensitivity grid.
- No recommendation to buy or sell.
- Never invent numbers, names, quotes or sources: write [NEEDS SOURCE]
  where support is missing.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- Every figure traces to a cited page.
- Definitions are GAAP-based and the same in every year.
- Adjusted metrics appear only beside their GAAP reconciliation.
- Each bull and bear point rests on a cited number.
</quality_bar>
 
<output_format>
Tie-out; the three-year table; quality-of-earnings findings; the
reverse-DCF grid; 3 bull and 3 bear points. Code at the end.
</output_format>
 
<process>
Ask me up to 3 questions first if anything missing would change your
answer; otherwise go on.
End with a list of the assumptions you made.
</process>

What came back

Illustrative, abridged (Acme and its numbers are invented for this example):

TIE-OUT (Python, appendix A)
FY2025 assets 4,812 = liabilities 3,105 + equity 1,707        OK
Ending cash 412 (cash flow statement, p. 64) = balance sheet
cash 412 (p. 62)                                               OK
 
THREE-YEAR TABLE (US$ millions)         FY2023  FY2024  FY2025
Revenue growth                            9.1%    7.4%    5.2%
Gross margin                             41.0%   40.2%   38.9%
Operating margin                         12.3%   11.8%   10.6%
FCF = CFO − capex (p. 64)                  288     301     246
Cash conversion (CFO ÷ net income)        1.31    1.18    0.94
Net debt / EBITDA (EBITDA: p. 41)         1.6x    1.5x    1.4x
ROIC (tax rate 24%, Note 14, p. 91)      11.2%   10.5%    9.1%
 
QUALITY OF EARNINGS
- DSO up from 47 to 58 days while growth slowed (p. 58, p. 62)
- Capitalized software up 38% (Note 7, p. 79)
- Stock-based compensation excluded from adjusted metrics; diluted
  shares up 2.1% (Note 16, p. 95)
 
REVERSE DCF at $42.10: the price implies 6–8% revenue growth a year
for 5 years across the grid (WACC 9–11%, terminal growth 2–3%)...
 
Assumptions: FCF excludes acquisitions; tax rate 24% from Note 14...

How an expert judged it

Against the quality bar:

  • Every figure traces to a cited page: good. Spot-checking three citations (pp. 62, 64, 79) found the numbers there.
  • Tie-out and arithmetic: good. The balance sheet balances, cash ties, and the code recomputes the table.
  • Definitions GAAP-based, adjusted metrics only beside their reconciliation: fails. The EBITDA in net debt / EBITDA cites p. 41, which is the non-GAAP table in MD&A: management's adjusted EBITDA, which adds back stock-based compensation and "restructuring" charges that appear in all three years. The row is what gave it away: leverage "improves" while cash conversion falls and DSO rises. EBITDA built from the statements (operating income plus D&A from the cash flow statement) gives a higher ratio that rises instead of falling, which reverses one of the bull points.
  • Ranges, not a point: good. The reverse DCF is a grid, not a price target.

Verdict: a solid draft with one definition error, and the error changes the leverage story, so fix it before reading anything into the bull case.

The follow-up

Net debt / EBITDA uses adjusted EBITDA from the MD&A table on p. 41.
Recompute it in code for all three years with EBITDA = operating
income (income statement) + D&A (cash flow statement), citing each
input. Show both versions side by side, list the adjustments that
recur every year, and say which conclusions change. Leave everything
else as it is.

Judge the output

CheckThe expert questionRed flag
Sourcingcan every number be traced to your data or a cited page?figures you never gave it; citations to pages that don't contain the number
Tie-outsdo the statements and subtotals reconcile?a balance sheet that doesn't balance; FCF that doesn't recompute
Arithmeticdoes a spot-check of three key numbers match?growth rates or ratios off by a few points
Units and periodsthousands vs millions, fiscal vs calendar year, LTM vs annual?mixed units; a quarter treated as a year
Definitionsare formulas shown and consistent across periods and companies?"EBITDA" meaning different things in different rows
Assumptionsare inputs visible, sourced and separate from calculations?hard-coded values inside formulas
Rangessensitivity and scenarios, not one number?a single price target to the cent
Skepticismdoes it question adjusted metrics and one-offs?management's adjusted figures used uncritically
Boundariesdoes it avoid personal recommendations and flag tax or legal questions?"you should buy"

The same checks are built into the <quality_bar> of every full prompt on this sheet, so the model applies them before you see the draft; you still apply them after.

Follow-up critique prompts
 
- "Recompute every ratio in code from the raw numbers I gave you
  and list any that differ from your first answer."
- "For each figure, give the source line and page. Mark any you
  can't source."
- "Which three assumptions drive the valuation most? Show value
  per share if each is 20% worse."
- "Argue the bear case as a short seller using only the filing."
- "Which numbers are management's adjusted metrics? Reconcile each
  to GAAP."
- "What would you need to know about my situation before any of
  this applies to my own money?"

Pitfalls

  • No data supplied. The model fills gaps from memory: stale, mixed up or invented.
  • Mental math. Long calculations without code or formulas drift; errors compound through a model.
  • Unit errors. Thousands vs millions, percent vs basis points, monthly vs annual rates.
  • Definitions shifting between periods or companies (FCF, EBITDA, debt).
  • Precision theater. A DCF to the cent built on guesses; ask for ranges.
  • Adjusted numbers taken at face value. Always reconcile to GAAP or IFRS.
  • Hallucinated citations. Check that the cited page says what the model claims.
  • Advice mode. "Should I buy" invites overconfident answers about your money; ask for analysis instead.
  • Ignoring taxes and fees in personal projections; using nominal returns as if they were real.
  • Stale rules. Tax brackets, contribution limits and interest rates change; supply current figures.

References