Условие
CFO просит: «оцени, на сколько вырастет/упадёт выручка, если поднимем цену на 10%».
Решение
Формула эластичности
E = (ΔQ / Q) / (ΔP / P)
Если поднять цену на 10% и продажи падают на 8% → E = -0.8 (неэластично — выручка растёт). Если падают на 15% → E = -1.5 (эластично — выручка падает).
ΔRevenue% ≈ (1 + E) × ΔP%
При E=-0.8 и ΔP=+10%: ΔRev ≈ +2%. При E=-1.5 и ΔP=+10%: ΔRev ≈ -5%.
Как измерить
- Натурный эксперимент (best): A/B на цене (см. предупреждения).
- Historical data: регрессия
log(Q) ~ log(P) + controls. Коэффициент приlog(P)= эластичность. - Conjoint analysis — survey-based WTP оценка.
- Discrete choice model (мультиномиальный logit) на исторических выборах.
Регрессия
import statsmodels.api as sm
df['log_q'] = np.log(df['quantity'])
df['log_p'] = np.log(df['price'])
X = sm.add_constant(df[['log_p', 'season', 'promo_active']])
model = sm.OLS(df['log_q'], X).fit()
elasticity = model.params['log_p']Endogeneity (важно!)
Цена обычно коррелирует с спросом (поднимаем в высокий сезон). Простая регрессия даст смещённый коэффициент.
Решения:
- Instrumental variables (стоимость закупки как инструмент).
- Natural experiments (изменение налога, акция конкурента).
- A/B-тест — золотой стандарт.
Сегментная эластичность
Эластичность разная по сегментам:
- Premium-юзеры — низкая (купят всё равно).
- Бюджет-юзеры — высокая.
- Конкурентные категории — высокая.
- Уникальные продукты — низкая.
Считать E по сегменту, не агрегатно.
Optimal price
При линейном спросе оптимум:
P* = MC × E / (E + 1)
Для E=-2 и MC=100: P* = 200. Для E=-1.5 и MC=100: P* = 300.
Подводные камни
- Endogeneity — самый коварный bias. Без IV или эксперимента эластичность смещена (обычно занижена по модулю).
- Эластичность не константа — она зависит от уровня цены, сегмента, времени.
- Cross-price elasticity (товар A влияет на спрос на B) — отдельная история, может перевернуть выводы.
- Long-run vs short-run эластичность — длинная обычно сильнее (юзеры успевают переключиться).
- На малых выборках регрессия даёт большой CI — «E = -1.2 ± 1.0» не пригодна для решений.
Эталонный ответ
E = (ΔQ/Q)/(ΔP/P). ΔRev% ≈ (1+E)×ΔP%. Измерять через A/B или регрессию log(Q)~log(P)+controls с IV для контроля endogeneity. Считать по сегменту, не средне.