Methodology

This page lists the exact formulas behind each calculator, the conventions used and what the models leave out. Percent inputs are entered as plain numbers (8 means 8%). All money figures are in millions of the selected currency label (switch to thousands with the Units selector); share counts use the same unit, so per-share values are unaffected.

Conventions

A. DCF (simplified)

FCF_t   = FCF_0 × (1 + g)^t,  t = 1…10
PV_t    = FCF_t / (1 + WACC)^t
TV      = FCF_10 × (1 + g_terminal) / (WACC − g_terminal)
PV(TV)  = TV / (1 + WACC)^10
EV      = Σ PV_t + PV(TV)
Equity  = EV − net debt
Value per share = Equity / shares outstanding

Sensitivity: value per share for WACC −1 / 0 / +1 points against terminal growth −1 / 0 / +1 points. Requires WACC > terminal growth and shares > 0.

Limitation: one constant FCF growth rate for all ten years; no explicit margins, capex or working capital.

B. DCF valuation (full)

Revenue_t = Revenue_(t−1) × (1 + g)
EBITDA_t  = Revenue_t × EBITDA margin
D&A_t     = Revenue_t × D&A %            EBIT_t = EBITDA_t − D&A_t
Capex_t   = Revenue_t × capex %
ΔNWC_t    = NWC % × (Revenue_t − Revenue_(t−1))
FCF_t     = EBIT_t × (1 − tax) + D&A_t − Capex_t − ΔNWC_t      (unlevered)
Year 11:  Revenue_11 = Revenue_10 × (1 + g_terminal); same margins and percentages; ΔNWC on the revenue change
TV        = FCF_11 / (WACC − g_terminal)
PV(TV)    = TV / (1 + WACC)^10
EV = Σ PV_t + PV(TV);   Equity = EV − net debt;   Value per share = Equity / shares
Implied TV/EBITDA = TV / EBITDA_10

Sensitivity: 5×5, WACC −2 … +2 points (step 1) against terminal growth −1 … +1 points (step 0.5).

Limitation: constant revenue growth and constant margins and percentages over all ten years; no explicit fade to a steady state.

C. LBO model

LTM EBITDA     = LTM revenue × EBITDA margin
Entry EV       = LTM EBITDA × entry multiple
Debt_0         = LTM EBITDA × leverage multiple
Fees           = Entry EV × fee %
Sponsor equity = Entry EV + fees − Debt_0
For t = 1…5:
  Revenue_t  = Revenue_(t−1) × (1 + g);   EBITDA_t = Revenue_t × margin;   EBIT_t = EBITDA_t − D&A_t
  Interest_t = rate × opening debt_t           (toggle on: rate × (opening + closing) / 2, closed form)
  Tax_t      = (EBIT_t − Interest_t) × tax rate
  FCF_t      = EBITDA_t − Interest_t − Tax_t − Capex_t − NWC % × (Revenue_t − Revenue_(t−1))
  Closing debt_t = opening debt_t − FCF_t      (100% cash sweep; below zero = net cash)
Exit EV     = EBITDA_5 × exit multiple
Exit equity = Exit EV − closing debt_5
MOIC = Exit equity / sponsor equity;   IRR = MOIC^(1/5) − 1

Value creation bridge (sums to exit equity − sponsor equity):
  EBITDA growth      = (EBITDA_5 − LTM EBITDA) × entry multiple
  Multiple expansion = (exit multiple − entry multiple) × EBITDA_5
  Debt paydown       = Debt_0 − closing debt_5
  Fees               = − fees

Average-balance closed form: with A = EBITDA − EBIT × tax − capex − ΔNWC (cash flow before interest), interest I = r × (2 × opening − A) / (2 − r × (1 − tax)). If that would repay all debt within the year, interest is charged on half the opening balance. Interest is zero once debt is repaid.

Sensitivity: 5×5 IRR, entry multiple −1 … +1 (step 0.5) against exit multiple −2 … +2 (step 1). Debt at entry stays at the input leverage multiple of LTM EBITDA, so a higher entry price is funded with more equity.

Limitations: a single debt tranche; no minimum cash balance; no management options or incentive equity; no mandatory amortisation schedule; no interest income on excess cash; tax is calculated as (EBIT − interest) × tax rate even when this is negative (an implicit tax credit, with no loss carry-forward rules).

D. IRR and NPV

Cash flows: CF_0 = −initial investment, then CF_1 … CF_5
NPV(r) = Σ_(t=1..5) CF_t / (1 + r)^t − initial investment
IRR    = the rate r for which NPV(r) = 0
Multiple = Σ CF_t / initial investment

The IRR is found by scanning rates from −99% to 1,000% for a sign change in NPV and then bisecting to high precision. If NPV never crosses zero, the calculator says no IRR exists. With cash flows that change sign more than once there may be several IRRs; the solver reports the lowest one it finds.

E. MOIC

MOIC = total proceeds / equity invested
Gain = total proceeds − equity invested
IRR  = MOIC^(1 / years) − 1

Limitation: assumes a single investment and a single payout. Interim distributions would change the IRR but not the MOIC.

F. WACC

Re-levered beta  β_L = β_U × (1 + (1 − tax) × D/E)       (Hamada)
Cost of equity   k_e = risk-free rate + β_L × equity risk premium   (CAPM)
After-tax cost of debt = k_d × (1 − tax)
Equity weight E% = 1 / (1 + D/E);   Debt weight D% = 1 − E%
WACC = E% × k_e + D% × k_d × (1 − tax)

Limitations: uses a target capital structure, assumes debt beta of zero and a constant tax rate; no size or country risk premium.

G. Accretion / dilution

Offer price          = target price × (1 + premium)
Equity purchase price = offer price × target shares
Cash part             = purchase price × cash %
New shares issued     = purchase price × (1 − cash %) / acquirer price
After-tax interest    = cash part × cost of debt × (1 − tax)
Pro forma NI          = acquirer NI + target NI − after-tax interest + synergies × (1 − tax)
Pro forma EPS         = pro forma NI / (acquirer shares + new shares)
Standalone EPS        = acquirer NI / acquirer shares
Accretion             = pro forma EPS / standalone EPS − 1
Break-even synergies  = (standalone EPS × pro forma shares − (acquirer NI + target NI − after-tax interest)) / (1 − tax)
                        (if ≤ 0, the deal is “Already accretive” without synergies)

Limitations: ignores purchase price allocation, amortisation of acquired intangibles, financing and advisory fees, refinancing of the target's existing debt and lost interest on cash used.

Verification

The default example outputs for all seven models are covered by automated unit tests (Node's built-in test runner) that run on every deploy; if a stated figure changes, the build fails. The tests also check that the centre cell of every sensitivity table equals the headline result, that zero or empty inputs never produce NaN or Infinity, and that invalid inputs return validation messages. The worked examples were also cross-checked by hand calculation.