본문 바로가기
데이터 분석/지표 분석

매출 분석 - ARPU/ARPPU 구하기

2022. 12. 26.
우리 서비스 유저들의 1인당 평균 결제금액은 얼마나 되나요?
이 지표를 어떻게 활용할 수 있을까요?

문제 정의하기

ARPU(Average Revenue Per User)는 특정 기간 동안의 유저 1인당 평균 결제금액을 말한다.

유저 1인당 평균 결제금액은 결제 여부를 기준으로 크게 두 가지로 구분할 수 있다.
✔ ARPU(유저 1인당 평균 결제금액) = 매출/활성 사용자 수
✔ ARPPU(결제 유저 1인당 평균 결제금액) = 매출/결제 사용자 수

한편 일자별 ARPPU의 경우 다른 일자의 결제 활동은 고려할 수 없기 때문에 일자별로 수치가 크게 상이한 상황이 발생할 수 있다.

필요한 데이터

활동 로그 데이터(발생일시, 이벤트명, 유저id), 주문 데이터(주문일자, 주문금액, 주문id)

풀이

1) 일자별 ARPU 구하기

select 
    date_format(stamp, "%Y-%m-%d") as date,
    count(distinct user_id) as dau,
    sum(amount) as rev,
    round(sum(amount) / count(distinct user_id),0) as ARPU
from action_log
group by date

일자별 ARPU

2) 월별 ARPU 구하기

select 
    date_format(stamp, "%Y-%m") as date,
    count(distinct user_id) as mau,
    sum(amount) as rev,
    round(sum(amount) / count(distinct user_id),0) as ARPU
from action_log
group by date

월별 ARPU

3) 일자별 ARPPU 구하기

with daily_revenue as (
    select 
        date_format(stamp, "%Y-%m-%d") as date,
        sum(amount) as rev
    from action_log
    group by date
    )
, daily_paid_users as (
    select
    	date_format(stamp, "%Y-%m-%d") as date,
    	count(distinct user_id) pu
    from action_log
    where action = 'purchase'
    group by date
)

select
    daily_paid_users.date,
    pu,
    rev,
    round(rev/pu, 0) ARPPU
from daily_revenue join daily_paid_users on daily_revenue.date = daily_paid_users.date

일자별 ARPPU

4) 월별 ARPPU 구하기

with monthly_revenue as (
    select 
        date_format(stamp, "%Y-%m") as date,
        sum(amount) as rev
    from action_log
    group by date
    )
, monthly_paid_users as (
    select
    	date_format(stamp, "%Y-%m") as date,
    	count(distinct user_id) pu
    from action_log
    where action = 'purchase'
    group by date
)

select
    monthly_paid_users.date,
    pu,
    rev,
    round(rev/pu, 0) ARPPU
from monthly_revenue join monthly_paid_users on monthly_revenue.date = monthly_paid_users.date

월별 ARPPU

해석

ARPU(유저 1인당 평균 결제금액) 지표를 통해 현재 사용자 트래픽으로 목표 매출을 얼마 정도 달성할 수 있는지 예측할 수 있다. 반대로 목표 매출을 기준으로 얼마만큼의 사용자 트래픽을 확보해야 하는지를 역산할 수도 있다.
또한 ARPPU를 통해 유저가 지불할 용이가 있는 최대 금액을 파악할 수 있다. 하지만 이 금액이 커질수록 해당 금액만큼을 지불할 용이가 없는 유저는 이탈할 가능성이 커지기도 한다.
(참고:
 ARPU와 ARPPU의 차이? / 
ARPU and ARPPU: one symbol, but fundamental differences)

데이터 출처: 데이터 분석을 위한 SQL 레시피

댓글