M25-29 · MARATHON

M25-29: Billy Ulrich Outkicks a Deep Field on the Hilly Streets of San Francisco

By MyRace AIJuly 26, 2026Official site ↗
  • Billy Ulrich wins in 2:27:48 (5:38/mi), posting the fastest men's split on the 2M→4M segment and holding off a relentless charge from the back half of the field.
  • Ian Tibbals runs 2:30:43 to finish 2nd — nearly five minutes faster than his 8th-place men's finish here in 2025 (2:35:56), a sharp improvement on the same course.
  • Jack Rosencrans storms through the field, moving from 19th among men at the 20-mile mark all the way to 5th by the finish with the 2nd-fastest men's split on the 20M→22M segment.
  • 1,176 finishers lined up in M25-29, making this one of the deepest age groups on the day; the top 20 alone spanned just 27 minutes and 43 seconds from first to last.

Billy Ulrich came to San Francisco with something to prove over those early miles. The Boulder, CO 29-year-old was as high as 1st among men by the 4M mark — powered by the fastest men's split on that opening 2M→4M stretch — but the race was far from settled. He yo-yoed between 1st and 2nd in the men's standings across the middle miles, and it wasn't until the final checkpoint that he reasserted himself in 2nd among men before ultimately claiming the M25-29 crown in 2:27:48, running a crisp 5:38-per-mile average in 59°F conditions with a stiff 15 mph wind off the Bay.

Ian Tibbals of Rye, NY turned in the most improved performance of the morning. Back in 2025, he crossed this same finish line 8th among men in 2:35:56; this time he ran 2:30:43 — more than five minutes faster — to claim 2nd in M25-29. He did it the hard way, sitting 8th among men early and grinding his way forward, eventually posting the 2nd-fastest men's split on the 18M→20M segment to lock in his position. Jordan Crist (2:32:05, 5:48/mi) rounded out the podium in 3rd, having also run the 2nd-fastest men's split on that early 2M→4M stretch — a segment that clearly separated the contenders from the field.

The race's most dramatic late move belonged to Jack Rosencrans. The Glen Head, NY 25-year-old was 19th among men through the early checkpoints and still 15th at mile 20 — but he unleashed the 2nd-fastest men's split on the 20M→22M segment to rocket home in 4th at 2:34:43. Meanwhile, local San Francisco runner Sheel Patel (5th, 2:37:17) faded from 5th among men at the gun to 11th by the finish, while Sean Rager (6th, 2:37:59) and Ian Miller (7th, 2:38:10) finished within 11 seconds of each other to close out a tightly contested top seven.

The course

Course map — San Francisco Marathon
281 ft range ≈ 2 stacked statues of liberty (151 ft each)×2285 ft4 ft013 mi26 mi
26.2 miles · 1,244 ft elevation gain · 285 ft max elevation
The course · start finish · © Mapbox © OpenStreetMap
Was this helpful?

AI recap · generated from official results

Beyond this racehow these athletes fared elsewhere at the event & in past years

  • Ian Tibbals2nd, 2:30:43·8th Men here in 2025 (2:35:56)
More from this race41 divisions
More from this event