Methodology
입력값이 보이는 점수 시스템
바위게랩스의 모든 점수는 공개 가능한 계산식과 설명 가능한 입력값으로 산출됩니다. 어떤 지표도 블랙박스가 아닙니다.
① 무엇을 측정?
팀·선수·챔피언의 초과 수행. “기대 대비 얼마나 더 잘했냐”를 숫자로.
② 어떻게 계산?
8개 지표 → League Bridge 환산 → 1–99 Power로 표준화.
③ 무엇을 안 함?
승률만 보지 않음. 표본 부족 점수는 Provisional 처리.
30초 요약 — 전문
① 무엇을 측정?
팀·선수·챔피언의 초과 수행을 측정합니다. "얼마나 이겼냐"가 아니라 "기대 대비 얼마나 더 잘했냐"입니다.
② 어떻게 계산?
8개 지표(KDA·라인전·한타·비전 등) → League Bridge로 리그 간 환산 → 1–99 Power로 표준화합니다.
③ 무엇을 안 함?
승률만 보지 않고, 팀 기여도를 무시하지 않으며, 표본이 적은 점수는 Provisional 처리해 과대 해석을 막습니다.
계산 철학
바위게랩스는 Raw → Expected → Residual → Value → Rating 파이프라인을 통해 선수·팀의 실력을 맥락 조정 후 잔차(초과 수행)로 측정합니다.
- Raw경기 통계 (KDA, 데미지, CS…)
- Expected역할·챔프· 상대 보정값
- ResidualRaw − Expected (선수 기여분)
- ValueElo 곱셈· 가중 누적
- Rating0–100 스케일 Confidence 보정
각 노드를 클릭하면 해당 방법론 절로 스크롤됩니다
- Raw — 원시 경기 스탯 수집 (Oracle's Elixir)
- Expected — 패치/역할/상대강도/사이드 조건에서 기대되는 스탯값 산출
- Residual — Actual − Expected. 맥락을 제거한 "얼마나 잘했나"
- Value — 역할별 가중 합산으로 단일 지표화
- Rating — 시간 감쇠와 표본 가중으로 Elo/Power 점수 산출 → [1, 99] 공개 점수 변환
입력 피처 (컨텍스트 벡터 C)
기대치 모델의 입력으로 사용되는 컨텍스트 피처들입니다.
- patch
- 현재 적용 패치 번호
- role
- 라인 포지션 (TOP / JGL / MID / ADC / SUP)
- champion_family
- 챔피언 패밀리 분류 (~35개 군)
- matchup_family
- 상대 챔피언 패밀리
- side
- 블루/레드 사이드
- opponent_strength
- 상대 팀의 직전 30일 Team Elo (bootstrapped)
- jungle_help_ratio
- 정글 CS 방문 비율 (자원 구조)
- comp_archetype
- 드래프트에서 추론한 팀 아크타입
- game_length_bucket
- 경기 길이 구간 (short/mid/long)
- series_depth
- Bo 시리즈 내 몇 번째 게임
- fearless_depth
- 시리즈 내 사용된 챔프풀 깊이
- lineup_stability
- 최근 5경기 동일 라인업 비율
Team Elo
팀 간 상대적 전투력을 나타내는 Elo 기반 레이팅. 리그 강도(LS)를 블렌딩하여 리그 간 비교를 가능하게 합니다.
TeamElo* = TeamElo + λ × LeagueStrength P(A beats B) = sigmoid((Elo*_A - Elo*_B + DraftAdj + SideAdj) / τ) P(B beats A) = 1 - P(A beats B) ← 두 번 계산하지 않음 (부동소수점 오차 방지) 업데이트: TeamElo_new = TeamElo_old + K_stage × (S - P) K_stage: Bo1 = 20 | Bo3 = 16 | Bo5 = 12 | International = 25 신규 팀 초기값: 리그 평균 Elo
리그 강도(League Strength): 국제전(MSI/Worlds) 결과와 선수 이적 성과를 활용한 latent variable. 표본 < 5이면 global average로 shrinkage 처리.
Team Power
Team Elo에 더해 현재 활동성, 리그/대회 난도, 조직 연속성을 함께 반영하는 종합 팀 파워 점수. 최종 점수의 신뢰도는 Confidence 섹션 참조.
TeamPower_raw = 0.24 × z(TeamElo*) + 0.12 × z(DominanceResidual) + 0.08 × z(RecentForm) + 0.07 × z(SOS) + 0.07 × z(LineupSynergy) + 0.06 × z(DraftFlex) + 0.04 × z(CloseoutEfficiency) + 0.12 × LeagueCoefficient + 0.04 × TournamentCoefficient + 0.12 × ActivityStatus + 0.04 × OrgContinuity PublicScore = clamp(0, 100, round_half_up(50 + 12 × raw_z))
- DominanceResidual
- GD, CSD 등 라인 지배력의 잔차 합산
- SOS
- SOS — 상대 팀 TeamElo* 가중 평균
- LineupSynergy
- 현재 5인 조합의 역할별 호환성 점수
- DraftFlex
- 다양한 픽/밴 전략 구사 능력
- CloseoutEfficiency
- 앞선 상황에서 경기를 끝내는 효율
- ActivityStatus
- 현재 시즌 활동 여부, 최근 경기 신선도, 현재 로스터 존재 여부
- OrgContinuity
- 현재도 운영 중인 조직의 시즌 연속성. 해체·휴면 팀에는 보너스 없음
Player Elo (Latent Skill)
팀 승패와 무관하게 개인 기대치 초과 수행을 누적하는 latent skill 모델. 역할별로 독립 계산됩니다.
ObsResidual[i, g, role] = Σ_k w(role, k) × z((m_k - E[m_k | C_g]) / σ_k) Skill[i, role, t] = ρ_role × Skill[i, role, t-1] + η × ObsResidual + ξ ρ_role = 0.85 (기억 감쇠) η = 0.30 (학습률) 표본 조건: 역할 내 12게임 이상, 챔프 패밀리 3개 이상
표본 미달 선수는 Provisional 플래그. 점수는 표시되지만 신뢰도 Low. 역할 변경 시 이전 역할의 Skill은 독립적으로 보존됩니다.
Player Power
현재 시점의 선수 파워랭킹 점수. Player Elo에서 파생된 잔차와 라인전·한타·오브젝트·안정성·승리 영향도를 역할 가중치로 묶고, 표본 신뢰도(Confidence)와 데이터 품질로 보수화합니다.Team Power와 동일한 [1,99] 스케일을 공유합니다.
PlayerPower_raw = role_weighted_mean(R1..R9, R_win) + clipped_strength_of_schedule_bonus R1 = Laning residuals R6 = Objective involvement R2 = Teamfight impact R7 = Long-game performance lift R3 = Mechanics/survival R8 = Downside consistency R4 = Vision R9 = Role specialty R5 = Aggression R_win = Win impact with beta prior trusted_z = shrink(raw_z, n_games, confidence, data_quality) PublicScore = clamp(1, 99, round_half_up(50 + 18 × trusted_z))
- Expected residual
- 패치·진영·상대 Elo를 통제한 뒤 기대치 대비 초과 수행한 값
- Role specialty
- TOP/JGL/MID/ADC/SUP마다 다른 핵심 행동 조합
- Trusted score
- 좋은 신호라도 표본·데이터 품질이 낮으면 중립 쪽으로 보수화한 공개 점수
Patch Fit
현재 패치에서의 성능이 이전 트레이딩 기준선 대비 얼마나 향상/저하됐는지 측정합니다.
PatchFit_raw = mean(Residuals on current_patch) - trailing_baseline_adjusted 현재 패치: dim_patch.is_current = TRUE 이번 패치 게임 < 3: PatchFit = NULL (Provisional)
Confidence Grade
점수의 신뢰 수준을 나타내는 등급. 표본 크기, 챔프풀 다양성, 리그 보정 강도 등을 종합합니다.Player Power와 Team Power 모두 이 Confidence로 공개 점수를 보수화합니다.
Confidence_raw = 0.30 × SampleStrength + 0.15 × UniqChampBreadth + 0.15 × RoleStability + 0.15 × LeagueCalibStrength + 0.15 × LineupStability + 0.10 × RecencyBalance 등급: High : raw ≥ 0.75 (teal) Medium : 0.45 ≤ raw < 0.75 (yellow) Low : raw < 0.45 (amber) 표본 0: confidence_raw = 0.0 → Low
Provisional vs Low Confidence: Provisional은 최소 표본 미달(12게임), Low는 데이터가 있지만 불확실성이 높은 상태입니다.
Fearless Depth (beta)
피어리스 다전제에서 comfort 챔프가 제거된 후에도 성능을 유지하는 능력.
comfort_pool = 최근 60일 상위 5개 챔프 패밀리 effective_pool = comfort_pool 제외 후 남은 패밀리 집합 FearlessDepth = retained_performance( effective_pool, controlling_for: opponent_strength, draft_difficulty ) 피어리스 시리즈 게임 < 6: fearless_depth_score = NULL (not Provisional) 피어리스 미경험: NULL (단순 미해당, 에러 아님)
Known Limitations
- ⚠소규모 리그 데이터 부족: LCK/LPL 이외 리그는 League Strength 표본이 적어 교차 리그 비교 신뢰도가 낮습니다. Confidence Grade로 표시됩니다.
- ⚠시즌 초반 Provisional: 신규 선수·팀은 12게임 데이터 쌓이기 전까지 Provisional 플래그가 붙습니다.
- ⚠타임라인 이벤트 미반영 (Phase 2): 세부 in-game 이벤트(와드/오브젝트 참여 등)는 현재 Value Timeline 미구현으로 반영되지 않습니다.
- ⚠패치 전환기 불안정: 새 패치 출시 직후 3게임 미만 데이터에서 Patch Fit이 NULL 처리됩니다.
- ⚠공식 Riot 데이터 아님: 현재 Oracle's Elixir 기반 bootstrap. 공식 데이터 전환 시
model_version이 갱신됩니다.
FAQ
Q. Team Elo와 Team Power는 어떻게 다른가요?
Q. Player Elo는 팀 성적에 영향을 받지 않나요?
Q. 왜 [1, 99] 범위이고 0과 100이 없나요?
Q. Provisional 선수를 왜 숨기지 않나요?
Q. Fearless Depth가 NULL인 선수는 점수에 불이익이 있나요?
Q. 데이터는 얼마나 자주 업데이트되나요?
용어 사전
- CSD
- CS Difference — 라인전 CS 차이
- GD
- Gold Difference — 골드 차이
- XPD
- XP Difference — 경험치 차이
- SOS
- Strength of Schedule — 일정 강도 (상대팀 평균 Elo)
- SV
- State Value — 특정 게임 상태의 승리 확률 기여도
- WPA
- Win Probability Added — 이벤트별 승률 변화량
- Bo3/Bo5
- Best of 3/5 — 다전제 경기 형식
- Fearless Draft
- 각 게임마다 이전 게임에서 쓴 챔피언을 다시 선택할 수 없는 드래프트 규칙
- Provisional
- 최소 표본(12게임) 미달로 불확실성이 높은 점수 상태
- Latent Skill
- 직접 관찰 불가능하지만 여러 지표에서 추론되는 내재적 실력
- z-score
- 평균 0, 표준편차 1로 정규화한 값 — 역할/패치 간 비교를 가능하게 함
Current model version: rift_index@2026.1