Перейти до змісту

Юніт-економіка

Маржинальний прибуток інтернет-магазину: CM1, CM2, CM3 на прикладі

Як порахувати маржинальний прибуток магазину по рівнях CM1/CM2/CM3 — собівартість, доставка, невикуп, комісії LiqPay і monobank, реклама — і як показати водоспад від виручки до прибутку в дашборді.

DATUMPANELОпубліковано Оновлено 6 хв читання

Обкладинка статті про маржинальний прибуток

Виручка — це не гроші, які лишаються бізнесу. Між нею і прибутком — собівартість, доставка, комісії, повернення, реклама. Маржинальний прибуток (contribution margin) показує, скільки кожне замовлення реально «вносить» у покриття постійних витрат і прибуток. Без нього неможливо зрозуміти, які товари, канали й акції вигідні.

Рівні маржинального прибутку

Зручно рахувати в три кроки:

РівеньФормулаЩо показує
CM1net-виручка − собівартість товарутоварна маржа
CM2CM1 − доставка − пакування − комісії оплати − витрати на повернення/невикупмаржа після виконання замовлення
CM3CM2 − маркетингові витратищо лишається на постійні витрати і прибуток

Net-виручка — без ПДВ (якщо ви платник), за вирахуванням знижок і повернень.

Приклад за місяць

Умовні дані магазину з накладеним платежем і онлайн-оплатою.

СтаттяСума, ₴% від net-виручки
Net-виручка1 000 000100%
Собівартість−520 00052%
CM1480 00048%
Доставка, оплачена магазином−45 0004,5%
Невикуп (зворотна доставка)−18 0001,8%
Пакування−9 0000,9%
Комісії еквайрингу і накладеного платежу−16 0001,6%
CM2392 00039,2%
Реклама (Google, Meta, TikTok)−210 00021%
Комісії маркетплейсів−25 0002,5%
CM3157 00015,7%

З виручки в мільйон на оренду, зарплати і прибуток лишається 157 тисяч. Тепер видно важелі: −5% витрат на рекламу при тих самих продажах дають більше, ніж +5% виручки.

Звідки брати кожну статтю

СтаттяДжерело
Виручка, знижки, статусиCRM (KeyCRM, Bitrix24) або платформа (Horoshop, Prom, Shopify)
Собівартістьоблік / таблиця закупівельних цін за SKU
Доставка, невикупAPI служби доставки або CRM
Комісії оплатвиписки й API LiqPay, monobank
РекламаGoogle Ads, Meta, TikTok API
Маркетплейсизвіти Prom, Rozetka тощо

Найчастіше «дірка» — собівартість: її ведуть у таблиці, яка оновлюється нерегулярно. Варто зробити її частиною пайплайна з перевіркою, що кожен проданий SKU має ціну закупівлі (пайплайни).

Маржа на рівні товару і каналу

Найцінніше — рахувати CM2 і CM3 за товарами, категоріями та каналами:

  • товар із високою виручкою може мати низький CM2 через габаритну доставку;
  • категорія з високим невикупом «з'їдає» маржу непомітно;
  • канал з добрим ROAS може давати від'ємний CM3 на товарах з низькою маржею (ROAS і POAS).
SELECT p.category,
       SUM(oi.revenue_net) AS revenue,
       SUM(oi.revenue_net - oi.cogs) AS cm1,
       SUM(oi.revenue_net - oi.cogs - oi.shipping_alloc - oi.fees_alloc - oi.returns_alloc) AS cm2,
       SAFE_DIVIDE(SUM(oi.revenue_net - oi.cogs - oi.shipping_alloc - oi.fees_alloc - oi.returns_alloc), SUM(oi.revenue_net)) AS cm2_pct
FROM order_items oi
JOIN products p USING (sku)
WHERE oi.order_month = '2026-09-01'
GROUP BY 1
ORDER BY cm2_pct;

Витрати рівня замовлення (доставка, комісія) розподіляються на товари пропорційно виручці або вазі — оберіть правило і задокументуйте.

Як показувати в дашборді

  • Водоспад (waterfall) від net-виручки до CM3 — найзрозуміліший графік для власника;
  • CM2 % і CM3 % за тижнями з трендом;
  • таблиця категорій з CM1/CM2 %, відсортована від найгірших;
  • CM3 за каналами залучення;
  • позначка частки SKU без собівартості (якість даних).

Більше про економіку клієнта — у гайді з юніт-економіки.

Типові помилки

  • Рахувати «маржу» як виручка − собівартість і зупинятись на CM1.
  • Ігнорувати невикуп і зворотну доставку.
  • Брати комісії з тарифів, а не з фактичних виписок.
  • Не враховувати знижки й бонуси.
  • Змішувати виручку з ПДВ і собівартість без ПДВ.

Чекліст

  • Net-виручка визначена однаково в усіх звітах
  • Собівартість для кожного проданого SKU
  • Доставка, невикуп і пакування на рівні замовлення
  • Фактичні комісії з виписок платіжних сервісів
  • Правило розподілу витрат замовлення на товари
  • Водоспад CM1→CM3 на першому екрані фінансів
  • Розбивка за категоріями й каналами

Покроково: від P&L до маржинального прибутку

Більшість бізнесів уже мають вхідні дані в обліку, просто згруповані інакше. Щоб побудувати погляд на маржинальний прибуток:

  1. Випишіть усі статті витрат з P&L за останні 3 місяці.
  2. Позначте кожну статтю як змінну (росте разом із замовленнями чи виручкою) або постійну (не змінюється, якщо замовлень удвічі більше).
  3. Для змінних знайдіть драйвер: на замовлення (пакування, комплектація), на одиницю (собівартість), % від виручки (комісії платіжок, маркетплейсів), на відправлення (перевізник).
  4. Розподіліть змінні витрати на замовлення за цими драйверами, щоб кожне замовлення, товар і канал отримали свою частку.
  5. Звірте: сума розподілених змінних витрат має збігатися зі статтями P&L з невеликою похибкою.

SQL: маржинальний прибуток за каналами і місяцями

SELECT
  DATE_TRUNC(o.order_date, MONTH)                       AS month,
  o.channel,
  SUM(o.revenue_net)                                    AS revenue,
  SUM(o.cogs)                                           AS cogs,
  SUM(o.shipping_cost + o.packaging_cost)               AS fulfilment,
  SUM(o.payment_fee + o.marketplace_fee)                AS fees,
  SUM(o.return_cost)                                    AS returns,
  SUM(o.revenue_net - o.cogs) AS cm1,                   -- валова маржа
  SUM(o.revenue_net - o.cogs - o.shipping_cost - o.packaging_cost
      - o.payment_fee - o.marketplace_fee - o.return_cost) AS cm2,
  ANY_VALUE(a.spend)                                    AS ad_spend,
  SUM(o.revenue_net - o.cogs - o.shipping_cost - o.packaging_cost
      - o.payment_fee - o.marketplace_fee - o.return_cost) - ANY_VALUE(a.spend) AS cm3
FROM clean.orders o
LEFT JOIN (
  SELECT DATE_TRUNC(day, MONTH) AS month, channel, SUM(spend) AS spend
  FROM clean.ad_spend GROUP BY 1, 2
) a ON a.month = DATE_TRUNC(o.order_date, MONTH) AND a.channel = o.channel
WHERE o.status = 'paid'
GROUP BY 1, 2
ORDER BY 1 DESC, cm3;

Канали з витратами, але без замовлень, у такому з'єднанні зникають. У робочій версії спочатку будуйте сітку «місяць × канал», як описано в гайді з дашбордів.

Приклад: товар, що виглядає чудово до CM2

Ілюстративні місячні числа для двох товарів:

Товар X (габаритний)Товар Y (компактний)
Виручка300 000300 000
Собівартість150 000180 000
CM1 (валова маржа)150 000 (50%)120 000 (40%)
Замовлень400400
Доставка + пакування на замовлення22060
Фулфілмент88 00024 000
Комісії (2,5%)7 5007 500
Повернення (витрати)18 0006 000
CM236 500 (12%)82 500 (28%)

За валовою маржею X — кращий товар. Після фулфілменту і повернень Y заробляє більш ніж удвічі більше. Рішення, що з цього випливають: закласти доставку в ціну X, встановити для нього мінімальне замовлення або перестати рекламувати його як флагман. Звіт лише з валовою маржею ніколи не почне таких розмов.

Цілі для маржинального прибутку

Універсального «хорошого» CM% немає — він залежить від постійних витрат. Корисна ціль виводиться з вашого власного P&L:

Потрібний CM3 на місяць = постійні витрати + цільовий операційний прибуток

Якщо постійні витрати 400 000 на місяць, а ви хочете 100 000 операційного прибутку, потрібно 500 000 CM3. За ставки CM3 20% це 2,5 млн виручки. Якщо ставка падає до 16%, для тієї самої цілі потрібно вже 3,1 млн. Саме тому щотижнево відстежувати ставку CM3 так само важливо, як і виручку.

Що робити, коли маржа падає

Коли ставка CM3 знижується, пройдіть рівні по черзі: CM1 (ціни, знижки, собівартість, товарний мікс), CM2 (доставка, повернення, комісії), CM3 (реклама). Майже завжди причина видна на одному рівні, і саме там шукати рішення: переглянути знижкову політику, тарифи перевізника чи бюджет каналу з найгіршим POAS.

Кілька закономірностей, які я бачу часто:

  • CM1 падає, виручка росте. Акція або зсув продажів до дешевших, менш маржинальних товарів. Перш ніж радіти виручці, перевірте частку продажів зі знижкою і товарний мікс.
  • CM2 падає при стабільному CM1. Зміна тарифів перевізника, зростання повернень або більше замовлень трохи вище порогу безкоштовної доставки. Повернення часто надходять із запізненням на кілька тижнів, тож дивіться на тренд, а не лише на поточний місяць.
  • CM3 падає при стабільному CM2. Реклама дорожчає швидше, ніж приносить замовлення, — часто після масштабування кампанії за межі її ефективної аудиторії.

Записуйте причину і дію в щотижневому перегляді. За кілька місяців такий журнал стає найкориснішим документом бізнесу про власну економіку.

Часті запитання

Чим маржинальний прибуток відрізняється від валового?

Валовий прибуток — зазвичай виручка мінус собівартість (CM1). Маржинальний враховує всі змінні витрати на замовлення, включно з доставкою, комісіями і рекламою.

Які витрати вважати змінними?

Ті, що ростуть з кожним замовленням: товар, доставка, пакування, комісії, реклама на залучення. Оренда, зарплати офісу й підписки на сервіси — постійні, вони під CM3.

Як часто рахувати CM?

Щотижня для операційних рішень і щомісяця для фінансового звіту. Щоденно — лише CM3 після реклами як оперативний контроль.

Чи можна порахувати CM без складного обліку?

Так, для старту достатньо таблиці собівартості за SKU, вивантаження замовлень і рекламних витрат. Точність зростає, коли додаються фактичні комісії й доставка.

Теги: маржаюніт-економікаe-commerce

Автор

DATUMPANEL — Аналітика даних для бізнесу

DATUMPANEL — це незалежний аналітик даних з України. Будую дашборди для власників бізнесу, налаштовую GA4 і експорт у BigQuery, збираю пайплайни даних і автозвіти в Telegram для e-commerce, сервісного бізнесу, SaaS і агенцій — від аудиту даних до рішень.

Написати в Telegram[email protected]Відкрити демо

Читайте також

  • Юніт-економіка9 хв читання

    Юніт-економіка: формули, приклад розрахунку і дашборд

    Як порахувати юніт-економіку інтернет-магазину, сервісу чи SaaS — CAC, маржа на замовлення, LTV, окупність — на реальних даних з CRM і реклами, і як винести це в щоденний дашборд.

    Основний гайд

  • Юніт-економіка6 хв читання

    LTV і CAC: як порахувати чесно і що означає співвідношення

    Формули CAC і LTV для магазину, сервісу і SaaS, повний і «рекламний» CAC, LTV у маржі, окупність CAC у місяцях і чому правило 3:1 не варто сприймати буквально.

  • Юніт-економіка6 хв читання

    RFM-аналіз клієнтів: сегменти, SQL і що з ними робити

    Як провести RFM-сегментацію бази клієнтів магазину чи сервісу — давність, частота, сума — правила балів, SQL-запит, готові сегменти (чемпіони, у зоні ризику, сплячі) і сценарії розсилок для кожного.

Хочете таку аналітику у себе?

Опишіть, які дані у вас є і на які запитання бракує відповідей. Відповім того ж дня — з планом, термінами й тим, що можна зробити швидко.

Або напишіть напряму:

Відкрити демо →

Залиште заявку

Відповім протягом робочого дня.

Що вас цікавить
Сфера бізнесу
Ще деталі · необов’язково
Орієнтовний бюджет · необов’язково
Коли зручно почати · необов’язково
Які джерела даних є · необов’язково

Надсилаючи форму, ви погоджуєтесь з Політикою конфіденційності — контакти використовуються лише для відповіді на заявку.