Methodology/Champions

Champion Methodology

Champion Tier System

챔피언은 player/team과 동격의 1급 엔티티다. 패치와 메타에 따라 2주마다 가치가 달라지는 챔피언의 강도를 잔차(residual) 기반으로 측정한다 — raw 승률이나 픽률이 아니라.

모델 버전: rift_index@2026.1

왜 잔차 기반인가

같은 챔피언이라도 강팀 vs 약팀, 블루 vs 레드 사이드, Bo5 결승 5세트 등 맥락에 따라 승률이 크게 달라진다. Residual = Actual − E[result | context]는 이 모든 맥락을 통제한 순수 챔피언 기여를 분리한다.

metric_residual = Actual − E[metric | patch, role, league_strength,
                              opponent_strength, side, series_depth, fearless_state]

3-Layer 티어 시스템

Meta Tier

"이 패치가 이 챔프에게 얼마나 우호적인가?" - PatchFitΔ, PresenceRate, BanPressure, PriorityPick 기반.

단위: patch / patch_range

Effective Tier

"표본 안에서 실제로 얼마나 이겼나" - WinResidual, DraftValueResidual, GameImpactResidual 기반.

단위: league × season × split

Context Tier

"어떤 조건에서 강해지는가?" - side, game_length, series_depth, fearless_slot, opponent_archetype matrix.

카드 상세 drawer에서만 노출

ChampionPower 공식

ChampionPower_raw
= 0.25 z(EffectiveResidual)      // WinResidual 가중 평균
+ 0.15 z(DraftEdgeContribution)  // D01
+ 0.15 z(PatchFitΔ)              // M01
+ 0.10 z(PresenceRate_adj)       // M02, league 강도 보정
+ 0.10 z(ObjectiveAggregate)     // O01–O06
+ 0.10 z(ScalingFit)             // S01–S06
+ 0.10 z(Resilience)             // R01–R06
+ 0.05 z(FlexIndex)              // M06

ChampionPower = clamp(1, 99, round_half_up(50 + 12 × ChampionPower_raw))

50 = 리그 평균, 70 = 리그 최상급, 90+ = 역사적 수준. 반올림은 Python banker's rounding이 아닌 0.5 올림을 사용한다.

티어 등급 경계값

등급ChampionPower 범위설명
S+≥ 82역사적 수준 — 해당 시즌을 정의하는 챔피언
S75–81리그 최상급 — 메타 중심부
A66–74우선 픽/밴 대상
B55–65상황 픽
C45–54평균 이하
D< 45메타 밖

경계값은 표본 window percentile + 절대 ChampionPower 임계 동시 만족을 요구. 둘 중 하나만 만족 시 한 단계 하락.

8개 지표 축

약 55개 지표는 아래 8개 축으로 분류된다. 공개 점수는 축별 대표 1–2개씩 총 10–15개.

MMeta Health

패치/메타 내 생태 건강도 — PatchFitΔ, PresenceRate, BanPressure

LLaning

0–14분 라인 페이즈 가치 — CSD@14, GD@14, SoloKillRate

TMid-Game Transition

15–25분 구간 기여 — Roam, PickThreat, SkirmishWinRate

FTeamfight

5v5 교전 기여 — FightLeverage, EngageQuality, FrontToBackValue

OObjective Control

드래곤/바론/헤럴드/타워 관여 — DragonSetupCredit, BaronThreatContribution

SScaling & Tempo

시간축 가치 변화 — CurveSlope, PowerSpikeWindow, GameLengthBucketEV

DDraft Dynamics

픽밴/카운터/synergy — DraftEdgeContribution, SynergyIndex, CounterMatrixCell

RResilience

국제전/시리즈 심도 대응 — InternationalResidual, FearlessDepthContribution

표본 규칙 & Confidence

윈도우 유형최소 표본 (picks)
리그 × 스플릿 카드12+
대회 카드 (MSI/Worlds)6+
크로스 리그 집계25+
Context Tier 셀5+

표본 미달 → Provisional 배지 (회색 + 점선 테두리). Provisional ≠ Low Confidence — Provisional은 표본 미달, Low는 모델 불확실성.

ChampConf_raw
= 0.30 SampleStrength      // pick 수 로그스케일
+ 0.20 LineupDiversity     // 몇 팀이 픽했나
+ 0.15 PatchStability      // 윈도우 내 패치 변화 적음
+ 0.15 MatchupCoverage     // 상대 family 다양도
+ 0.10 LeagueCalibration   // 리그 강도 calibration 안정
+ 0.10 RoleFixation        // 단일 포지션 여부

High ≥ 0.75 · Medium 0.45–0.75 · Low < 0.45

레어도 — 챔피언 카드

Legendary국제전(Worlds/MSI) + Meta S+ + Effective S+ + High Conf + sample ≥ 6
EpicTier1 정규 시즌 + Meta S/S+ + Effective S/S+ + High Conf
RareTier1 + 하나 이상 S/S+ + Medium+ Conf
Common그 외

불변식 & 안티패턴

불변식

  1. 모든 챔프 공개 점수는 residual. raw 승률은 raw 데이터 드롭다운에서만.
  2. 한 (champion, role, league, season, split, model_version) 조합 = 카드 1장.
  3. 종료 스플릿 카드 immutable. 재계산 = 새 model_version 별도 카드.
  4. lineage 3컬럼 (source / fetched_at / license_tier) 필수.
  5. Tier 등급은 percentile + 절대 임계 동시 만족 필요.

금지 안티패턴

  1. "OP 챔프", "사기 챔프" 단정적 표현 금지. "이 윈도우 상위 X%"로.
  2. 단일 지표 티어링 금지 — 항상 ChampionPower + 드라이버 3개.
  3. 개인 플레이어 없이 챔피언 단독 승패 설명 금지.
  4. 밸런스 패치 직후 48시간 카드는 Provisional 고정.
  5. Tier1 외 리그 데이터를 ALL_TIER1 집계에 혼합 금지.
Patch Shift stories not yet generated. Run python analytics/statiz_lab/scripts/run_derivatives.py.