Reference
KPI Formulas
Every metric in this workspace, and exactly how it is computed
Use this page to reconcile dashboard, forecast, and scenario numbers with your own models. Formulas apply to the currently selected companies and portfolios.
When a contract counts
One rule, used by every page, chart, export and the assistant. There are no stored snapshots, so a contract's life is read from its dates.
Billing on a date
Billing = start date ≤ date, and (not churned, or end date ≥ date)A contract signed to start later is not revenue yet. A churned contract bills until its end date. A contract past its end date that nobody has marked churned is treated as still billing - the import review flags these so they can be corrected.
Contracted, not yet billing
Contracted = not churned, and start date > todayNot ARR today. The forecast adds each one in the month it starts, as known revenue on top of the assumptions.
Customer
Customer = the same customer name under the same portfolio companyA name that buys from two portfolio companies is two customer relationships: leaving one is churn for that company, not shrinkage.
Revenue base
Foundation metrics, always converted into the reporting currency before they are added up.
ARR (Annual Recurring Revenue)
ARR = Σ stated ARR of every contract billing todayARR is the column on the contract, not something derived from price. The Dashboard, league table, Contracts, Customers and Companies pages and the assistant all use this one definition.
MRR (Monthly Recurring Revenue)
MRR = ARR ÷ 12Accrual view: a $120K ARR contract recognises $10K each month.
Average revenue per customer (ARPC)
ARPC = ARR ÷ customers billing todayProjected ARPC = projected ending ARR ÷ projected customers (see Forecast engine).
Line-item ARR
Line ARR = contract ARR × (line amount ÷ Σ line amounts on the contract)Each contract's ARR split across its lines, so the panel adds up to the same ARR as everything else. A contract with no lines shows as "No line items".
Lifetime value
Lifetime value = MRR ÷ (1 − monthly retention ratio)The revenue a contract brings in if it keeps losing revenue at the rate its company has measured (churn plus shrinkage). Shown as "—" when the company has lost nothing yet, since no lifetime can be estimated from that.
Growth & efficiency
Board-level KPIs on the dashboard ribbon and the Forecasts cards.
ARR growth (YoY)
ARR growth % = (ARR today − ARR billing a year ago) ÷ ARR billing a year ago × 100A year ago includes contracts that have churned since. Shown only when at least half of today's ARR was already billing a year ago; otherwise it shows "—", because the comparison would measure how recently the history was entered, not growth. The future value compares month-12 ending ARR with today.
TTM growth
Today: (last 12 full months' revenue − the 12 before) ÷ the 12 before · In 12 months: (next 12 months' forecast − last 12) ÷ last 12Revenue on the selected basis (recognised or invoiced). Same history gate as ARR growth.
Rule of 40
Rule of 40 = ARR growth % + FCF margin %FCF margin is a workspace assumption of 18%. Healthy ≥ 40.
Net revenue movement
Ending ARR = Starting ARR + New logo + Contracted starts − Churn − Shrinkage + UpliftApplied month by month in the forecast.
Churn & retention
Measured per customer from contract dates. What a contract does only counts through what it does to that customer's total.
Churn
Churn = a customer's last live contract ends, leaving nothingEnding one of several contracts is shrinkage, not churn. A contract replaced by its renewal is neither - the old and new values are compared as a swap. A renewal that starts within 30 days of the old contract ending still counts as a renewal.
Shrinkage
Shrinkage = customer ARR before − customer ARR after, when the customer keeps paying lessA contract cancelled while others carry on, or a renewal at a lower value. In forecasts it is the Shrinkage assumption.
Add-on
Add-on = customer ARR after − customer ARR before, when an existing customer's total risesA new contract for an existing customer, or a renewal at a higher value. Counts toward NRR, not gross retention.
Gross revenue churn
Gross churn % = ARR of customers who churned in the window ÷ average ARR over the window × 100Average ARR is time-weighted across the window (90 days, TTM, YTD or all time). Dividing a year's churn by today's ARR understated it on a growing book; on the average, twelve months of this rate lines up with twelve times the monthly churn rate.
Logo churn
Logo churn % = customers who churned in the window ÷ average customers billing over the window × 100A customer counts as churned when all of their contracts have lapsed.
Churn rate (monthly)
Monthly churn % = Σ ARR of customers who churned in the month ÷ Σ ARR at the start of the month × 100Actual: the last 12 full months, pooled so each month counts by the size of its book. Forecast: Gross churn % ÷ 12, plus any contract already marked churned whose end date falls in the month.
Retention ratio (monthly)
Monthly retention % = (Opening ARR − Churn − Shrinkage) ÷ Opening ARR × 100Gross revenue retention: add-ons, uplift and new logos do not count. Annualised = monthly ratio ^ 12. Forecast: 100 − (Gross churn % + Shrinkage %) ÷ 12.
Net revenue retention (NRR)
NRR % = (Starting ARR + Uplift − Churn − Shrinkage) ÷ Starting ARR × 100Monthly, in the forecast. Expansion from price uplift is included; new logos are not.
Forecast engine
How the assumptions and the book turn into the monthly projection.
Months
Month 1 = the month after today, labelled with its real month and yearHorizons of 12, 24 or 36 months.
New logo ARR
Monthly new ARR = (New logo $K/mo × 1,000) × ramp factorRamp factor = min(1, month ÷ ramp months). The $K assumption is in USD and converted into the reporting currency, so a saved scenario means the same thing to every viewer.
Contracted starts and known churn
Contracted ARR joins in its start month · a contract marked churned leaves at its end dateKnown movements from the book, applied on top of the assumptions.
Churn and shrinkage
Monthly churn = Starting ARR × Gross churn % ÷ 12 · Monthly shrinkage = Starting ARR × Shrinkage % ÷ 12Both apply to everything in the book that month, including earlier new logos.
Blended price uplift
Blended uplift % = average(tier uplifts, line-item uplifts)Contract-level overrides replace the blended rate for their ARR share; excluded contracts contribute 0%.
Uplift timing
Renewal: uplift ÷ 12 each month · Immediate: full uplift in month 1 · Custom: full uplift in the month of the chosen dateRenewal spreads the increase to approximate contracts renewing across the year.
Projected customers
Customers(m) = Customers(m−1) × (1 − Gross churn % ÷ 12) + New logo ARR ÷ ARPC today + known arrivals − known departuresNew customers arrive at the book's own average deal size; logo churn is taken equal to the revenue churn assumption.
Multi-company scope
New logos sum across selected companies; churn and uplift use an ARR-weighted averageUnscoped cards fall back to the global slider value.
Cash basis
Switching the basis toggle measures invoices instead of recognised revenue - in history and in the forecast.
Invoice schedule
A contract invoices ARR × (months per period ÷ 12) every period, starting in the month it startsMonthly 1, Quarterly 3, Semi-Annual 6, Annual 12 months per period; billed in advance on the contract's own anniversary. A churned contract issues nothing for a period that opens after its end date. With no start date the cycle is anchored on January.
Cash forecast
Month cash = Σ invoices due from the book × its churn/shrinkage/uplift factor + new-logo invoicesNew logos invoice in the book's own billing mix (the ARR share of each billing period) from the month they land. With every assumption at zero, twelve months of cash equal the ARR billing in them.
Accrual recognition
Monthly recognised revenue = Ending ARR ÷ 12Straight-line regardless of invoice timing. History: MRR of the contracts billing at each month end.
Currency
Amounts are held in the currency each contract bills in and converted once, before anything is added up.
Conversion
Reporting amount = billed amount × rate(contract currency → USD) ÷ rate(reporting currency → USD)Rates are Bank of Canada monthly averages, pivoted through USD, unless an admin has set a manual rate in Settings. The rate in use and its source are shown in the currency picker and in Settings.
Contract rows
Shown normalised into the reporting currency (USD by default), with the billed amount underneathThe billed amount is what the invoice says; the normalised one is what makes rows comparable.