Backyard Ultra Live
iPhone · backyard ultra

Am I going to make the cut-off?

Backyard Ultra Live is a single-screen race dashboard for last-runner-standing events: one loop per cut-off period, on the hour, until you stop. The whole screen answers one question, and everything else is arranged underneath it.

Free, with a one-off £4.99 to remove adverts

The Backyard Ultra Live dashboard during yard 12 of a backyard ultraThirty-one minutes twenty-eight seconds left in the yard, projected lap of 47:42 against a 48:00 target, fifty-nine per cent round a 6.72 kilometre loop, banking 12:18 of rest. The readouts are green because the runner is comfortable.04:12The Mackyard x 4ZERO±5MYARD 12 · CUT-OFF 1:00:00banking 12:18 restLEFTPROJ. YARD31:2847:42CLOCK 48%▲ TARGETLOOP 59%YARD DONE3.97kmYARD LEFT2.75kmVS LAST−1:38TARGET48:00VS TARGET−0:18LINE AT04:31THE LOOP59% COVEREDS/F
Yard 12 of a backyard ultra at 4 a.m. Thirty-one minutes left in the yard, fifty-nine per cent round the loop, projected to lap in 47:42 against a 48:00 target — so the screen is green.

The hero

Two bars, one scale, and the gap between them is your buffer

A backyard ultra is not won on pace. It is won on the margin between the loop you just ran and the hour you were given to run it in. So the margin is the thing the screen draws, not a number you have to work out.

How the two bars encode your bufferThe upper bar shows the hour draining away and the lower bar shows progress round the loop. Because they share one scale, the horizontal gap between their leading edges is the rest the runner is banking.THE CUT-OFF — THE HOUR DRAINING AWAYTHE LOOP — HOW FAR ROUND YOU ACTUALLY AREyour buffer12:18 OF REST, READ AS A GAP▲ TARGET PACEYOU'RE OUT
The top bar is the cut-off, the hour draining away. The bottom bar is how far round the loop you actually are. Distance ahead of the clock means you are banking rest.

Read it as an offset

The buffer is a horizontal gap between two leading edges, not a figure to parse. You can take it in with a glance at a headtorch beam, which is the only kind of glance available at 3 a.m.

The tick is target pace

A mark on the lap bar sits where your target lap time would have put you. “Am I on plan” and “am I on time” become the same look.

Colour carries the state

The whole screen tracks the same thing, so at hour fourteen you know you are in trouble before you have read a single digit.

Target lap time

Set what you mean to lap in, and it becomes the warning threshold

State lives in exactly two colours — marshal-bib green and timing-clock red — and appears nowhere decoratively.

  • Amber — projected to miss your target lap time.
  • Red — projected to miss the cut-off itself.
  • Green — comfortable, and banking rest for the yard after this one.

Without a target, the app falls back to five minutes of buffer. The target also scores the loop progression chart and drives the discipline summary, so one setting shapes everything downstream of it.

The hero readout at three pressuresComfortable in green, tight in amber, critical in red. The layout is identical; only the colour and the gap between the two bars change.COMFORTABLEbanking 12:18 rest31:2847:42TIGHTover target by 1:2016:4449:20CRITICALover by 4:1005:181:04:10
The same hero at three pressures. Nothing moves except the colour and the gap between the bars.

What's on the screen

Every readout, in the order it appears

One screen, scrolled. Nothing is behind a tab, because a tab is a decision and you are eleven hours in.

The dashboard, top to bottom
GroupReadouts
Hero Time left in the yard, projected buffer, yard number, cut-off length.
Lap Distance done and left, delta against your last lap, target, vs target, projected lap, and the time of day you are due at the line.
The loop The lap drawn as a shape — ground covered filled in, a marker where you are, and the start/finish flagged.
Lap profile Lap elevation with your position on it, climb per lap, low and high point.
Pace Speed, pace now, pace average, target pace, cut-off pace and what is needed now to hold the cut-off.
Ground ahead Climb left, gradient, altitude, projected lap, line-crossing time and a terrain-adjusted ETA.
Race clock Elapsed, moving, stopped, yards, total distance, total climb, best, average and last lap.
Loop progression Every lap as a horizontal bar against the cut-off, coloured by whether it hit target, with the target line down the column, cumulative distance, time and the rest it earned — then five ghost rows for the laps ahead.
Discipline Laps on target, average vs target, spread between fastest and slowest, and drift per lap — whether you are holding steady or fading.
The Mackyard x 4ZERO Ultra loopA 6.72 kilometre loop drawn as a schematic trace from its GPX file, with the covered 59 per cent filled in and the start-finish line marked.THE LOOP6.72 KMS/F
The Mackyard x 4ZERO Ultra loop, drawn from its own GPX: 6.72 km, the classic 4.167 mile yard. Covered ground is filled in behind you.

The loop

A schematic trace, not a map

The loop is drawn as a shape rather than plotted on a basemap, and that is a deliberate choice rather than a missing feature.

  • It reads faster at a glance, which is the only way anyone reads anything during a lap.
  • It needs no network and no battery out in a field, where both are scarce and the race lasts days.
  • An off-course warning covers “am I lost” without a basemap behind it.

Position is measured in metres along the course rather than by how far through the coordinate list you are. A GPX is dense on the bends and sparse on the straights, so drawing by index would put you somewhere you never were.

Lap profile

Flat ground should look flat

The profile is drawn from raw GPX elevation, not the smoothed series used for ascent totals, and it never squeezes less than 60 m of range into full height.

Lap elevation profile with the 60 metre floorThe loop climbs and falls across a fifteen metre spread over 6.72 kilometres. Held to a minimum 60 metre range, it renders as the near-flat ground it is instead of filling the card.LAP PROFILE26 M PER LAPLOW 103 MHIGH 118 M
The same loop's real elevation: a fifteen-metre spread across 6.72 km, held to the 60 m floor. Normalised to its own minimum and maximum it would fill the card and read as an alpine stage.

A profile normalised to its own range fills the card whatever the terrain, so an eleven-metre valley loop and a mountain lap look identical. The floor is what keeps the picture honest.

Loop progression & discipline

Every yard you have run, scored against the one you planned

Each lap is a bar against the cut-off, coloured by whether it hit target, with the target line running down the column. Beside it: cumulative distance, the lap time, and the rest that lap earned you.

Five ghost rows sit under the finished ones for the laps ahead and the ground they would put on the clock — so the shape of the next few hours is on the same screen as the last few.

Underneath, the discipline summary: laps on target, average vs target, the spread between your fastest and slowest, and drift per lap. Fading is a trend, and a trend needs more than one number to show up.

Loop progression through eleven finished yardsEach finished lap is a bar against the hour, green where it beat the 48:00 target and amber where it missed, with the lap time and the rest it earned. Ghost rows below stand for the yards still ahead.LOOP PROGRESSIONTARGET 48:000147:12+12:480246:08+13:520348:25+11:350447:40+12:200546:55+13:050649:20+10:400747:02+12:580847:33+12:270948:44+11:161047:18+12:421146:40+13:201228:321314151617
Twelve yards in. Green bars hit the 48:00 target, amber missed it, and the rest column shows what each lap bought.

Courses

Import a GPX, set the start time, pick a format

Courses are per-account. Bring a GPX in from Files, give it a name, a date and start time, and a format.

Backyard

One lap per cut-off period — 60 minutes by default, and configurable — running unlimited until you stop. The classic last-runner-standing format.

Set laps

A fixed number of laps. The dashboard counts down to the last one instead of running open-ended.

One pass

Start to finish, once. For a point-to-point or a single loop where there is no cut-off to make.

The start time anchors everything. Cut-off boundaries fall on start + N × cut-off, so the clock is exact rather than depending on you tapping a button at the line — which is precisely the moment nobody wants to be looking at a phone.

The supporter tracking pageA crew watching a runner: the loop with the runner on it, their yard number, lap time and how they are holding target, updating as they run.Sam MackenzieLIVE · YARD 12IN THE YARDPROJECTED31:2847:42
The supporter's view: the loop with the runner on it, lap times, and how they are holding the target — drawn without a map service.

Live tracking

Share a link, and your crew can watch the yard go round

The runner can share a link that opens their crew's view of them: the loop with their position on it, lap times, and how they are holding the target, updating as they run.

The page draws the course itself rather than loading a basemap, so it stays self-contained and light on a phone at a race site — where the signal is one bar and the battery has to last until Sunday.

  • Sharing stays off until you switch it on.
  • The link carries a full UUID, not a guessable code.
  • A new link can be issued at any time, which cuts off everyone holding the old one.
  • The page keeps the last good view up if a request fails, rather than blanking on one dropped packet in a field.

Watching a runner

Four digits, no account

Supporters can watch from inside the app without signing up. Watch a runner on the sign-in screen takes the runner's four-digit code and polls the same tracker the web page uses.

Four digits is 10,000 combinations, so the code is a convenience rather than a secret. The runner can issue a fresh one at any time from the share sheet, and a host serving the tracker is expected to rate limit lookups.

Watch a runner by four-digit codeA supporter types the runner’s four digit code on the sign-in screen and follows them without creating an account.WATCH A RUNNERType their code4978WatchNo account needed. The runner can issue afresh code at any time to cut off the old one.
The follow screen polls every ten seconds and shows the runner's yard, loop progress and how they are going against target.

Alerts

Five things worth interrupting for, and a ceiling on all of them

A backyard runs for days. An unbounded notification feed is how people mute an app and then miss the one that mattered.

Every lap finished

Time, and the rest it earned.

Cut-off closing

Three minutes before the hour is up.

Next lap starting

When rest is nearly over.

Off the course

When the line has been left behind.

Slipping off target

When the projection stops making your target lap time.

At most, per hour

Each alert is switchable, and a hard ceiling caps how many arrive in any hour.

Alerts are scheduled on the device. Telling a supporter about someone else's lap needs the app awake, which is why the follow screen polls — true background delivery would need a push service behind it.

Adverts, and removing them

Free to run. £4.99 to never see an advert again.

A single adaptive banner sits at the very bottom of the dashboard, below every readout, so it never comes between a runner and a number they need mid-lap.

Remove adverts is a one-off, non-consumable in-app purchase. It hides the banner everywhere, and the entitlement follows your Apple Account, with a Restore for a reinstall or a second device.

The way out sits directly under the banner as well as in the menu — someone who has just been shown an advert is the one person who wants it.

The price is never written into the interface. It comes back from the App Store already formatted for where you are, so a reader in Dublin or Sydney sees their own currency.

Backyard Ultra Live

Free

iPhone · requires location access for lap detection

  • Unlimited courses and races
  • GPX import, three race formats
  • Live tracking and watch-by-code
  • All alerts

Optional, one-off

£4.99

Remove adverts, forever, on every device signed in to your Apple Account.

Get it on the App Store

Accounts & privacy

Your races stay on your phone

Stored on the device

Sign-up is required, and accounts live on the phone. Passwords are PBKDF2-SHA256 hashed — 210,000 iterations with a per-account salt — and held in the Keychain.

Two runners, one phone

Each runner's courses and lap history live under their own user id, so a shared phone at a race does not mean a shared race.

Location stays local

Nothing leaves the device unless you switch live tracking on. When you do, only what a viewer displays is sent.

This is device-side account storage, not server-side authentication. It gates the app and keeps two runners separate; it is not a security boundary for anything sensitive.

Under it

Lap detection that knows a loop starts and finishes in the same place

Windowed matching

Your position is matched against the course in a window around where you last were, rather than by searching the whole route. On a loop that matters: a global search would call you 100% complete the moment you stood on the start line, because the start and the finish are the same place.

Navigation-grade fixes

Location runs at navigation accuracy with no distance filter, because pace maths wants every fix, and with background updates so the screen can be off. Wild fixes are rejected rather than allowed to poison pace and position.

Questions

Frequently asked

What is a backyard ultra?

A last-runner-standing race. Every runner sets off on the same loop at the top of each hour and must finish it inside that hour to start the next one. The loop is traditionally 6.706 km — 4.167 miles — so a full day is 100 miles. It continues until one runner is left, and there is no set distance: finishing early only buys you rest before the next hour begins.

What does “cut-off” mean?

The cut-off is the pen runners gather in before each hour starts, and by extension the hour itself. “Making the cut-off” means getting round the loop in time to be back on the line when the next one starts. Backyard Ultra Live treats the cut-off as the unit the whole screen is built around, and its length is configurable — 60 minutes by default.

Does it need a phone signal?

No. The course is drawn from the GPX you imported rather than a basemap, lap detection runs against that same file, and alerts are scheduled on the device. Signal is only needed if you switch live tracking on, so your crew can follow along.

Can my family follow me during the race?

Yes, two ways. You can share a link that opens a web page showing the loop with your position on it, your lap times, and how you are holding your target. Or they can open the app, tap Watch a runner on the sign-in screen, and type your four-digit code — no account needed.

Sharing is off until you switch it on, and you can issue a fresh link or code at any time to cut off anyone holding the old one.

How do I get my course into the app?

Import a GPX file from Files. Give the course a name, the date and start time of the race, and a format — backyard, a set number of laps, or a single pass. The start time is what anchors the cut-off clock, so the hour boundaries are exact rather than dependent on you tapping a button.

Does it work for races that aren't backyard ultras?

Yes. Set laps counts down a fixed number of laps, and one pass covers a single start-to-finish run. You lose the cut-off hero, but the lap, pace, profile and race clock readouts all still apply.

What does it cost?

The app is free and shows a single advert banner at the very bottom of the dashboard, below every readout. A one-off £4.99 in-app purchase removes it everywhere and follows your Apple Account, with a Restore for a reinstall or a second device. There is no subscription.

Will it drain my battery over a multi-day race?

Location runs at navigation accuracy, which is the expensive setting, because pace and lap detection need every fix. In exchange the app draws no map tiles and makes no network requests unless live tracking is on, and the screen can be off while tracking continues. Plan on a battery pack, as you would for any GPS device over a backyard.

Where is my data stored?

On your phone. Accounts are held in the Keychain with PBKDF2-SHA256 hashed passwords, and each runner's courses and lap history live under their own user id. Nothing is uploaded unless you turn live tracking on, and then only the reduced set of numbers a viewer displays.