Race screen, every surface

One race-day screen, projected onto the iPhone Lock Screen and Dynamic Island, the Apple Watch, the Android tray, and a Garmin data field. Each card is drawn from the exact payload its device receives; times are relative to the moment the screen was built, the way the devices compute them.

Before the startNo position yet. Surfaces show the race and wait for movement.
Role
runner
Phase
pre
Relevance
20
Progress
0%
Next stop
Bear Camp
Cutoff buffer
n/a
Fuel
n/a
Leave by
n/a

iOS Lock Screen + Dynamic Island

apns · up to 1 stop

564 B / 4096 B
Lost Sierra 100pre
Not started
Next Bear Camp
Crew: Sam at Bear Camp
Updated just now
Not startedDynamic Islandpre
Payload
{
  "contentState": {
    "phase": "pre",
    "currentDistanceLabel": "Not started",
    "nextStopName": "Bear Camp",
    "nextStopEtaAt": null,
    "nextStopEtaEarliest": null,
    "nextStopEtaLatest": null,
    "leaveByAt": null,
    "leaveByDetail": null,
    "asOf": "2026-09-05T14:58:00.000Z",
    "source": "none",
    "projectedFinishLabel": null,
    "navigateUrl": null,
    "cutoffAt": null,
    "cutoffBufferMinutes": null,
    "fuelDueAt": null,
    "crewStatusLabel": "Crew: Sam at Bear Camp"
  },
  "relevanceScore": 20,
  "phase": "pre",
  "finished": false,
  "nextStopNavigateTo": {
    "lat": 39.72,
    "lng": -120.61,
    "label": "Bear Camp",
    "kind": "station"
  },
  "progressPercent": 0
}

Apple Watch race view

watch-connectivity · up to 1 stop

195 B
LS100
Not started
Bear Camp
Payload
{
  "phase": "pre",
  "finished": false,
  "distanceLabel": "Not started",
  "nextStationName": "Bear Camp",
  "nextStationEtaAt": null,
  "cutoffBufferMinutes": null,
  "fuelDueAt": null,
  "progressPercent": 0,
  "relevance": 20
}

Android 16 promoted Live Update

expo-push · up to 1 stop

208 B / 4096 B
Crewable
Lost Sierra 100: not started
ETAs appear once you are moving
Navigate
Payload
{
  "title": "Lost Sierra 100: not started",
  "body": "ETAs appear once you are moving",
  "shortText": null,
  "progressPercent": 0,
  "phase": "pre",
  "finished": false,
  "navigate": {
    "lat": 39.72,
    "lng": -120.61,
    "label": "Bear Camp"
  }
}

Android in-place notification

expo-push · up to 1 stop

208 B / 4096 B
Crewable
Lost Sierra 100: not started
ETAs appear once you are moving
Navigate
Payload
{
  "title": "Lost Sierra 100: not started",
  "body": "ETAs appear once you are moving",
  "shortText": null,
  "progressPercent": 0,
  "phase": "pre",
  "finished": false,
  "navigate": {
    "lat": 39.72,
    "lng": -120.61,
    "label": "Bear Camp"
  }
}

Garmin Connect IQ data field

https-poll · up to 24 stops

589 B / 32768 B
LS100
Bear Camp
7.5 mi
ETA
--
BUFFER
--
CREW
Sam
EAT / DRINK
24m / 20m
Payload
{
  "v": 1,
  "g": 1788620400,
  "x": 1788642000,
  "r": {
    "i": 4242,
    "n": "LS100",
    "u": "mi",
    "d": 160,
    "p": 0
  },
  "s": [
    {
      "i": 1,
      "n": "Bear Camp",
      "d": 12,
      "e": null,
      "b": null,
      "c": 1,
      "cn": "Sam"
    },
    {
      "i": 2,
      "n": "Ridge Top",
      "d": 30,
      "e": null,
      "b": null,
      "c": 0,
      "cn": null
    },
    {
      "i": 3,
      "n": "River Crossing",
      "d": 48,
      "e": null,
      "b": null,
      "c": 2,
      "cn": "Sam, Jo"
    },
    {
      "i": 4,
      "n": "High Lake",
      "d": 72,
      "e": null,
      "b": null,
      "c": 4,
      "cn": "Jo, Alex, Pat"
    },
    {
      "i": 5,
      "n": "Summit",
      "d": 96,
      "e": null,
      "b": null,
      "c": 0,
      "cn": null
    },
    {
      "i": 6,
      "n": "Meadow",
      "d": 120,
      "e": null,
      "b": null,
      "c": 1,
      "cn": "Sam"
    },
    {
      "i": 7,
      "n": "Finish",
      "d": 160,
      "e": null,
      "b": null,
      "c": 2,
      "cn": "Sam, Jo"
    }
  ],
  "f": {
    "e": 24,
    "d": 20
  }
}
Running, comfortableMid-course with a healthy cutoff buffer and fuel due soon.
Role
runner
Phase
running
Relevance
50
Progress
13%
Next stop
Ridge Top
Cutoff buffer
35 min
Fuel
12 min
Leave by
n/a

iOS Lock Screen + Dynamic Island

apns · up to 1 stop

670 B / 4096 B
Lost Sierra 100running
12.7 mi
Ridge Top
1h 30m
Cutoff +35 minFuel in 12 min
Updated just now · On pace for ~26h
12.7 miDynamic Island1h 30m
Payload
{
  "contentState": {
    "phase": "running",
    "currentDistanceLabel": "12.7 mi",
    "nextStopName": "Ridge Top",
    "nextStopEtaAt": "2026-09-05T16:30:15.000Z",
    "nextStopEtaEarliest": "2026-09-05T16:23:01.800Z",
    "nextStopEtaLatest": "2026-09-05T16:41:04.800Z",
    "leaveByAt": null,
    "leaveByDetail": null,
    "asOf": "2026-09-05T14:58:00.000Z",
    "source": "gps",
    "projectedFinishLabel": "On pace for ~26h",
    "navigateUrl": null,
    "cutoffAt": "2026-09-05T17:05:15.000Z",
    "cutoffBufferMinutes": 35,
    "fuelDueAt": "2026-09-05T15:12:00.000Z",
    "crewStatusLabel": null
  },
  "relevanceScore": 50,
  "phase": "running",
  "finished": false,
  "nextStopNavigateTo": {
    "lat": 39.75,
    "lng": -120.66,
    "label": "Ridge Top",
    "kind": "station"
  },
  "progressPercent": 13
}

Apple Watch race view

watch-connectivity · up to 1 stop

238 B
LS100
12.7 mi
Ridge Top · 1h 30m
Cutoff +35 min
Fuel in 12 min
Payload
{
  "phase": "running",
  "finished": false,
  "distanceLabel": "12.7 mi",
  "nextStationName": "Ridge Top",
  "nextStationEtaAt": "2026-09-05T16:30:15.000Z",
  "cutoffBufferMinutes": 35,
  "fuelDueAt": "2026-09-05T15:12:00.000Z",
  "progressPercent": 13,
  "relevance": 50
}

Android 16 promoted Live Update

expo-push · up to 1 stop

249 B / 4096 B
Crewable · 12.7 mi
Lost Sierra 100: 12.7 mi
Next Ridge Top in about 1h 30m · Cutoff +35 min · Fuel in 12 min
Navigate
Payload
{
  "title": "Lost Sierra 100: 12.7 mi",
  "body": "Next Ridge Top in about 1h 30m · Cutoff +35 min · Fuel in 12 min",
  "shortText": "12.7 mi",
  "progressPercent": 13,
  "phase": "running",
  "finished": false,
  "navigate": {
    "lat": 39.75,
    "lng": -120.66,
    "label": "Ridge Top"
  }
}

Android in-place notification

expo-push · up to 1 stop

249 B / 4096 B
Crewable
Lost Sierra 100: 12.7 mi
Next Ridge Top in about 1h 30m · Cutoff +35 min · Fuel in 12 min
Navigate
Payload
{
  "title": "Lost Sierra 100: 12.7 mi",
  "body": "Next Ridge Top in about 1h 30m · Cutoff +35 min · Fuel in 12 min",
  "shortText": "12.7 mi",
  "progressPercent": 13,
  "phase": "running",
  "finished": false,
  "navigate": {
    "lat": 39.75,
    "lng": -120.66,
    "label": "Ridge Top"
  }
}

Garmin Connect IQ data field

https-poll · up to 24 stops

554 B / 32768 B
LS100
Ridge Top
5.9 mi
ETA
1h 30m
BUFFER
+35
CREW
none
EAT / DRINK
24m / 20m
Payload
{
  "v": 1,
  "g": 1788620400,
  "x": 1788642000,
  "r": {
    "i": 4242,
    "n": "LS100",
    "u": "mi",
    "d": 160,
    "p": 20.5
  },
  "s": [
    {
      "i": 2,
      "n": "Ridge Top",
      "d": 30,
      "e": 1788625815,
      "b": 35,
      "c": 0,
      "cn": null
    },
    {
      "i": 3,
      "n": "River Crossing",
      "d": 48,
      "e": 1788636075,
      "b": 95,
      "c": 2,
      "cn": "Sam, Jo"
    },
    {
      "i": 4,
      "n": "High Lake",
      "d": 72,
      "e": 1788649755,
      "b": 115,
      "c": 4,
      "cn": "Jo, Alex, Pat"
    },
    {
      "i": 5,
      "n": "Summit",
      "d": 96,
      "e": 1788663435,
      "b": 135,
      "c": 0,
      "cn": null
    },
    {
      "i": 6,
      "n": "Meadow",
      "d": 120,
      "e": 1788677115,
      "b": 155,
      "c": 1,
      "cn": "Sam"
    },
    {
      "i": 7,
      "n": "Finish",
      "d": 160,
      "e": 1788699915,
      "b": 175,
      "c": 2,
      "cn": "Sam, Jo"
    }
  ],
  "f": {
    "e": 24,
    "d": 20
  }
}
Approaching a stationUnder 3 km from Ridge Top; relevance jumps so the island leads.
Role
runner
Phase
approaching
Relevance
100
Progress
18%
Next stop
Ridge Top
Cutoff buffer
35 min
Fuel
20 min
Leave by
n/a

iOS Lock Screen + Dynamic Island

apns · up to 1 stop

679 B / 4096 B
Lost Sierra 100approaching
17.7 mi
Ridge Top
14 min
Cutoff +35 minFuel in 20 min
Updated just now · On pace for ~26h
17.7 miDynamic Island14 min
Payload
{
  "contentState": {
    "phase": "approaching",
    "currentDistanceLabel": "17.7 mi",
    "nextStopName": "Ridge Top",
    "nextStopEtaAt": "2026-09-05T15:14:15.000Z",
    "nextStopEtaEarliest": "2026-09-05T15:13:06.600Z",
    "nextStopEtaLatest": "2026-09-05T15:15:57.600Z",
    "leaveByAt": null,
    "leaveByDetail": null,
    "asOf": "2026-09-05T14:58:00.000Z",
    "source": "gps",
    "projectedFinishLabel": "On pace for ~26h",
    "navigateUrl": null,
    "cutoffAt": "2026-09-05T15:49:15.000Z",
    "cutoffBufferMinutes": 35,
    "fuelDueAt": "2026-09-05T15:20:00.000Z",
    "crewStatusLabel": null
  },
  "relevanceScore": 100,
  "phase": "approaching",
  "finished": false,
  "nextStopNavigateTo": {
    "lat": 39.75,
    "lng": -120.66,
    "label": "Ridge Top",
    "kind": "station"
  },
  "progressPercent": 18
}

Apple Watch race view

watch-connectivity · up to 1 stop

243 B
LS100
17.7 mi
Ridge Top · 14 min
Cutoff +35 min
Fuel in 20 min
Payload
{
  "phase": "approaching",
  "finished": false,
  "distanceLabel": "17.7 mi",
  "nextStationName": "Ridge Top",
  "nextStationEtaAt": "2026-09-05T15:14:15.000Z",
  "cutoffBufferMinutes": 35,
  "fuelDueAt": "2026-09-05T15:20:00.000Z",
  "progressPercent": 18,
  "relevance": 100
}

Android 16 promoted Live Update

expo-push · up to 1 stop

253 B / 4096 B
Crewable · 17.7 mi
Lost Sierra 100: 17.7 mi
Next Ridge Top in about 14 min · Cutoff +35 min · Fuel in 20 min
Navigate
Payload
{
  "title": "Lost Sierra 100: 17.7 mi",
  "body": "Next Ridge Top in about 14 min · Cutoff +35 min · Fuel in 20 min",
  "shortText": "17.7 mi",
  "progressPercent": 18,
  "phase": "approaching",
  "finished": false,
  "navigate": {
    "lat": 39.75,
    "lng": -120.66,
    "label": "Ridge Top"
  }
}

Android in-place notification

expo-push · up to 1 stop

253 B / 4096 B
Crewable
Lost Sierra 100: 17.7 mi
Next Ridge Top in about 14 min · Cutoff +35 min · Fuel in 20 min
Navigate
Payload
{
  "title": "Lost Sierra 100: 17.7 mi",
  "body": "Next Ridge Top in about 14 min · Cutoff +35 min · Fuel in 20 min",
  "shortText": "17.7 mi",
  "progressPercent": 18,
  "phase": "approaching",
  "finished": false,
  "navigate": {
    "lat": 39.75,
    "lng": -120.66,
    "label": "Ridge Top"
  }
}

Garmin Connect IQ data field

https-poll · up to 24 stops

554 B / 32768 B
LS100
Ridge Top
0.9 mi
ETA
14 min
BUFFER
+35
CREW
none
EAT / DRINK
24m / 20m
Payload
{
  "v": 1,
  "g": 1788620400,
  "x": 1788642000,
  "r": {
    "i": 4242,
    "n": "LS100",
    "u": "mi",
    "d": 160,
    "p": 28.5
  },
  "s": [
    {
      "i": 2,
      "n": "Ridge Top",
      "d": 30,
      "e": 1788621255,
      "b": 35,
      "c": 0,
      "cn": null
    },
    {
      "i": 3,
      "n": "River Crossing",
      "d": 48,
      "e": 1788631515,
      "b": 95,
      "c": 2,
      "cn": "Sam, Jo"
    },
    {
      "i": 4,
      "n": "High Lake",
      "d": 72,
      "e": 1788645195,
      "b": 115,
      "c": 4,
      "cn": "Jo, Alex, Pat"
    },
    {
      "i": 5,
      "n": "Summit",
      "d": 96,
      "e": 1788658875,
      "b": 135,
      "c": 0,
      "cn": null
    },
    {
      "i": 6,
      "n": "Meadow",
      "d": 120,
      "e": 1788672555,
      "b": 155,
      "c": 1,
      "cn": "Sam"
    },
    {
      "i": 7,
      "n": "Finish",
      "d": 160,
      "e": 1788695355,
      "b": 175,
      "c": 2,
      "cn": "Sam, Jo"
    }
  ],
  "f": {
    "e": 24,
    "d": 20
  }
}
Cutoff getting tightEight minutes of buffer at the next cutoff. Red pill, relevance 100.
Role
runner
Phase
running
Relevance
100
Progress
28%
Next stop
River Crossing
Cutoff buffer
8 min
Fuel
15 min
Leave by
n/a

iOS Lock Screen + Dynamic Island

apns · up to 1 stop

708 B / 4096 B
Lost Sierra 100running
27.3 mi
River Crossing
38 min
Cutoff +8 minFuel in 15 min
Crew: Sam, Jo at River Crossing
Updated just now · On pace for ~26h
27.3 miDynamic Island38 min
Payload
{
  "contentState": {
    "phase": "running",
    "currentDistanceLabel": "27.3 mi",
    "nextStopName": "River Crossing",
    "nextStopEtaAt": "2026-09-05T15:38:00.000Z",
    "nextStopEtaEarliest": "2026-09-05T15:34:57.600Z",
    "nextStopEtaLatest": "2026-09-05T15:42:33.600Z",
    "leaveByAt": null,
    "leaveByDetail": null,
    "asOf": "2026-09-05T14:58:00.000Z",
    "source": "gps",
    "projectedFinishLabel": "On pace for ~26h",
    "navigateUrl": null,
    "cutoffAt": "2026-09-05T15:46:00.000Z",
    "cutoffBufferMinutes": 8,
    "fuelDueAt": "2026-09-05T15:15:00.000Z",
    "crewStatusLabel": "Crew: Sam, Jo at River Crossing"
  },
  "relevanceScore": 100,
  "phase": "running",
  "finished": false,
  "nextStopNavigateTo": {
    "lat": 39.79,
    "lng": -120.7,
    "label": "River Crossing",
    "kind": "station"
  },
  "progressPercent": 28
}

Apple Watch race view

watch-connectivity · up to 1 stop

243 B
LS100
27.3 mi
River Crossing · 38 min
Cutoff +8 min
Fuel in 15 min
Payload
{
  "phase": "running",
  "finished": false,
  "distanceLabel": "27.3 mi",
  "nextStationName": "River Crossing",
  "nextStationEtaAt": "2026-09-05T15:38:00.000Z",
  "cutoffBufferMinutes": 8,
  "fuelDueAt": "2026-09-05T15:15:00.000Z",
  "progressPercent": 28,
  "relevance": 100
}

Android 16 promoted Live Update

expo-push · up to 1 stop

292 B / 4096 B
Crewable · 27.3 mi
Lost Sierra 100: 27.3 mi
Next River Crossing in about 38 min · Cutoff +8 min · Fuel in 15 min · Crew: Sam, Jo at River Crossing
Navigate
Payload
{
  "title": "Lost Sierra 100: 27.3 mi",
  "body": "Next River Crossing in about 38 min · Cutoff +8 min · Fuel in 15 min · Crew: Sam, Jo at River Crossing",
  "shortText": "27.3 mi",
  "progressPercent": 28,
  "phase": "running",
  "finished": false,
  "navigate": {
    "lat": 39.79,
    "lng": -120.7,
    "label": "River Crossing"
  }
}

Android in-place notification

expo-push · up to 1 stop

292 B / 4096 B
Crewable
Lost Sierra 100: 27.3 mi
Next River Crossing in about 38 min · Cutoff +8 min · Fuel in 15 min · Crew: Sam, Jo at River Crossing
Navigate
Payload
{
  "title": "Lost Sierra 100: 27.3 mi",
  "body": "Next River Crossing in about 38 min · Cutoff +8 min · Fuel in 15 min · Crew: Sam, Jo at River Crossing",
  "shortText": "27.3 mi",
  "progressPercent": 28,
  "phase": "running",
  "finished": false,
  "navigate": {
    "lat": 39.79,
    "lng": -120.7,
    "label": "River Crossing"
  }
}

Garmin Connect IQ data field

https-poll · up to 24 stops

482 B / 32768 B
LS100
River Crossing
2.5 mi
ETA
38 min
BUFFER
+8
CREW
Sam, Jo
EAT / DRINK
24m / 20m
Payload
{
  "v": 1,
  "g": 1788620400,
  "x": 1788642000,
  "r": {
    "i": 4242,
    "n": "LS100",
    "u": "mi",
    "d": 160,
    "p": 44
  },
  "s": [
    {
      "i": 3,
      "n": "River Crossing",
      "d": 48,
      "e": 1788622680,
      "b": 8,
      "c": 2,
      "cn": "Sam, Jo"
    },
    {
      "i": 4,
      "n": "High Lake",
      "d": 72,
      "e": 1788636360,
      "b": 115,
      "c": 4,
      "cn": "Jo, Alex, Pat"
    },
    {
      "i": 5,
      "n": "Summit",
      "d": 96,
      "e": 1788650040,
      "b": 135,
      "c": 0,
      "cn": null
    },
    {
      "i": 6,
      "n": "Meadow",
      "d": 120,
      "e": 1788663720,
      "b": 155,
      "c": 1,
      "cn": "Sam"
    },
    {
      "i": 7,
      "n": "Finish",
      "d": 160,
      "e": 1788686520,
      "b": 175,
      "c": 2,
      "cn": "Sam, Jo"
    }
  ],
  "f": {
    "e": 24,
    "d": 20
  }
}
Fuel overdueLast intake slipped; the fuel line reads "now".
Role
runner
Phase
running
Relevance
100
Progress
38%
Next stop
High Lake
Cutoff buffer
35 min
Fuel
-3 min
Leave by
n/a

iOS Lock Screen + Dynamic Island

apns · up to 1 stop

701 B / 4096 B
Lost Sierra 100running
37.3 mi
High Lake
1h 54m
Cutoff +35 minFuel now
Crew: Jo, Alex, Pat at High Lake
Updated just now · On pace for ~26h
37.3 miDynamic Island1h 54m
Payload
{
  "contentState": {
    "phase": "running",
    "currentDistanceLabel": "37.3 mi",
    "nextStopName": "High Lake",
    "nextStopEtaAt": "2026-09-05T16:54:00.000Z",
    "nextStopEtaEarliest": "2026-09-05T16:44:52.800Z",
    "nextStopEtaLatest": "2026-09-05T17:07:40.800Z",
    "leaveByAt": null,
    "leaveByDetail": null,
    "asOf": "2026-09-05T14:58:00.000Z",
    "source": "gps",
    "projectedFinishLabel": "On pace for ~26h",
    "navigateUrl": null,
    "cutoffAt": "2026-09-05T17:29:00.000Z",
    "cutoffBufferMinutes": 35,
    "fuelDueAt": "2026-09-05T14:57:00.000Z",
    "crewStatusLabel": "Crew: Jo, Alex, Pat at High Lake"
  },
  "relevanceScore": 100,
  "phase": "running",
  "finished": false,
  "nextStopNavigateTo": {
    "lat": 39.84,
    "lng": -120.76,
    "label": "High Lake",
    "kind": "station"
  },
  "progressPercent": 38
}

Apple Watch race view

watch-connectivity · up to 1 stop

239 B
LS100
37.3 mi
High Lake · 1h 54m
Cutoff +35 min
Fuel now
Payload
{
  "phase": "running",
  "finished": false,
  "distanceLabel": "37.3 mi",
  "nextStationName": "High Lake",
  "nextStationEtaAt": "2026-09-05T16:54:00.000Z",
  "cutoffBufferMinutes": 35,
  "fuelDueAt": "2026-09-05T14:57:00.000Z",
  "progressPercent": 38,
  "relevance": 100
}

Android 16 promoted Live Update

expo-push · up to 1 stop

279 B / 4096 B
Crewable · 37.3 mi
Lost Sierra 100: 37.3 mi
Next High Lake in about 1h 54m · Cutoff +35 min · Fuel now · Crew: Jo, Alex, Pat at High Lake
Navigate
Payload
{
  "title": "Lost Sierra 100: 37.3 mi",
  "body": "Next High Lake in about 1h 54m · Cutoff +35 min · Fuel now · Crew: Jo, Alex, Pat at High Lake",
  "shortText": "37.3 mi",
  "progressPercent": 38,
  "phase": "running",
  "finished": false,
  "navigate": {
    "lat": 39.84,
    "lng": -120.76,
    "label": "High Lake"
  }
}

Android in-place notification

expo-push · up to 1 stop

279 B / 4096 B
Crewable
Lost Sierra 100: 37.3 mi
Next High Lake in about 1h 54m · Cutoff +35 min · Fuel now · Crew: Jo, Alex, Pat at High Lake
Navigate
Payload
{
  "title": "Lost Sierra 100: 37.3 mi",
  "body": "Next High Lake in about 1h 54m · Cutoff +35 min · Fuel now · Crew: Jo, Alex, Pat at High Lake",
  "shortText": "37.3 mi",
  "progressPercent": 38,
  "phase": "running",
  "finished": false,
  "navigate": {
    "lat": 39.84,
    "lng": -120.76,
    "label": "High Lake"
  }
}

Garmin Connect IQ data field

https-poll · up to 24 stops

403 B / 32768 B
LS100
High Lake
7.5 mi
ETA
1h 54m
BUFFER
+35
CREW
Jo, Alex, Pat
EAT / DRINK
24m / 20m
Payload
{
  "v": 1,
  "g": 1788620400,
  "x": 1788642000,
  "r": {
    "i": 4242,
    "n": "LS100",
    "u": "mi",
    "d": 160,
    "p": 60
  },
  "s": [
    {
      "i": 4,
      "n": "High Lake",
      "d": 72,
      "e": 1788627240,
      "b": 35,
      "c": 4,
      "cn": "Jo, Alex, Pat"
    },
    {
      "i": 5,
      "n": "Summit",
      "d": 96,
      "e": 1788640920,
      "b": 135,
      "c": 0,
      "cn": null
    },
    {
      "i": 6,
      "n": "Meadow",
      "d": 120,
      "e": 1788654600,
      "b": 155,
      "c": 1,
      "cn": "Sam"
    },
    {
      "i": 7,
      "n": "Finish",
      "d": 160,
      "e": 1788677400,
      "b": 175,
      "c": 2,
      "cn": "Sam, Jo"
    }
  ],
  "f": {
    "e": 24,
    "d": 20
  }
}
Tracking pausedNo position for 25 minutes. Greyed, never torn down.
Role
runner
Phase
stale
Relevance
60
Progress
25%
Next stop
River Crossing
Cutoff buffer
35 min
Fuel
9 min
Leave by
n/a

iOS Lock Screen + Dynamic Island

apns · up to 1 stop

704 B / 4096 B
Lost Sierra 100stale
24.9 mi
River Crossing
1h 16m
Cutoff +35 minFuel in 9 min
Crew: Sam, Jo at River Crossing
Tracking paused? Updated just now · On pace for ~26h
24.9 miDynamic Island1h 16m
Payload
{
  "contentState": {
    "phase": "stale",
    "currentDistanceLabel": "24.9 mi",
    "nextStopName": "River Crossing",
    "nextStopEtaAt": "2026-09-05T16:16:00.000Z",
    "nextStopEtaEarliest": "2026-09-05T16:09:55.200Z",
    "nextStopEtaLatest": "2026-09-05T16:25:07.200Z",
    "leaveByAt": null,
    "leaveByDetail": null,
    "asOf": "2026-09-05T14:35:00.000Z",
    "source": "gps",
    "projectedFinishLabel": "On pace for ~26h",
    "navigateUrl": null,
    "cutoffAt": "2026-09-05T16:51:00.000Z",
    "cutoffBufferMinutes": 35,
    "fuelDueAt": "2026-09-05T15:09:00.000Z",
    "crewStatusLabel": "Crew: Sam, Jo at River Crossing"
  },
  "relevanceScore": 60,
  "phase": "stale",
  "finished": false,
  "nextStopNavigateTo": {
    "lat": 39.79,
    "lng": -120.7,
    "label": "River Crossing",
    "kind": "station"
  },
  "progressPercent": 25
}

Apple Watch race view

watch-connectivity · up to 1 stop

241 B
LS100
24.9 mi
River Crossing · 1h 16m
Cutoff +35 min
Fuel in 9 min
Payload
{
  "phase": "stale",
  "finished": false,
  "distanceLabel": "24.9 mi",
  "nextStationName": "River Crossing",
  "nextStationEtaAt": "2026-09-05T16:16:00.000Z",
  "cutoffBufferMinutes": 35,
  "fuelDueAt": "2026-09-05T15:09:00.000Z",
  "progressPercent": 25,
  "relevance": 60
}

Android 16 promoted Live Update

expo-push · up to 1 stop

331 B / 4096 B
Crewable · 24.9 mi
Lost Sierra 100: 24.9 mi
Next River Crossing in about 1h 16m · Cutoff +35 min · Fuel in 9 min · Crew: Sam, Jo at River Crossing · Tracking paused? Last seen 25 min ago
Navigate
Payload
{
  "title": "Lost Sierra 100: 24.9 mi",
  "body": "Next River Crossing in about 1h 16m · Cutoff +35 min · Fuel in 9 min · Crew: Sam, Jo at River Crossing · Tracking paused? Last seen 25 min ago",
  "shortText": "24.9 mi",
  "progressPercent": 25,
  "phase": "stale",
  "finished": false,
  "navigate": {
    "lat": 39.79,
    "lng": -120.7,
    "label": "River Crossing"
  }
}

Android in-place notification

expo-push · up to 1 stop

331 B / 4096 B
Crewable
Lost Sierra 100: 24.9 mi
Next River Crossing in about 1h 16m · Cutoff +35 min · Fuel in 9 min · Crew: Sam, Jo at River Crossing · Tracking paused? Last seen 25 min ago
Navigate
Payload
{
  "title": "Lost Sierra 100: 24.9 mi",
  "body": "Next River Crossing in about 1h 16m · Cutoff +35 min · Fuel in 9 min · Crew: Sam, Jo at River Crossing · Tracking paused? Last seen 25 min ago",
  "shortText": "24.9 mi",
  "progressPercent": 25,
  "phase": "stale",
  "finished": false,
  "navigate": {
    "lat": 39.79,
    "lng": -120.7,
    "label": "River Crossing"
  }
}

Garmin Connect IQ data field

https-poll · up to 24 stops

483 B / 32768 B
LS100
River Crossing
5.0 mi
ETA
1h 16m
BUFFER
+35
CREW
Sam, Jo
EAT / DRINK
24m / 20m
Payload
{
  "v": 1,
  "g": 1788620400,
  "x": 1788642000,
  "r": {
    "i": 4242,
    "n": "LS100",
    "u": "mi",
    "d": 160,
    "p": 40
  },
  "s": [
    {
      "i": 3,
      "n": "River Crossing",
      "d": 48,
      "e": 1788624960,
      "b": 35,
      "c": 2,
      "cn": "Sam, Jo"
    },
    {
      "i": 4,
      "n": "High Lake",
      "d": 72,
      "e": 1788638640,
      "b": 115,
      "c": 4,
      "cn": "Jo, Alex, Pat"
    },
    {
      "i": 5,
      "n": "Summit",
      "d": 96,
      "e": 1788652320,
      "b": 135,
      "c": 0,
      "cn": null
    },
    {
      "i": 6,
      "n": "Meadow",
      "d": 120,
      "e": 1788666000,
      "b": 155,
      "c": 1,
      "cn": "Sam"
    },
    {
      "i": 7,
      "n": "Finish",
      "d": 160,
      "e": 1788688800,
      "b": 175,
      "c": 2,
      "cn": "Sam, Jo"
    }
  ],
  "f": {
    "e": 24,
    "d": 20
  }
}
Crew: next assigned stopCrew member assigned to River Crossing, two hours before leave-by.
Role
crew
Phase
running
Relevance
55
Progress
13%
Next stop
River Crossing
Cutoff buffer
n/a
Fuel
n/a
Leave by
120 min

iOS Lock Screen + Dynamic Island

apns · up to 1 stop

775 B / 4096 B
Tyler Runnerrunning
12.7 mi
River Crossing
4h 21m
Leave in 2hNavigate
45 min drive from Bear Camp
Updated just now · On pace for ~26h
12.7 miDynamic Island4h 21m
Payload
{
  "contentState": {
    "phase": "running",
    "currentDistanceLabel": "12.7 mi",
    "nextStopName": "River Crossing",
    "nextStopEtaAt": "2026-09-05T19:21:15.000Z",
    "nextStopEtaEarliest": "2026-09-05T19:00:21.000Z",
    "nextStopEtaLatest": "2026-09-05T19:52:36.000Z",
    "leaveByAt": "2026-09-05T17:00:00.000Z",
    "leaveByDetail": "45 min drive from Bear Camp",
    "asOf": "2026-09-05T14:58:00.000Z",
    "source": "gps",
    "projectedFinishLabel": "On pace for ~26h",
    "navigateUrl": "crewable://race/4242/navigate?lat=39.790000&lng=-120.700000&label=River+Crossing&kind=station",
    "cutoffAt": null,
    "cutoffBufferMinutes": null,
    "fuelDueAt": null,
    "crewStatusLabel": null
  },
  "relevanceScore": 55,
  "phase": "running",
  "finished": false,
  "nextStopNavigateTo": {
    "lat": 39.79,
    "lng": -120.7,
    "label": "River Crossing",
    "kind": "station"
  },
  "progressPercent": 13
}

Apple Watch race view

watch-connectivity · up to 1 stop

223 B
LS100
12.7 mi
River Crossing · 4h 21m
Payload
{
  "phase": "running",
  "finished": false,
  "distanceLabel": "12.7 mi",
  "nextStationName": "River Crossing",
  "nextStationEtaAt": "2026-09-05T19:21:15.000Z",
  "cutoffBufferMinutes": null,
  "fuelDueAt": null,
  "progressPercent": 13,
  "relevance": 55
}

Android 16 promoted Live Update

expo-push · up to 1 stop

239 B / 4096 B
Crewable · 12.7 mi
Tyler Runner: 12.7 mi
Next River Crossing in about 4h 21m · Leave in 120 min
Navigate
Payload
{
  "title": "Tyler Runner: 12.7 mi",
  "body": "Next River Crossing in about 4h 21m · Leave in 120 min",
  "shortText": "12.7 mi",
  "progressPercent": 13,
  "phase": "running",
  "finished": false,
  "navigate": {
    "lat": 39.79,
    "lng": -120.7,
    "label": "River Crossing"
  }
}

Android in-place notification

expo-push · up to 1 stop

239 B / 4096 B
Crewable
Tyler Runner: 12.7 mi
Next River Crossing in about 4h 21m · Leave in 120 min
Navigate
Payload
{
  "title": "Tyler Runner: 12.7 mi",
  "body": "Next River Crossing in about 4h 21m · Leave in 120 min",
  "shortText": "12.7 mi",
  "progressPercent": 13,
  "phase": "running",
  "finished": false,
  "navigate": {
    "lat": 39.79,
    "lng": -120.7,
    "label": "River Crossing"
  }
}

Garmin Connect IQ data field

https-poll · up to 24 stops

401 B / 32768 B
LS100
River Crossing
17.1 mi
ETA
4h 21m
BUFFER
--
CREW
none
EAT / DRINK
24m / 20m
Payload
{
  "v": 1,
  "g": 1788620400,
  "x": 1788642000,
  "r": {
    "i": 4242,
    "n": "LS100",
    "u": "mi",
    "d": 160,
    "p": 20.5
  },
  "s": [
    {
      "i": 3,
      "n": "River Crossing",
      "d": 48,
      "e": 1788636075,
      "b": null,
      "c": 0,
      "cn": null
    },
    {
      "i": 4,
      "n": "High Lake",
      "d": 72,
      "e": 1788649755,
      "b": null,
      "c": 0,
      "cn": null
    },
    {
      "i": 6,
      "n": "Meadow",
      "d": 120,
      "e": 1788677115,
      "b": null,
      "c": 0,
      "cn": null
    },
    {
      "i": 7,
      "n": "Finish",
      "d": 160,
      "e": 1788699915,
      "b": null,
      "c": 0,
      "cn": null
    }
  ],
  "f": {
    "e": 24,
    "d": 20
  }
}
Crew: leave nowLeave-by just passed. Navigate action front and center.
Role
crew
Phase
running
Relevance
95
Progress
23%
Next stop
River Crossing
Cutoff buffer
n/a
Fuel
n/a
Leave by
-3 min

iOS Lock Screen + Dynamic Island

apns · up to 1 stop

775 B / 4096 B
Tyler Runnerrunning
22.4 mi
River Crossing
1h 54m
Leave nowNavigate
45 min drive from Bear Camp
Updated just now · On pace for ~26h
22.4 miDynamic Island1h 54m
Payload
{
  "contentState": {
    "phase": "running",
    "currentDistanceLabel": "22.4 mi",
    "nextStopName": "River Crossing",
    "nextStopEtaAt": "2026-09-05T16:54:00.000Z",
    "nextStopEtaEarliest": "2026-09-05T16:44:52.800Z",
    "nextStopEtaLatest": "2026-09-05T17:07:40.800Z",
    "leaveByAt": "2026-09-05T14:57:00.000Z",
    "leaveByDetail": "45 min drive from Bear Camp",
    "asOf": "2026-09-05T14:58:00.000Z",
    "source": "gps",
    "projectedFinishLabel": "On pace for ~26h",
    "navigateUrl": "crewable://race/4242/navigate?lat=39.790000&lng=-120.700000&label=River+Crossing&kind=station",
    "cutoffAt": null,
    "cutoffBufferMinutes": null,
    "fuelDueAt": null,
    "crewStatusLabel": null
  },
  "relevanceScore": 95,
  "phase": "running",
  "finished": false,
  "nextStopNavigateTo": {
    "lat": 39.79,
    "lng": -120.7,
    "label": "River Crossing",
    "kind": "station"
  },
  "progressPercent": 23
}

Apple Watch race view

watch-connectivity · up to 1 stop

223 B
LS100
22.4 mi
River Crossing · 1h 54m
Payload
{
  "phase": "running",
  "finished": false,
  "distanceLabel": "22.4 mi",
  "nextStationName": "River Crossing",
  "nextStationEtaAt": "2026-09-05T16:54:00.000Z",
  "cutoffBufferMinutes": null,
  "fuelDueAt": null,
  "progressPercent": 23,
  "relevance": 95
}

Android 16 promoted Live Update

expo-push · up to 1 stop

232 B / 4096 B
Crewable · 22.4 mi
Tyler Runner: 22.4 mi
Next River Crossing in about 1h 54m · Leave now
Navigate
Payload
{
  "title": "Tyler Runner: 22.4 mi",
  "body": "Next River Crossing in about 1h 54m · Leave now",
  "shortText": "22.4 mi",
  "progressPercent": 23,
  "phase": "running",
  "finished": false,
  "navigate": {
    "lat": 39.79,
    "lng": -120.7,
    "label": "River Crossing"
  }
}

Android in-place notification

expo-push · up to 1 stop

232 B / 4096 B
Crewable
Tyler Runner: 22.4 mi
Next River Crossing in about 1h 54m · Leave now
Navigate
Payload
{
  "title": "Tyler Runner: 22.4 mi",
  "body": "Next River Crossing in about 1h 54m · Leave now",
  "shortText": "22.4 mi",
  "progressPercent": 23,
  "phase": "running",
  "finished": false,
  "navigate": {
    "lat": 39.79,
    "lng": -120.7,
    "label": "River Crossing"
  }
}

Garmin Connect IQ data field

https-poll · up to 24 stops

399 B / 32768 B
LS100
River Crossing
7.5 mi
ETA
1h 54m
BUFFER
--
CREW
none
EAT / DRINK
24m / 20m
Payload
{
  "v": 1,
  "g": 1788620400,
  "x": 1788642000,
  "r": {
    "i": 4242,
    "n": "LS100",
    "u": "mi",
    "d": 160,
    "p": 36
  },
  "s": [
    {
      "i": 3,
      "n": "River Crossing",
      "d": 48,
      "e": 1788627240,
      "b": null,
      "c": 0,
      "cn": null
    },
    {
      "i": 4,
      "n": "High Lake",
      "d": 72,
      "e": 1788640920,
      "b": null,
      "c": 0,
      "cn": null
    },
    {
      "i": 6,
      "n": "Meadow",
      "d": 120,
      "e": 1788668280,
      "b": null,
      "c": 0,
      "cn": null
    },
    {
      "i": 7,
      "n": "Finish",
      "d": 160,
      "e": 1788691080,
      "b": null,
      "c": 0,
      "cn": null
    }
  ],
  "f": {
    "e": 24,
    "d": 20
  }
}
FinishedAcross the line. Every surface ends its activity.
Role
runner
Phase
finished
Relevance
40
Progress
100%
Next stop
none
Cutoff buffer
n/a
Fuel
n/a
Leave by
n/a

iOS Lock Screen + Dynamic Island

apns · up to 1 stop

497 B / 4096 B
Lost Sierra 100finished
99.4 mi
Updated just now · On pace for ~26h
99.4 miDynamic Islandfinished
Payload
{
  "contentState": {
    "phase": "finished",
    "currentDistanceLabel": "99.4 mi",
    "nextStopName": null,
    "nextStopEtaAt": null,
    "nextStopEtaEarliest": null,
    "nextStopEtaLatest": null,
    "leaveByAt": null,
    "leaveByDetail": null,
    "asOf": "2026-09-05T14:58:00.000Z",
    "source": "gps",
    "projectedFinishLabel": "On pace for ~26h",
    "navigateUrl": null,
    "cutoffAt": null,
    "cutoffBufferMinutes": null,
    "fuelDueAt": null,
    "crewStatusLabel": null
  },
  "relevanceScore": 40,
  "phase": "finished",
  "finished": true,
  "nextStopNavigateTo": null,
  "progressPercent": 100
}

Apple Watch race view

watch-connectivity · up to 1 stop

190 B
LS100
99.4 mi
Payload
{
  "phase": "finished",
  "finished": true,
  "distanceLabel": "99.4 mi",
  "nextStationName": null,
  "nextStationEtaAt": null,
  "cutoffBufferMinutes": null,
  "fuelDueAt": null,
  "progressPercent": 100,
  "relevance": 40
}

Android 16 promoted Live Update

expo-push · up to 1 stop

163 B / 4096 B
Crewable
Lost Sierra 100: finished
Across the line. Well run.
Payload
{
  "title": "Lost Sierra 100: finished",
  "body": "Across the line. Well run.",
  "shortText": null,
  "progressPercent": 100,
  "phase": "finished",
  "finished": true,
  "navigate": null
}

Android in-place notification

expo-push · up to 1 stop

163 B / 4096 B
Crewable
Lost Sierra 100: finished
Across the line. Well run.
Payload
{
  "title": "Lost Sierra 100: finished",
  "body": "Across the line. Well run.",
  "shortText": null,
  "progressPercent": 100,
  "phase": "finished",
  "finished": true,
  "navigate": null
}

Garmin Connect IQ data field

https-poll · up to 24 stops

116 B / 32768 B
LS100
FINISHED
Payload
{
  "v": 1,
  "g": 1788620400,
  "x": 1788642000,
  "r": {
    "i": 4242,
    "n": "LS100",
    "u": "mi",
    "d": 160,
    "p": 160
  },
  "s": [],
  "f": {
    "e": 24,
    "d": 20
  }
}