/docs · Vetta Trainer
Cómo funciona el motor
Sin caja negra. Acá explicamos exactamente cómo el motor de Vetta arma tu semana: arquetipos, filosofías, periodización, prevención de lesión. Si lo entendés, podés discutirlo con tu coach.
Arquetipos paramétricos
El motor no tiene una biblioteca de entrenos fijos. Tiene 66 arquetipos paramétricos — plantillas con rangos. Por ejemplo el arquetipo "cuesta larga Z2" tiene rango de duración 45-90 min, intensidad Z2 (75% LTHR), desnivel 200-600m.
Cuando se instancia, el arquetipo se rellena con valores específicos para vos: duración 60 min, FC objetivo 145-152 lpm, D+ 350m. Cada semana las variantes son distintas — nunca se repite el mismo entreno.
Filosofías como sistema de pesos
Hay 13 filosofías hardcodeadas: Daniels VDOT, Lydiard, Kilian montaña, Coggan potencia, sweet-spot, polarizado clásico, Norwegian threshold (Ingebrigtsen/Bakken), MTB XC, natación CSS, triatlón clásico, ultra Koop, polarizado ciclismo, magness.
Una filosofía NO es una biblioteca de entrenos separada. Es un perfil de pesos sobre los mismos 66 arquetipos. Polarizado clásico usa mucho los arquetipos Z2 y Z4-5, casi cero los Z3. Sweet-spot pondera fuerte el Z3-bajo. La estructura es la misma; los pesos cambian.
Periodización por fase
Cuatro fases: base, build, peak, taper. La fase se elige automáticamente según los días hasta tu próxima carrera A (si tenés objetivo cargado).
Cada fase modula el volumen y la mezcla de familias. Base prioriza endurance y strength_endurance. Build sube threshold y vo2max. Peak afina race-specific. Taper baja volumen 22-38% (running -22%, ciclismo -38%, natación -35%) y filtra long + strength_endurance.
ramp_seguro: prevención de lesión
El motor nunca propone un salto de volumen mayor a +8% semana a semana. La regla del 10% es popular pero la evidencia (Gabbett 2016) muestra que <10% es zona segura, no exacta. Vetta usa +8% para tener margen.
Si tu ACWR > 1.3 durante 5+ días seguidos en las últimas 2 semanas, el motor sugiere semana de descarga (-25-30% volumen) automáticamente.
Semilla determinista por semana
Dos visitas al mismo /training en la misma semana ISO devuelven la MISMA semana. No hay aleatoriedad oculta — el seed es función de (user_id, año_iso, semana_iso, fase, filosofía, días_de_entreno).
Cambiás un parámetro (más días por semana, otra filosofía, otra fase) → la semana cambia. Mantenés los parámetros → la semana queda estable lunes-domingo.
Inventario y restricciones reales
Cada arquetipo declara su `requiere` (equipo necesario). El motor solo prescribe lo que efectivamente tenés marcado en tu perfil.
Si tu inventario marca "sin bici" o "bici no disponible hasta el 2026-06-15" (vacaciones, viaje, roster Veladero), el motor excluye arquetipos de ciclismo hasta esa fecha y vuelve a habilitarlos automáticamente al vencer.
Zonas: FC vs ritmo vs potencia vs CSS
Cada arquetipo declara la intensidad como token de zona (Z1..Z5b, P1..P7 ciclismo, S1..S5 natación). El motor resuelve esos tokens a números concretos al instanciar, según tu `zone_mode` y los datos disponibles.
Detalles del cálculo de zonas en /docs/zonas. Resumen: FC por Karvonen reserve, ritmo por Daniels VDOT, potencia por % FTP (Coggan), CSS por test 400+200m.
Donde NO ayuda el motor
El motor NO reemplaza al coach humano para correcciones técnicas (forma de pisada, técnica de natación, gestión emocional pre-carrera). Esa parte es humana.
El motor tampoco hace decisiones que requieren historia clínica (lesiones recurrentes, alergias, embarazo). Cuando tu situación es médica, hablalo con un profesional, no con la app.