Identify the athlete, choose how the finish time gets built, confirm the course, run it. Every step stays open the whole time — go back and change anything, in any order.
Build v7 · 2026-08-23 — five steps: identify, verify the index, verify the race, what the index projects, training files. v7 adds the live utmb.world lookup and the eight-tab XLSX workbook. If you are seeing a benchmark race, an anchor, a sanity check or a “verify the tables” step, you have an older file open — check this stamp against the one you were sent.
● Training files are decoded in this browser and never uploaded. Only the utmb.world lookup leaves the machine.
Where it comes from. Search utmb.world, or paste the athlete’s profile link
— utmb.world/runner/1261043.rod.farvard. The link is the safe one; names
collide constantly, and there are two Fei GAOs.
What the lookup does. Served from the Cloudflare deploy it reads the profile for real — their name, every category index, and their result history — and fills step 2 with the index for whichever category this race falls into. Opened straight off disk there is no way through to utmb.world, so the button opens the profile and you take the index by eye. Either way nothing downstream depends on it.
Where it comes from. Their utmb.world profile. Take the score for the category this race falls into — 20K, 50K, 100K or 100M, set by km-effort — and if that category is blank, their General Index.
Why these are the only two fields. The tool looks the index up against the actual finisher lists. There is no best index to enter, no index at this distance, and nothing to read off the results yourself.
Faster or slower than runners at this index actually finish. This is what you know and the results page does not.
Both optional. A time typed here wins over everything; a previous run on this course wins over the finisher lists.
Optional. Twelve months of .fit files
— a TrainingPeaks export works as-is. Skip it and the plan still runs.