Как посчитать Rule of 40 в SQL

Закрепи формулу rule of 40 в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать rule of 40 в Telegram

Зачем Rule of 40

Rule of 40 — фольклорная VC-метрика для SaaS: если рост revenue + операционная маржа > 40%, бизнес здоров. Меньше — что-то не так: либо рост маленький, либо unit-экономика поломана.

Формула Rule of 40

Rule of 40 = YoY Revenue Growth (%) + EBITDA Margin (%)

Compliance threshold — 40%.

Базовый расчёт

Данные: pnl_quarterly(quarter, revenue, ebitda).

WITH yoy AS (
    SELECT
        quarter,
        revenue,
        ebitda,
        LAG(revenue, 4) OVER (ORDER BY quarter) AS prev_year_revenue
    FROM pnl_quarterly
)
SELECT
    quarter,
    revenue,
    ebitda,
    (revenue::NUMERIC / NULLIF(prev_year_revenue, 0) - 1) * 100 AS yoy_growth_pct,
    ebitda::NUMERIC * 100 / NULLIF(revenue, 0) AS ebitda_margin_pct,
    (revenue::NUMERIC / NULLIF(prev_year_revenue, 0) - 1) * 100
        + ebitda::NUMERIC * 100 / NULLIF(revenue, 0) AS rule_of_40
FROM yoy
WHERE prev_year_revenue IS NOT NULL
ORDER BY quarter;

Интерпретация

Rule of 40 Status
> 60 Тop-tier.
40-60 Healthy.
20-40 Concerning.
< 20 Critical.

Public SaaS лидеры (Snowflake, Datadog) — часто 70+.

Закрепи формулу rule of 40 в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать rule of 40 в Telegram

По периодам

Trailing 4 quarters average для smoothing:

WITH stats AS (
    SELECT
        quarter,
        revenue,
        ebitda,
        LAG(revenue, 4) OVER (ORDER BY quarter) AS prev_year_revenue
    FROM pnl_quarterly
)
SELECT
    quarter,
    AVG((revenue::NUMERIC / NULLIF(prev_year_revenue, 0) - 1) * 100) OVER (
        ORDER BY quarter ROWS BETWEEN 3 PRECEDING AND CURRENT ROW
    ) AS avg_growth_4q,
    AVG(ebitda::NUMERIC * 100 / NULLIF(revenue, 0)) OVER (
        ORDER BY quarter ROWS BETWEEN 3 PRECEDING AND CURRENT ROW
    ) AS avg_ebitda_margin_4q,
    AVG((revenue::NUMERIC / NULLIF(prev_year_revenue, 0) - 1) * 100
        + ebitda::NUMERIC * 100 / NULLIF(revenue, 0)) OVER (
        ORDER BY quarter ROWS BETWEEN 3 PRECEDING AND CURRENT ROW
    ) AS rule_of_40_4q_avg
FROM stats
WHERE prev_year_revenue IS NOT NULL
ORDER BY quarter;

Частые ошибки

Ошибка 1. EBITDA vs Net Income. Rule of 40 классически считают на EBITDA (не Net Income).

Ошибка 2. Annual vs Quarterly. Можно annual: yearly_growth + annual_ebitda_margin. Quarterly: TTM growth + TTM margin.

Ошибка 3. Negative margin + high growth. Стартап -30% маржа, +80% growth — Rule of 40 = 50. Технически compliance, но негативный margin — фактор риска.

Ошибка 4. Сравнивать с не-SaaS. Rule of 40 — SaaS-метрика. В e-com / FMCG не применима.

Ошибка 5. Smoothing. Single-quarter R40 шумный. Используйте TTM average.

Связанные темы

FAQ

Какой Rule of 40 считается отличным?

50+ — top-tier. 40-50 — здоровый. 20-40 — average. <20 — нужен fix.

Rule of 40 для pre-revenue стартапа?

Не работает. Формула требует revenue baseline.

EBITDA vs Operating Margin?

EBITDA — стандарт. Operating margin (без D&A) даёт более жёсткие числа.

Кто использует Rule of 40?

VC, growth-инвесторы, public-маркет-аналитики. Бизнес-команды реже.

Rule of 40 падает — что делать?

  1. Если growth падает — focus on acquisition. 2) Если margin — cut costs / pricing. 3) Часто trade-off: жертвуем margin ради growth (early stage) или наоборот (late stage).