# Кейс: план проти факту за ціною, обсягом і міксом

> Факторний аналіз: розкладаємо різницю між планом і фактом на ціну, обсяг, мікс і курс.

- Курс: [Фінанси для продактів: від юніт-економіки до бізнес-кейсів](https://productovi.com/uk/courses/finance-for-product.md)
- Модуль: Яким буде наступний рік?
- Урок 28/32, ~42 хв
- Джерело: https://productovi.com/uk/courses/finance-for-product/plan-vs-actual-case

## Продажі перевиконали план

**Alex Tutor:** У продуктовій команді Klasna щойно отримали результати за вересень.

**Leo:** Вересень закрито: 3 709 960 грн продажів проти плану 3 647 800. Ми перевиконали план! Шкільна акція на англійську спрацювала.

**Hanna:** Продажі — так. А маржинальний дохід — 996 149,75 проти 1 050 847. Там, де це важить, нам бракує 54 697,25.

**Sofia:** Як можна продати більше, а заробити менше?

**Alex Tutor:** Перш ніж розбирати: який заголовок рада має прочитати першим?

> **Вправа:** Вересень у Klasna: продажі 3 709 960 грн проти плану 3 647 800; маржинальний дохід 996 149,75 грн проти плану 1 050 847. Який заголовок має стояти на початку записки для ради?

**Alex Tutor:** Для цього й існує **аналіз відхилень (variance analysis)**: розкласти загальну різницю на причини. Для Klasna їх чотири: скільки уроків (обсяг), які саме уроки (мікс), за якою ціною і за яким курсом. Такий розклад називають **факторним аналізом** за ціною, обсягом і міксом (price volume mix analysis).

**Набір даних (CSV):** [Вересень 2026: план і факт за предметами й ринками](https://productovi.com/datasets/finance-for-product/plan-vs-actual-case/klasna-september-plan-actual.csv)

Родини в Україні (ua) платять у гривнях, родини в ЄС (eu) — у євро; ціни за урок у цій валюті. Комісія за платежі — 2,5% від суми, яку платять родини. Відео + AI оплачуємо в доларах. Курси: у плані EUR 45,00 і USD 42,00 грн; фактично у вересні EUR 47,00 і USD 43,50 грн.

- `subject`: english (англійська), maths (математика) або programming (програмування)
- `market`: ua — родини в Україні; eu — родини в ЄС
- `currency`: Валюта, в якій платить родина
- `plan_lessons`: Уроки у вересневому плані
- `actual_lessons`: Фактично проведені у вересні уроки
- `plan_price_per_lesson`: Запланована середня ціна уроку у валюті рядка
- `actual_price_per_lesson`: Фактична середня ціна уроку у валюті рядка
- `payout_per_lesson_uah`: Виплата репетитору за урок, грн (як у плані)
- `video_ai_usd_per_lesson`: Відео + AI на урок, у доларах

**Alex Tutor:** Почни з обсягу. Klasna провела 5 890 уроків проти 5 612 запланованих. Оціни додаткові за середнім маржинальним доходом уроку з плану, 187,25 — так, ніби це звичайні заплановані уроки.

> **Вправа:** Яке у вересні **відхилення за обсягом**: додаткові уроки, оцінені за середнім маржинальним доходом плану, 187,25 грн за урок?

## Відхилення за міксом: які уроки

**Sofia:** Отже, сам обсяг додав 52 055,50. Куди вони поділися?

**Alex Tutor:** Спершу — які уроки прийшли. За цінами плану урок англійської в Україні лишає 168,13; кожен інший рядок лишає більше, від 195,50 до 240,50. Вересень приніс на 454 уроки англійської вдома більше і на 120 уроків програмування менше.

**Hanna:** Для міксу оціни фактичні уроки кожного рядка за маржинальним доходом цього рядка з плану, а потім відніми всі фактичні уроки за середнім значенням плану. Тут виходить −11 557,50.

$$
\Delta CM = \underbrace{(L_a - L_p)\,\overline{cm}_p}_{\text{volume}} + \underbrace{\textstyle\sum L_{a,i}\,cm_{p,i} - L_a\,\overline{cm}_p}_{\text{mix}} + \underbrace{\textstyle\sum L_{a,i}(P_{a,i}-P_{p,i})\,R_p\,0.975}_{\text{price}} + \text{FX}
$$

*L — уроки (a — факт, p — план, i — рядок); cm_p,i — плановий маржинальний дохід уроку в рядку; cm̄_p — середнє значення плану (187,25); P — ціна у валюті рядка; R_p — курс плану (1 для гривні). FX — ті самі фактичні уроки й ціни за фактичним курсом мінус курс плану, для продажів і для доларового рахунку за відео.*

**Alex Tutor:** Та сама кількість уроків, але дешевша полиця. Акція потягнула родини до рядка, який лишає найменше.

> **Вправа:** У вересні Klasna провела на 278 уроків більше за план (5 890 проти 5 612). За рядками: англійська в Україні +454, англійська в ЄС +20, математика в Україні −66, математика в ЄС −10, програмування в Україні −100, програмування в ЄС −20. За цінами плану урок англійської в Україні лишає 168,13 грн; кожен інший рядок — 195,50–240,50; середнє значення плану — 187,25. Чому **відхилення за міксом** у вересні від'ємне?

## Відхилення за ціною: скільки коштувала знижка

**Alex Tutor:** Тепер ціна. Бери курси плану, щоб валюта сюди не прокралася: фактичні уроки × (фактична ціна − планова) × курс × 0,975, рядок за рядком.

**Sofia:** Англійська вдома — з 615 до 585: 3 640 × (−30) × 0,975 = −106 470. Це і є акція.

**Hanna:** У програмуванні теж була невелика знижка: школа-партнер отримала спецумови. Додай її, перш ніж називати це підсумком.

> **Вправа:** Скористайся даними. Яке загальне **відхилення за ціною** у вересні за курсами плану й після комісії 2,5%? Втрату вводь від'ємним числом.

## Курсове відхилення: валютний місяць

**Hanna:** А ще гривня послабшала: євро — з 45 до 47, долар — з 42 до 43,50.

**Alex Tutor:** Два ефекти одночасно, у протилежні боки. Родини з ЄС заплатили ті самі євро, але кожне тепер варте на 2 гривні більше, мінус комісія. Відео подорожчало на 1,50 за долар: 5 890 × 0,75 × 1,50 = 6 626,25 проти нас.

**Sofia:** Рядки ЄС заплатили у вересні 12 180 євро. Переведу це в гривні.

> **Вправа:** Родини з ЄС заплатили 12 180 євро за вересневі уроки. Євро коштувало 47,00 грн замість запланованих 45,00. Скільки валютний рух додав до маржинального доходу на цих продажах після комісії 2,5%?

**Hanna:** Чистий валютний ефект: +17 124,75. Без слабшої гривні вересень виглядав би на 17 тисяч гіршим. Це не наша заслуга, і наступного місяця все може обернутися.

**Alex Tutor:** Думка Hanna одним числом: яким був би вересень без валюти?

> **Вправа:** Міст маржинального доходу Klasna за вересень порівняно з планом: обсяг +52 055,50 грн, мікс −11 557,50, ціна −112 320, курс +17 124,75. Який розрив дає сам бізнес, **без** курсового ефекту? Недобір вводь від'ємним числом.

**Alex Tutor:** Тепер вишикуй частини так, як їх читатиме рада.

> **Вправа:** Розстав кроки мосту маржинального доходу від плану до факту у звичному порядку. У такому порядку кожен крок змінює одне й тримає решту за планом.

**Alex Tutor:** Тепер перевір, що частини сходяться: 52 055,50 − 11 557,50 − 112 320 + 17 124,75 = −54 697,25. Міст замикається точно. Метод ширше: [аналіз відхилень план-факт](/uk/blog/budget-vs-actual-variance-analysis).

> **Вересень 2026: міст маржинального доходу**
>
> | Крок | грн |
> |---|---|
> | Маржинальний дохід за планом | 1 050 847,00 |
> | Обсяг: на 278 уроків більше × 187,25 | +52 055,50 |
> | Мікс: більше англійської в Україні, менше програмування | −11 557,50 |
> | Ціна: акція на англійську та спецумови в програмуванні | −112 320,00 |
> | Курс: продажі в євро +23 751,00, відео в доларах −6 626,25 | +17 124,75 |
> | **Фактичний маржинальний дохід** | **996 149,75** |

## Чи окупилася акція?

**Leo:** Гаразд, але ж саме акція принесла ці додаткові уроки. Хіба обсяг не окупає знижку?

**Alex Tutor:** Подивися лише на рядок акції. Вона принесла 454 додаткові уроки англійської в Україні. Навіть якщо кожен із них прийшов саме через акцію, за цінами плану вони лишили б 454 × 168,13 = 76 328,75.

**Hanna:** А знижку в 30 гривень отримали всі 3 640 уроків, зокрема родини, які прийшли б і так.

**Alex Tutor:** Перевір твердження Leo, перш ніж хтось його запише.

> **Вправа:** **Правда чи ні:** шкільна акція Klasna знизила ціну уроків англійської в Україні з 615 до 585 грн на всіх 3 640 проведених уроках (комісія 2,5%). Вона принесла 454 додаткові уроки, кожен із яких лишає 168,13 грн за цінами плану. Навіть якщо кожен додатковий урок прийшов через акцію, вона окупилася.

**Sofia:** Тобто додатковий обсяг не покриває знижку. Напишу про це відповідь для Leo.

> **Вправа:** Leo каже: «Акція принесла додаткові уроки, тож обсяг окупив знижку». Факти: акція знизила ціну уроків англійської в Україні з 615 до 585 грн на всіх 3 640 проведених уроках (комісія 2,5%); вона принесла 454 додаткові уроки, кожен із яких лишає 168,13 грн за цінами плану — найменше з усіх рядків. Дай йому відповідь у 2–4 реченнях із цифрами.

## Записка про вересень

**Leo:** Рада щомісяця отримує записку. Я хотів написати «продажі перевиконали план». Що там має бути натомість?

**Hanna:** Справжній результат, міст, що залежало від нас, а що від курсу, і що ми змінюємо на жовтень.

**Alex Tutor:** І пам'ятай, що прогноз ковзний: те, чого навчив вересень, іде в драйвери на наступні місяці.

**Sofia:** Спершу числа, потім рішення. Так коротко, щоб член ради прочитав за дві хвилини.

> **Вправа:** Напиши вересневу записку для ради: що сталося порівняно з планом і що змінюється на жовтень.

> **Головне**
>
> - Оцінюй місяць за маржинальним доходом, а не продажами: вересень продав на 62 160 грн більше за план, а заробив на 54 697,25 менше.
> - **Аналіз відхилень** розкладає розрив на причини, які в сумі точно сходяться: обсяг +52 055,50, мікс −11 557,50, ціна −112 320, курс +17 124,75.
> - Обсяг оцінюють за середнім маржинальним доходом плану; мікс — те, що лишається, коли уроки переходять між рядками з різною маржею.
> - Ціну рахуй за курсами плану, а курс — окремо. Слабша гривня одночасно збільшила продажі в євро (+23 751) і рахунок за відео в доларах (−6 626,25); жодне з цього не заслуга команди.
> - Знижка окупається, лише якщо додаткові уроки лишають більше, ніж вона віддає на всіх уроках: тут 76 328,75 проти 106 470, мінус 30 141,25 навіть у найкращому разі.

**Alex Tutor:** Це весь модуль в одному місяці: прогноз із драйверів, драйвери, що важать найбільше, бюджет із чесних драйверів і відхилення, яке показує, який драйвер зрушив.

- Попередній урок: [Бюджети, яким вірять](https://productovi.com/uk/courses/finance-for-product/budgets-people-believe.md)
- Наступний урок: [Релевантні й невідворотні витрати, альтернативна вартість](https://productovi.com/uk/courses/finance-for-product/relevant-and-sunk-costs.md)

---
Productovi Learning. Безкоштовно, читати можна без реєстрації.
