Rule of 40
Rule of 40: A heuristic that balances growth and profitability. A healthy SaaS company's growth rate plus profit margin should equal 40% or more.
Formula
Rule of 40 = ARR Growth Rate (YoY %) + EBITDA Margin (%) Computable definition
The canonical formula in the GASP formula grammar. The MCP server compiles it to SQL over the datasets listed below.
(metric.arr - lag(metric.arr, 1 year)) / lag(metric.arr, 1 year) + metric.ebitda_margin Unit: percent (the formula yields an unscaled ratio)
Data requirements
Grain: Monthly aggregate · Frequency: Monthly · Aggregation: aggregate (month) · Staged: yes, a cohort or prior-period comparison that a staged dataset makes cheaper · Main source: Finance / ERP.
| Field | Dataset | Type |
|---|---|---|
ebitda | financials | decimal |
mrr | subscription | decimal |
period_start | financials | date |
revenue | financials | decimal |
snapshot_date | subscription | date |
subscription_status | subscription | string |
Example SQL (Postgres)
SELECT ((CAST((((((SELECT COALESCE(SUM(mrr), 0) FROM subscription WHERE snapshot_date = :period_end AND subscription_status = 'active')) * 12)) - ((((SELECT COALESCE(SUM(mrr), 0) FROM subscription WHERE snapshot_date = (:period_end - INTERVAL '1 year') AND subscription_status = 'active')) * 12))) AS DOUBLE PRECISION) / NULLIF(((((SELECT COALESCE(SUM(mrr), 0) FROM subscription WHERE snapshot_date = (:period_end - INTERVAL '1 year') AND subscription_status = 'active')) * 12)), 0)) + ((CAST((SELECT COALESCE(SUM(ebitda), 0) FROM financials WHERE period_start >= :period_start AND period_start <= :period_end) AS DOUBLE PRECISION) / NULLIF(((SELECT COALESCE(SUM(revenue), 0) FROM financials WHERE period_start >= :period_start AND period_start <= :period_end)), 0)))) AS rule_of_40 Access: recommended
sensitivity tier restricted,
access scope unscoped.
Guidance your policy engine enforces.
From an agent: with the GASP MCP server, call
lookup_metric({ "name": "Rule of 40" }) or generate_query({ "metric": "Rule of 40", "adapter": "<your adapter JSON>" }).
Benchmarks
- Below 20: Struggling (Median public SaaS Q1 2025: 12-15%)
- 20-40: Developing (Median mid-2024: 34%)
- 40+: Healthy balance of growth and profitability
- 60+: Elite (top quartile: 45%+ growth component)
What It Tells You
Whether you're balancing growth and profitability appropriately. You can grow fast and lose money, or grow slow and be profitable, but the sum should hit 40.
Dual-Lens Note
The Rule of 40 is a composite metric. Its dual-lens behaviour is inherited from its inputs: - **Rule of 40-O** = ARR-O Growth Rate + Contribution Margin (GM-O) - **Rule of 40-M** = ARR-M Growth Rate + EBITDA Margin A company with 30% ARR growth and heavy implementation costs might report Rule of 40-M = 45 (healthy) while Rule of 40-O = 32 (below threshold). The gap shows whether the balance of growth and profitability holds once delivery costs are counted. No separate O/M inclusion rules are needed. Use the ARR and Gross Margin forms defined above.
Related Metrics
Connected in the GASP relationship graph.
Upstream: what drives this
- ARR component of Rule of 40 (Core)
Downstream: what this drives
- Rule of 40 measures Subscription (Entity)