Skip to main content

/docs · Vetta Trainer

Inventory and real-world constraints

The engine only prescribes what you actually have available. Here's how time-bounded inventory works — key for altitude roster, vacations, borrowed gear and anything 'sometimes yes, sometimes no'.

Gear the engine understands

Inventory has 9 items: road bike, mountain bike (MTB), indoor trainer, treadmill, pool, gym, poles, weighted vest, power meter on the bike.

Every archetype declares its `requiere` — what gear it needs to be prescribed. Without the gear ticked, the archetype is excluded from sampling.

Permanent vs time-bounded inventory

Default is permanent: tick "I have a pool" and it stays until you change it.

Each item also accepts an `equipamiento_hasta` field: a date until which the gear is NOT available. Past that date, the engine auto-reinstates it.

Use case 1: altitude roster (Veladero)

Renso works 14 days at Veladero (13800 ft) and 14 in San Juan (2130 ft). At Veladero there's a gym but no pool or comfortable road bike.

Solution: in profile → roster set with F days (San Juan) and V days (Veladero). The engine automatically: (1) on V days uses only Z1-Z2 with HR correction; (2) excludes pool sessions on V days; (3) prioritizes power-hike over running at altitude.

Use case 2: vacation (a week without gear)

You travel 7 days to a hotel with a gym but no bike. Set `equipamiento_hasta=2026-06-15` on "road bike" and "mountain bike".

During that window the engine keeps prescribing but no sessions requiring a bike. When the date passes (Jun 16), bikes are auto-reinstated. No further action needed.

Use case 3: bike borrowed for N days

You borrow a bike until 2026-07-30. Add "road bike" with `equipamiento_desde=2026-07-15` and `equipamiento_hasta=2026-07-31`.

Only in that window does the engine include bike sessions. Before and after, it skips them. Useful too for gear arriving later (power meter, new trainer).

Use case 4: minor injury

Ankle sprain. You shift to power-hike + bike + pool for 3 weeks. Set `equipamiento_hasta=2026-06-10` on "outdoor running" (if inventory supports it) or manually filter in /training → don't include running this week.

The engine automatically reassigns volume to bike + swim + gym while the layoff lasts.

Known limitation

Today we model "I don't have it until date X" (covered: vacation, roster) and "I only have it from X to Y" (covered: borrowed bike).

The case "I have it always except on Wednesdays" (gym only weekdays) is not modeled. Workaround: mark it permanent and let the athlete adjust manually on the day off. Future improvement if it becomes common.

Editing from /training

In /training, section "Engine Settings" → "Equipment". Each item is a checkbox with a date input next to it for the temporary layoff.

Changes take effect on the next week generation. If you change something on Monday and the week is already visible, you can force regen with the "Refresh week" button.