Как посчитать Net Margin в SQL
Содержание:
Зачем Net Margin
Команда катит промо: «Revenue +30%». Финдиректор: «А net margin?» Если ROI промо отрицательный, рост revenue убыточен. Net margin — bottom-line метрика, отвечает на «сколько реально зарабатываем».
Что такое Net Margin
Net Margin — доля чистой прибыли после ВСЕХ расходов (COGS, operating, finance, tax).
Net Margin (%) = Net Profit / Revenue × 100%
Net Profit = Revenue - COGS - OpEx - Finance Expenses - TaxesБазовый расчёт
Данные: pnl_monthly(month, revenue, cogs, opex, finance_exp, tax).
SELECT
month,
revenue,
cogs,
opex,
finance_exp,
tax,
revenue - cogs AS gross_profit,
revenue - cogs - opex AS operating_profit,
revenue - cogs - opex - finance_exp - tax AS net_profit,
(revenue - cogs - opex - finance_exp - tax)::NUMERIC * 100
/ NULLIF(revenue, 0) AS net_margin_pct
FROM pnl_monthly
ORDER BY month;Gross vs Operating vs Net
| Метрика | Включает |
|---|---|
| Gross Margin | Revenue - COGS |
| Operating Margin | Gross - OpEx |
| Net Margin | Operating - Finance - Tax |
Декомпозиция помогает найти проблемное звено:
- Gross padает → COGS / pricing
- Operating падает → OpEx (зарплаты, маркетинг)
- Net падает → finance / tax
Net Margin по продуктам
Если есть allocated costs:
SELECT
p.product_name,
SUM(s.revenue) AS revenue,
SUM(s.cogs) AS cogs,
SUM(s.allocated_opex) AS opex,
(SUM(s.revenue) - SUM(s.cogs) - SUM(s.allocated_opex))::NUMERIC * 100
/ NULLIF(SUM(s.revenue), 0) AS contribution_margin
FROM product_sales s
JOIN products p ON p.id = s.product_id
WHERE s.month = '2026-04-01'
GROUP BY p.product_name
ORDER BY contribution_margin DESC;Note: «product-level net margin» обычно — это contribution margin (с allocated opex), не full net margin.
Частые ошибки
Ошибка 1. Считать net margin на продукт-уровне. Допущения по allocated opex / tax искажают. Product-level — это обычно contribution margin.
Ошибка 2. Игнорировать non-cash. Depreciation, amortization — реальные расходы для PnL, но не cash flow. Не путайте margin с cash margin.
Ошибка 3. Tax-rate ассумпции. Эффективная налоговая ставка может отличаться от номинальной (льготы, перенос убытков).
Ошибка 4. Включать non-recurring items. One-time costs (например, юр. расходы по иску) искажают тренд. Adjusted Net Margin excluding non-recurring — отдельная метрика.
Ошибка 5. Period mismatch. Revenue апреля, COGS — average по полугодию. Несравнимо.
Связанные темы
- Как посчитать gross margin в SQL
- Как посчитать contribution margin в SQL
- Как посчитать unit-economics в SQL
- Как посчитать revenue в SQL
FAQ
Какой Net Margin считается хорошим?
Зависит от индустрии. SaaS — 15-25%. E-com — 3-8%. FMCG — 5-10%. Tech-giants — 20-40%.
Net Margin vs EBITDA Margin?
EBITDA — до finance / tax / D&A. Net — после всего. EBITDA проще для cross-company сравнений.
Net Margin отрицательный — норма?
Для growth-стартапа — да, инвестируют в рост. Для зрелого бизнеса — серьёзный сигнал.
Net Margin падает — что делать?
Декомпозиция: 1) revenue (pricing / volume?), 2) gross margin (COGS?), 3) OpEx (зарплаты / маркетинг?), 4) finance/tax (новый кредит?).
Можно ли влиять как PM?
Прямо — на gross / contribution margin (фичи, pricing). Косвенно — на OpEx через продуктивность.