TeamSplits gives your entire team real-time finish projections, leg-by-leg splits, and a live leaderboard. No usernames or passwords required. Everything syncs seamlessly via a single shared link.
Do this before race day so your crew is ready to go.
Create your team
From the home page, tap Create Team and choose your race (e.g. Hood to Coast 2026).
Add runners and paces
Enter each runner's name and expected pace in minutes per mile. You can update this per leg later, but it's important for estimating each leg's start time.
Share the link
Copy the team link and send it to your crew. Anyone who opens it jumps straight into the live dashboard — no sign-up, no password required. For people who should only watch (not record times), share the view-only link from the settings menu instead.
Set your start time
Enter your official wave start time on the team page once it's confirmed. Tapping Start Leg 1 will overwrite this with your actual start time anyway, so don't stress if it changes.
One person — usually the van captain — should be in charge of recording times. Everyone else can watch on the shared link.
When your runner crosses the exchange point and takes off, tap the Finish Leg • Start Leg button in the Now Running section. Do this the moment they leave — the time is recorded immediately.
Tapped Start or Finish by accident? An Undo button briefly appears right after each exchange. You can also open the settings menu and tap Undo there.
Some leg cards include a Directions link that opens navigation to where that runner will receive the handoff. These links are unofficial and provided for convenience only — always cross-reference with your official race map and use your best judgment, especially if conditions or course routing change on race day.
Tap the runner name on any leg card to open the leg editor. From there you can swap who is running that leg or set a custom pace just for that leg — useful when someone subs in or you know a particular segment will be faster or slower than usual.
If the actual course differs from the preset — a reroute, a closed trail, or a modified segment — tap the runner name on any unstarted leg to open the leg editor and change the distance. Projections update immediately. For trail races with colored loops, check "Apply to all unstarted loops of that color" to update every matching loop at once.
If you missed recording a leg or were offline during a handoff, use Jump to Leg from the settings menu to move ahead without saving bad data for the legs in between.
Supporters and family can follow live without being able to change anything. Find the view-only link in the settings menu and share it instead of the main team URL.
The leaderboard shows all TeamSplits teams running the same race. Tap the Leaderboard button in the header to see rankings by live progress, projected finish time, overall pace, and predicted passes — see the Leaderboard section below for what each one means.
The leaderboard has four tabs, each ranking teams a different way.
The leaderboard updates live the moment any team records a start or finish time, or edits a pace or distance — no refresh needed. Like the rest of the app, it needs a connection to sync; if you're offline, it'll pick back up once you're back in range (see No Cell Service? above).
Ranks teams by how far along the course they are — whoever's reached the highest leg number is shown first. If two teams are on the same leg, whoever started it first is ranked ahead. The progress bar reflects legs completed so far. Each row also shows an ETA for when the current leg's runner is projected to finish, and a Kills count — how many teams that team has actually passed so far.
Ranks teams by projected finish time, soonest first. For legs already run, the projection uses the actual recorded times; for legs still ahead, it projects forward from each runner's set pace (or a leg-specific pace override, or an 8:00/mile default if nothing's set). Each row shows the projected finish time and how far behind the leader that is. A Photo Finish badge appears when two or more teams are projected to finish within 5 minutes of each other.
Ranks teams by total projected running time — from their first recorded start to their projected finish — rather than by clock time. This puts teams that started their wave earlier or later on equal footing, since it measures how fast a team is actually running rather than who got a head start.
Predicts when one team is about to pass another, based on everyone's current pace projections. Each predicted kill shows which leg it's expected to happen on, how far apart the two teams are right now, and a countdown. Predictions update automatically as pace data changes, and move into Confirmed Kills once the real recorded times show the pass actually happened. Use the team filter to narrow the list down to one team's crossings.
You marks a team on the leaderboard as one of your own. Finished means a team has completed the race. A greyed-out Archived team is an older or inactive one kept around for reference. Tap the eye icon on any team's row to add them to your watchlist for quick switching between teams you're following.
TeamSplits can alert you when a teammate starts or finishes a leg so everyone stays in the loop.
When you first open your team page, your browser/phone may ask if you'd like to allow notifications. Tap Allow. If you dismissed that prompt, go to your settings and turn notifications on for TeamSplits.
Mobile devices also need system-level permission. Go to Settings → [your browser] → Notifications and make sure they're turned on. On iPhone, the most reliable delivery comes when you add TeamSplits to your Home Screen first.
Notifications travel over the internet and can't reach your device when you're in a dead zone. Once you have signal again, any pending alerts will come through. This is another reason to enable offline mode (see below) — it keeps your team's data accessible even when notifications can't get through.
Enable and test notifications the evening before the race, while you have a strong connection and time to sort out any permission issues. Trying to troubleshoot at an exchange zone is not fun.
TeamSplits is built for relay races — which means it's built for dead zones.
Your team data is saved to your device the first time you load the team page with a connection. After that, you can record start and finish times even with zero signal. Everything syncs automatically the moment you're back in range — you don't need to do anything. The dot in the header turns orange when you're offline and green when you're connected.
Recording start and finish times, viewing your full leg list and runner assignments, seeing projected finish times based on recorded data so far, and editing runner paces or leg distances.
Live updates from your teammates' devices, the leaderboard, and push notifications. All of these resume automatically once you're back in range.
Open your team page at least once with a working connection before the race starts. Once it loads, your data is stored on your device and you're good to go.
Play around with the app before race day, and add it to your home screen. Have teammates open their link and poke around ahead of time so nobody's figuring it out at exchange 1. It's a PWA, so installing it — not just a browser tab — gets you an app icon and more reliable offline caching. If testing gets messy, Undo and Hard Reset both get you back to a clean slate.
Dedicate one device per van to record times. Multiple phones can tap start/finish, but if two taps land close together the app rejects the slower one as a conflict — you'll see a "more recent update from another device" toast rather than a silent merge. One timer per van avoids that confusion.
Times save to your phone the instant you tap and sync automatically once you're back in range, with a "Saved locally" toast in between. No need to wait for bars to record a start or finish.
With one phone doing the tapping per van, notifications are how the rest of your team stays in the loop between exchanges without keeping the app open.
Estimates extrapolate from stated pace vs. actual pace — the more honest the number, the better it holds up for the vans behind you.
Share the view-only link with family and friends tracking from home. It's a separate link from your van's edit link, so there's no mix-up, and it keeps them from accidentally tapping something on race day.
The app remembers your last 5 teams per device — including whether you opened them in view or edit mode — handy for a captain juggling their own edit link alongside other vans' view-only links without retyping URLs.
Use the in-app directions button to get to the next exchange. It opens Google or Apple Maps automatically based on your phone — one less app to juggle mid-race.
If a leg gets skipped — road closure, safety call, no official exchange — use Jump-to-Leg instead of forcing times in manually. It's built for exactly that, and undoable if you jump back.
If a pace looks impossible or the timing's way off from projected, the app interrupts right then to offer a jump or ask "is this right?" — and anything that slips through is still editable after the fact.
If your team finds this useful, pass it along to other teams at the race — send them the home page link so they can set up their own team and get the same real-time tracking.
Nothing — they get you to the exact same dashboard. A Team Link is the full URL you can tap or bookmark. A Team ID is the short code at the end of that URL, which you can type directly into the home page. Both land you in the same place. Use whichever is easiest to share.
Yes — anyone with the full team link can record times. But everything can be undone or corrected. If you're worried, share the view-only link instead so you can follow the race safely without the ability to change anything.
Projections default to an 8:00/mile pace for any runner without one set. You can update paces anytime by tapping the runner's name on any leg card — projections recalculate immediately.
Use Undo from the settings menu right after the mistake. You can also open God Mode from the settings menu to manually correct a specific time, or cascade the correction across adjacent exchange times too.