Раздел 42 · Аналитика данных с нуля

Финальный босс, часть 2: эффект и деньги кешбэка

middle~15 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Фрея · риск-менеджер необанка «Монетка»

Данные чистые, это я поняла. Теперь главное: кешбэк вообще что-то изменил? И сколько он нам стоил?

В разведке мы выбрали главную метрику, почистили группы и убрали фрод. Сегодня фаза 2, бой: что кешбэк сделал с тратами в кафе, не случайность ли это, и что получилось с деньгами банка. Везде те же правила: 976 клиентов теста и 994 контроля, только approved, без ONLINE STORE 7781, период с 1 апреля 2026, клиент без операций остаётся в знаменателе с нулём.

Фаза 2. Бой

Что изменилось в кафе

Кешбэк давали за кафе и рестораны (MCC 5812 и 5814). Значит, первым делом смотрим туда: траты на клиента и число оплат на клиента.

 test_group | clients | cafe_per_client | visits_per_client
------------+---------+-----------------+-------------------
 test       |     976 |         4443.66 |             4.064
 control    |     994 |         3746.08 |             3.435

Тест тратит в кафе на 18,6% больше и ходит туда чаще: 4,1 оплаты на клиента за квартал против 3,4. В уроке 54 доля клиентов, сходивших в кафе, почти не сдвинулась: туда и так ходят 9 из 10. Кешбэк не привёл новых людей, он заставил тех же ходить чаще. Поэтому теперь сравниваем средние, а не доли.

Тест для средних

Вопрос тот же, что для долей: не случайна ли разница? Если эффекта нет, средние двух случайных групп всё равно чуть разойдутся. Насколько, говорит стандартная ошибка разницы средних:

SE = sqrt(s_t² / n_t + s_c² / n_c)
z  = (mean_t − mean_c) / SE

Здесь s это выборочное стандартное отклонение трат клиента в группе (stddev_samp, его квадрат var_samp; разброс мы впервые меряли в уроке про описательную статистику), n размер группы. Разброс отдельного клиента огромный: один ест в ресторанах каждую неделю, другой ни разу. Но средняя по тысяче клиентов колеблется гораздо меньше, поэтому дисперсия делится на n. Весь тест это один запрос по таблице «клиент, группа, траты в кафе»; его ты соберёшь в квесте ★★. Результат:

 mean_test | mean_control |  diff  |   se   |   z
-----------+--------------+--------+--------+-------
   4443.66 |      3746.08 | 697.59 | 197.60 | 3.530

z = 3,53, далеко за порогом 1,96. Интервал «разница ± 1,96 × SE» (его называют 95-процентным доверительным) идёт от 310 до 1085 ₽ на клиента за квартал: даже нижняя граница заметно выше нуля. Кешбэк увеличил траты в кафе. Точный p-value и проверку бутстрэпом без допущения о нормальности мы сделаем в Python-блоке.

Помнишь, что до теста группа test тратила в кафе на 216 ₽ меньше? Если вычесть это стартовое отставание, эффект ещё больше: (4443,66 − 3435,56) − (3746,08 − 3651,12) = 913 ₽. Такой приём называют разностью разностей. Нам он подтверждает: эффект в кафе не артефакт неравных групп.

А общий оборот?

Тот же тест для всех трат на клиента: 27 148,49 против 27 339,82 ₽, разница −191 ₽, SE = 1116, z = −0,17. Никакого роста. Клиенты теста стали больше тратить в кафе, но меньше в других местах: кешбэк переложил покупки, а не добавил новые. Для банка это важно: комиссия идёт со всего оборота.

Деньги банка

Теперь главная метрика. Комиссия 1,5% с одобренных покупок по карте (без снятий наличных), минус весь выплаченный кешбэк за апрель-июнь. Ловушка в подсчёте: если соединить операции и выплаты в одном запросе, каждая операция клиента встретит каждую его выплату, и суммы размножатся, как в уроке 26. Поэтому покупки и выплаты агрегируем по клиенту отдельно и соединяем готовые итоги:

 test_group | clients | interchange_per_client | payout_per_client | net_per_client
------------+---------+------------------------+-------------------+----------------
 test       |     976 |                 359.38 |            464.95 |        -105.57
 control    |     994 |                 360.39 |            240.26 |         120.13

Комиссия у групп одинаковая, ведь оборот не вырос. А кешбэк у теста почти вдвое больше: 222 ₽ на клиента сверху за кафе. Контроль приносит банку 120 ₽ на клиента за квартал, тест теряет 106 ₽. Разница −225,70 ₽, SE = 7,23, z = −31: это не шум.

Сколько должен был вырасти оборот, чтобы кешбэк окупился? 222,18 ₽ кешбэка за кафе на клиента делим на 1,5% комиссии: нужно +14 812 ₽ покупок на клиента за квартал, то есть больше половины всех трат. А дополнительные 698 ₽ в кафе приносят банку 10,46 ₽ комиссии. Квартал теста стоил банку около 220 тысяч ₽ на 976 клиентах; на всех 1970 клиентах это было бы около 445 тысяч ₽ за квартал.

урок из курса

Урок из курса «Аналитика данных с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.