{"id":18433288,"url":"https://github.com/chad3814/elo-mmr","last_synced_at":"2026-01-21T21:36:20.506Z","repository":{"id":255280654,"uuid":"849051251","full_name":"chad3814/elo-mmr","owner":"chad3814","description":"A node implementation of the ELO-MMR player ranking","archived":false,"fork":false,"pushed_at":"2024-09-26T14:58:16.000Z","size":65,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-24T01:06:38.690Z","etag":null,"topics":["elo","elo-mmr","ranking","ranking-system"],"latest_commit_sha":null,"homepage":"https://arxiv.org/abs/2101.00400","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chad3814.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-28T22:17:42.000Z","updated_at":"2025-10-28T02:46:28.000Z","dependencies_parsed_at":"2025-04-07T19:48:00.201Z","dependency_job_id":null,"html_url":"https://github.com/chad3814/elo-mmr","commit_stats":null,"previous_names":["chad3814/elo-mmr"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chad3814/elo-mmr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chad3814%2Felo-mmr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chad3814%2Felo-mmr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chad3814%2Felo-mmr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chad3814%2Felo-mmr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chad3814","download_url":"https://codeload.github.com/chad3814/elo-mmr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chad3814%2Felo-mmr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28644149,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T21:29:11.980Z","status":"ssl_error","status_checked_at":"2026-01-21T21:24:31.872Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elo","elo-mmr","ranking","ranking-system"],"created_at":"2024-11-06T05:32:37.299Z","updated_at":"2026-01-21T21:36:20.492Z","avatar_url":"https://github.com/chad3814.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# elo-mmr\n\nA node implementation of the [ELO-MMR player ranking](https://youtu.be/sUbE1tPDmnk).\n\nThis code is based on the Python version https://github.com/duhby/elommr which is Copyright 2023-2024 [duhby](https://github.com/duhby), and released under the MIT license. It wouldn't be possible without their help and code.\n\n## Quick Example\nThis is the conversion from python example, and is in `[node_example.ts](https://github.com/chad3814/elo-mmr/blob/main/node_example.ts)`:\n\n```typescript\nimport { EloMmr, Standing } from \"./lib/elo_mmr\"\nimport { Player } from \"./lib/player\";\nimport { Rating } from \"./lib/rating\";\n\nfunction main(): void {\n    const elo_mmr = new EloMmr();\n    const player1 = new Player(new Rating());\n    const player2 = new Player(new Rating())\n    const standings: Standing[] = [\n        [\n            player1,\n            0, 0  // Range of players that got or tied for first\n        ],\n        [\n            player2,\n            1, 1  // Range of players that got or tied for second\n        ],\n    ];\n\n    // Note that the contest_time does not do anything in this example\n    // because EloMMR.drift_per_sec defaults to 0, so contest_time\n    // can be omitted from the round_update call, but it is included\n    // here to show how it can be used.\n    // Do note, though, that you should either always include\n    // contest_time or never include it, because if you include it\n    // in some competitions and not others, the ratings will be skewed\n    // incorrectly.\n    const contest_time = new Date();\n    elo_mmr.roundUpdate(standings, contest_time);\n\n    const next_contest_time = new Date(contest_time.getMilliseconds() + 10000);\n    // Assumes the outcome of the next competition is the same as the\n    // previous, so the standings aren't changed.\n    elo_mmr.roundUpdate(standings, next_contest_time);\n\n    for (const player of [player1, player2]) {\n        console.log(\"\\nrating_mu, rating_sig, perf_score, place\");\n        for(const event of player.eventHistory) {\n            console.log(`${event.rating.mu}, ${event.rating.sig}, ${event.performanceScore}, ${event.place}`);\n        }\n        console.log(`Final rating: ${player.eventHistory[player.eventHistory.length - 1].toString()}`);\n    }\n    // \u003e\u003e\u003e\n    // rating_mu, rating_sig, perf_score, place\n    // 1629, 171, 1654, 0\n    // 1645, 130, 1663, 0\n    // Final rating: 1645 ± 100\n    //\n    // rating_mu, rating_sig, perf_score, place\n    // 1371, 171, 1346, 1\n    // 1355, 130, 1337, 1\n    // Final rating: 1355 ± 100\n}\n\nmain();\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchad3814%2Felo-mmr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchad3814%2Felo-mmr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchad3814%2Felo-mmr/lists"}