Calculateur d’allure ajustée selon la pente
L’allure ajustée selon la pente, ou GAP, estime l’allure sur plat qui demanderait environ la même énergie qu’une course sur une montée ou une descente régulière.
Lancer gratuitement
Indiquez l’allure observée en secondes par kilomètre et un pourcentage signé, positif en montée et négatif en descente. Le calculateur applique une courbe polynomiale publiée et fournit l’allure équivalente, le facteur de correction et le coût énergétique modélisé. Il facilite les comparaisons, sans remplacer la fréquence cardiaque, la puissance, le terrain, la météo ni les données individuelles.
Saisissez une allure et une pente cohérentes
Indiquez le nombre total de secondes par kilomètre : cinq minutes correspondent à 300 secondes. La pente est le dénivelé signé divisé par la distance horizontale, puis multiplié par 100 ; cinq mètres gagnés sur 100 mètres représentent environ +5%. Une descente se note négativement. Utilisez une pente moyenne uniquement pour un segment assez régulier. Si un parcours alterne fortes montées et descentes, découpez-le en sections et combinez ensuite les résultats par temps ou distance. Une moyenne de 0% peut masquer un coût important. L’altitude GPS étant souvent bruitée sur les segments courts, préférez une pente cartographiée ou lissée. La plage admise va de −45% à +45%, pour une allure comprise entre une et soixante minutes par kilomètre.
Comprenez la correction polynomiale
Le calcul emploie la courbe de Minetti : coût = 155.4g⁵ − 30.4g⁴ − 43.3g³ + 46.3g² + 19.5g + 3.6, où g désigne la pente décimale. À 0%, le coût modélisé vaut 3.6 joules par kilogramme et par mètre. Le facteur divise ce coût sur plat par celui de la pente, puis multiplie les secondes observées. Une montée donne donc une allure équivalente plus rapide. La descente n’est pas symétrique, en raison du freinage, des impacts et des lésions musculaires. Le coût renvoyé est la valeur du polynôme, pas une mesure calorique. L’arrondi final garantit des requêtes reproductibles. Cette équivalence énergétique ne promet pas que chaque personne pourra reproduire cette allure sur piste.
Interprétez le GAP comme un outil comparatif
Servez-vous du GAP pour comparer des segments que l’allure brute rendrait trompeurs. Un passage lent en montée peut correspondre à un effort intense, tandis qu’une descente rapide peut être moins exigeante qu’elle ne paraît. Le résultat est surtout pertinent lorsque surface, altitude, vent, fatigue et longueur sont comparables. Terrain technique, virages, escaliers, boue, chaleur et descentes difficiles peuvent dominer, car la formule ne connaît que l’allure et la pente moyenne. L’économie de course varie aussi selon la personne. Considérez les petits écarts comme du bruit et conservez les données brutes. Le navigateur et l’API partagent le même solveur JavaScript pur ; une requête API coûte $0.002. Croisez toujours le résultat avec l’effort perçu, la fréquence cardiaque et l’objectif de la séance.
Cas d’usage
Comparer des répétitions en côte
Convertissez chaque répétition régulière en allure équivalente sur plat avant de comparer les efforts.
Analyser les temps intermédiaires
Expliquez les kilomètres lents en montée et rapides en descente sans supprimer les données originales.
Normaliser un journal d’entraînement
Ajoutez des valeurs GAP déterministes afin d’examiner des séances similaires sur une même échelle.
Questions fréquentes
Combien coûte le calculateur ?
Chaque requête API coûte $0.002 ; le calcul dans le navigateur utilise le même solveur.
Une descente doit-elle avoir une pente négative ?
Oui. Saisissez un pourcentage négatif en descente et positif en montée.
Pourquoi saisir des secondes par kilomètre ?
Une unité numérique unique évite toute ambiguïté dans l’API. Multipliez les minutes par 60 et ajoutez les secondes.
Le GAP prédit-il mon allure réelle sur plat ?
Non. Il estime une équivalence énergétique ; forme, terrain, vent, altitude et fatigue restent déterminants.
Puis-je utiliser la pente moyenne d’un parcours vallonné ?
Avec prudence seulement. Calculez plutôt montées et descentes séparément, car leurs coûts sont asymétriques.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
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)Exemple de requête
{
"pace_seconds_per_km": 300,
"grade_percent": 5
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.grade_adjusted_pace",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
min_pace_seconds_per_km | 60 |
max_pace_seconds_per_km | 3600 |
min_grade_percent | -45 |
max_grade_percent | 45 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |