ZASQL_PYTHON Telegram 339
💰 ARPU и ARPPU на пальцах: считаем, понимаем, используем в SQL

☕️ Как это выглядит на данных?

Предположим, у нас есть таблица с заказами и пользовательскими событиями (по последнему мы получаем данные по DAU / WAU / MAU, например).

1) orders:


user_id | order_id | gmv | date

user_id - id пользователя
order_id - id заказа
gmv - стоимость заказа (для пользователя)
date - дата оплаты заказа


2) actions:


user_id | action_name | date

user_id - id пользователя
action_name - обычно таблица с событиями (сюда льются любые заходы пользователя в приложении)
date - дата экшна


💃 ARPU = total GMV / АКТИВНЫЕ пользователи
💃 ARPPU = total GMV / ПЛАТЯЩИЕ пользователи

😈 Пример запроса ниже. Рассчитаем ARPU / ARPPU за март 2025 года

-- Считаем ARPU и ARPPU за март 2025 года

WITH
-- Количество уникальных активных пользователей (по действиям)
active_users AS (
SELECT COUNT(DISTINCT user_id) AS active_user_count
FROM actions
WHERE date BETWEEN '2025-03-01' AND '2025-03-31'
),

-- Количество уникальных платящих пользователей (по заказам)
paying_users AS (
SELECT COUNT(DISTINCT user_id) AS paying_user_count
FROM orders
WHERE date BETWEEN '2025-03-01' AND '2025-03-31'
),

-- Общая выручка за период
total_revenue AS (
SELECT SUM(gmv) AS gmv_total
FROM orders
WHERE date BETWEEN '2025-03-01' AND '2025-03-31'
)

-- Финальный расчёт метрик ARPU и ARPPU
SELECT
ROUND(gmv_total * 1.0 / active_user_count, 2) AS arpu, -- Средняя выручка на активного пользователя
ROUND(gmv_total * 1.0 / paying_user_count, 2) AS arppu -- Средняя выручка на платящего пользователя
FROM total_revenue
CROSS JOIN active_users
CROSS JOIN paying_users;


Например, ARPU = 100 ₽, ARPPU = 500 ₽ => платит только каждый 5-й.

ARPU отвечает на вопрос: сколько в среднем приносит один пользователь среди всех активных. Это полезно при расчёте юнит-экономики: можно быстро оценить выручку на пользователя, не углубляясь в поведение платящих отдельно. Также ARPU часто используется как proxy для оценки LTV в первые периоды жизни пользователя, особенно при когортном анализе.

ARPPU, в свою очередь, показывает, насколько хорошо монетизируются те, кто уже платит. Это ключевая метрика при работе с подписочными моделями, анализе влияния промо, скидок, изменений в ценообразовании. Она помогает понять, как влияет изменение стратегии на платящих, независимо от охвата.

Если рассматривать их в связке, можно понять за счёт чего растёт выручка: за счёт увеличения числа платящих (растёт ARPU, ARPPU на месте) или за счёт того, что каждый платящий стал платить больше (растут оба).

Обычно, при проведении экспериментов смотрят за ARPU (так как принимается решения по внедрению фичи не на срезе платящих, а не срезе всего приложения).

ARPU чувствительнее к изменениям в конверсии в оплату, а ARPPU — к изменениям в поведении уже платящих.

😘 Понравился пост? Ставьте реакции, пишите комментарии!

#дляначинающих@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
52👍21105🔥4😐1



tgoop.com/zasql_python/339
Create:
Last Update:

💰 ARPU и ARPPU на пальцах: считаем, понимаем, используем в SQL

☕️ Как это выглядит на данных?

Предположим, у нас есть таблица с заказами и пользовательскими событиями (по последнему мы получаем данные по DAU / WAU / MAU, например).

1) orders:


user_id | order_id | gmv | date

user_id - id пользователя
order_id - id заказа
gmv - стоимость заказа (для пользователя)
date - дата оплаты заказа


2) actions:


user_id | action_name | date

user_id - id пользователя
action_name - обычно таблица с событиями (сюда льются любые заходы пользователя в приложении)
date - дата экшна


💃 ARPU = total GMV / АКТИВНЫЕ пользователи
💃 ARPPU = total GMV / ПЛАТЯЩИЕ пользователи

😈 Пример запроса ниже. Рассчитаем ARPU / ARPPU за март 2025 года

-- Считаем ARPU и ARPPU за март 2025 года

WITH
-- Количество уникальных активных пользователей (по действиям)
active_users AS (
SELECT COUNT(DISTINCT user_id) AS active_user_count
FROM actions
WHERE date BETWEEN '2025-03-01' AND '2025-03-31'
),

-- Количество уникальных платящих пользователей (по заказам)
paying_users AS (
SELECT COUNT(DISTINCT user_id) AS paying_user_count
FROM orders
WHERE date BETWEEN '2025-03-01' AND '2025-03-31'
),

-- Общая выручка за период
total_revenue AS (
SELECT SUM(gmv) AS gmv_total
FROM orders
WHERE date BETWEEN '2025-03-01' AND '2025-03-31'
)

-- Финальный расчёт метрик ARPU и ARPPU
SELECT
ROUND(gmv_total * 1.0 / active_user_count, 2) AS arpu, -- Средняя выручка на активного пользователя
ROUND(gmv_total * 1.0 / paying_user_count, 2) AS arppu -- Средняя выручка на платящего пользователя
FROM total_revenue
CROSS JOIN active_users
CROSS JOIN paying_users;


Например, ARPU = 100 ₽, ARPPU = 500 ₽ => платит только каждый 5-й.

ARPU отвечает на вопрос: сколько в среднем приносит один пользователь среди всех активных. Это полезно при расчёте юнит-экономики: можно быстро оценить выручку на пользователя, не углубляясь в поведение платящих отдельно. Также ARPU часто используется как proxy для оценки LTV в первые периоды жизни пользователя, особенно при когортном анализе.

ARPPU, в свою очередь, показывает, насколько хорошо монетизируются те, кто уже платит. Это ключевая метрика при работе с подписочными моделями, анализе влияния промо, скидок, изменений в ценообразовании. Она помогает понять, как влияет изменение стратегии на платящих, независимо от охвата.

Если рассматривать их в связке, можно понять за счёт чего растёт выручка: за счёт увеличения числа платящих (растёт ARPU, ARPPU на месте) или за счёт того, что каждый платящий стал платить больше (растут оба).

Обычно, при проведении экспериментов смотрят за ARPU (так как принимается решения по внедрению фичи не на срезе платящих, а не срезе всего приложения).

ARPU чувствительнее к изменениям в конверсии в оплату, а ARPPU — к изменениям в поведении уже платящих.

😘 Понравился пост? Ставьте реакции, пишите комментарии!

#дляначинающих@zasql_python

BY Заскуль питона (Data Science)


Share with your friend now:
tgoop.com/zasql_python/339

View MORE
Open in Telegram


Telegram News

Date: |

Choose quality over quantity. Remember that one high-quality post is better than five short publications of questionable value. The optimal dimension of the avatar on Telegram is 512px by 512px, and it’s recommended to use PNG format to deliver an unpixelated avatar. Hashtags are a fast way to find the correct information on social media. To put your content out there, be sure to add hashtags to each post. We have two intelligent tips to give you: Just as the Bitcoin turmoil continues, crypto traders have taken to Telegram to voice their feelings. Crypto investors can reduce their anxiety about losses by joining the “Bear Market Screaming Therapy Group” on Telegram. Those being doxxed include outgoing Chief Executive Carrie Lam Cheng Yuet-ngor, Chung and police assistant commissioner Joe Chan Tung, who heads police's cyber security and technology crime bureau.
from us


Telegram Заскуль питона (Data Science)
FROM American