Documentation
Formula Reference
Understand how formulas are expressed, evaluated, and chained — then browse every formula across all six packs.
Expression syntax
Formula expressions are simple arithmetic over account codes wrapped in curly braces. The engine evaluates them per cell (time × entity).
| Token | Meaning | Example |
|---|---|---|
| {ACCOUNT_CODE} | Value of that account in the same time / entity cell | {REVENUE} |
| + - * / | Standard arithmetic operators | {REVENUE} - {COGS} |
| ( ) | Grouping for precedence | ({EBITDA} / {REVENUE}) * 100 |
| numeric literals | Constants for percentage / scaling | {NET_INCOME} / {REVENUE} * 100 |
Exec. order
Each formula carries an order integer. Formulas are executed ascending by order, so a formula may safely depend on any formula with a lower order number. Circular dependencies are rejected at install time.
| # | Account | Expression | Depends on |
|---|---|---|---|
| 10 | GROSS_PROFIT | {REVENUE} - {COGS} | — |
| 20 | OPEX | {MARKETING}+{ADMIN}+{RND} | — |
| 30 | EBIT | {GROSS_PROFIT} - {OPEX} | 10, 20 |
| 40 | EBITDA | {EBIT} + {DEPRECIATION} | 30 |
| 50 | EBT | {EBIT} - {INTEREST} | 30 |
| 60 | NET_INCOME | {EBT} - {TAX} | 50 |
| 70 | GROSS_MARGIN_PCT | ({GROSS_PROFIT}/{REVENUE})*100 | 10 |
| 80 | EBITDA_MARGIN_PCT | ({EBITDA}/{REVENUE})*100 | 40 |
| 90 | NET_MARGIN_PCT | ({NET_INCOME}/{REVENUE})*100 | 60 |
Worked chain example — Q1 2026 HQ
Starting from imported actuals, the engine cascades through the formula chain in order:
What is a Target Account?
A target account is the account code that the formula writes its result into. Think of it as the output cell name. After recalculation, every time × entity combination in the plan will have a value stored under this code — calculated automatically from the expression on the right.
For example, the target account GROSS_PROFIT does not exist in your imported data —
the engine creates it by evaluating {REVENUE} - {COGS} for every cell.
That computed value can then be referenced by later formulas (e.g. EBITDA) using
{GROSS_PROFIT} in their own expression.
- Target accounts are never imported manually — they are always formula-derived.
- If you import a row whose account code matches a target account, it will be overwritten on next recalculation.
- Target accounts are available as
{ACCOUNT_CODE}tokens in any subsequent formula with a higher execution order.
Core Finance
Fundamental P&L metrics: gross profit, EBITDA, EBIT, net income, and margin percentages.
| # | Target account (output code written by the formula) | Expression | Exec. order |
|---|---|---|---|
| 1 |
GROSS_PROFIT
Revenue minus the direct cost of delivering goods or services |
{REVENUE}-{COGS} | 100 |
| 2 |
GROSS_MARGIN_PCT
Gross profit expressed as a percentage of revenue |
({GROSS_PROFIT}/{REVENUE})*100 | 110 |
| 3 |
OPEX
Total operating expenses — marketing, admin, and R&D (Research & Development) combined |
{MARKETING}+{ADMIN}+{RND} | 120 |
| 4 |
OPERATING_INCOME
Gross profit minus all operating expenses (profit from core operations) |
{GROSS_PROFIT}-{OPEX} | 130 |
| 5 |
OPERATING_MARGIN_PCT
Operating income as a percentage of revenue |
({OPERATING_INCOME}/{REVENUE})*100 | 140 |
| 6 |
EBITDA
Earnings Before Interest, Tax, Depreciation and Amortisation |
{OPERATING_INCOME}+{DEPRECIATION} | 150 |
| 7 |
EBITDA_MARGIN_PCT
EBITDA expressed as a percentage of revenue |
({EBITDA}/{REVENUE})*100 | 160 |
| 8 |
EBIT
EBITDA (Earnings Before Interest, Tax, Depreciation & Amortisation) minus depreciation — earnings before interest and tax |
{EBITDA}-{DEPRECIATION} | 170 |
| 9 |
NET_INCOME
Profit after interest and tax — the bottom line |
{EBIT}-{INTEREST}-{TAX} | 180 |
| 10 |
NET_MARGIN_PCT
Net income expressed as a percentage of revenue |
({NET_INCOME}/{REVENUE})*100 | 190 |
| 11 |
REVENUE_GROWTH_PCT
Year-on-year percentage change in revenue |
(({REVENUE}-{PRIOR_REVENUE})/{PRIOR_REVENUE})*100 | 195 |
| 12 |
VARIANCE_TO_BUDGET
Absolute difference between actual and budgeted figures |
{ACTUAL}-{BUDGET} | 198 |
| 13 |
VARIANCE_PCT
Budget variance expressed as a percentage of the budget figure |
(({ACTUAL}-{BUDGET})/{BUDGET})*100 | 199 |
Advanced Finance
Balance-sheet ratios: ROE, ROA, ROIC, ROCE, liquidity, leverage, and efficiency metrics.
| # | Target account (output code written by the formula) | Expression | Exec. order |
|---|---|---|---|
| 1 |
ROE_PCT
Return on Equity — net income as a % of shareholders' equity |
({NET_INCOME}/{EQUITY})*100 | 400 |
| 2 |
ROA_PCT
Return on Assets — net income as a % of total assets |
({NET_INCOME}/{TOTAL_ASSETS})*100 | 410 |
| 3 |
ROCE_PCT
Return on Capital Employed — EBIT (Earnings Before Interest & Tax) divided by capital employed |
({EBIT}/({TOTAL_ASSETS}-{CURRENT_LIABILITIES}))*100 | 420 |
| 4 |
ROIC_PCT
Return on Invested Capital — operating income over total invested capital |
({OPERATING_INCOME}/({TOTAL_DEBT}+{EQUITY}))*100 | 430 |
| 5 |
WORKING_CAPITAL
Current assets minus current liabilities — short-term liquidity buffer |
{CURRENT_ASSETS}-{CURRENT_LIABILITIES} | 440 |
| 6 |
CURRENT_RATIO
Current assets divided by current liabilities — ability to cover short-term debts |
{CURRENT_ASSETS}/{CURRENT_LIABILITIES} | 450 |
| 7 |
QUICK_RATIO
Like current ratio but excluding inventory — a stricter liquidity test |
({CURRENT_ASSETS}-{INVENTORY})/{CURRENT_LIABILITIES} | 460 |
| 8 |
CASH_RATIO
Cash only divided by current liabilities — the most conservative liquidity measure |
{CASH}/{CURRENT_LIABILITIES} | 470 |
| 9 |
DEBT_TO_EQUITY
Total debt relative to shareholders' equity — indicates financial leverage |
{TOTAL_DEBT}/{EQUITY} | 480 |
| 10 |
INTEREST_COVERAGE
How many times EBITDA (Earnings Before Interest, Tax, Depreciation & Amortisation) covers the interest expense |
{EBITDA}/{INTEREST} | 490 |
| 11 |
NET_DEBT
Total debt minus cash — the effective net borrowing position |
{TOTAL_DEBT}-{CASH} | 492 |
| 12 |
NET_DEBT_TO_EBITDA
Net debt as a multiple of EBITDA (Earnings Before Interest, Tax, Depreciation & Amortisation) — leverage relative to earnings |
{NET_DEBT}/{EBITDA} | 494 |
| 13 |
ASSET_TURNOVER
Revenue generated per unit of total assets — efficiency of asset use |
{REVENUE}/{TOTAL_ASSETS} | 496 |
| 14 |
DSO_DAYS
Days Sales Outstanding — average days to collect receivables from customers |
({ACCOUNTS_RECEIVABLE}/{REVENUE})*365 | 500 |
| 15 |
DPO_DAYS
Days Payable Outstanding — average days taken to pay suppliers |
({ACCOUNTS_PAYABLE}/{COGS})*365 | 510 |
| 16 |
INVENTORY_DAYS
Average number of days inventory is held before being sold |
({INVENTORY}/{COGS})*365 | 520 |
| 17 |
CASH_CONVERSION_CYCLE
DSO (Days Sales Outstanding) + inventory days − DPO (Days Payable Outstanding) — net days cash is tied up in operations |
{DSO_DAYS}+{INVENTORY_DAYS}-{DPO_DAYS} | 530 |
Cash Flow
Operating cash flow, free cash flow, FCF conversion, capex intensity, and runway.
| # | Target account (output code written by the formula) | Expression | Exec. order |
|---|---|---|---|
| 1 |
OPERATING_CASH_FLOW
Cash generated from core business operations after tax |
{EBITDA}-{WORKING_CAPITAL_CHANGE}-{TAX} | 600 |
| 2 |
FREE_CASH_FLOW
Operating cash flow minus capex (capital expenditure) — cash truly available to the business |
{OPERATING_CASH_FLOW}-{CAPEX} | 610 |
| 3 |
FCF_MARGIN_PCT
Free cash flow expressed as a percentage of revenue |
({FREE_CASH_FLOW}/{REVENUE})*100 | 620 |
| 4 |
FCF_CONVERSION_PCT
Free cash flow as a % of net income — quality-of-earnings indicator |
({FREE_CASH_FLOW}/{NET_INCOME})*100 | 630 |
| 5 |
CAPEX_INTENSITY_PCT
Capital expenditure as a percentage of revenue |
({CAPEX}/{REVENUE})*100 | 640 |
| 6 |
CASH_BURN
Net cash consumed each period: operating cash flow minus capex (capital expenditure) |
{OPERATING_CASH_FLOW}-{CAPEX} | 650 |
| 7 |
RUNWAY_MONTHS
Months of cash remaining at the current burn rate |
{CASH_BALANCE}/{CASH_BURN} | 660 |
| 8 |
REINVESTMENT_RATE
Share of EBIT (Earnings Before Interest & Tax) being reinvested back into the business via capex (capital expenditure) |
({CAPEX}-{DEPRECIATION})/{EBIT} | 670 |
| 9 |
MAINTENANCE_CAPEX
Minimum capex (capital expenditure) to maintain the existing asset base, approximated by depreciation |
{DEPRECIATION} | 675 |
| 10 |
GROWTH_CAPEX
Capex (capital expenditure) above maintenance level — investment in future growth capacity |
{CAPEX}-{DEPRECIATION} | 678 |
SaaS KPIs
ARR, MRR, churn, NRR, LTV, CAC, payback period, and magic number.
| # | Target account (output code written by the formula) | Expression | Exec. order |
|---|---|---|---|
| 1 |
ARR
Annual Recurring Revenue — annualised value of all active subscriptions |
{MRR}*12 | 700 |
| 2 |
ARPA
Average Revenue Per Account — MRR (Monthly Recurring Revenue) divided by number of active customers |
{MRR}/{ACTIVE_CUSTOMERS} | 710 |
| 3 |
GROSS_CHURN_PCT
Percentage of MRR (Monthly Recurring Revenue) lost from cancellations during the period |
({CHURNED_MRR}/{OPENING_MRR})*100 | 720 |
| 4 |
NET_MRR_CHANGE
Net monthly MRR (Monthly Recurring Revenue) movement: new + expansion minus churn and contractions |
{NEW_MRR}+{EXPANSION_MRR}-{CHURNED_MRR}-{CONTRACTION_MRR} | 725 |
| 5 |
NRR_PCT
Net Revenue Retention — opening MRR (Monthly Recurring Revenue) retained plus expansion, as a percentage |
(({OPENING_MRR}-{CHURNED_MRR}+{EXPANSION_MRR})/{OPENING_MRR})*100 | 730 |
| 6 |
GRR_PCT
Gross Revenue Retention — ARR (Annual Recurring Revenue) retained, excluding any expansion revenue |
(({OPENING_MRR}-{CHURNED_MRR})/{OPENING_MRR})*100 | 735 |
| 7 |
SAAS_QUICK_RATIO
New + expansion MRR (Monthly Recurring Revenue) divided by churned + contracted MRR — growth efficiency |
({NEW_MRR}+{EXPANSION_MRR})/({CHURNED_MRR}+{CONTRACTION_MRR}) | 740 |
| 8 |
LTV
Customer Lifetime Value — expected total subscription revenue per customer |
{ARPA}/({GROSS_CHURN_PCT}/100) | 750 |
| 9 |
LTV_CAC_RATIO
Lifetime value divided by customer acquisition cost — unit economics health |
{LTV}/{CAC} | 755 |
| 10 |
CAC_PAYBACK_MONTHS
Months required to recover the cost of acquiring one customer |
{CAC}/{ARPA} | 760 |
| 11 |
MAGIC_NUMBER
Net new ARR (Annual Recurring Revenue) divided by prior-period S&M (Sales & Marketing) spend — sales efficiency index |
{ARR_CHANGE}/{PRIOR_SALES_MARKETING} | 770 |
| 12 |
LOGO_CHURN_PCT
Percentage of customer accounts (logos) lost during the period |
({CHURNED_CUSTOMERS}/{OPENING_CUSTOMERS})*100 | 780 |
| 13 |
EXPANSION_RATE_PCT
MRR growth from existing customers via upsell or cross-sell |
({EXPANSION_MRR}/{OPENING_MRR})*100 | 790 |
| 14 |
ARR_PER_EMPLOYEE
ARR (Annual Recurring Revenue) divided by headcount — revenue productivity per employee |
{ARR}/{HEADCOUNT} | 795 |
Workforce & Operations
Headcount cost ratios, revenue per FTE, attrition, and efficiency metrics.
| # | Target account (output code written by the formula) | Expression | Exec. order |
|---|---|---|---|
| 1 |
HEADCOUNT_COST
Total salary cost across all headcount |
{HEADCOUNT}*{AVG_SALARY} | 800 |
| 2 |
BENEFITS_COST
Cost of employee benefits (health, pension, etc.) based on a benefits rate |
{HEADCOUNT_COST}*{BENEFITS_RATE} | 810 |
| 3 |
TOTAL_PEOPLE_COST
Full people cost including salaries, benefits, and contractor spend |
{HEADCOUNT_COST}+{BENEFITS_COST}+{CONTRACTOR_COST} | 820 |
| 4 |
PRODUCTIVITY_PER_FTE
Revenue generated per full-time equivalent employee |
{REVENUE}/{HEADCOUNT} | 830 |
| 5 |
OPEX_PER_FTE
Total operating expenses divided by headcount |
{OPEX}/{HEADCOUNT} | 840 |
| 6 |
PEOPLE_COST_PCT
Total people cost as a percentage of revenue |
({TOTAL_PEOPLE_COST}/{REVENUE})*100 | 850 |
| 7 |
REVENUE_PER_FTE
Revenue generated per full-time equivalent employee |
{REVENUE}/{HEADCOUNT} | 860 |
| 8 |
ATTRITION_COST
Estimated cost of employee turnover based on attrition rate and replacement cost |
{ATTRITION_RATE}*{HEADCOUNT}*{AVG_REPLACEMENT_COST} | 870 |
| 9 |
TRAINING_COST_PER_FTE
Training budget spend divided by total headcount |
{TRAINING_BUDGET}/{HEADCOUNT} | 875 |
| 10 |
OVERHEAD_RATIO
Admin headcount as a percentage of total headcount — organisational overhead |
({ADMIN_HEADCOUNT}/{HEADCOUNT})*100 | 880 |
| 11 |
NET_NEW_HEADCOUNT
Hires minus attrition — net headcount movement in the period |
{HIRES}-{ATTRITION} | 885 |
| 12 |
HEADCOUNT_EOD
End-of-period headcount: opening count plus net new hires |
{OPENING_HEADCOUNT}+{NET_NEW_HEADCOUNT} | 890 |
Retail Operations
Sell-through rate, basket size, GMROI, inventory turns, and shrinkage.
| # | Target account (output code written by the formula) | Expression | Exec. order |
|---|---|---|---|
| 1 |
GROSS_MARGIN
Revenue minus cost of goods sold (retail equivalent of gross profit) |
{REVENUE}-{COGS} | 900 |
| 2 |
SELL_THROUGH_PCT
Percentage of available inventory units sold during the period |
({UNITS_SOLD}/{UNITS_AVAILABLE})*100 | 910 |
| 3 |
BASKET_SIZE
Average revenue per transaction — total revenue divided by transaction count |
{REVENUE}/{TRANSACTIONS} | 920 |
| 4 |
CONVERSION_RATE_PCT
Percentage of store visitors or sessions that result in a purchase |
({TRANSACTIONS}/{FOOTFALL})*100 | 930 |
| 5 |
REVENUE_PER_SQFT
Revenue generated per square foot of retail floor space |
{REVENUE}/{STORE_SQFT} | 940 |
| 6 |
SHRINKAGE_PCT
Inventory lost to theft, damage, or admin error as a % of expected stock |
(({EXPECTED_INVENTORY}-{ACTUAL_INVENTORY})/{EXPECTED_INVENTORY})*100 | 950 |
| 7 |
STOCK_TURN
Number of times the full inventory is sold and replaced during the period |
{COGS}/{AVG_INVENTORY} | 960 |
| 8 |
GMROI
Gross Margin Return on Inventory Investment — margin earned per unit of inventory cost |
({GROSS_MARGIN}/{AVG_INVENTORY})*({UNITS_SOLD}/{UNITS_AVAILABLE}) | 970 |
| 9 |
PROMO_UPLIFT_PCT
Percentage revenue uplift from promotional activity versus baseline trading |
(({REVENUE_PROMO}-{REVENUE_BASELINE})/{REVENUE_BASELINE})*100 | 980 |
| 10 |
REPLENISHMENT_DAYS
Average days of stock on hand based on the current rate of sale |
({AVG_INVENTORY}/{UNITS_SOLD})*365 | 990 |