Условие
Revenue в Турции упало на 25% за месяц при стабильном числе юзеров. Почему?
Решение
Декомпозиция Revenue
Revenue = users × ARPU
ARPU = paying_share × ARPPU
ARPPU = transactions_per_paying × AOV
Если users стабильны, что-то в правой части:
- paying_share ↓ (меньше платят)
- transactions_per_paying ↓
- AOV ↓
FX risk
В Турции — крупная инфляция и FX volatility. Если revenue в долларах, а юзеры платят в TRY → курс TRY/USD упал → revenue в долларах упал без изменения юзерского поведения.
SELECT
date(ts),
SUM(amount_local) AS rev_local,
SUM(amount_local * fx_rate) AS rev_usd,
AVG(fx_rate) AS fx
FROM transactions
WHERE country = 'TR'
GROUP BY 1;Если rev_local стабилен, а rev_usd падает — это FX, не product.
Местная инфляция
Если цена в TRY не индексируется, real revenue (покупательная способность) растёт. Но наша revenue в долларах падает.
Решение:
- Индексация цен (раз в N мес).
- Hedging FX.
- Repricing по странам.
Если FX не причина — Product
- Payment provider issue: местный provider начал отказывать transactions.
- 3DS regulation: новый закон, fail-rate растёт.
- Marketing: paid каналы прекратились в стране.
- Конкурент: запустил аналогичный продукт.
- App Store: страновой rank упал.
- Sanctions / blocking: внешние ограничения.
Действия
| Причина | Action |
|---|---|
| FX | repricing, hedging, accept loss |
| Payment issue | новый payment provider |
| 3DS regulation | tech update, local compliance |
| Competition | competitive analysis, USP |
| Сезонность (Рамадан) | wait, или special promo |
Сегменты внутри страны
- Тариф (subscription vs one-time).
- Способ оплаты.
- Город (Стамбул vs остальное).
- Cohort (новые vs старые).
SELECT segment, AVG(rev_per_user)
FROM users_country_TR
GROUP BY segment;Бенчмарк по другим странам
Падение в TR при росте в RU и AE — local issue, не глобальный продукт.
Подводные камни
- FX часто скрытый виновник — всегда проверять local vs reporting currency.
- Cultural events (Ramadan, Chinese New Year) меняют paying behavior на месяц.
- Один большой payment provider failure может быть незаметен в total, но виден в country breakdown.
- Sanctions / regulatory blocking иногда формально незаметны, но de facto выбивают payment rails.
- Currency conversion на стороне card issuer тоже меняется — иногда падение не у нас.
Эталонный ответ
Декомпозировать: users × paying_share × transactions × AOV. Первая проверка — FX (revenue в local vs reporting currency). Если local stable, USD падает — это FX. Если local падает — payment provider, regulation, конкурент или сезонность.