Hi from sunny Switzerland! I love mountains, hiking, running and skiing. I’m also a gear and data geek.

I’m on a mission to build an AI-powered health dashboard and I want to document this journey.

Follow me along!

← Back to posts

One Big Hike, Two Watches: What the Data Agreed On — and What It Didn’t

On August 30th I hiked up to Haute Cime — the highest of the Dents du Midi, 3,257 m, and about 1,900 m of vertical gain from the car park at 1,450 m. Just for the fun of it, I wore two watches at once: a Coros Apex 4 on my wrist, reading heart rate optically, and a Suunto 9 Peak Pro, paired to a chest strap. Neither watch had its altitude manually calibrated before starting. Both had GPS accuracy set to max.

Seven hours later, I had two complete recordings of the same 22 km route. So I pulled the data — first through each brand’s API, then straight from the raw exported files — and compared everything I could.

This is my 2nd and more comprehensive comparison. The first time, I only did a short run.

The altitude story

This is where it got interesting. Both watches ended up within a few meters of the real summit elevation, but they didn’t get there the same way.

At the start of the hile, Coros read about 40 m too high — starting around 1,512 m against a real 1,450 m — while Suunto was already close, at 1,471 m. As the hike went on, Coros’s altitude reading gradually converged toward Suunto’s, and by the time we were nearing the top, the two watches agreed to within 1–2 m of each other — and both landed within ±5 m of the real 3,257 m summit.

On the way back down, the same offset crept back into the Coros reading, ending the hike about 20–25 m higher than Suunto.

The likely explanation: Suunto’s barometric altimeter had a good reference from the very first sample, while Coros seems to have started from a stale one and only corrected itself once it had a strong GPS fix in open alpine terrain — self-correcting on the way up, then drifting again as tree cover and terrain changed on the descent.

Distance

Over the full 22 km, Suunto measured about 180 m more than Coros (22.45 km vs 22.27 km) — a gap that opens gradually over the day rather than jumping at any one point. That’s under 1% of the total distance, so the takeaway is how closely two completely different GPS/sensor stacks agreed over seven hours on technical alpine terrain.

Speed — averages agree, “max speed” doesn’t

Average speed matched well between the two watches all day (within about 0.2 km/h on average). Max speed is a different story: Coros logged a peak of 8.1 km/h, Suunto logged 16.5 km/h — nearly double.

Digging into the raw data explains it. Suunto’s peak came at 14:02:52, right as I was approaching the summit. At that exact second, Coros read 0.0 km/h — I was almost certainly standing still, taking in the view. I guess that’s a GPS speed-spike artifact, not a real movement.

Vertical ascent

Both watches agree closely on total ascent — Coros: 1,980 m, Suunto: 1,932 m, a 48 m difference on a ~1,900 m climb. But how they got there differs: Coros actually trails Suunto in accumulated ascent for the first four and a half hours of climbing, then overtakes it sharply in the final push to the summit — gaining 865 m in one segment against Suunto’s 773 m. That flip lines up with the same window where Coros’s altitude reading was catching up to reality, so it’s likely the tail end of the same self-correction rather than a separate issue.

Heart rate — averages lied to us

Average HR looked like the cleanest result of the whole day: Coros (wrist) read 118.8 bpm, Suunto (chest strap) read 114.6 bpm — a tidy 4.2 bpm gap, with near-identical max HR (164 vs 163). Case closed, right?

Not quite. Binning the full per-second stream into 5-minute windows tells a much noisier story: the gap between the two watches swings from −21.6 bpm to +33.9 bpm over the course of the hike — nowhere near the steady offset we saw with altitude. The worst spikes, where Coros ran 25–34 bpm hotter than Suunto, cluster in two windows: 11:29–12:29 and around 14:29 — both sustained, steep climbing stretches, several of them with poles out.

That’s the signature of optical wrist-HR cadence lock: on a hard, rhythmic climb, the wrist sensor can briefly latch onto arm-swing or stride cadence instead of your actual pulse. The chest strap doesn’t have that failure mode — it reads the heart’s electrical signal directly — so it’s the one to trust when the two disagree.

The uncomfortable conclusion: the close average wasn’t accuracy, it was luck. The wrist sensor overshot and undershot by 20–30+ bpm in opposite directions on the same climb, and those errors happened to cancel out over seven hours. In my first comparison, the HR seemed to be identical between both, but now we see the real story. Anyway, we can’t expect too much of a wrist sensor.

API vs. raw files — what actually differs

I started my analysis querying the MCP but it turns you get aggregated metrics rather than detailed ones. To get the full picture, I had to export a file from the app (JSON for Suunto; FIT for Coros) and mail it to myself. Reupload and analyse it on my desktop.

Differences between the MCP and the export file are listed below:

  • Totals match. Every headline number I pulled through each brand’s API (distance, ascent, descent, avg speed) matched the raw exported file exactly — no hidden discrepancy there.
  • Coros’s API hides fields the raw file has. Max speed and cadence are both sitting in the FIT file’s session summary but never surfaced through any Coros API endpoint I have access to.
  • Suunto’s API is more complete — it already exposes max speed accurately.
  • Only raw files give you a timeline. API/lap data tops out at 1 km splits; the “Coros read 0 km/h while Suunto spiked to 16.5 km/h” moment, or the altitude convergence story, only show up once you’re looking at the full per-second stream.

Takeaway

Two watches, same mountain, same seven hours — and the differences that showed up were smaller and more interesting than “which one is more accurate.” Suunto’s altitude was steadier throughout; Coros needed time to find its footing but converged perfectly at the summit; distance and average speed were close enough not to matter; and heart rate was the real surprise — the two watches’ averages agreed almost by coincidence, while the wrist sensor swung 20–30+ bpm off the chest strap on the steepest climbs.


Posted in

Leave a Reply

Discover more from Rosablanche

Subscribe now to keep reading and get access to the full archive.

Continue reading