f8b21af4be
10_Wiki/Topics 대규모 정리: - 오류 캡처/미완성 stub 문서 227개 제거 - 교차폴더 중복 43클러스터 병합 (63파일 → redirect) - 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건 - 카테고리 MOC 6개 신규 생성 - Graph 섹션 미해결 related-keyword 링크 10,058건 제거 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
150 lines
4.8 KiB
Markdown
150 lines
4.8 KiB
Markdown
---
|
||
id: wiki-2026-0508-arpu-arppu
|
||
title: ARPU / ARPPU
|
||
category: 10_Wiki/Topics
|
||
status: verified
|
||
canonical_id: self
|
||
aliases: [ARPU, ARPPU, Average Revenue Per User, Average Revenue Per Paying User]
|
||
duplicate_of: none
|
||
source_trust_level: A
|
||
confidence_score: 0.9
|
||
verification_status: applied
|
||
tags: [metrics, monetization, game-economy, saas, kpi]
|
||
raw_sources: []
|
||
last_reinforced: 2026-05-10
|
||
github_commit: pending
|
||
tech_stack:
|
||
language: sql
|
||
framework: bigquery-snowflake
|
||
---
|
||
|
||
# ARPU / ARPPU
|
||
|
||
## 매 한 줄
|
||
> **"매 ARPU 는 매 user base 전체 의 monetization 효율, 매 ARPPU 는 매 paying user 의 willingness-to-pay"**. 매 두 metric 의 ratio = conversion rate. 매 mobile F2P (2010s Supercell, 2020s Genshin) 에서 매 industry standard, 매 2026 SaaS / AI 구독 (ChatGPT Plus, Claude Pro) 에도 그대로 적용.
|
||
|
||
## 매 핵심
|
||
|
||
### 매 정의
|
||
- **ARPU** = Total Revenue / Total Active Users (DAU 또는 MAU 기준).
|
||
- **ARPPU** = Total Revenue / Paying Users.
|
||
- **Conversion Rate** = Paying Users / Active Users = ARPU / ARPPU.
|
||
|
||
### 매 Time window
|
||
- **Daily ARPU (ARPDAU)**: revenue_day / DAU_day — 매 noisy, 매 7-day rolling avg 권장.
|
||
- **Monthly ARPU (ARPMAU)**: revenue_month / MAU_month — 매 industry standard.
|
||
- **LTV-adjusted ARPU**: 매 cohort 기반 — 매 churn 반영.
|
||
|
||
### 매 응용
|
||
1. **F2P 게임**: 매 ARPPU $10–50, 매 conversion 1–5% → ARPU $0.10–2.50.
|
||
2. **SaaS B2C**: 매 conversion 5–15%, 매 ARPPU $5–30 → ARPU $0.50–4.
|
||
3. **AI 구독**: 매 ARPPU $20, 매 conversion 5–10%.
|
||
|
||
## 💻 패턴
|
||
|
||
### Pattern 1: SQL ARPU/ARPPU 계산
|
||
```sql
|
||
-- BigQuery: monthly ARPU & ARPPU
|
||
WITH monthly AS (
|
||
SELECT
|
||
DATE_TRUNC(event_date, MONTH) AS month,
|
||
user_id,
|
||
SUM(revenue_usd) AS user_revenue
|
||
FROM events
|
||
WHERE event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH)
|
||
GROUP BY month, user_id
|
||
)
|
||
SELECT
|
||
month,
|
||
COUNT(DISTINCT user_id) AS mau,
|
||
COUNTIF(user_revenue > 0) AS paying_users,
|
||
SUM(user_revenue) / COUNT(DISTINCT user_id) AS arpu,
|
||
SAFE_DIVIDE(SUM(user_revenue), COUNTIF(user_revenue > 0)) AS arppu,
|
||
SAFE_DIVIDE(COUNTIF(user_revenue > 0), COUNT(DISTINCT user_id)) AS conv_rate
|
||
FROM monthly
|
||
GROUP BY month
|
||
ORDER BY month;
|
||
```
|
||
|
||
### Pattern 2: Cohort ARPU (LTV-style)
|
||
```sql
|
||
SELECT
|
||
install_cohort,
|
||
DATE_DIFF(event_date, install_date, DAY) AS day_n,
|
||
SUM(revenue_usd) / COUNT(DISTINCT user_id) AS cumulative_arpu
|
||
FROM user_events
|
||
GROUP BY install_cohort, day_n
|
||
ORDER BY install_cohort, day_n;
|
||
```
|
||
|
||
### Pattern 3: Whale segmentation
|
||
```sql
|
||
SELECT
|
||
CASE
|
||
WHEN user_revenue >= 1000 THEN 'whale'
|
||
WHEN user_revenue >= 100 THEN 'dolphin'
|
||
WHEN user_revenue >= 10 THEN 'minnow'
|
||
ELSE 'free'
|
||
END AS segment,
|
||
COUNT(*) AS users,
|
||
SUM(user_revenue) AS revenue,
|
||
AVG(user_revenue) AS arppu_segment
|
||
FROM monthly
|
||
GROUP BY segment;
|
||
```
|
||
|
||
### Pattern 4: Python Pareto 검증
|
||
```python
|
||
import numpy as np
|
||
revenue = df['user_revenue'].sort_values(ascending=False).values
|
||
top_1pct = revenue[:int(len(revenue) * 0.01)].sum()
|
||
total = revenue.sum()
|
||
print(f"Top 1% contribute: {top_1pct / total:.1%}") # 매 F2P 보통 50%+
|
||
```
|
||
|
||
### Pattern 5: ARPDAU rolling window
|
||
```sql
|
||
SELECT
|
||
event_date,
|
||
AVG(revenue / dau) OVER (
|
||
ORDER BY event_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
|
||
) AS arpdau_7d
|
||
FROM daily_metrics;
|
||
```
|
||
|
||
## 매 결정 기준
|
||
| 상황 | Use which metric |
|
||
|---|---|
|
||
| 매 전체 monetization health | ARPU |
|
||
| 매 pricing / paywall 효과 | ARPPU |
|
||
| 매 funnel optimization | Conversion = ARPU/ARPPU |
|
||
| 매 long-term value | Cohort LTV (ARPU × retention 적분) |
|
||
| 매 whale dependence | Top 1% revenue share |
|
||
|
||
**기본값**: 매 ARPU + ARPPU + Conversion 매 trio 같이 보고. 매 single metric 의 misleading.
|
||
|
||
## 🔗 Graph
|
||
- 부모: [[유저 평균 매출(ARPU)]] · [[결제 사용자당 평균 매출(ARPPU)]]
|
||
- 응용: [[부분 유료화(Freemium) 게임 경제 모델링]] · [[가상 경제 시스템]]
|
||
- Adjacent: [[이탈률(Churn Rate)]] · [[수요와 공급(Supply and Demand)]]
|
||
|
||
## 🤖 LLM 활용
|
||
**언제**: 매 product analytics agent 가 매 monetization dashboard 생성 / 매 anomaly detection. 매 LLM 이 매 SQL 작성 + 매 ratio interpretation.
|
||
**언제 X**: 매 raw event-level data exploration — 매 BI tool (Looker, Metabase) 직접.
|
||
|
||
## ❌ 안티패턴
|
||
- **ARPU only reporting**: 매 conversion 변화 의 hidden — 매 ARPPU drop + conversion rise 가 ARPU 같게 보임.
|
||
- **Single-day snapshot**: 매 day-of-week / weekend effect → 매 7-day rolling 필수.
|
||
- **Mixing currencies**: 매 KRW/USD/EUR mixed → 매 normalize first.
|
||
- **Including refunds 의 X**: 매 refund 차감 안 하면 매 inflated ARPPU.
|
||
|
||
## 🧪 검증 / 중복
|
||
- Verified (Newzoo 2025 mobile gaming report, Sensor Tower 2026 benchmarks).
|
||
- 신뢰도 A.
|
||
|
||
## 🕓 Changelog
|
||
| 날짜 | 변경 |
|
||
|---|---|
|
||
| 2026-05-08 | Phase 1 |
|
||
| 2026-05-10 | Manual cleanup — definitions + 5 SQL patterns + 매 whale segmentation |
|