Official result: 8:45:09 | 101st overall Swim 57:27 (includes run to T1) · T1 6:13 · Bike 3:41:06 · T2 3:57 · Run 3:56:26

I wrote up the goals and strategy beforehand in 2026 Miyakojima Triathlon Pre-Race Notes. This post is the post-race review, comparing how things actually played out against the plan.
Race Overview
The All-Japan Triathlon Miyakojima (全日本トライアスロン宮古島大會, official site) is one of the oldest long-distance triathlons in Japan, and 2026 marked the 40th edition. It’s held every April in Miyakojima City, Okinawa, with around 1,510 slots. It’s the island’s biggest annual event and a bucket-list race for many Japanese triathletes.
Distances:
| Leg | Distance | Cutoff |
|---|---|---|
| Swim | 3 km | 1h 50m |
| Bike | 123 km | Varies by checkpoint |
| Run | 42.195 km | Varies by checkpoint |
| Overall | — | 13 hours |
The swim starts at Yonaha Maehama Beach, Miyakojima’s most famous stretch of sand. After exiting the water, you run along the coast into T1. The bike course loops around Miyakojima with an extension over to Ikemajima, and the scenery is pretty spectacular, especially on the Ikema Bridge. The run heads east along Route 78 toward Higashi-Hennazaki before turning back. It’s an exposed, grinding stretch of road.
The gun goes off at 7:00 AM. At the finish line, local kids and volunteers run alongside athletes carrying flags, which makes for a pretty lively atmosphere. That’s a signature part of the Miyakojima experience and a big part of why people keep coming back year after year.

Registration
Registration opens annually October 1–31 through the MSPO ENTRY platform. Entry fee is JPY 60,000. Slots are capped, so if demand exceeds supply there’s a lottery, with results announced via email in late November.
Entry requirements:
- Must be 19–65 years old on race day
- Must have completed a triathlon of Olympic distance or longer (including a 1.5km+ swim)
- Proof of a 1.5km swim completed under 40 minutes (required in some cases)
Getting There
I flew ANA direct from Tokyo to Miyakojima. The bike goes as regular checked luggage, which makes this one of the easier races logistically. From Taiwan, Starlux flies direct from Taichung or Taoyuan to Shimojishima. The two islands are linked by the Irabu Bridge, about a 20-minute drive to central Miyakojima.
Getting around the island without a car isn’t fun. Renting a car is the right call. Bikes and taxis can technically work during race week, but it’s a hassle.
Pre-Race
Two days before the race, Ms. Wu, a Taiwanese resident of Miyakojima, arranges a cultural exchange event at Shimoji Junior High for Taiwanese athletes every year. The school has an ongoing exchange program with a junior high in Taiwan, so they welcome Taiwanese racers warmly. Spending time chatting with the students, who have no shortage of energy, helped take the edge off the pre-race nerves. This is part of what makes Miyakojima special. It’s not just the race itself, it’s the entire island atmosphere. Standing on the start line, you can feel how much this event means to the locals.

The event also got picked up by a local newspaper. The headline, “最高のパフォーマンスを”, means “Deliver your best performance.” The coverage says something about how seriously the island takes this race.
I also made a point of trying Miyako soba during race week. Clear broth, chewy noodles, topped with a few slices of Miyako Wagyu that melted in the mouth. It’s one of the island’s signature dishes.

On top of the cultural exchange, the Shimoji Junior High students made a cheering banner with every Taiwanese racer’s bib number and name on it, and hung it along the bike course to cheer us on during the race. While scouting the bike course before race day, we made a point of stopping by to see it in person and take a photo. A school on a small Japanese island going to this much trouble for a group of foreign athletes they’d never met. That’s part of what makes Miyakojima feel different from other races.

Weather
The forecast called for light morning rain, but none of it actually materialized. Some sections of the bike course were damp, so cornering required some care. The sun came out mid-run and temperatures rose, but the breeze was cool enough to take the edge off. Overall it was much kinder than last year’s heat, and my CORE sensor’s HSI stayed low throughout.
Swim (Watch 54:25 | Official 57:27 incl. run to T1 | avg HR 164 | max HR 185)
The starting swell felt bigger than last year, and the opening was full-contact from the first stroke. The first loop was genuinely chaotic. Getting kicked and bumped was constant, and basically the whole lap was just scrapping through the washing machine. The second loop smoothed out considerably. Once I found a position and started drafting, the rhythm settled.
Final swim time was close to last year’s. GPS recorded about 2.9km. I wandered off line on the second loop, heading the wrong way toward the turnaround before correcting. HR came out high, peaking at 185 bpm and staying up even after I exited the water. So I walk-jogged the run from the swim exit to T1, letting HR come down before getting into transition.
Over 100 athletes DNF’d on the swim this year, noticeably more than usual. The rougher water conditions likely showed up in the numbers.
T1 (Official 6:13)
Small hiccup in T1: the rack was tight and my front wheel got caught on the pedal of the bike next to mine. It took a moment to free it. I’d actually had a feeling this could happen when I racked the bike, so I didn’t panic, just worked it out calmly. No major time loss.
Bike (Official 3:41:06 | 123km | 161.5W | avg HR 155 | 976m climb)

The bike course is rolling hills with no long climbs. Total elevation gain came out close to 1000m.
Power target was around 162W. Actual came in at 161.5W, spot on. The plan was to hold back early and see how the body felt, and that part went well.
Nutrition on the bike got complicated. I started with two 750ml bottles, each with 135g of carbs. Somewhere on course, one of them was empty. I checked the bottle afterward and couldn’t find anything obviously wrong with it. Need to figure out where it was leaking. That bottle’s carbs were essentially wasted. I quickly rethought the nutrition plan on the fly. Luckily I had extra gels on me, so carb intake held at 80–90g/hr, but I needed to pick up fluids from aid stations. I hadn’t specifically practiced grabbing bottles while riding, but it turned out to be less tricky than expected.
What actually went down on the bike:
- Maurten Solid gels × 3 (40g each) = 120g
- Carb bomb × 1 (42g)
- Maurten caffeinated gel (100mg caffeine + 25g carbs) × 1; dropped one caffeine gel and didn’t pick it up
- One mixed carb drink bottle (135g)
Total roughly 322g carbs over 3:41 of ride time, about 88g/hr. I grabbed a few extra bottles from aid stations to make up for the leak, replacing about 750ml.

The ride overall felt smooth. HR stayed around 155 and there was no moment where I had to put out a fire.
T2 (Official 3:57)
Switched shoes and headed out. Fumbled stuffing nutrition into the tri-suit pockets. A few items fell out and I had to pick them up. Nothing dramatic.
Run (Official 3:56:26 | 5:37/km | avg HR 155 | max HR 170)

The run is rolling terrain too, with about 320m of total climb.
Right calf was tight coming out of T2 and eased off after 3–4km. The first half was manageable.
Life got hard between 18–20km. HR wasn’t high, breathing was fine, but the quads simply couldn’t sustain the stride force anymore. Downhills were brutal. After 25km the hamstrings started showing fatigue too. I hit some Salonpas spray at an aid station, which helped a bit, but pace kept bleeding. Dug in for the last 3km and managed a small pickup to the finish.
Final run time: 3:56. Just missed breaking 4 hours.
Nutrition:
- Maurten Solid gels × 4 (40g each) = 160g
- Carb bombs × 2 (42g each) = 84g
- Maurten caffeinated gel (100mg caffeine + 25g carbs) × 3 = 75g carbs + 300mg caffeine
- Had a 500ml 60g carb drink packed; took a sip and the flavor was off, so I didn’t drink the rest
Total around 319g carbs, plus sports drink from aid stations, roughly 80g/hr. I stopped at basically every aid station, and the sponges soaked in ice water were a nice bonus. Stomach held up all day. Honestly I probably could have eaten more.
Summary
| Leg | Official Time | Data |
|---|---|---|
| Swim (incl. run to T1) | 57:27 | avg HR 164 / max HR 185 |
| T1 | 6:13 | |
| Bike | 3:41:06 | 161.5W / avg HR 155 / 123km / 976m climb |
| T2 | 3:57 | |
| Run | 3:56:26 | 5:37/km avg / avg HR 155 |
| Total | 8:45:09 | 101st overall |
Bike nutrition: ~322g carbs (~88g/hr) Run nutrition: ~319g carbs (~80g/hr)

Post-Race Reflections
8:45:09 landed right in the middle of my 8:30–9:00 target window, so on target. The weather was much cooler than last year, which clearly helped. Without that, the run would have been uglier.
A few things need work. HR is still high coming out of the swim, which compromises T1 rhythm. The leaky bike bottle can’t be left to luck next time. I need to check bottles before the race. Muscle endurance in the back half of the run is clearly the bottleneck, especially quads and hamstrings. That means more long runs and more specific strength work.
There’s still a lot of room to grow the training volume. Swim has barely progressed. The bike is showing real gains and I can keep building on that. The run bottleneck isn’t cardio, it’s muscle endurance, and that’s the focus for the next training cycle.
Fireworks

One of Miyakojima’s traditions: fireworks go off at the finish line when the final cutoff hits. I finished in the mid-afternoon, so I missed them. Once my friends were done I headed out for dinner and called it a day. Pretty wiped out.
Next Race
Summer is training-focused. Next race currently planned is 99T on October 2, which is also the race I did four years ago as my first triathlon. Not registered yet, still looking at other options. The 99T bike course runs on a closed highway and rides beautifully fast. Target for the 113 distance is 4:30.



