Skip to content
For captains

You are the one who comes back next year.

Everything a captain does before the race happens on a keyboard, with a real screen and reliable internet. Everything a captain does during the race happens on a phone, in the cold, while being asked what time it is. RelayJoe treats those as two different problems.

Before the race

Build it once, in a browser.

Roster entry is data entry. It does not belong on a phone, so RelayJoe gives captains a proper web app for it.

  • Pick the race, set the wave

    Choose your event and year, then set your team’s start time and time zone. Times render in race-local for everyone, so the runner flying in from Denver whose phone never switched still sees the right clock.

  • Add runners with a pace estimate

    Name, email, rotation slot, and a rough 10K time. The estimate does not have to be good — RelayJoe corrects it against reality after that person’s first leg, and the correction is usually 10 to 20 percent.

  • Set the rotation, or take the default

    The standard rotation derives itself from your team size and the course. Pin a specific person to a specific leg when someone needs the short one, or the one in daylight.

  • Send join links

    Each runner gets their own link, by email or copied into whatever group chat your team already lives in. They tap it, confirm they are Sarah, and they are on the team.

  • Preview the whole schedule

    See every leg with its projected window before anyone books a flight. This is where you find out that leg 19 lands at 3am and Dave should probably not have it.

  • Write your own phrases

    The encouragement a runner sees mid-leg comes from a pool you can extend or replace. Relay teams run on in-jokes; this is where yours go.

During the race

Stop being the only person who knows anything.

The captain’s view is everything a runner sees, plus the controls for keeping the race honest when reality diverges from the plan.

  • You see the full range

    Runners get a single be-ready time so they are not doing interval arithmetic in a tent. You get both bounds, because you are the one deciding whether the next van has time to find food.

  • Fix the missed tap

    Someone will forget to hit Finished. Correct the time and move on. Nothing is overwritten — a correction supersedes the original rather than erasing it, so the history stays honest.

  • Substitute mid-race

    Swap a runner and the remaining rotation re-derives from that point. Legs already run stay credited to whoever ran them, and a finished leg cannot be reassigned by accident.

  • Flag an overdue runner

    A leg that runs past its late bound flags itself. Red appears for this and for nothing else in the entire app, so when you see it you already know what it means.

  • Watch every device sync

    See which phones have checked in and how recently. A phone that has been dark for two hours is not a mystery, it is a labelled row.

  • Revoke a device

    Someone loses a phone, or hands one to the wrong person. Pull that device’s access without disturbing anyone else on the team.

The model

Five things it learns, and one thing it refuses to do.

Pace is modelled multiplicatively, which is a technical way of saying that a leg that costs one runner ten percent costs everyone about ten percent. Five terms stack up:

Base pace
The 10K time you entered for them. A starting point, and nothing more.
Leg difficulty
Pooled across everybody. Every observation of the yellow loop, by any runner on any team, sharpens the estimate for every runner who has not run it yet.
Runner bias
The systematic gap between what someone claimed and what they run. The highest-value correction in the model, and estimable from a single leg.
Fatigue
How much the team slows per cumulative mile. Fitted at team level, because eight people times three legs is not enough data to fit eight individual curves and pretending otherwise would be dishonest.
Night penalty
What running a technical trail in the dark actually costs, applied to legs that fall in darkness.
The refusal

RelayJoe will not give you a point estimate it cannot defend. Projected times come with an early and a late bound, and the wider that gap gets the less precise the display becomes — from an exact time, to a time with a window, to around 7:30 AM, to Saturday late morning. A number that pretends to be exact and then moves twenty minutes every hour is worse than no number, because you were going to plan sleep around it.

Ranges are also asymmetric on purpose. Blowing up on a night leg is common; dramatically beating your projection is not. A symmetric error bar around a midpoint would be a prettier lie.

Everyone else

One link for the people waiting at the finish.

Generate a spectator link and send it to whoever is asking. It opens in any browser with no account and no app, shows who is out and when the team is projected to finish, and you can rotate it whenever you want.

It is also your fallback for the one person on the team who cannot get the app installed, which there always is.

Spectator view

relayjoe.com/watch/7QK4M2

Out on courseMarcus B. · 41 min
Up nextSarah K. · 11:50 PM
Against schedule8 min behind
Projected finishSaturday late morning
Next step

Tell us which relay you are captaining.