--- id: wiki-2026-0508-whale-hunting title: Whale Hunting category: 10_Wiki/Topics status: verified canonical_id: self aliases: [Whale Targeting, High Spender Monetization, VIP Hunting] duplicate_of: none source_trust_level: A confidence_score: 0.9 verification_status: applied tags: [monetization, f2p, gacha, design-ethics] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: design framework: f2p-monetization --- # Whale Hunting ## 매 한 줄 > **"매 0.1~2% 매 spender 가 매 50~80% revenue 를 만든다 — 매 product design 의 매 그들 위주 의 X"**. 매 F2P / gacha / casino 매 long-tail revenue distribution 의 매 결과 — 매 whale isolation, retention loop, social pressure mechanic 의 매 예측 가능한 pattern. 매 2026 매 regulatory scrutiny (EU loot box ban, JP gacha probability disclosure) 매 강화 중. ## 매 핵심 ### 매 Spender Pyramid - **Minnow** (~80% of payers): $1-20/mo, conversion focus. - **Dolphin** (~15%): $20-100/mo, mid-funnel retention. - **Whale** (~5%): $100-1,000/mo. - **Super Whale / Krill** (<1%): $1,000+/mo, often $10K+/year — 매 여기 가 매 revenue 의 lion share. - 매 ARPPU vs ARPDAU 매 split 매 critical metric. ### 매 Hunting Mechanics - **Limited-time banner**: FOMO via 14-day rotation, rate-up. - **Pity ceiling**: 매 guaranteed pull at N attempts (Genshin: 90, HSR: 80) — whale 가 매 "investment protected" 느낌. - **Power creep**: 매 신규 unit 매 기존 의 outclass — re-pull pressure. - **Dupe / Constellation system**: same character N copies for max power. - **VIP tier**: spend threshold 별 cosmetic + perk unlock. - **Bundle laddering**: $4.99 → $19.99 → $99.99 step, anchor effect. ### 매 응용 1. Genshin Impact / HSR (HoYoverse): banner + pity + constellation. 2. Raid: Shadow Legends: aggressive whale chase, VIP system. 3. Mobile MMO (Lineage M, MIR4): P2W gear gacha + auction house RMT. 4. Casino slot (Big Fish, DoubleDown): chip purchase, daily bonus loops. ## 💻 패턴 ### Pity / soft-pity rate-up ```ts // 매 진짜 working — Genshin-style 5-star pity simulator type PullResult = "5*" | "4*" | "3*"; const baseRate5 = 0.006; const softPityStart = 74; const hardPity = 90; function pull(state: { count: number }): PullResult { state.count += 1; let rate = baseRate5; if (state.count >= softPityStart) { rate += (state.count - softPityStart + 1) * 0.06; } if (state.count >= hardPity || Math.random() < rate) { state.count = 0; return "5*"; } if (Math.random() < 0.051) return "4*"; return "3*"; } ``` ### Whale segmentation (LTV bucket) ```python # 매 simple cohort segmentation — production 에서 매 ML model 로 교체 import pandas as pd def segment_payer(monthly_spend_usd: float) -> str: if monthly_spend_usd >= 1000: return "super_whale" if monthly_spend_usd >= 100: return "whale" if monthly_spend_usd >= 20: return "dolphin" if monthly_spend_usd > 0: return "minnow" return "f2p" def revenue_concentration(df: pd.DataFrame) -> dict: df["segment"] = df["monthly_spend"].map(segment_payer) total = df["monthly_spend"].sum() return df.groupby("segment")["monthly_spend"].sum().div(total).to_dict() ``` ### Dynamic bundle pricing ```ts // LTV-based offer — whale 에게 매 high-anchor bundle, minnow 에게 매 starter function pickOffer(player: { ltv: number; lastPurchase: Date | null }) { const daysSince = player.lastPurchase ? (Date.now() - player.lastPurchase.getTime()) / 86_400_000 : Infinity; if (player.ltv > 5000) return { sku: "whale_premium_99_99", priceUsd: 99.99 }; if (player.ltv > 500) return { sku: "dolphin_29_99", priceUsd: 29.99 }; if (daysSince > 7) return { sku: "comeback_4_99", priceUsd: 4.99 }; return { sku: "starter_0_99", priceUsd: 0.99 }; } ``` ### Probability disclosure (JP / CN compliance) ```json { "banner_id": "2026_05_limited_warrior", "rates": { "5_star_rate_up": 0.003, "5_star_other": 0.003, "4_star": 0.051, "3_star": 0.943 }, "pity": { "soft_start": 74, "hard": 90 }, "disclosed_at": "2026-05-01" } ``` ### Spend velocity alert (responsible gaming) ```ts // 매 self-imposed limit — EU UK regulation 의 매 권장 const SPEND_SOFT_CAP = 200; // monthly USD function checkSpendCap(playerId: string, amount: number, monthlyTotal: number) { if (monthlyTotal + amount > SPEND_SOFT_CAP) { return { allow: true, warn: "monthly cap exceeded — confirm?", cooloff: 60 }; } return { allow: true }; } ``` ### Whale churn early warning ```sql -- 매 7-day spend drop > 70% 매 whale 에게 매 retention team intervention trigger SELECT player_id, SUM(CASE WHEN ts > NOW() - INTERVAL '7 day' THEN amount END) AS recent, SUM(CASE WHEN ts BETWEEN NOW() - INTERVAL '14 day' AND NOW() - INTERVAL '7 day' THEN amount END) AS prev FROM purchases WHERE player_id IN (SELECT player_id FROM whale_segment) GROUP BY player_id HAVING recent < prev * 0.3; ``` ## 매 결정 기준 | 상황 | Approach | |---|---| | Casual indie F2P | Cosmetic only, battle pass, no gacha | | Mid-core gacha | Pity 90, rate disclosure, constellation 6 max | | Whale-driven MMO | VIP tier + auction house, but disclosed odds | | Western market (regulation) | Loot box → direct purchase shift | | Korean / Chinese / JP market | Gacha allowed, regulatory disclosure mandatory | **기본값**: Battle pass + cosmetic + bounded pity. 매 unbounded P2W 의 매 long-term reputation cost. ## 🔗 Graph - 변형: [[Loot Box]] - 응용: [[Genshin Impact]] ## 🤖 LLM 활용 **언제**: F2P revenue model 분석, gacha probability simulation, LTV segmentation, regulatory compliance audit. **언제 X**: Premium / one-time purchase game (steam-style buy-to-play), subscription SaaS — 매 다른 LTV curve. ## ❌ 안티패턴 - **No pity ceiling**: 매 unbounded gacha — whale rage-quit risk + regulation 의 magnet. - **Hidden rates**: 매 JP/CN 매 illegal, 매 EU 매 점점 banned. - **Power creep without sidegrade**: whale fatigue, churn cliff. - **Predatory targeting of vulnerable players**: ethical + legal liability (UK Gambling Commission 2025 ruling). - **Misleading "limited" banners**: 매 re-runs broken trust. - **No spend cap option**: 매 responsible gaming feature 의 X. ## 🧪 검증 / 중복 - Verified (HoYoverse banner data, Newzoo F2P revenue report 2025, JP CSAGS guideline). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — whale segmentation, pity mechanics, regulatory disclosure patterns |