Calculadora de ritmo ajustado por inclinação
O ritmo ajustado pela inclinação, conhecido como GAP, estima o ritmo no plano que exigiria aproximadamente a mesma energia de uma corrida em subida ou descida constante.
Executar grátis
Informe o ritmo observado em segundos por quilômetro e a inclinação percentual com sinal: positiva na subida e negativa na descida. A calculadora aplica uma curva polinomial publicada do custo de corrida e retorna o ritmo equivalente no plano, o fator de correção e o custo energético modelado. O resultado é determinístico e ajuda a comparar esforços, mas não substitui dados de frequência cardíaca, potência, terreno, clima ou desempenho individual.
Informe ritmo e inclinação de forma consistente
Forneça o ritmo observado como o total de segundos por quilômetro. Um quilômetro em cinco minutos, por exemplo, corresponde a 300 segundos. A inclinação é a variação vertical com sinal dividida pela distância horizontal e multiplicada por 100; ganhar cinco metros em 100 metros horizontais equivale a cerca de +5%. Use um número negativo na descida. Os dois campos são obrigatórios, pois não há como ajustar um ritmo sem o terreno. Utilize a inclinação média somente em um trecho razoavelmente uniforme. Se o percurso alternar subidas e descidas fortes, divida-o em segmentos, calcule-os separadamente e combine por tempo ou distância. Resumir um trajeto ondulado como 0% pode ocultar um custo relevante. A altitude do GPS costuma apresentar ruído em trechos curtos; prefira uma inclinação mapeada ou suavizada. O intervalo aceito vai de −45% a +45%, com ritmo entre um e sessenta minutos por quilômetro.
Entenda a correção polinomial
O cálculo utiliza a curva polinomial de custo energético de Minetti: custo igual a 155.4g⁵ − 30.4g⁴ − 43.3g³ + 46.3g² + 19.5g + 3.6, em que g é a inclinação em formato decimal. Na inclinação zero, o custo modelado é 3.6 joules por quilograma por metro. O fator divide esse custo no plano pelo custo da inclinação informada e multiplica os segundos observados por quilômetro. Assim, a subida produz um ritmo equivalente no plano mais rápido. Uma descida moderada também pode produzir isso, mas a relação não é espelhada devido à frenagem, ao impacto e ao dano muscular. O custo retornado é o valor do polinômio, não uma medição direta de calorias. O arredondamento ocorre apenas ao final para manter solicitações repetidas estáveis. Trata-se de equivalência energética segundo o modelo, não de uma garantia de ritmo real em pista.
Interprete o GAP como ferramenta de comparação
Use o ritmo ajustado para comparar trechos ou treinos que pareceriam enganosos em uma tabela de ritmos. Uma parcial lenta na subida pode representar esforço forte, enquanto uma descida rápida talvez exija menos do que o ritmo bruto sugere. O GAP é mais informativo quando piso, altitude, vento, fadiga e extensão são comparáveis. Trilha técnica, curvas, escadas, lama, calor e descidas difíceis podem dominar o resultado, porque a fórmula considera apenas ritmo e inclinação média. A economia de corrida individual também varia, principalmente em declives acentuados. Trate diferenças pequenas como ruído. Para uma análise organizada, guarde o ritmo e a inclinação originais junto ao resultado. O navegador e a API usam o mesmo solucionador JavaScript puro, e cada solicitação API custa US$ 0,002. Interprete o valor com percepção de esforço, frequência cardíaca e objetivo do treino.
Casos de uso
Comparar intervalos com inclinação
Converta cada repetição em subida uniforme para um ritmo equivalente no plano antes de comparar esforços.
Revisar parciais de prova
Explique quilômetros lentos na subida e rápidos na descida sem descartar os dados originais.
Normalizar um diário de treino
Acrescente valores GAP determinísticos aos registros para revisar sessões semelhantes em uma escala comum.
Perguntas frequentes
Quanto custa a calculadora?
Cada solicitação API custa US$ 0,002; o cálculo no navegador utiliza o mesmo solucionador.
A inclinação de descida deve ser negativa?
Sim. Informe uma porcentagem negativa na descida e positiva na subida.
Por que o ritmo deve estar em segundos por quilômetro?
Uma única unidade numérica evita ambiguidades na API. Multiplique os minutos por 60 e some os segundos restantes.
O GAP prevê meu ritmo real em uma prova plana?
Não. Ele estima apenas equivalência energética; condicionamento, terreno, vento, altitude e fadiga continuam relevantes.
Posso usar uma inclinação média em um percurso ondulado?
Somente com cautela. É melhor calcular subidas e descidas separadamente porque os custos são assimétricos.
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/health/grade-adjusted-pace \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pace_seconds_per_km":300,"grade_percent":5}'const res = await fetch("https://api.kit.forhosting.com/health/grade-adjusted-pace", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pace_seconds_per_km": 300,
"grade_percent": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/grade-adjusted-pace",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pace_seconds_per_km": 300,
"grade_percent": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/grade-adjusted-pace", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pace_seconds_per_km":300,"grade_percent":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pace_seconds_per_km":300,"grade_percent":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/grade-adjusted-pace", 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
{
"pace_seconds_per_km": 300,
"grade_percent": 5
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.grade_adjusted_pace",
"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.
Limites
min_pace_seconds_per_km | 60 |
max_pace_seconds_per_km | 3600 |
min_grade_percent | -45 |
max_grade_percent | 45 |
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. |