MMRチェッカーの仕組み
LoL MMRチェッカーの計算方法と、内部レートの仕組みを解説します。ライアットはMMRを公開していないので、どのチェッカーの数値も推定値です。このページでは、LoLValueがどう推定しているか、どの公開データを読み、どのくらい外れる可能性があるかを正確に記録しています。
2026年9月更新 · 作成: LoLValueチーム
概要
LoLValueのMMRチェッカーは、ライアットの公開データから最大3つの独立したデータを組み合わせます。ランクと勝率、マッチングされたロビーの平均レート、そして2回のチェックの間に実際に増減したLPです。それぞれのデータを共通のMMRスケール上の数値に変換し、裏付けとなるデータ量に応じた重みで組み合わせ、誤差の幅と信頼度を付けて結果を表示します。
| データ | 取得元 | 利用できるタイミング | 組み合わせの重み |
|---|---|---|---|
| A. ランクと勝率 | League entriesエンドポイント:ティア、ディビジョン、LP、勝利数、敗北数 | ランクキューならすぐに | 読み込んだロビー数に応じて30%~100% |
| B. ロビー平均 | 試合リストと、直近10試合それぞれにいた他の9人のランク | バックグラウンド分析の数秒後 | 最大70% |
| C. 実測LP | 現在のLPと勝敗数を、前回保存したチェックと比較 | 2回目のチェックから(3試合以上プレイした場合) | 最終値の25% |
このページの内容に非公開データは使っていません。すべての数値は、Riot APIキーを持つ開発者なら誰でも呼び出せるエンドポイントから取得しています。つまり、以下の手順に沿えば誰でも推定を再現できます。
ステップ1:全ランク共通のMMRスケール
ランクは線形スケールの数値に変換します。アイアンIVの0 LPを0とし、1ティアは500、1ディビジョンは125、1 LPは1.25です。マスターは3,500から始まり、そこから先はLPだけで伸びます。つまり400 LPのマスターは4,000で、グランドマスターとチャレンジャーはLPの多いマスターとして扱います。
MMR(rank) = 500 × tier_index + 125 × division_index + 1.25 × LP tier_index: アイアン 0, ブロンズ 1, シルバー 2, ゴールド 3, プラチナ 4, エメラルド 5, ダイヤモンド 6 division_index: IV 0, III 1, II 2, I 3 apex: マスター, グランドマスター, チャレンジャー = 3500 + 1.25 × LP
| ランク | MMR |
|---|---|
| アイアンIV、0 LP | 0 |
| ブロンズIV | 500 |
| シルバーIV | 1,000 |
| ゴールドIV | 1,500 |
| ゴールドI、50 LP | 1,938 |
| プラチナIV | 2,000 |
| エメラルドIV | 2,500 |
| ダイヤモンドIV | 3,000 |
| ダイヤモンドI、100 LP | 3,500 |
| マスター、500 LP | 4,125 |
ライアット内部のレートはこのスケールではなく、正確な範囲はライアット以外の誰も知りません。このスケールは、すべてのデータを比較でき、結果をおなじみのランクに戻せるようにするためのものです。どんな線形スケールでも判定は同じになります。これを選んだのは、100 LPがちょうど1ディビジョンに対応するからです。
ステップ2:方法A、ランクと勝率
方法Aは即時の答えを出します。表示ランクのMMRから出発し、そのキューでの勝率に応じて値をずらします。ずらす幅は、勝率の元になった試合数で調整します。勝率50%ならランクのMMRのままです。多くの試合で勝率が50%を大きく上回っていれば、推定はバッジより上になります。マッチメイキングがすでにランク以上の評価をしているからです。
confidence = min(1, games / 50) adjust = (winrate − 0.50) × 1500 × confidence adjust = clamp(adjust, −250, +250) MMR_A = MMR(rank) + adjust
計算例:ゴールドII、40 LP、80試合で勝率58%。MMR(rank) = 1,500 + 250 + 50 = 1,800。80試合は50を超えるので信頼度は1です。調整値は(0.58 − 0.50) × 1500 = +120なので、MMR_A = 1,920。バッジより約3分の2ディビジョン上です。
±250の上限があるのは、勝率が大まかな指標にすぎないからです。上限がなければ、20試合で勝率70%というだけで丸2ティア上と判定してしまいますが、実際にはたいてい、まだ上がり始めのスマーフです。方法Aは、ランクのないキュー(ノーマル、スイフトプレイ、ARAM)には使いません。マスター以上でも使いますが、ランクのMMRは3,500に1 LPあたり1.25を足した値です。
ステップ3:方法B、ロビー平均
方法Bが最も強力なデータです。マッチメイキングは隠れたMMRが近いプレイヤーでロビーを組むので、マッチングした相手のランクこそ、自分のレートに最も近い公開の測定値です。チェッカーは選んだキューの直近10試合を読み込み、他の9人それぞれのランクを調べ、ロビーごとに1つの数値にまとめます。
ロビーごと
- 他の9人のプレイヤーをそれぞれ上のスケールでMMRに換算します。分析中のキューのランクを使い、そのキューでランクがなければもう一方のランクキューのランクを使います。ランクをまったく持たないプレイヤーは除外します。
- ランクを持つプレイヤーが4人未満のロビーは除外します。ロビーを表すにはデータが少なすぎるためです。
- ランクを持つプレイヤーが6人以上いれば、最高値と最低値を除いてから平均します(トリム平均)。スマーフやランクが減衰したアカウントが1人いても、ロビーの数値が動かないようにするためです。
ロビー全体
weight(game) = 0.92 ^ recency × (ranked_seen / 9) MMR_B = Σ lobby_mmr × weight / Σ weight recency: 最新の試合は0、その前の試合は1、以下同様 ranked_seen: 他の9人のうちランクを持っていた人数
新しさで重み付けするので、最新の試合は10試合前の約2倍の重みになります。ranked_seenの係数により、9人全員がランクを持つロビーは、5人だけのロビーより重く数えられます。標準のサンプルは10試合です。速さと安定性の妥協点で、他を変えずにサーバー側で増やすこともできます。
方法Bには注意すべき系統的な偏りが1つあります。ランクはMMRより遅れて動くことです。シーズン開始から数週間は全員のバッジがレートより低いため、ロビー平均は誰でも低めに出ます。ただし判定(バッジより上か下か)には影響しません。自分のランクも同じように遅れているからです。
ステップ4:方法C、実測LP
方法Cは、ライアットがMMRについて唯一教えてくれる情報を使います。1勝あたりの獲得LPです。チェックのたびに、ランク、LP、勝利数、敗北数のスナップショットを保存します。次のチェックで、30分以上前のスナップショットから3試合以上プレイしていれば、実際の1勝あたりのLPを計算し、MMRとバッジの差に換算します。
ladder(rank) = アイアンIV 0 LPからの合計LP(1ディビジョン100) gain_per_win = (Δladder + Δlosses × 42) / (Δwins + Δlosses) 3試合以上プレイし、8 ≤ gain_per_win ≤ 40 の場合に有効 gap_C = (gain_per_win − 21) × 18
1つ目の式の42は、1勝分と1敗分のLPの合計を仮定した値(21 + 21)です。これにより、純増減しか見えなくても獲得と喪失を分けられます。2つ目の式は、後述するLP予測の逆算です。差がゼロなら期待獲得LPは21で、差が18 MMR変わるごとに1 LP動きます。
計算例:2回のチェックの間に、あるプレイヤーがゴールドII 40 LPからゴールドI 20 LPへ(ラダー上で+80 LP)、6勝3敗で上がったとします。gain_per_win = (80 + 3 × 42) / 9 = 22.9 LP。gap_C = (22.9 − 21) × 18 = +34 MMRなので、MMRはバッジよりわずかに上です。このデータはマスター未満のランクキューでしか使いません(マスター以上のティアには均すべきディビジョンがないため)。また、降格保護やランクの減衰の後など、数値に整合性がない場合は破棄します。
ステップ5:データの組み合わせ
3つの数値は、それぞれの裏付けとなるデータ量が増えるほど大きくなる重みで組み合わせます。ロビー平均は、10ロビーを読み込むと最大70%の比重を占めます。ロビーが少なければ比重は小さくなり、残りを方法Aが埋めます。実測LPがあれば、最後に結果をその値の方向へ4分の1だけ引き寄せます。
w_B = min(0.70, lobbies_read / 12 × 0.70)
MMR_AB = MMR_B × w_B + MMR_A × (1 − w_B)
実測LPがある場合:
MMR = MMR_AB × 0.75 + (MMR(rank) + gap_C) × 0.25
ない場合:
MMR = MMR_AB| 状況 | 方法A | 方法B | 方法C |
|---|---|---|---|
| 即時の答え(ロビーはまだ読み込んでいない) | 100% | 0% | 0% |
| 5ロビーを読み込み済み | 71% | 29% | 0% |
| 10ロビーを読み込み済み | 42% | 58% | 0% |
| 12ロビー以上を読み込み済み | 30% | 70% | 0% |
| 10ロビーを読み込み済み、3試合以上プレイ後の2回目のチェック | 31% | 44% | 25% |
| ARAM、ノーマル、スイフトプレイ、またはランクなしのプレイヤー | 0% | 100% | 0% |
結果ページの数値が最初の数秒で変わるのはこのためです。即時の答えは方法Aだけで、ロビーを1つ読むごとに組み合わせが方法Bへ近づきます。分析が終わるまでは暫定の判定を表示し、一時的な逆転を最終結果と誤解しないようにしています。
ステップ6:誤差の幅と信頼度
すべての推定は、値にプラスマイナスの幅を付けて表示します。この幅は統計的な信頼区間ではなく、独立したデータが増えるほど小さくなるよう調整した許容範囲です。
margin = 170 方法Aのみ margin = 150 − 8 × min(12, lobbies) ロビー読み込み後 margin = margin − 10 実測LPがある場合 margin = max(margin, 45) confidence: margin ≤ 70 なら高、≤ 110 なら中、それ以外は低
| 推定の元データ | 誤差の幅 | 信頼度 |
|---|---|---|
| ランクと勝率のみ | ±170 MMR(約1.4ディビジョン) | 低 |
| 5ロビー | ±110 MMR | 中 |
| 10ロビー | ±70 MMR(約半ディビジョン) | 高 |
| 10ロビー+実測LP | ±60 MMR | 高 |
| 12ロビー+実測LP | ±45 MMR | 高 |
推定値とバッジの差を誤差の幅と比べると、判定が決まります。差が+60 MMR以上なら「ランクより上」、−60以下なら「ランクより下」、その間なら「一致」と表示します。60 MMRは半ディビジョンで、2試合の間のばらつきを超えてLPの増減を変える最小の差です。
ステップ7:獲得LPとランクアップまでの試合数の予測
LP予測は、推定MMRとバッジの差を、1勝あたり・1敗あたりの期待LPに変換します。差がゼロなら、チェッカーは勝ち負けとも21 LPと仮定します。プラスの差が18 MMR増えるごとに、勝利時のLPが1増え、敗北時のLPが1減ります(10~35 LPの範囲内)。
shift = gap / 18
LP_win = clamp(round(21 + shift), 10, 35)
LP_loss = clamp(round(21 − shift), 10, 35)
games_to_next_division(winrate) = 次を満たす最小のn
LP + n × (winrate × LP_win − (1 − winrate) × LP_loss) ≥ 100
wins_in_a_row = ceil((100 − LP) / LP_win)計算例:推定1,920に対してゴールドIIのバッジが1,750なら、差は+170です。shift = 9.4なので、LP_win = 30、LP_loss = 12。40 LPから勝率55%なら、1試合あたりの平均は0.55 × 30 − 0.45 × 12 = 11.1 LPなので、ゴールドIまでは約6試合です。2連勝でも到達できます。
定数の21と18は、今シーズンのゴールド~ダイヤモンドのプレイヤーが報告した獲得LPに合わせて求めたものです。モデルの中で最も変わりやすい部分で、ライアットが獲得LPを調整したときはこの2つの数値を求め直し、このページを新しい値に更新します。
ステップ8:パーセンタイル
パーセンタイルは「このMMRより下にいるランクプレイヤーの割合」を表します。全地域のソロ/デュオのランクプレイヤー全員を毎日集計した当サイト独自のデータから読み取っており、LoLランク分布のページと同じデータです。
- アイアンIVからダイヤモンドIまでの各ディビジョンを1つの点にします。MMRスケール上の下限と、それより下にいるプレイヤーの割合です。
- マスターは3,500から始まります。グランドマスターとチャレンジャーの下限は、その日のグランドマスターとチャレンジャーで最もLPが低いプレイヤーのLPに1 LPあたり1.25 MMRを掛け、3,500に足した値です。こうして下限が実際のボーダーに連動します。
- 2つの点の間は線形補間します。
この表は、新しい日次集計が保存されるたびに作り直されます。影響するのは結果のパーセンタイルの行だけで、MMRの推定、判定、LP予測はこれに依存しません。最初の集計がまだない場合、チェッカーは近似の表を使います。
既知の限界と偏り
誠実なチェッカーは、どこで外れるかを明示します。LoLValueの推定の信頼性が最も低くなるのは、次のようなケースです。
| ケース | 影響 | チェッカーの対応 |
|---|---|---|
| シーズン開始時 | 全員のランクがMMRより遅れ、ロビー平均が低めに出る | 自分のバッジも遅れているので判定は有効。絶対値は数週間低めに出る |
| 新規アカウントやスマーフ | 勝率が極端で、ロビーが急速に上がる | 方法Aは±250が上限。方法Bは10試合以内に追いつく |
| デュオやプリメイドの試合 | ロビーが個人ではなくグループを反映する | 補正なし。ソロの試合の後にチェックするとサンプルがきれいになる |
| ランクなしのプレイヤーが多いロビー | 1試合で読み取れる点が少ない | ランクを持つプレイヤーが4人未満の試合は除外。誤差の幅が広がる |
| マスター以上 | 母数が少なく、ロビー内のMMRのばらつきが大きい | 実測LPは使わず、ランク、勝率、ロビー平均のみ |
| ランクの減衰、降格保護、対戦回避 | 勝敗以外によるLPの変化 | 推定される獲得LPが8~40 LPの範囲外なら実測LPを破棄 |
ライアットが使うレートは非公開なので、照らし合わせる正解がありません。できる最善の確認は一貫性です。同じアカウントを同じ日に別のロビーベースのツールで調べると、結果はおよそ1ディビジョン以内に収まります。また、ライアット自身のフィードバックである実測LPのデータは、2回目のチェックの大多数で、組み合わせた推定と一致しています。
データ、キャッシュ、レート制限
チェッカーが読むのはRiot APIの公開データだけです。Riot IDのアカウント、そのアカウントのランク情報、最近の試合リスト、各試合の参加者です。ログインは不要で、パスワード、メールアドレス、クライアントのデータは一切扱いません。
- ロビーで見つかった各プレイヤーのランクは6時間キャッシュするので、人気プレイヤーのロビーにいた相手をチェックのたびに再取得することはありません。
- 完了した結果は5分間キャッシュします。その間に同じアカウントを再チェックすると、同じ結果がすぐに返ります。
- スナップショット(チェック時点のランク、LP、勝利数、敗北数、推定値)を保存します。次のチェックで実測LPの方法を使えるようにし、ページにMMRの履歴を表示するためです。
- IPごとに1分あたり12回までチェックでき、サーバーは一度に4アカウントを分析します。これにより、全員がRiot APIの制限内でツールを使えます。
- サーバーは1日1回、全地域のソロ/デュオのラダーの全ティア・全ディビジョンのプレイヤー数も集計し、パーセンタイルとランク分布のページに使っています。
推定を再現したい場合は、このページの手順で十分です。Riot APIキーを持つ開発者なら誰でも同じエンドポイントを呼び出し、同じ式を当てはめられます。計算式を公開しているのはそのためです。
更新履歴
- 2026年9月:パーセンタイルを近似の表から、ソロ/デュオのランクプレイヤー全員の日次集計に切り替えました(ランク分布を参照)。
- 2026年9月:計算方法を公開。3つのデータの組み合わせ、分析中の暫定判定、ARAMチェッカーの専用ページ。
計算式の変更は、適用日とともにここに記録します。変更前の結果も、それを出したルールに照らして確認できます。
計算方法のよくある質問
LoLのMMRはどう計算されていますか?
ライアットのMMRは、試合ごとに結果とその結果の起こりやすさに応じて動く隠れたレートです。ライアットは計算式も数値も公開していません。このようなチェッカーは公開データから推定します。ランクと勝率、マッチングした相手のランク、そして1勝あたりの獲得LPです。
最も重要なデータは?
ロビー平均です。マッチメイキングは近いMMRのプレイヤーを集めるので、最近のロビーのランクはバッジよりも正確にレートを表します。10試合を読み込むと、組み合わせの最大70%を占めます。
ページの読み込み中に数値が変わったのはなぜ?
最初の答えはランクと勝率だけを使います。最近の試合を1つ読むごとにロビー平均の比重が大きくなるので、数値が動き、判定が逆転することもあります。分析が終わるまでは暫定のラベルが表示されます。
MMRサイトによって数値が違うのはなぜ?
サイトごとに独自のスケールとデータの組み合わせを使っているからです。ロビーベースのツール同士なら、たいてい1ディビジョン以内に収まります。ランクと勝率しか読まないサイトはもっとずれることがあります。生の数値ではなく、数値が対応するランクで比べてください。
誤差の幅は本当の信頼区間ですか?
いいえ。読み込んだデータ量に応じて小さくなるよう調整した許容範囲です。ランクと勝率だけなら±170 MMR、10ロビーで約±70、最小で±45です。正式な統計値ではなく、「真の値はほぼこの範囲内にある」という意味で受け取ってください。
チェッカーはどうやって獲得LPを知るのですか?
推定MMRとバッジの差から予測します。差がゼロなら21 LPで、差が18 MMR増えるごとに1 LP加え、10~35の範囲に収めます。2回目のチェックからは、実際に獲得したLPも読み取って推定に反映します。
ARAMがランク戦のランクで表示されるのはなぜ?
ARAMには独自のランクがないため、ARAMのロビーを公開データで表すには、そこにいるプレイヤーのソロ/デュオやフレックスのランクを使うしかないからです。ARAMの結果は、ロビーのレベルをランク戦に換算したものです。
チェッカーは非公開データやクライアントのデータを使いますか?
いいえ。すべてRiot APIの公開エンドポイントから取得しています。アカウント検索、ランク情報、試合リスト、試合の参加者です。ログインはありません。
自分で推定を再現できますか?
はい。スケール、3つの方法、組み合わせの重み、誤差の幅のルールはすべてこのページにあります。Riotの開発者キーで同じエンドポイントを使えば、同じ数値になります。
計算式はどのくらいの頻度で更新されますか?
ライアットが獲得LPやランク戦の仕組みを変えるたびに、LPの定数を求め直し、その変更を日付とともにこのページの更新履歴に記録します。
LoL MMRチェッカー · ARAM MMRチェッカー · LoL MMRチェッカーの計算方法 · LoLランク分布 · LoLランク一覧 · LoL無料チャンピオン · LoLアカウント価値計算 · LoLプレイ時間確認 · LoLスキン一覧
LoLValueはRiot Gamesの承認を受けたものではなく、Riot GamesおよびRiot Gamesの資産の制作・管理に公式に関わる人物の見解や意見を反映するものではありません。このページに表示されるMMRの値は、公開されている試合データからの推定値です。