
At kilometer 52.6, on a flat stretch of trail with less than 4 km to go, my heart rate read only 119. Yet I was gasping for air, and my chest felt tight.
Two runners shouted that I was on the wrong trail. I turned back, thanked them, and made a decision: no more pushing. The sub-10-hour goal I had chased all morning could go.
I crossed the finish line of the Ultra Trail Cordillera Philippines (UTCP) Solibao 50K in 10:21:24, 39th overall. I missed my target by about 21 minutes and struggled through almost the last third of the race. I rate the day as Fair.
This is the story of the 54 days that led there: what worked, what didn’t, and what I would tell any runner (and any race director) after this one.
The setup: 54 days, starting almost from zero
I decided to join UTCP only about two months before the race. That decision set the runway: I began this build on September 1, 2026, with just 54 days to race day. I am no stranger to ultras: I have finished UTMB, and I am in the Hall of Fame of the H1 Hardcore 100 Miles. But that was the past. In January I finished the Hong Kong 100 (50K), and after that my running had faded.
When I looked honestly at my Strava, I was running only 15 to 20 km a week, and not every week. I had not run longer than about 6 km since June. Solibao, meanwhile, promised about 3,300 m of climbing over 50 km, a 3 AM start (later moved to 4 AM) and a 15-hour cutoff, in the pine forests and ridgelines of Itogon, Benguet.
The goal had to be honest too: a strong, safe finish well inside the cutoff, not a time.
My first real training program
Here is a confession: this was the first time in my entire running career that I followed a serious training program. For all my years of ultras, I had never been coached, and I had never stuck to a plan. I tried once, for the Hong Kong 100 in January this year, but after a few weeks I drifted and never finished it.
Last year I also attended a short training by Coach Andy DuBois, and I was glad to find that his principles matched mine. So I took everything I could recall from it and built my own personalized plan around it.
This time, AI tools made the difference. They made it easy to collect, log and analyze every session, and the numbers in this blog come from that log.
His principles are simple and hard to follow:
- Easy days are truly easy, so hard days can be truly hard. No junk miles.
- Train the terrain: long climbs and descents, not just distance.
- One true peak simulation, then an absorb week, then a taper.
- Better slightly undertrained than overcooked on race day.
- No new gear, food or workouts in the last two weeks.



📖 See the full plan: Training Plan for Ultra Trail Cordillera Philippines (50K) – October 24, 2026. It has the 54-day plan, my talk-test zones, the course analysis, the elevation profile and the race plan.
The training block: consistency first, then vertical
The plan had three phases. Two weeks of Restart & Rebuild, just showing up 5 to 6 days a week. Four weeks of race-specific build, with hill repeats, hill tempo and long runs that climbed from 500 m to over 1,000 m of gain, plus an absorb week in the middle. Then a two-week taper into race day.
I logged every session in Notion against my Strava data: planned vs actual, feel, fuel and a short reflection.
| Before race day (Days 1-53) | Planned | Actual |
|---|---|---|
| Distance | about 270 km | 283 km |
| Elevation gain | about 6,000 m | 7,199 m |
| Longest run | 24-26 km | 30.8 km |
📊 Every session, planned vs actual: UTCP 50K Training Full Log. It has all 54 days with feel, fuel and reflections, checked against Strava.
The base came back faster than I expected. By mid-October, easy runs felt truly easy, and the legs recovered well between hard days.
One thing this block left out was nutrition. I had no nutrition plan at all, for daily eating or for race fueling. I only measured my fueling on one long run, at about 33 g of carbs an hour, and I chose my race-day food in the last few days. Race day showed the gap. In my next training block, nutrition will be part of the plan from day one.
My habit: the plan as a floor, not a ceiling
The numbers above show my biggest training habit. I kept doing more than the plan.
- Oct 3, absorb week: the long run was meant to be 14 km and 350 m. I ran 17.4 km and 531 m. Honestly, I had misread the plan, and I went without solid food because I hadn’t prepared any.
- Oct 10, peak simulation: planned 24-26 km. I ran about 30.8 km.
- Oct 16 and 17, in the taper: a little extra distance one day and about 195 m of extra climbing the next.
It felt good. The plan seemed more conservative than my fitness. I made a deliberate call to keep following it as written, and to let race day be the real test of whether the plan was too cautious. Race day gave an answer, though not a simple one.
Finding my own zones: the talk test vs Strava
The most useful thing I learned in this block came from Coach Andy’s training, not from my watch. Strava’s zones are generic heart-rate bands. Coach Andy’s zones are based on feel:
- Zone 1: you can talk continuously while running.
- Zone 2: starts when you have to catch a little air from time to time while talking.
- Higher zones: speech breaks into short phrases, then single words.
So I tested myself. While running, I counted out loud from 121 to 128 (about 50 syllables) and noted my heart rate at the moment speech stopped being comfortable. I recorded the tests as voice memos.
| Zone | Talk test | My heart rate | Strava’s band |
|---|---|---|---|
| 1 | Continuous sentences | up to about 128 | up to 111 |
| 2 | A breath now and then | 129-136 | 112-138 |
| 3 | Short phrases | 137-150 | 139-151 |
| 4 | Words only | 151+ | 152-165 |
The top of each zone matched Strava closely. The bottom did not. My true easy zone runs up to about 128 bpm, not 111. Without the talk test, I would have labeled many genuinely easy runs as Zone 2, and I would have trusted the watch over my own breathing.
The big surprise came on race day. On the long climb, my voice-memo talk tests (a breath after every three words) matched my heart rate of 151 to 153 almost exactly. My personal markers held up under race conditions. The lesson was never about measuring the zones. It was about obeying them early.
Race week: 30 hours of travel and a missed email

🏁 My race-day game plan: UTCP 50K Solibao: Race Plan & Checklist. It has the pacing and fueling plan, effort rules, contingency plan and full gear checklist.
Race week never goes the way it looks on paper, especially from Antique.
- Oct 20: I skipped the planned easy run while packing. Bus from San Jose, Antique at 9 AM, a long wait at the port in Nabas, Aklan, then the overnight RORO ferry, sleeping on a reclining seat.
- Oct 21: Bus from Batangas to Antipolo, about 30 hours door to door. That afternoon, a short walk with the kids and the dogs. Feet rested, heart full.
- Oct 22: The shakeout jog never happened. Instead I walked around Decathlon for a rain jacket and a spare headlamp, and around SM for Fitbars. Mandatory gear came first.
- Oct 23: A 2 AM bus from Cubao, arriving in Baguio around 7 AM (I sleep well on buses). A medical certificate from a clinic a Baguio race-director friend recommended, then kit pickup, the community and the 10 AM briefing. I couldn’t nap. Lights out at 9 PM, alarm at midnight, at the race village by 1 AM.
Then I learned the gun had been moved from 3 AM to 4 AM. It had been announced by email, and I hadn’t checked my email. That was an hour of sleep I could have had.
I also made two last gear choices. For shoes, the Adidas Terrex Agravic Speed, broken in at about 344 km. For fuel, I compared bars on the store shelf. A nut bar had almost no usable carbs, and an oat bar carried more fat and fiber. I chose Fitbar: about 15 g of fast carbs in a 22 g bar, low in fat and fiber, easy to eat while moving.
Race day: strong for 38 km, then survival


Solibao is an out-and-back. From Camp John Hay (about 1,530 m) you drop about 800 m into the valley near Itogon, climb about 900 m to the turnaround at the top, then retrace every step. Everything you descend in the morning, you climb again in the afternoon heat. I recorded voice memos along the way, and they tell the story better than my memory.

The first 17 km: fast and fresh. Out of AS1 at 1:08 race time and AS2 at 1:28. “So far so good. Okay pa ang mga legs. Fresh pa naman.” My plan said Zone 1 for the opening descent in the dark, but I went out faster on purpose. I wanted to get ahead of the pack before the trail narrowed into a bottleneck, and the early uphill sent my heart rate soaring. On the long downhills that followed, I chose to bank time to offset the slowdown I expected on the big climbs. I never wrote it into the plan, but it is always my strategy in a race: a deliberate tactic. My heart rate averaged about 145, Zone 3. It felt easy. It cost more than it felt.
The big climb: too hard, measured honestly. At km 19.24 (2:43), my talk test: “121, 122, 123, hinga… three words.” Heart rate 151. At km 21.6 (3:14): heart rate 153, a breath after every three words. My plan said Zone 2 here, at 136 or below. I was in Zone 3 to 4, and both my voice and my watch said so.



The turnaround (km 25): a real meal. I arrived very tired (“pagod na pagod”). Chicken adobo, rice, hot chicken broth and watermelon. I had planned 10 minutes and stayed about 17. I left revived. “Puro downhill naman ngayon, so chillax muna.”
Km 38: the turning point. Here the exhaustion arrived for real. It was very hot. My legs were done, so I switched to run-walk, and from then on my body never fully recovered. I poured iced water over my head at every aid station. I lost my appetite (“wala na akong ganang kumain”), and my eating almost stopped after km 43.
Km 46.9 to the finish: survival mode. “It’s all uphill until the finish line. Already on a survival mode.” At km 48 I sat on a rock and almost fell asleep. It was the first race in which I ever sat down twice. I left the last aid station too soon, pulled along by a pack, and had to rest on the trail. Then came km 52.6: the gasping, the tight chest, the wrong trail, and the decision to let the target go.
| Checkpoint | Race time | How I felt |
|---|---|---|
| AS1 (km 5.5) | 1:08 | Fresh |
| AS3/CP1 (km 17) | 2:38 | “Legs okay, fresh” |
| Turnaround AS4 (km 25) | 4:27 in, 4:44 out | Very tired, revived by food |
| km 38 | about 6:30 | Exhausted, run-walk, hot |
| km 48 | about 8:44 | Sat on a rock, survival mode |
| Finish | 10:21:24 | Fair, safe, 39th overall |
My watch read 56.45 km and 2,805 m of climbing. I checked my GPS track against the official route. Apart from one missed left turn after AS1 (about half a kilometer), I stayed on course. Most of the extra distance was GPS error on twisty forest trail.



Ten lessons for runners (and two for race directors)
For runners
- The bill for the first half comes due in the last third. My collapse showed at km 38, but it started at km 0. Starting fast to beat the bottleneck and banking time on the downhills were deliberate tactics, and both have their place. But together with Zone 3-4 on the big climb, they spent the energy I needed for the hot return. If you bank time early, know the price, and train the descents you plan to run fast.
- Your talk test works on race day. Build your own zones in training and trust them over a generic watch band. Then actually slow down when they tell you to.
- Fuel on the clock, before appetite disappears. I averaged about 30 g of carbs an hour against a plan of 35-45, front-loaded at about 36 g an hour for the first 5 hours and about 20 g after. Loss of appetite late is a warning, not a reason to stop eating. Plan easy late calories: cold fruit, soft food, liquid carbs. And make nutrition part of training, not something you figure out in race week.
- Expect flavor fatigue. By the turnaround I couldn’t face my electrolyte drinks. Carry a plain-water option and more than one flavor.
- A real meal at the long stop can save your race. Adobo, rice and hot broth at the turnaround brought me back.
- The heat arrives in the last third. A 4 AM start is cool. By late morning it was very hot. Iced water over the head at every aid station was my best tool.
- Leave aid stations ready, not rushed. Leaving AS1 on the return with a pack, before I had recovered, cost me more time resting on the trail. A planned 2-3 minutes beats an unplanned 10.
- Navigation gets harder when you’re tired. One missed turn early and one near-miss at km 52.6, caught by two kind runners. Know the junctions after each aid station.
- Judgement beats rigid rules. “Nothing new on race day” is a good rule. I still carried two gels I had never tried, as a backup for the last few kilometers only, where a stomach problem would be short. When I chose not to push, I left them unopened. Experience teaches when to bend a rule and when to let a target go.
- Listen to warning signs. Chest tightness and air hunger at a low heart rate is not something to push through. It happened once, and it has not come back, but I will get it checked before my next hard block. No finish time is worth more than your heart.
For race directors (I am one too)
- Make changes impossible to miss. A start time moved by email alone will miss some runners. Use every channel (email, SMS, social media, the race-kit insert) and ask runners to confirm they saw it.
- Mark the junctions after aid stations clearly. That is where tired runners leave the station and miss turns.
And one for both: check your inbox and the organizer’s page in the last 72 hours before the race, and again the night before.
Cause and effect
I believe in the law of cause and effect, and this race was a clean lesson in it. The cause was in the first 25 km: a front-loaded effort that cost more than it felt, and fueling that fell behind. The effect arrived at km 38, right on schedule. Nothing about the last third was bad luck.
That is also good news. If the cause is mine, so is the fix. Fifty-four days took me from 15 km a week to a 50K mountain finish, 39th overall, with my legs recovered well enough to travel back to Manila the very next night. The base is back. Next time, the discipline has to start at the gun.
Let me be fair to myself, too. For my age, finishing 50-plus kilometers with this much climbing in 10:21 is a strong result. The struggle came from two places: a short preparation window, and some faults in execution. With another month or more of training, I believe I could have finished faster, within my sub-10 goal, and stronger, without the survival mode.
But more training would not have fixed the other part. I have to work on the discipline to pull back. Once the adrenaline kicks in, it is hard for me to control. The warrior in me won’t settle down. That warrior has carried me through many finish lines, and it also spent energy at km 10 that I needed at km 40. Fitness can be built in weeks. Discipline is built over a lifetime, and it always matters.
I am grateful to Coach Andy DuBois for the method, to my Baguio race-director friend for the clinic referral, to the UTCP organizers and volunteers for the aid stations, the adobo and the ice, and to the two runners at km 52.6 who called me back to the right trail.
See the full plan and every logged day
I’m sharing my complete training plan and log, so you can see exactly what I planned and what really happened:
- Training Plan for UTCP 50K: the 54-day plan, my talk-test zones, the course analysis and the elevation profile.
- UTCP 50K Solibao: Race Plan & Checklist: pacing and fueling plan, effort rules, contingency plan and gear checklist.
- UTCP 50K Training Full Log: all 54 days, planned vs actual, with feel, fuel and reflections, checked against Strava.
Move. Build. Inspire. See you on the trails.
More from race day









