Как посчитать Rule of 40 в SQL
CAST(user_id AS text) в коде Postgres. Какой вариант с оператором :: записывает то же самое приведение типа?Содержание:
Зачем Rule of 40
Rule of 40 — фольклорная VC-метрика для SaaS: если рост выручки + операционная маржа > 40%, бизнес здоров. Меньше — что-то не так: либо рост маленький, либо unit-экономика поломана.
Формула Rule of 40
Rule of 40 = YoY Revenue Growth (%) + EBITDA Margin (%)Порог соответствия — 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 | Статус |
|---|---|
| > 60 | Топ-уровень. |
| 40-60 | Здоровый. |
| 20-40 | Тревожно. |
| < 20 | Критично. |
Публичные SaaS-лидеры (Snowflake, Datadog) — часто 70+.
По периодам
Скользящее среднее за последние 4 квартала для сглаживания:
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. Годовой или квартальный расчёт. Можно считать по году: годовой рост + годовая EBITDA-маржа. Можно по кварталу: рост за скользящие 12 месяцев (TTM) + TTM-маржа.
Ошибка 3. Отрицательная маржа при высоком росте. Стартап с маржой −30% и ростом +80% даёт Rule of 40 = 50. Формально порог пройден, но отрицательная маржа сама по себе — фактор риска.
Ошибка 4. Сравнивать с не-SaaS. Rule of 40 — SaaS-метрика. В e-commerce и FMCG она не применима.
Ошибка 5. Сглаживание. Rule of 40 по одному кварталу слишком шумный. Берите скользящее среднее за 12 месяцев (TTM).
Связанные темы
- Как посчитать Quick Ratio в SQL
- Как посчитать MRR в SQL
- Как посчитать YoY в SQL
- Как посчитать net margin в SQL
FAQ
Какой Rule of 40 считается отличным?
Значение 50 и выше — это топ-уровень. 40–50 считается здоровым, 20–40 — средним, а всё, что ниже 20, требует срочных изменений в бизнесе.
Rule of 40 для pre-revenue стартапа?
Не работает. Формуле нужна база по выручке за прошлый год, а у стартапа без выручки её попросту нет.
EBITDA vs Operating Margin?
Классический стандарт для Rule of 40 — EBITDA. Операционная маржа (без учёта D&A) считается жёстче и даёт более консервативные значения.
Кто использует Rule of 40?
В основном венчурные фонды, инвесторы стадии роста и аналитики публичных рынков. Внутренние продуктовые команды используют эту метрику заметно реже.
Rule of 40 падает — что делать?
Если проседает рост, сфокусируйтесь на привлечении новых клиентов. Если падает маржа — режьте расходы или пересматривайте цены. Часто это компромисс: на ранней стадии жертвуют маржой ради роста, на поздней — наоборот.