Skip to content
Investment Diligence & ValuationIllustrative Demo Data

Methodology

Methodology

How every number on this site is calculated. Full technical detail also lives in METHODOLOGY.md, DATA_SOURCES.md, and LIMITATIONS.md in the repository.

Deterministic vs. AI-Assisted — What's Actually Running

Everything on this site is a deterministic calculation or a plain conditional rule. There is no LLM call anywhere in this application — no OpenAI, Anthropic, Gemini, or any other paid or free language model API. Where the UI uses the phrase “AI-assisted,” it specifically means: structured, rule-based reasoning written in TypeScript that mimics the *shape* of an analyst's checklist (condition → finding → question), not a model that generates novel text. Two features carry that label:

  • The Diligence Engine (src/lib/diligence.ts) — a fixed list of conditional rules (e.g. “if YoY revenue growth decelerates by more than 1 percentage point, emit a Growth Moderation finding citing the exact percentages”) evaluated against the calculated metrics.
  • The Natural-Language Assumption Parser (src/lib/nlParser.ts) — regular-expression matching against a fixed set of recognized phrasings, not open-ended language understanding.

Everything else — every margin, ratio, CAGR, DCF output, Beneish/Altman score, and sensitivity cell — is a direct mathematical formula with no “AI” framing at all; formulas are listed below.

Data

Meridian Analytics, Inc. is a fictional company created for this project. Its financial statements are illustrative demo data, constructed to be internally consistent (e.g. Revenue − COGS − SG&A = EBITDA holds exactly in every year) so that every downstream ratio, growth rate, and valuation output is computed rather than hard-coded. No real market or company data is used anywhere in this application.

Historical Metrics

EBITEBITDA − D&A
Net Income(EBIT − Interest Expense) × (1 − Tax Rate)
EBITDA / EBIT / Net MarginLine item ÷ Revenue
Revenue / EBITDA CAGR(Ending ÷ Beginning)^(1 ÷ years) − 1
CFO / Net IncomeCash from Operations ÷ Net Income
Net Working CapitalCurrent Assets − Current Liabilities
Net DebtTotal Debt − Cash
Debt / EBITDA, Net Debt / EBITDADebt or Net Debt ÷ EBITDA

Working Capital Days

DSO(Receivables ÷ Revenue) × 365
DIO(Inventory ÷ COGS) × 365
DPO(Payables ÷ COGS) × 365
Cash Conversion CycleDSO + DIO − DPO

Inventory is modeled at zero for this SaaS business, so DIO is 0 by construction and the CCC is driven by DSO and DPO.

Beneish M-Score (8-variable, 1999 model)

M = −4.84 + 0.920·DSRI + 0.528·GMI + 0.404·AQI + 0.892·SGI + 0.115·DEPI − 0.172·SGAI + 4.679·TATA − 0.327·LVGI

  • DSRI — Days Sales in Receivables Index (receivables/sales, YoY ratio)
  • GMI — Gross Margin Index (prior margin ÷ current margin)
  • AQI — Asset Quality Index (non-current, non-PP&E asset share, YoY ratio)
  • SGI — Sales Growth Index (current ÷ prior revenue)
  • DEPI — Depreciation Index (prior depreciation rate ÷ current)
  • SGAI — SG&A Index (SG&A/sales, YoY ratio)
  • TATA — Total Accruals to Total Assets ((Net Income − CFO) ÷ Total Assets)
  • LVGI — Leverage Index ((Current Liabilities + Debt)/Assets, YoY ratio)

Limitation: net PP&E is approximated using the gross PP&E balance because accumulated depreciation is not separately modeled in this illustrative dataset. This is a simplification appropriate for a screening exercise, not a substitute for full balance-sheet detail. The M-Score is a probabilistic screening indicator from academic research — a score above the common reference threshold is a prompt for further investigation, never proof of earnings manipulation.

Altman Z'-Score (private-company variant)

Z' = 0.717·(WC/TA) + 0.847·(RE/TA) + 3.107·(EBIT/TA) + 0.420·(BVE/TL) + 0.998·(Sales/TA)

This uses book value of equity (BVE) in place of market capitalization, since this illustrative company has no traded share price — the standard adaptation for private or non-public entities. Zones: Z' > 2.9 = Safe, 1.23–2.9 = Grey, < 1.23 = Distress. The model was originally calibrated on public manufacturers, so results for a software company should be read directionally.

FCFF DCF

Revenue(t)Revenue(t−1) × (1 + Revenue Growth)
EBITDA(t)Revenue(t) × EBITDA Margin
EBIT(t)EBITDA(t) − D&A(t), where D&A(t) = Revenue(t) × D&A % of Revenue
NOPAT(t)EBIT(t) × (1 − Tax Rate)
FCFF(t)NOPAT(t) + D&A(t) − Capex(t) − ΔNWC(t)
PV of FCFF(t)FCFF(t) ÷ (1 + WACC)^t
Terminal ValueFCFF(final) × (1 + g) ÷ (WACC − g)
Enterprise ValueΣ PV(FCFF) + PV(Terminal Value)
Equity ValueEnterprise Value − Total Debt + Cash
Implied Value / ShareEquity Value ÷ Diluted Shares Outstanding

WACC

Cost of Equity (CAPM)Risk-Free Rate + Beta × Equity Risk Premium
WACC(E/V) × Cost of Equity + (D/V) × Cost of Debt × (1 − Tax Rate)

Natural-Language Assumption Parsing

The natural-language input box on the DCF page uses a deterministic, rule-based parser — plain regular expressions matched clause-by-clause against a fixed set of recognized phrasings (e.g. “revenue grows 12%”, “WACC is 10%”). No language model is called. Number words (“five years”) are normalized to digits before matching. Anything outside the recognized patterns is left unparsed and the UI shows “Unable to parse this assumption. Please enter it manually.” rather than guessing.

Diligence Engine

The diligence engine is a set of plain conditional rules over the calculated metrics above — for example, flagging when year-over-year revenue growth decelerates by more than one percentage point, or when CFO / Net Income falls by more than 0.05x year-over-year. Every finding cites the exact metric and values that triggered it. “AI-assisted” describes the structured, rule-based reasoning approach, not a generative model — there is no LLM API call anywhere in this application.

What This Tool Does Not Do

  • It does not call any paid or free LLM API — all logic is deterministic TypeScript.
  • It does not generate buy, sell, or hold recommendations, trading signals, or price targets.
  • It does not use real market data, real financial statements, or any paid data provider.
  • Screening indicators (Beneish, Altman) are not proof of fraud or insolvency risk.