Есть таблица в BiqQuery по платежкам пользователей, в которой есть следующие значения:
event_date (date) - дата, когда произошло событие
subscription_name (string) - название подписки
(monthly - месячная, annually - годовая)
country (string) - страна юзера
subscriber_id (string) - уникальный айди юзера
customer_price (float) - цена пользователя, которую он заплатил за подписку
customer_currency (string) - валюта юзера
refund (boolean) - была ли эта транзакция рефандом (Yes / No)
В приложении модель монетизации - подписка. Есть подписки с триальным периодом (то есть на 0 день пользователь берет триал и в базе есть запись, где у юзера состоялась сделка, в которой цена = 0, а также есть безтриальные подписки, где начальной записью будет транзакция с ценой > 0). Также в базу записываются данные о refund-подписках, это соответственно обычная транзакция, в которой поле refund будет равняться Yes или 1.
Нужно написать такие запросы:
1. Посчитать когортно, сколько мы заработали в каждый день. Если пользователь 01.01 взял триал и мы получили с него деньги на 8-ой день, то он записывается в 01.01. Считать Gross Revenue.
2. Посчитать, на какой день в среднем пользователь делает refund.
3. Посчитать по месячным тарифам конверты во вторую, третью, четвертую, пятую и шестую оплаты. Брать месячную когорту. То есть, важно знать как люди, впервые купившие подписку, например, в октябре, потом покупали следующие подписки.