Capacidad del equipo por sprint: factor de enfoque y puntos
Convierta la disponibilidad individual en un compromiso realista antes de planificar el sprint.
Ejecutar — gratis
Introduzca las horas disponibles de cada integrante, aplique un factor de enfoque común y obtenga la capacidad útil del equipo en horas o puntos de historia. El cálculo separa la disponibilidad bruta del tiempo efectivo de entrega, de modo que reuniones, soporte, coordinación y otras tareas inevitables queden reconocidas. El desglose individual facilita revisar el resultado con el equipo y trasladarlo a una hoja de planificación, una previsión o un registro de capacidad.
Parta de la disponibilidad real, no de jornadas teóricas
Una previsión fiable comienza con las horas que cada persona puede dedicar realmente al sprint. Antes de introducirlas, descuente vacaciones, festivos, formación, citas conocidas, guardias y tiempo asignado a otras iniciativas. Así obtiene una base transparente que el equipo puede revisar y corregir. La calculadora suma horarios distintos sin suponer que todas las personas trabajan igual. Una persona a tiempo parcial, un especialista compartido y otra con jornada completa pueden figurar en el mismo plan. Los nombres identifican las filas del desglose y deben ser únicos. Puede indicar cero horas si mantener a una persona en la lista aporta contexto. El total resultante representa el presupuesto temporal previo a cualquier ajuste por tareas no planificadas.
Use el factor de enfoque para reflejar la realidad
El factor de enfoque es el porcentaje del tiempo disponible que se espera dedicar a entregas planificadas. Un 70 por ciento reserva esa parte para el trabajo del sprint y reconoce en el resto ceremonias, revisiones, colaboración, soporte e interrupciones habituales. La calculadora aplica un único factor a todo el equipo y muestra tanto las horas originales como las horas enfocadas. Siempre que sea posible, estime el porcentaje con datos de varios sprints representativos y revíselo cuando cambie el entorno. Un equipo nuevo, una publicación importante o una rotación de soporte pueden requerir valores diferentes. Solo se admiten valores de cero a cien; cualquier valor externo se rechaza para evitar que un error tipográfico genere un compromiso engañoso.
Elija horas o convierta el plan a puntos de historia
Seleccione horas cuando el equipo planifique directamente por tiempo o necesite el resultado menos interpretativo. En ese caso, la capacidad es la disponibilidad total multiplicada por el factor de enfoque. Elija puntos de historia únicamente si el equipo ya utiliza una relación local estable entre horas enfocadas y un punto. La calculadora divide las horas enfocadas entre ese valor. Esta conversión es una convención de planificación, no una medida universal de productividad, y no sirve para comparar equipos. El desglose muestra las horas enfocadas y la contribución de cada persona, mientras el total del equipo sigue siendo la cifra principal. Los resultados conservan fracciones y se redondean de forma estable a cuatro decimales; su organización puede redondear después según su propia política.
Qué puede hacer con ella
Preparar la planificación
Convierta horarios ajustados por ausencias en una cifra revisable antes de seleccionar trabajo del backlog.
Modelar cambios de personal
Compare la capacidad cuando un especialista compartido, una incorporación o una guardia cambien las horas disponibles.
Documentar los supuestos
Registre disponibilidad, factor de enfoque, relación de conversión y aportaciones junto al compromiso del sprint.
Preguntas frecuentes
¿Qué significa el factor de enfoque?
Es el porcentaje de horas disponibles que se prevé dedicar a entregas planificadas tras considerar la carga habitual.
¿Puede superar el 100 por ciento?
No. El intervalo permitido es de 0 a 100; cualquier valor externo devuelve un error de entrada no válida.
¿Cómo se calculan los puntos de historia?
Las horas enfocadas del equipo se dividen entre la relación indicada de horas por punto. El valor predeterminado es seis.
¿Deben compararse los puntos entre equipos?
No. La conversión es una convención local y no normaliza la productividad entre equipos.
¿Qué debe excluir de las horas disponibles?
Excluya ausencias, festivos, formación, otras asignaciones y cualquier tiempo no disponible durante el sprint.
¿Cuánto cuesta un cálculo mediante API?
Cada solicitud mediante API cuesta $0.002. También puede calcularlo directamente en esta página.
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/biz/team-capacity-planning \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"team_members":[{"name":"Avery","available_hours":60},{"name":"Morgan","available_hours":48},{"name":"Riley","available_hours":72}],"focus_factor":70}'const res = await fetch("https://api.kit.forhosting.com/biz/team-capacity-planning", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"team_members": [
{
"name": "Avery",
"available_hours": 60
},
{
"name": "Morgan",
"available_hours": 48
},
{
"name": "Riley",
"available_hours": 72
}
],
"focus_factor": 70
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/team-capacity-planning",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"team_members": [
{
"name": "Avery",
"available_hours": 60
},
{
"name": "Morgan",
"available_hours": 48
},
{
"name": "Riley",
"available_hours": 72
}
],
"focus_factor": 70
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/team-capacity-planning", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"team_members":[{"name":"Avery","available_hours":60},{"name":"Morgan","available_hours":48},{"name":"Riley","available_hours":72}],"focus_factor":70}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"team_members":[{"name":"Avery","available_hours":60},{"name":"Morgan","available_hours":48},{"name":"Riley","available_hours":72}],"focus_factor":70}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/team-capacity-planning", 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
{
"team_members": [
{
"name": "Avery",
"available_hours": 60
},
{
"name": "Morgan",
"available_hours": 48
},
{
"name": "Riley",
"available_hours": 72
}
],
"focus_factor": 70
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.team_capacity_planning",
"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. |