At 16:10 on a Tuesday I pulled a double — 18 g in, 36 g out, somewhere near 170 mg by the roaster's own stated figure — and then spent the night as an unpaid test subject for Garmin ecosystem strategy. The question I was after was narrower than the usual one about caffeine curfews. Not will this wreck my sleep — I knew it would. I wanted to know how many separate pieces of software would notice, what each would do about it the next morning, and which of them I was paying for.
Four noticed. That last part is where it gets interesting.
The verdict: Garmin's TrainingPeaks acquisition costs you nothing today and probably nothing this year, but it removes the last large independent buyer for endurance training data — and the instrument that reads your sleep is quietly becoming the instrument you rent.
The night, in numbers
- Espresso at 16:10, roughly 170 mg, no other caffeine after 09:00
- Lights out 22:45, noted on paper rather than a screen
- Watch-recorded sleep start 23:52 — a 67-minute onset by the device's reckoning
- Overnight HRV average 44 ms against a seven-night baseline of 58 ms
- Body Battery at wake: 61, versus a 30-day median of 78
- Garmin sleep score 64, "fair," with 41 minutes logged as deep
- Training Readiness the next morning: 38 of 100, flagged low
One night, one subject, no control, no blinding, and I knew exactly what I was testing — which is its own confound. The 67-minute onset is the watch's opinion, not a sleep lab's; wrist actigraphy is decent at total sleep time and unreliable at staging, so treat the 41 minutes of "deep" as a number the software is confident about and I am not.
Four dashboards, four reactions
Garmin Connect (free) gave me the score and the HRV flag and left it there. Diagnosis without prescription.
Connect+ (£/$6.99 a month, $69.99 a year at the time of writing) turned the same numbers into sentences — an Active Intelligence card telling me my body was under-recovered and suggesting I go easy. Accurate. Also something I could have worked out from the coffee cup on the counter.
TrainingPeaks ingested the night through the Garmin sync and did the one thing the others didn't: it put the bad sleep next to tomorrow's prescribed 4×8-minute threshold session, in the same column, where a coach could see both. Sleep as a training input rather than a wellness readout.
intervals.icu — free, one developer, donation-supported — did roughly the same thing and additionally let me pull the whole night out as a .fit file in about ten seconds.
That last detail is the whole argument in miniature.
What Garmin actually bought
When Garmin announced the TrainingPeaks deal in 2025, it didn't just acquire a calendar app. TrainingPeaks came with WKO5, the analysis tool serious cycling coaches use for power modelling, and Best Bike Split, and TrainHeroic on the strength side. Garmin now owns the device, the sync layer, the coaching platform, the analysis engine and the race-day model — a vertical strip from wrist to periodisation plan.
None of that is sinister on its own. TrainingPeaks' entire commercial value rests on being platform-agnostic: it takes files from Wahoo, Zwift, Polar, Coros, Apple, and it would be self-harm to close that door. Garmin has said the door stays open, and I believe the near-term version of that.
The risk isn't a wall. It's a gradient. Garmin devices get the deep integration first, get the metrics that only exist inside Garmin's firmware — Body Battery, Training Readiness, HRV Status — and get them rendered natively while a Coros file arrives as a set of orphan numbers. Nobody has to be locked out for the non-Garmin experience to become the worse one by default.
What makes this a sleep story rather than a cycling story is that sleep stopped being a wellness metric and became an input. Training Readiness doesn't compute without last night. The Cirqa band reportedly parks its coaching features behind Connect+. Once your sleep is load-bearing for the training plan, it has a price — and Garmin spent fifteen years earning goodwill as the brand that didn't charge one.
The comparison
| Platform | Cost (mid-2026) | Reads sleep | Changes tomorrow's session | Raw export |
|---|---|---|---|---|
| Garmin Connect | Free | Yes | No | Yes, clunky |
| Connect+ | $6.99/mo, $69.99/yr | Yes | Suggests only | Same as free tier |
| TrainingPeaks Premium | ~$19.99/mo, ~$119/yr | Yes, via sync | Yes, with a coach | Yes |
| intervals.icu | Free / donation | Yes | Yes, automatically | Yes, trivially |
| Whoop | From ~$199/yr | Yes, best-in-class | Yes | Limited |
Prices move; check before you quote me. The shape doesn't.
If you want one line to screenshot: the free tool built by one person is still the only one on this list that treats your sleep data as yours.
The part no software fixes
Zoom out from the dashboards and the physiology is boring and well-established. Caffeine's half-life sits around five hours in a typical adult, but the population range is wide — two hours to eight or more — driven substantially by CYP1A2 variation, hormonal status and whether you smoke. A 16:10 double at a five-hour half-life leaves roughly 85 mg circulating at lights-out and about 40 mg at 04:00. Drake's 2013 trial in the Journal of Clinical Sleep Medicine found 400 mg taken six hours before bed measurably disrupted sleep even when subjects didn't report feeling it — the subjective and objective records come apart.
My record came apart too, but in the other direction: I felt wired and the watch mostly agreed. What none of the four platforms did was ask about the coffee. They scored the outcome and stayed silent on the cause. Every one of them will happily sell me an interpretation of a night that a $3 espresso fully explains.
Who this is for — and who it isn't
Buy into the stack if you're a Garmin owner working with an actual human coach, race on power, and want sleep and HRV in the same view as the training plan. The integration is genuinely the tightest available, and it got tighter with the acquisition.
Stay out if you own mixed hardware, if you're a strength athlete who cares more about session logging than periodisation, or if the phrase "$70 a year to read numbers my watch already collected" makes your jaw tighten. Set up intervals.icu, spend twenty minutes on it, and you will not miss Connect+.
What one night didn't answer
Plenty. I ran no decaf control, so I can't separate the caffeine from the expectation of caffeine — the obvious fix is ten nights, alternating real and decaf, unblinded to nobody but at least counterbalanced. I never tested whether a Wahoo file lands in TrainingPeaks any worse now than it did before the deal, which is the only measurement that would actually confirm the gradient rather than assume it.
So I'm watching three specific things, and you can watch them cheaply: whether TrainingPeaks' partner API terms change for non-Garmin devices; whether third-party sync to intervals.icu and Strava keeps working without friction; and whether any metric currently free in Connect quietly relocates behind Connect+ in a firmware release note. Feature migration shows up in changelogs long before it shows up in press releases.
Tonight's espresso was at 09:40. Body Battery at wake: 79. The equipment works fine. It's the invoice I'm keeping an eye on.