Calculadora VO2 máx test de escalón Astrand-Ryhming
Esta calculadora de VO2 máx del test de escalón Astrand-Ryhming estima el consumo máximo de oxígeno a partir de un protocolo de campo submáximo clásico: una serie cronometrada de subidas a un banco de altura y cadencia conocidas, o una potencia externa equivalente, junto con la frecuencia cardiaca en estado estable registrada al final del trabajo.
Ejecutar — gratis
Entrenadores, clases de fisiología del ejercicio y programas de bienestar emplean el enfoque Astrand-Ryhming cuando una prueba máxima gradual completa no es práctica, pero aún necesitan una referencia aeróbica numérica que pueda repetirse tras un bloque de entrenamiento. El motor aplica la forma cerrada de Buono del nomograma de Astrand con coeficientes fijos según el sexo, multiplica por el factor clásico de corrección por edad de Astrand cuando se solicita, y devuelve tanto litros absolutos por minuto como mililitros relativos por kilogramo por minuto. La carga de trabajo puede introducirse directamente en kilogramos-metro por minuto o en vatios, o calcularse sin conexión a partir de la masa corporal, la altura del escalón y los pasos por minuto mediante el factor mecánico estándar del test de escalón. No hay llamada de red, ni muestreo aleatorio, ni dependencia de la fecha actual. Úsela gratis en el navegador para el seguimiento personal y las demostraciones de aula, o llame a la API a $0.002 por solicitud exitosa cuando necesite fixtures reproducibles en software de entrenamiento, canalizaciones de investigación o informes automatizados de bienestar.
Cómo usarla
Ingrese sus datos en el formulario de arriba. La herramienta los revisa antes de calcular y muestra el resultado en la misma página.
Revise sus datos
Use las etiquetas y unidades indicadas en cada campo. Si falta algo o un valor está fuera del rango permitido, la página señala qué debe corregir.
Repita el cálculo o automatícelo
Use la herramienta web para comprobaciones individuales y la API cuando necesite integrar la misma capacidad en un flujo automatizado.
Qué puede hacer con ella
Obtenga una respuesta ahora
Ingrese un conjunto de valores y vea el resultado sin preparar una hoja de cálculo ni un script.
Compare escenarios
Cambie un valor a la vez y repita el cálculo para entender qué modifica el resultado.
Automatice el trabajo repetido
Use la API cuando necesite ejecutar el mismo cálculo dentro de su producto o flujo.
Preguntas frecuentes
¿Cuánto cuesta la calculadora de VO2 máx del escalón Astrand-Ryhming?
Es gratis en su navegador en esta página. A través de la API una solicitud exitosa cuesta $0.002; las entradas inválidas no se cobran.
¿Qué fórmula emplea esta herramienta?
La forma cerrada de Buono et al. (1989) del nomograma Astrand-Ryhming: males VO2max L/min = (0.00212×W + 0.299)/(0.769×HR − 48.5)×100; females VO2max L/min = (0.00193×W + 0.326)/(0.769×HR − 56.1)×100, con W en kgm/min, corrección opcional por edad de Astrand, y VO2 máx relativo = L/min×1000/weight_kg.
¿Qué ocurre si la frecuencia cardiaca, el peso, la edad o la carga son cero o negativos?
La entrada se rechaza con invalid_input. Los valores no positivos no son válidos para la estimación Astrand-Ryhming.
¿Debe introducir la carga, o puede usar la altura del escalón y la cadencia?
Cualquiera de las dos opciones sirve. Suministre workload (kgm/min o watts), u omitalo y el motor calcula W a partir de weight, step_height_cm (por defecto 40 cm male / 33 cm female) y steps_per_min (por defecto 22.5).
¿Es esto un diagnóstico médico de la aptitud cardiorrespiratoria?
No. Es una estimación determinista de prueba de campo a partir de fórmulas de nomograma publicadas y factores de edad. No sustituye la prueba de esfuerzo gradual ni el consejo clínico.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/health/vo2max-astrand-step \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"heart_rate":150,"sex":"male","age":30,"weight":70}'const res = await fetch("https://api.kit.forhosting.com/health/vo2max-astrand-step", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"heart_rate": 150,
"sex": "male",
"age": 30,
"weight": 70
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/vo2max-astrand-step",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"heart_rate": 150,
"sex": "male",
"age": 30,
"weight": 70
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/vo2max-astrand-step", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"heart_rate":150,"sex":"male","age":30,"weight":70}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"heart_rate":150,"sex":"male","age":30,"weight":70}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/vo2max-astrand-step", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"heart_rate": 150,
"sex": "male",
"age": 30,
"weight": 70
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.vo2max_astrand_step",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |