The full path from "I have a race" to "I have a finished race recap" in 8 steps.
The Hub structures race planning as a deterministic workflow. Run it the same way every time and the saved race plan stays consistent.
Athlete or coach creates the race at /my-races/ (athlete side)
or /coach/race/new/ (coach side). Required: athlete, name,
date, sport / distance. See Adding a race.
Set the priority (A, B, or C; see A vs B vs C race tagging) and pick the periodization approach for this race build (linear, reverse linear, block, undulatory). Periodization is a property of the race, not of the macrocycle. See Choosing a periodization model.
Open /admin/race/<race_id>/readiness/. Look at how fresh the
athlete's CSS, CP / FTP, run threshold, weight, and other
metrics are. Retest anything expired or missing before running
the wizard. See Race readiness checklist.
Open /admin/race-planning-wizard/<race_id>/. Work through the
seven calculator steps (CSS, CP, CdA, bike plan, finish time,
calories, fueling). Each step saves a CalculatorResult linked
to this race. See
Race planning wizard tour and
The race plan: where saved outputs live.
Use the saved wizard outputs (bike target watts, run pacing, hour-by-hour fueling) as your race day plan. Print or screenshot the calculator outputs you want trackside.
Open /admin/race/<race_id>/import-results/. Paste timing or
upload the race FIT. The Hub builds the post-race comparison
against the saved wizard targets. See
Importing race results.
Athlete fills /my-races/<race_id>/recap/. The coach reads the
recap alongside the imported timing and the race FIT to close
the loop on this race and inform the next one. See
Filing a race recap.
You can skip steps but each one improves the next. A race with no priority falls into the planner with default rules. A race with no readiness check still runs the wizard but with the projection drift you accept by ignoring stale metrics.
Still stuck? Ask us a question and we'll write up an answer.
Ask a question