Pre-race readiness across 5 dimensions (volume / specific work / thresholds / recovery / fueling) with green/amber/red verdicts. Designed for the taper but usable any time.
The race-readiness report is a pre-race version of the post-race recap. Instead of comparing predicted vs actual splits, it scores the state of the preparation across five dimensions and surfaces the underlying data so you can see exactly what's behind each rating.
Designed to be most useful during the taper window (1–3 weeks
out from an A-race), but the manual entry point on /my-races/
means coach + athlete can pull it up any time.
Permissions match the recap page: athletes see their own races, coaches see athletes they coach, superusers see all.
Each dimension gets a green / amber / red badge with a one-line "why." Designed to be glanceable for the coach and actionable for the athlete.
| Dimension | Green when… | Amber when… | Red when… |
|---|---|---|---|
| Volume | 26-wk avg TSS ≥ distance-specific floor | within range but light | well below the amber floor |
| Specific work | ≥3 sessions ≥70% of each leg's target | 1-2 sessions in any leg | 0 sessions in any leg |
| Thresholds | CP + run-CP + CSS all on file, ≤ 90 days | present but stale | critical metric missing |
| Recovery | last week 40–70% of prior 4-wk avg (in taper) | not yet tapering / over-tapered | last week ≥ 100% of prior avg in taper |
| Fueling | plan saved + ≥3 tested entries logged | plan saved but no logged actuals | no plan at all |
Volume floors (auto-applied per race distance):
These are deliberately lenient floors for the general case. A real coach tunes to the individual athlete — treat the verdict as a starting point for the conversation, not a prescription.
For each leg, counts sessions in the last 6 months whose duration OR distance reached ≥70% of the race leg's target.
Latest value + age + 6-month delta for:
The trend arrow (↑/↓/→) is colour-coded by direction-of-better: green when the change is good for that metric, red when bad. A stale pill (>90 days) or very-stale pill (>180 days) flags data that's overdue for a refresh.
best_pace_curve and aggregated to the
fastest across all sessions./km formatting.Pulls the model prediction from a saved triathlon_finish_time
calculator result (same source as the recap) and shows it next to
the goal split for each leg + the finish row.
The "Predicted splits — model vs goal" section now sources the
Model column from the physiology-derived feasibility engine
(athlete's current CP, CSS, run pace threshold → projected splits).
This is the same engine that powers the green/amber/red feasibility
gauge on /my-races/, so the readiness page and the dashboard
now agree on what the athlete is realistically capable of.
If the athlete is missing the metrics the feasibility engine needs, the Model column falls back to the saved finish-time calculator result (legacy behaviour). A caption under the section title tells you which engine produced the numbers ("physiology-derived" vs "saved calculator result").
Also new: a [⬇ Download PDF] button in the top-right of the
report. Generates a 2-page A4 with the verdict grid, predicted
splits, thresholds table, weekly TSS chart, monthly summary,
race-specific work, and best performances. Filename auto-generated
from race name + date (e.g. readiness-IM-70-3-HAWAII-2026-05-30.pdf).
Still stuck? Ask us a question and we'll write up an answer.
Ask a question