2025 Zion 100K Race Report

On Saturday, April 12, 2025, I participated in the Zion 100K race in Apple Valley, Utah. This was a well-organized race with spectacular views, challenging terrain, and excellent volunteers. I recommend this race to beginners, experienced runners, and anyone in between. Here is my race report. You can find my Zion 100K race video here.

WHY THIS RACE?

I actually did not sign up for this race. My lovely wife, Rachel, decided to register me for the 100K race as a Christmas gift. When I opened the envelope and saw the confirmation email on Christmas morning, I stayed quiet. I was excited, but my brain immediately started to calculate how much time I had to train for this event. I flipped the mental switch and entered into ultra training mode.

Rachel picked this race because it is close to Zion National Park and Bryce Canyon National Park. We are trying to visit all the parks so this is a great way to turn the race travel into a vacation. We were able to hike Angel’s Landing, The Narrows, The Subway, and the Navajo-Peekaboo Loops in the days before the race. After all, the race company name is Vacation Races.

Source: Ride With GPS

Source: Ride With GPS

THE RACE COURSE

The course is a 61-mile trail run with about 6,500 feet of elevation gain. The altitude ranges from 3,500 to 5,400 feet. The terrain varies greatly with hard dirt, soft dirt, sand, slickrock, scree, asphalt, and concrete. The trail is mostly single track with some sections serving as double track.

The layout changed for 2025. I heard from many runners that it was much better this year compared to prior years. The layout is composed of four different loops that are connected by a slightly horizontal line. The map above marks the start and finish line with a small orange dot at the bottom. From that point, runners make their way to the loop to the far right, which wraps around Wire Mesa, and complete it counter-clockwise. Then, runners head to the second loop right next to it, which circles Grafton Mesa. This is also completed counter-clockwise. The course returns to the start/finish and continues west to Gooseberry Mesa. That is the second largest loop that is completed counter-clockwise. Then, it is time for the big loop, which begins with a 1,000 foot drop within a mile distance. This includes gradients of -33%. After the drop, there are rolling hills, which turns into a steady decline as runners approach the Virgin River. Then, there are about 4 miles of paved road and sidewalk followed by a few miles of steady incline on dirt. Finally, runners climb back up that 1,000 foot drop and make their way towards the finish line.

There are 10 aid stations no further than 8.3 miles apart. All are well stocked with water, electrolytes, and food. Aside from the beginning and end of the race, there are two official points where crew can access along the course. There are also some unofficial spectator spots along State Route 9 as runners go through the town of Virgin.

On top of Hook Mountain during a training run.

Parts of the Hook Mountain trail.

My longest training run.

TRAINING

I had about 15 weeks to train for this event. In the past, I have completed various races, including 50, 65, and 100 milers. I have done as much as 14,000 feet of elevation gain with altitudes peaking at 7,000 feet. I felt comfortable approaching this race, but there was one new variable: dry heat. Southern Utah is well known for hot temperatures.

My plan was to perform 4 short-distance roads runs and 1 long-distance trail run each week. The road runs included easy runs, hill intervals, and tempo runs. The trail long run was performed on Hook Mountain in Nyack, NY. I picked this trail because each loop was about 5.65 miles with 1,160 feet of elevation gain. The terrain was rocky and steep. This combination was ideal training for the race. Each week, the mileage increased until I hit a peak of 50 to 60 miles for a few weeks. Then, I tapered for 3 weeks.

It sounds straight-forward, but ultra-training almost never goes according to plan. There were some obstacles I had to overcome. First, I was dealing with a hectic work schedule. It was difficult to squeeze in 8 mile runs in the middle of the day during peak weeks so I did what I could by rearranging my schedule. Second, training in the cold would not prepare me for the heat so I did some runs indoors immediately followed by some time in the steam room. Third, my recovery was not always the best. I would feel the fatigue accumulating over the week. In order to reduce the risk of injury, I swapped some of the road runs with a Peloton power zone ride to give the joints a break. Lastly, I got sick during the highest mileage week. As a result, I did not do my longest run and I had to decrease my running volume for at least one week (this cold lasted forever).

The week leading up to the race, I felt strong and confident. I knew my training was not great, but I felt a sense of calm. I didn’t know if this was a good thing or a bad thing.

This was the race plan broken down into segments between aid stations.

RACE STRATEGY & GOALS

If you have read my previous race reports, then you know I am very detailed in my preparation for a race. I know the course, aid stations, nutrition, hydration, and time goals inside and out. I did not feel very prepared for this race. The day before the race, I put together the table above for Rachel (my crew) and Brian (my pacer) in order to give them a window of time for crew and pacer access points. I applied a slower pace to the sections with greater change in elevation and a faster pace to the flatter sections. I also applied a slower pace to the second half of the race knowing I would be tired.

As I made the table, I started to visualize the race in three different sections: The Warm Up, The Big Descent, and The Big Climb. The first section, The Warm Up, is the first 18.5 miles. At the 18.5 mile marker, I would see Rachel and she would provide me with my drop bag to restock on fuel. The second section, The Big Descent, is mile 18.5 until mile 43.5. This section includes a steep 1,000 foot descent from Gooseberry Mesa. At the 43.5 mile marker, I would see Rachel to restock on fuel and pick up my pacer, Brian. The last section, The Big Climb, is from mile 43.5 until the finish. This section includes a steep 1,000 foot climb back up Gooseberry Mesa and a grind to the finish line.

For nutrition, I planned to consume 250 to 300 calories per hour with Tailwind drink and Precision Hydration gels. The Tailwind includes electrolytes and if I needed more then I would get some from the aid stations. I also planned to drink as much water as I could. My strategy is to stay ahead of the game. If I feel thirst or hunger, then I know I’m already behind schedule.

My primary goal is always to cross the finish line without injuries. However, after creating the table above, I had a few specific time goals.

Goal A (safe goal): Finish the race in 15 hours and 55 minutes.

Goal B (expected goal): Finish the race in 14 hours and 9 minutes.

Goal C (reach goal): Finish the race in 12 hours and 23 minutes. (I remember telling Brian this was almost unrealistic considering it would put me in top 10 out of 267 runners.)

My bib!

My wife, Rachel, is the crew.

My friend, Brian, is the pacer.

FINAL RACE PREP

A week before the race, I began to organize my race clothes, gear, nutrition, and personal care kit. For race day clothing, I decided to use my Ten Thousand Lightweight Shirt and Ten Thousand Distance Shorts. On my head, I wore my Boco Gear Zero Boundaries hat and Goodr sunglasses. On my feet, I decided on the Darn Tough Micro Crew Socks and the Hoka Challenger 7. These articles of clothing felt the most comfortable on my training runs.

My gear included 1 Garmin Fenix 6 Pro Sapphire, 1 Salomon Active Skin 12L running vest, 1 two-liter water bladder, 2 soft flasks, 1 pair of Leki Ultratrail FX One trekking poles, 2 headlamps, 1 whistle, 1 waterproof jacket, 1 phone, and 1 GoPro attached to an extendable stick. The race also required a GPX navigation device with the correct race route loaded (I used my Garmin watch).

My wife, Rachel, and I flew into Las Vegas on the Tuesday before the race. Then we drove about 2.5 hours to Hurricane, UT where we stayed in a pleasant Airbnb. Leading up to the race, we did a variety of hikes in Zion and Bryce Canyon. Some of these were long and technical so I prioritized sleep to avoid accumulated fatigue. One benefit of doing these hikes was acclimatizing to the higher elevation, which helped a ton for race day.

On Friday, we did a packet pick up and registered Brian as a pacer. We didn’t spend much time at the event because I wanted to finalize my nutrition and get to bed early considering the 5:30 AM start time.

Runners and spectators gathering near the start line.

My face might not say it, but I’m excited!

Right before starting the race.

RACE DAY

On race day, I woke up at 3:30 AM and went through my morning routine as if I was going to do a long training run. I drank a cup of water, then some cold brew. I also ate oatmeal and a banana. I ate as soon as I got up to give myself time to use the bathroom. Every runner’s worst nightmare is having to do #2 just before the start of the race.

I taped my big toes and pinky toes to protect them, put on my running clothes, and packed up my running vest. I also put on anti-chafing cream, sun block, and chapstick. I was ready to go!

Rachel and I drove to Ruby Rider Ranch in Apple Valley, UT in the darkness of the early morning. We arrived by 5:10 AM with plenty of time to park, warm up, and consume a gel. The temperature was closer to 50º F, but it felt cold with the wind. I decided to put on my thin layered rain coat.

By 5:25 AM we approached the start line and waited. The runners were starting to gather. The crowd murmur was drowned out by “Back in Black” by AC/DC blasting from the event speakers. There was a nervous, but exciting energy in the air. As I do with every race, I remained quiet and focused until the race began.

At 5:30 AM, the race announcer began the countdown. “Five, four, three, two, one, let’s do it!” All of a sudden, all 267 runners were off into the darkness.

For the remainder of this race report, I will break down the 100K course by the three sections discussed above. They are The Warm Up, The Big Descent, and The Big Climb.

The morning twilight.

The sun peaking over the horizon.

Passing by the half marathon marker.

The Warm Up (Mile 0-18.5)

The race started on a soft, powdery dirt road with our headlamps lighting the way forward. There was a considerable amount of downhill in the first few miles, which made it a great way to warm up. The road was wide so runners were able to spread out and find their own pacing. I felt comfortable averaging a 9:00 minute per mile pace until we hit the first aid station called Wire Mesa 1 Aid Station at mile 3.2. I felt good so I did not stop.

I continued on the course, which made a big loop around the cliffs of Wire Loop Mesa. Much of this was loop was dirt with some large rocks. Overall, I found it easy even in the dark. The morning twilight allowed me to see parts of the valley down below. It was hard not to stop and just observe the changing colors of the landscape. In certain sections, I could see runners along the cliffs way ahead of me with their headlamps. It looked like a string of Christmas lights being dragged through the forest.

I reached Wire Mesa 2 Aid Station at mile 10.4. I refilled my water bladder and grabbed some pretzels. By this point, I reached 750 feet of elevation gain. I felt good as I made my way back to the soft, powdery dirt road where I was running downhill. However, I was now returning so I had to go uphill. I was heading towards Grafton Mesa for the second loop.

As I pulled into Grafton 1 Aid Station at 12.3 miles, the sun was over the horizon and golden hour filled the landscape. I refilled my electrolytes by using the Gnarly brand they had available. I tested this brand before so I knew it would settle well in my digestive system. Then, I started the Grafton Mesa loop.

This was a shorter loop, but it had more elevation change. The terrain was dirt with some rocks here and there. It was very runnable, but I made sure to pace myself. By the time I pulled into the Grafton 2 Aid station at mile 17.5 (the end of the loop), I accumulated about 1,500 feet of elevation gain.

After the aid station, I went back on the dirt road towards the start and finish line at mile 18.5. This is where I met Rachel, who provided me with more gels, Tailwind, and words of encouragement. I finished the “warm up” feeling strong. All that was on my mind was the big descent, which was coming up in the next section.

The trails on Gooseberry Mesa.

Valley views from Gooseberry Mesa.

“The Big Descent” from Gooseberry Mesa.

The Big Descent (Mile 18.5-43.5)

I continued on the dirt and gravel road for about 5 miles. This was a long and steady incline where I did a lot of run-walk intervals. I arrived at Mondo Z 1 Aid Station at mile 23.6. I treated myself to some bacon and refilled my water bladder. I was excited to run around the third loop on Gooseberry Mesa because I heard it had dramatic panoramic views. The mesa did not disappoint.

I ran along the northern rim of Gooseberry Mesa in awe of the vast valley below. I must have stopped at least five times to take pictures. The best viewpoint was at the most western point of the trail. We ran on a narrow strip of the mesa with a 360º view of the surrounding valleys. Many runners took a few minutes here to just soak in the beauty. Then, I did a quick stop at Gooseberry Aid Station at mile 31.5 to refill on water and electrolytes.

Much of the Gooseberry trail was slickrock, which also served as a popular mountain biking trail. There were a few close calls of collision with mountain bikers, which I was not too thrilled about. I had to keep my eyes on the trail and slow down on sharp turns in anticipation of riders.

I also overheard quite a few runners complaining about the hard impact of the trail. If you don’t train on slickrock, then it can be very hard on the legs. Some people were feeling it. Luckily, Gooseberry Mesa felt familiar. It reminded me of trail running in Shawangunk Ridge located in New York. My legs knew how to navigate that rocky terrain.

I finished the loop, which brought me back to Mondo Z 2 Aid Station at mile 35.2. I was eager to tackle the big descent and I felt like I had enough water to get me to mile 43.5. I decided to skip the aid station and move forward. This was a mistake.

I started to go downhill on a steep trail full of scree. I took my time here just to make sure I didn’t get injured. There were a few sketchy sections with loose dirt and steep surrounding drop offs. I found the challenge fun and short-lived.

By the time I got to the bottom, there was 5 miles of rolling hills until the next aid station. Out of the whole race, I thought this was the most difficult part. The heat of the day was hitting its high and I was running out of water. I was encountering hill after hill, which began to irritate me. Then I remembered, this is why I was here. I seek the challenges so I can grow into a stronger person. I made a rule to only run on downhills and when the clouds blocked the sun. Otherwise, I would walk fast. This helped regulate my body temperature to avoid heat exhaustion. This carried me all the way until the next aid station.

Picking up my pacer at mile 43.5.

About to enjoy the rush of caffeine and sugar through a Coke.

Making my way back up Gooseberry Mesa.

The Big Climb (Mile 43.5-61)

I ran into the Virgin Desert Aid Station in desperate need of water. I ran right past my wife and pacer towards the water. I chugged cold water, wet my hair, restocked on gels and Tailwind, and grabbed my trekking poles. Then, my wife handed me a cold Coca-Cola. She knew that this is what I usually have around mile 40 of 100K races. The sweet taste of Coca-Cola and the caffeine gave me a much needed second wind.

I kissed Rachel good-bye and then Brian and I began to run into the desert. This is when the race really started for me. I was hot, dehydrated, and my legs were starting to get tired. If I pushed too hard, then I would risk cramping or injury. There was a moment when I had a hint of nausea and dizziness, but I slowed down and forced myself to drink more water. That seemed to do the trick.

We cruised by Virgin Dam Aid Station at mile 45.3. Honestly, I was so focused on the big climb at mile 54 that I barely remember this aid station. I even forgot to mention it in my video. Either way, we safely made it to Virgin, a small town with a population of less than a thousand. I had the opportunity to once again see Rachel, who was cheering for me from the side of the road. We ran through the town along State Route 9 for about 2.7 miles before turning to go back into the desert.

By mile 52, I finished my Coca-Cola and was ready to head back towards Gooseberry Mesa for the big climb. At that point, Brian mentioned I was 14th overall, 11th male, and 1st in my age group. I came into this race hoping to break 14 hours and I was already way ahead of schedule. However, when Brian mentioned those current standings, my competitive urge kicked in and we started to push harder.

We finally arrived to the big climb. I pulled out my trekking poles and started to march up the incline with as little breaks as possible. I trained with a lot of elevation gain, so I did not find this section too difficult. I just kept my head down, leaned forward, and took it step by step as I navigated the loose rock and dirt. As we were making our way up, we saw some runners making their way down. Everyone was having a great time sharing words of encouragement and jokes. You know what they say, “Misery loves company.”

Brian and I finished the big climb and arrived at Mondo Z 3 Aid Station at mile 55.8. I refilled my water bladder and ate a slice of watermelon. The course took us back onto the long dirt road towards the finish line. Luckily, a good portion of this road was downhill. We ran all the downhills, walked the uphills, and tried to run the flats. By this point, my legs were feeling heavy. I felt bad forcing Brian to walk, but he gave me the extra push I needed to pick up the pace. We kept looking over our shoulders to see if there were any runners behind us. I really wanted to maintain 1st place in my age group.

As we approached the end of the course, I could hear the music blasting. This was the home stretch! I started to pick up the pace and turned the corner onto the Ruby Rider Ranch field. There, I could see the finish line. I started to run even faster with a smile on my face. The announcer said my name as I cross the finish line. All of a sudden, the adventure was over.

By 6:17 PM, I completed 61 miles and 6,500 feet of elevation gain. My official time was 12:46:47. This put me in 14th place overall, 11th place among males, and 1st place in my age group (M35-39).

A big thank you to Rachel for crewing me.

A big thank you to Brian for pacing me.

The Zion 100K medal.

Next
Next

Allow Me to Reintroduce Myself