Calculadora Elo
Um jogador de 1400 que vence um de 1600 com fator K de 32 ganha cerca de 24 pontos, e o adversário perde o mesmo. Informe os dois ratings, o resultado e o fator K da sua liga para ver os novos ratings. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Esta calculadora de atualização de rating Elo transforma o resultado de uma partida em novos ratings para os dois jogadores. Informe o rating Elo atual de cada um, indique se o jogador A venceu, empatou ou perdeu e forneça o fator K positivo usado pela sua liga ou jogo. O resultado inclui pontuação esperada, pontuação real, variação com sinal e novo rating de cada competidor. A ferramenta ajuda você a validar códigos de classificação, explicar ajustes aos jogadores ou automatizar torneios sem depender de planilhas.
Informe os ratings e descreva o resultado com clareza
Comece pelos dois ratings imediatamente anteriores à partida. Jogador A e jogador B são rótulos usados neste cálculo, e não funções permanentes; portanto, qualquer competidor pode ocupar qualquer posição. Essa perspectiva explícita evita um erro comum de integração, no qual a indicação do vencedor é associada ao rating errado.
Por fim, informe o fator K estabelecido pela sua política de classificação. Ele precisa ser maior que zero. Um valor maior torna os ratings mais sensíveis a cada partida, enquanto um valor menor os deixa mais estáveis.
A calculadora não escolhe esse fator porque organizações costumam variá-lo conforme experiência, idade, evento, faixa de rating ou quantidade de jogos. Use o valor previsto pelo seu sistema e mantenha-o no registro da partida para futuras auditorias. Os ratings podem ser quaisquer números finitos, permitindo trabalhar com escalas Elo que usam centros diferentes.
Entenda a pontuação esperada e a variação do rating
O Elo primeiro converte a diferença entre ratings em uma pontuação esperada. Esta calculadora usa a expressão logística padrão com escala de 400 pontos: a expectativa do jogador A é um dividido por um mais dez elevado à diferença entre B e A, dividida por 400. O jogador B recebe a expectativa complementar, fazendo com que as duas somem um.
A pontuação real é então comparada com essa expectativa. A diferença multiplicada pelo fator K produz a variação do rating. Um favorito que vence geralmente ganha pouco, pois esse resultado já era esperado; uma vitória do azarão rende bem mais pontos.
Um empate pode elevar o rating do jogador menos cotado e reduzir o do mais cotado. As duas variações com sinal são opostas, preservando o total combinado antes do arredondamento de exibição. A saída apresenta rating anterior, pontuação esperada, pontuação real, variação e novo rating de cada jogador.
Aplique atualizações de forma consistente no seu fluxo
Em uma partida isolada, salve os novos ratings retornados como valores iniciais para a próxima partida de cada competidor. Em uma sequência, a ordem faz diferença: calcule o primeiro resultado, atualize os registros envolvidos e só então processe o encontro seguinte com os ratings mais recentes. Não calcule uma rodada inteira usando valores antigos, a menos que o regulamento determine explicitamente atualizações em lote.
Guarde os ratings originais, o resultado e o fator K junto da variação retornada, em vez de armazenar apenas o número final; esses dados explicam exatamente o movimento. Esta capacidade implementa o Elo comum para dois jogadores, e não variantes com margem de vitória, equipes, pisos de rating, bônus provisórios, inatividade ou arredondamento próprio de federações. Se suas regras incluírem esses recursos, use este resultado como cálculo base e aplique somente ajustes documentados em uma etapa separada e testável.
Casos de uso
Atualizar a classificação de um torneio
Aplique o fator K documentado após cada resultado e salve os novos ratings dos dois jogadores para a rodada seguinte.
Validar um software de ratings
Compare pontuações esperadas e variações do aplicativo com uma saída de referência determinística em testes automatizados.
Explicar o ajuste após uma zebra
Mostre por que o azarão ganhou mais pontos apresentando expectativa, pontuação real e variação com sinal.
Perguntas frequentes
Qual fórmula Elo é usada?
É usada a expectativa logística padrão para dois jogadores com escala de 400 pontos, seguida por novo rating = rating anterior + K × (pontuação real − pontuação esperada).
Como representar um empate?
Defina result como draw. Cada jogador recebe pontuação real de 0.5; o rating mais baixo pode subir enquanto o mais alto perde a mesma quantidade.
O fator K pode ser zero ou negativo?
Não. O fator K precisa ser um número finito maior que zero; valores iguais ou menores que zero geram um erro de entrada inválida.
Os novos ratings são arredondados para inteiros?
Não. Os campos calculados são retornados com até seis casas decimais. Faça arredondamento inteiro separadamente apenas se o regulamento da sua competição exigir.
Quanto custa uma solicitação?
O cálculo também pode ser executado no navegador com o mesmo solucionador determinístico.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/game/elo-rating-update \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"player_a_rating":1600,"player_b_rating":1400,"result":"player_a_win","k_factor":32}'const res = await fetch("https://api.kit.forhosting.com/game/elo-rating-update", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"player_a_rating": 1600,
"player_b_rating": 1400,
"result": "player_a_win",
"k_factor": 32
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/elo-rating-update",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"player_a_rating": 1600,
"player_b_rating": 1400,
"result": "player_a_win",
"k_factor": 32
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/elo-rating-update", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"player_a_rating":1600,"player_b_rating":1400,"result":"player_a_win","k_factor":32}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"player_a_rating":1600,"player_b_rating":1400,"result":"player_a_win","k_factor":32}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/elo-rating-update", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"player_a_rating": 1600,
"player_b_rating": 1400,
"result": "player_a_win",
"k_factor": 32
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.elo_rating_update",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Informe os ratings e descreva o resultado com clareza
Em seguida, selecione o resultado do ponto de vista do jogador A: player_a_win significa que A marcou 1 e B marcou 0, draw atribui 0.5 a cada um e player_b_win inverte as pontuações da vitória.
Entenda a pontuação esperada e a variação do rating
Os campos decimais calculados são arredondados para seis casas, garantindo JSON previsível e testes reproduzíveis, mas a atualização é calculada antes desse arredondamento de apresentação.
Aplique atualizações de forma consistente no seu fluxo
O endpoint é determinístico, portanto as mesmas quatro entradas sempre geram o mesmo JSON. Cada solicitação de API custa US$ 0,002, e o executor no navegador usa a mesma lógica pura.