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 > today

Not 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 company

A 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 today

ARR 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 ÷ 12

Accrual view: a $120K ARR contract recognises $10K each month.

Average revenue per customer (ARPC)

ARPC = ARR ÷ customers billing today

Projected 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 × 100

A 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 12

Revenue 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 + Uplift

Applied 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 nothing

Ending 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 less

A 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 rises

A 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 × 100

Average 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 × 100

A 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 × 100

Actual: 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 × 100

Gross 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 × 100

Monthly, 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 year

Horizons of 12, 24 or 36 months.

New logo ARR

Monthly new ARR = (New logo $K/mo × 1,000) × ramp factor

Ramp 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 date

Known 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 % ÷ 12

Both 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 date

Renewal 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 departures

New 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 average

Unscoped 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 starts

Monthly 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 invoices

New 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 ÷ 12

Straight-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 underneath

The billed amount is what the invoice says; the normalised one is what makes rows comparable.