| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 11/1/26 | New York City Marathon | Race Chair | 2:36:43 | 2:36:43 | 26.2 | 5:59 | 16th of 27 men, 2nd among amateur race chairs. 50–57°F. | O | ||||||||
| 9/20/26 | Zuma Beach Triathlon — relay, bike leg | Handcycle | 1:01:25 | 1:01:25 | 16.19 | 15.8 mph | Leg time only. 97 W. First race on the 40T oval ring. | I | ||||||||
| 8/2/26 | Camarillo Half Marathon | Race Chair | 1:28:04 | 1:28:04 | 13.3 | 6:39 | 4th overall, 1st in age group. Went long. Chip: 13.1 mi at 6:43/mi. | O | ||||||||
| 5/30/26 | Angels 5K, Anaheim | Race Chair | 18:30 | 18:30 | 2.98 | 6:12 | 1st in division | A | ||||||||
| 5/17/26 | Venice Beach Half Marathon | Race Chair | 1:09:48 | 1:09:48 | 13.16 | 5:20 | 1st overall | A | ||||||||
| 4/20/26 | Boston Marathon | Race Chair | 2:08:39 | 2:08:39 | 26.43 | 4:52 | Last in division. Winner 50 min ahead. 51°F. | A | ||||||||
| 3/8/26 | LA Marathon | Handcycle | 1:41:35 | 1:41:30 | 26.40 | 15.6 mph | 2nd in division. 93 W. | A | ||||||||
| 3/1/26 | Napa Valley Marathon | Race Chair | 2:26:48 | 2:26:48 | 26.2 | 5:36 | 1st overall. 64°F. | A |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 11/15/25 | Garmin Marathon, Tucson | Race Chair | 2:46:42 | 2:46:42 | 26.55 | 6:17 | 1st overall | A | ||||||||
| 10/12/25 | Chicago Marathon | Race Chair | 2:13:12 | 2:13:12 | 26.37 | 5:03 | Boston qualifier | A | ||||||||
| 9/14/25 | Zuma Beach Triathlon — relay, bike leg | Handcycle | 58:29 | 58:29 | 16.8 | 72 W | Annual ritual with Aaron Jasper. Leg time only. | I | ||||||||
| 8/17/25 | Naples Island Swim, Long Beach | Swim | 50:15 | 50:15 | 2:51/100yd | A | ||||||||||
| 7/20/25 | Legacy Triathlon, Long Beach | Triathlon | 1:34:10 | 24:08 | 0.4 mi | 3:31/100yd | 44:16 | 12.0 | 96 W | 18:38 | 3.1 | 5:58 | 1st in division | A | ||
| 5/18/25 | Venice Beach Half Marathon | Race Chair | 1:05:27 | 1:05:27 | 13.38 | 4:54 | 1st overall. Went long. Chip: 13.1 mi at 5:00/mi. | A | ||||||||
| 3/16/25 | LA Marathon | Handcycle | 1:32:37 | 1:35:14 | 26.08 | 16.4 mph | 3rd overall. 106 W. | A | ||||||||
| 3/8/25 | Pasadena Duathlon | Duathlon | 34:21 | 34:21 | 9.7 | 91 W | 20:10 / 18:37 | 3.6 / 3.3 | 5:40 | I | ||||||
| 3/2/25 | Napa Valley Marathon | Race Chair | 2:06:23 | 2:06:23 | 26.37 | 4:48 | 1st overall. Boston qualifier. | A | ||||||||
| 1/31/25 | Disneyland Half Marathon | Race Chair | 1:07:37 | 1:07:37 | 13.2 | 5:08 | 1st in division | A |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12/14/24 | IRONMAN 70.3 World Championship — Taupō, NZ | Triathlon | 7:13:59 | 4:16:03 | 55.8 | 82 W | 1:48:05 | 13.11 | 8:15 | 4th in division. Fastest American. 82–85°F. | A | |||||
| 8/18/24 | Naples Island Swim, Long Beach | Swim | 51:10 | 51:10 | 2:54/100yd | A | ||||||||||
| 6/9/24 | IRONMAN 70.3 Eagleman, Cambridge MD | Triathlon | 5:45:03 | 1:05:42 | 2,163 yd | 3:02/100yd | 3:09:32 | 56.23 | 17.8 mph | 1:16:05 | 12.86 | 5:55 | 93 W. 81–85°F. | A | ||
| 6/1/24 | Virtual Global Running Day 5K | Race Chair | 17:53 | 17:53 | 3.1 | 5:45 | 2nd in division | A | ||||||||
| 3/30/24 | Lululemon 10K Tour, LA | Race Chair | 46:02 | 46:02 | 6.2 | 7:24 | A | |||||||||
| 3/17/24 | LA Marathon | Handcycle | 1:41:43 | 1:41:46 | 26.52 | 15.6 mph | 6th overall. 104 W. | A | ||||||||
| 3/9/24 | Pasadena Duathlon | Duathlon | 1:17:19 | 33:41 | 9.44 | 16.8 mph | 18:42 / 20:09 | 3.31 / 3.56 | 5:39 / 5:40 | 1st in division. 108 W. | A | |||||
| 1/11/24 | Disneyland Half Marathon | Race Chair | 1:19:39 | 1:19:39 | 13.30 | 6:02 | 1st in division | A |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10/22/23 | IRONMAN California, Sacramento | Triathlon | 12:31:21 | 1:06:16 | 3,932 yd | 1:41/100yd | 7:02:51 | 111.85 | 15.9 mph | 3:41:44 | 26.40 | 8:24 | First full IRONMAN finish. 77 W. | A | ||
| 9/10/23 | Santa Monica Classic 10K | Race Chair | 34:26 | 34:26 | 6.22 | 5:35 | 1st overall | A | ||||||||
| 3/19/23 | LA Marathon | Handcycle | 1:33:39 | 1:29:50 | 25.08 | 16.7 mph | 4th overall. 116 W. | A | ||||||||
| 3/5/23 | Napa Valley Marathon | Race Chair | 2:40:24 | 2:40:24 | 26.4 | 6:06 | 1st overall. 41°F. | A |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10/6/22 | IRONMAN World Championship — Kona | Triathlon | DNF | 1:52:33 | 4,224 yd | 2:40/100yd | 9:37:36 | 112.45 | 11.7 mph | Four chain derailments. 68 W. 90°F. | G | |||||
| 6/18/22 | Sugar Daddy Half Marathon, Santa Clarita | Race Chair | 1:38:46 | 1:38:46 | 14.92 | 6:37 | 7th overall, 3rd in division. Went long. Chip: 13.1 mi at 7:32/mi. | A | ||||||||
| 3/20/22 | LA Marathon | Handcycle | 1:38:19 | 1:38:19 | 26.37 | 16.1 mph | 4th overall. 111 W. | A | ||||||||
| 2/5/22 | IRONMAN World Championship — Kona | — | CANCELED | The rescheduled 2021 championship. Cancelled and relocated to St. George, Utah on May 7, 2022 — the first World Championship held outside Hawaiʻi. Qualified athletes were deferred to the two-day Kona in October 2022. |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10/24/21 | IRONMAN California | — | CANCELED | Bomb cyclone | ||||||||||||
| 10/9/21 | IRONMAN World Championship — Kona | — | CANCELED | The date qualified for at Lubbock. Cancelled in August over the Delta surge and Hawaiʻi travel restrictions; pushed to February 5, 2022. | ||||||||||||
| 8/7/21 | Pasadena Triathlon | Triathlon | — | 35:50 | 9.77 | 16.4 mph | 18:59 | 3.27 | 5:49 | G | ||||||
| 6/27/21 | IRONMAN 70.3 Lubbock | Triathlon | 5:57:19 | 57:33 | 2,112 yd | 2:43/100yd | 7:21 | 3:17:55 | 56 | 16.98 mph | 4:21 | 1:30:10 | 13.1 | 6:53 | Qualified for Kona. 98 W. | A |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3/7/20 | Pasadena Triathlon | Handcycle | 50:07 | 50:07 | 12.77 | 15.3 mph | 91 W | G |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 9/15/19 | Malibu Triathlon | Handcycle | 1:01:52 | 1:01:52 | 16.8 | 99 W | I | |||||||||
| 9/8/19 | IRONMAN 70.3 World Championship — Nice, France | Triathlon | DNF | 57:40 | 2,112 yd | 2:32/100yd | 3:09:21 | 19.6 of 56 | 77 W | Bike file stops at 19.6 mi | I | |||||
| 6/30/19 | IRONMAN 70.3 Lubbock | Triathlon | 6:41:51 | 1:00:28 | 2,112 yd | 2:52/100yd | 3:04 | 4:00:03 | 56 | 14.00 mph | 6:09 | 1:32:07 | 13.1 | 7:02 | Qualified for 70.3 Worlds. 82°F. | A |
| 5/18/19 | Shinzen Garden 10-Mile Run | Race Chair | 1:03:24 | 1:03:24 | 9.97 | 6:22 | Recovered from the Garmin race flag | G | ||||||||
| 4/28/19 | Millerton Lake Triathlon — relay, swim & bike legs | Triathlon | — | 18:34 | 400 yd | 4:39/100yd | 55:04 | 10.5 | 11.44 mph | Leg times only. Did not race the run. | S | |||||
| 4/6/19 | IRONMAN 70.3 Oceanside | Triathlon | — | 3:57:08 | 55.83 | 14.1 mph | Bike leg only — no swim or run recording, no finish time in any source. 2,382 ft ascent, 155 bpm avg, 83 W, 51.8–75.2°F. | G | ||||||||
| 3/9/19 | Sarasota-Bradenton CAMTRI | Triathlon | 1:30:20 | 26:21 | 820 yd | 3:13/100yd | 41:23 | 20 km | 29.00 kph | 1:41 | 20:57 | 5 km | 4:01 | 6th overall / 4th in H1. Sheet logged this race in metric. | S |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12/1/18 | Began coaching with Carlos Moleda & Ralf Lindschulten, Nexus Coaching | — | — | Not a race | ||||||||||||
| 11/4/18 | Two Cities Half Marathon, Fresno | Race Chair | 1:21:02 | 1:21:02 | 13.1 | 6:11 | 1st in division | A | ||||||||
| 9/16/18 | Malibu Triathlon — relay, bike leg | Handcycle | 1:02:20 | 1:02:20 | 17 | 16.36 mph | Leg time only | S | ||||||||
| 9/9/18 | San Francisco Giant Race 10K | Race Chair | 1:03:39 | 1:03:39 | 6.2 | 3rd overall | A | |||||||||
| 6/24/18 | IRONMAN 70.3 Buffalo Springs Lake | Triathlon | DNF | 1:12:13 | 2,112 yd | 3:25/100yd | 4:46:22 | 56 | 11.73 mph | First World Championship qualifying attempt | S | |||||
| 6/3/18 | Escape From Alcatraz — relay, bike leg | Handcycle | 1:32:34 | 1:32:34 | 18 | 11.67 mph | 1,600 ft climbing. Leg time only. | S | ||||||||
| 4/7/18 | IRONMAN 70.3 Oceanside | Triathlon | 7:52:40 | 1:05:46 | 2,112 yd | 3:07/100yd | 10:34 | 4:26:25 | 56 | 12.61 mph | 11:25 | 1:58:30 | 13.1 | 9:03 | Bike mechanical. First 70.3 finish. Garmin bike: 56.02 mi, 2,359 ft ascent, 155 bpm avg, 67.8°F. | S |
| 3/18/18 | LA Marathon | Race Chair | 2:53:24 | 2:53:24 | 26.2 | 6:37 | Flat at mile 2. 4th in division. | A |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 9/24/17 | Santa Cruz Triathlon — relay, bike leg | Handcycle | — | Leg time only | S | |||||||||||
| 9/17/17 | Malibu Triathlon — relay, bike leg | Handcycle | 59:52 | 59:52 | 17 | 17.04 mph | Leg time only | S |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 9/17/16 | Malibu Triathlon — Super Sprint | Triathlon | 3:06:06 | 51:02 | 880 yd | 5:48/100yd | 8:07 | 1:22:39 | 18 | 13.07 mph | 5:56 | 38:22 | 4 | 9:36 | A | |
| 8/15/16 | Tri Santa Cruz — Sprint | Triathlon | 2:07:01 | 29:52 | 820 yd | 3:38/100yd | 5:27 | 57:46 | 9.32 | 9.68 mph | 5:16 | 28:40 | 3.107 | 9:14 | Run unofficial | S |
| 7/31/16 | Oakland Triathlon — Sprint | Triathlon | — | 12:41 | 1,056 yd | 1:12/100yd | 13:46 | 57:47 | 12.45 | 12.93 mph | First triathlon back from injury | S |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5/17/15 | Bay to Breakers, San Francisco | — | 1:11:49 | 1:11:49 | 7.46 | 9:37 | A | |||||||||
| 5/2/15 | Wildflower Triathlon, Bradley CA | — | 3:26:48 | A | ||||||||||||
| 4/19/15 | Half Moon Bay Triathlon | — | 1:19:12 | A |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 6/7/14 | Alcatraz Sharkfest Swim, San Francisco | — | 1:19:00 | 1:19:00 | 2:59/100yd | A |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 9/15/12 | Malibu Triathlon International | — | 3:07:59 | A |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 9/17/11 | Malibu Sprint/Olympic Triathlon | — | 3:42:11 | A |
| Date | Event | Disc | Total | Swim | Dist | Pace | T1 | Bike | Dist | Speed | T2 | Run | Dist | Pace | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5/18/08 | Bay to Breakers 12K, San Francisco | — | 1:20:04 | 1:20:04 | 7.46 | 10:44 | A |
Race Chair competitive division, scored against the running field · Handcycle open division, geared machine · Triathlon · Duathlon · Swim open water
v5.1 · 3 November 2026 · 66 entries · 55 post-injury starts
Official times only. Every time here is the official chip time from the race's own timing (Athlinks or the event's published results), not a Garmin watch or training-device time. A watch time appears only where no official time exists, and its row is tagged G (Garmin) or I (intervals.icu).
Newest first. Total time first, then splits left to right, following the Triathlon Resume sheet.