Files
2nd/10_Wiki/Topic_Business/From_Other/ARPU-ARPPU.md
T
Antigravity Agent 9148c358d0 docs(10_Wiki): 위키 전체 재구성 — Topic_* 폴더를 4개 카테고리로 통합 + 대규모 중복 제거
Topic_Agent/Topic_Blog/Topics/Topics_Biz/Topics_Meeting/Topics_Rag의 마크다운 지식 문서를
Topic_General/Topic_Programming/Topic_Graphic/Topic_Business 4개 카테고리로 재분류.

- 중복 제거: frontmatter의 status:duplicate/merged + duplicate_of/redirect_to 필드로
  자기 자신을 중복으로 선언한 리다이렉트 stub 1032개 제거, 완전 동일 내용 파일 472개 제거,
  동일 파일명·다른 내용 충돌 시 더 큰(완전한) 버전만 유지(162개 제거) — 총 1639개 중복 제거.
- 분류: 폴더 단위로 명확한 항목(AI_and_ML/Coding/Architecture 등 → Programming,
  Comfyui/Visual_Effects → Graphic, Topics_Biz/Topics_Meeting/사업 등 → Business,
  Poetic_Blog_Writing/창의성/Game_Design 등 → General)은 폴더 우선순위로,
  나머지 혼재 폴더(Topic_Agent/Topic_Blog/Topics 루트/Thinking & Reasoning/Other/UI_UX_Assets)는
  title/tags 키워드 스코어링으로 파일 단위 분류(불명확한 경우 General로 폴백).
  원본 폴더명은 "From_*" 서브폴더로 보존해 추적 가능성 유지.
- 최종 배치: Programming 2784 / General 1608 / Graphic 285 / Business 249 = 4926개 문서.
- 에이전트 운영 상태(.astra/.agent/.obsidian/sessions/memory/_company/docs/lessons/_shared/src)는
  지식 콘텐츠가 아니므로 재분류 대상에서 제외하고 원위치 유지.
- Topics/Topic_email(상위 보호 폴더 Topic_email과 파일명 100% 중복) 삭제 — 보호 폴더 자체는 미변경.
- 완전히 비게 된 Topic_Agent/Topic_Blog/Topics_Biz/Topics_Rag 폴더 제거.
2026-07-05 00:33:48 +09:00

150 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 $1050, 매 conversion 15% → ARPU $0.102.50.
2. **SaaS B2C**: 매 conversion 515%, 매 ARPPU $530 → ARPU $0.504.
3. **AI 구독**: 매 ARPPU $20, 매 conversion 510%.
## 💻 패턴
### 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 |