(Yet Another) AI ChatGPT Coach

Hi everyone, to to let you know that if you only recorded your activities in Strava as source then this breaks the entire usable API model for intervals.icu and any app using this. I will put a placeholder check in place for this to ensure you get a friendly message.

Root cause:
Activities in your Intervals.icu account have “source”: “STRAVA”.

The Intervals.icu API intentionally filters out any activities with that source tag, this was implemented last year to meet Stravas new policy. “no Re-distribution or re-exposure of Strava activity data to third-party services.

No activities are returned, even though they exist in the user interface.

Workarounds:

Connect a direct device source (Garmin, Wahoo, FIT file upload) to Intervals.icu—these are accessible via the API. For example:

Source
API visibility
GARMIN
:white_check_mark: Returned
WAHOO
:white_check_mark: Returned
FIT_UPLOAD
:white_check_mark: Returned
INTERVALS (manual)
:white_check_mark: Returned
STRAVA
:cross_mark: Blocked

Regards

Clive

Another alternative for you

Import all Strava data.

Be

Clive

@Clive_King — thanks so much for this awesome tool. I’ve been bouncing between this and Claude, and yours is working really well for me. I’m in Australia and running into some time‑zone quirks though. Intervals seems to store everything in UTC, but I’m UTC+11.

When I ask for the latest workouts or wellness data, it pulls based on UTC rather than my local time, which creates about a one‑day lag. I’ve tried specifying the offset in the prompt, but it still doesn’t fetch the most recent entries.

Is this something that could be addressed?

The other bug that I’ve picked up is the syntax that the GPT sends to intervals doesn’t seem to import correctly so that the intervals are picked up by intervals. This is what the GPT exports:

The bullets need to be changed to - and the repeats syntax isn’t correct. Am I doing something wrong?!

Cheers,
Jeremy

1 Like

Very nice project!

Is it possible to expose all available streams? Especially, I would like to have Ventilation data from TymeWear and temperature data from the Core sensor.

1 Like

Hi,

@Clive_King Looks very interesting. I felt a bit tired this morning and your tool wrote the same (" Apply 10–15% deload to offset fatigue trend.")

A quick question.
I’m an amateur road cyclist.
Is your solution able to follow and analyse mixed trainings (running + cycling in my case)?
Thanks.

1 Like

Ah that’s a good point, when we write back we should be using the athlete timezone. Let me check on that. What it adds as text is down to chatgpt, I don’t control that, it creates these based upon your metrics calculated in my railway engine. Let me check on timezone and revert to you. Thank you for the feedback and am glad it’s working for you. Once MCP is publicly available for chatgpt I have already some design preparations for this and can then also link to Claude as well. Thats another future plan to become more agnostic on LLMs. However I find right now when I provide the system context and data to chatgpt it is the better interpreter at this time.

Regards

Clive

Hi Hans

It’s possible if I have standardisation of data fields from intervals.

For example; Right now I’m testing Lactate and have created custom fields to capture lab samples for lt1 (HRTLNDLT1) for athletes. The value captured in mmol/l with then the recommend z2 zone, between lactate tests. The more samples the better. Once ready I will release some documentation on this.

Regards

Clive

Yes it will follow mixed training (myself also a similar example, with backcountry ski, ride run and hike my main sports). It will add some metrics to suit but also importantly keep Power based metrics separate, or fuse Power and HR for same sport. Many ride with power indoors but only HR out for example. Intervals will create a load based on HR without power and that is used along with health metrics to assess your readiness. Note that HRV, sleep and RHR are really important here.

Three metric samples;

  • Power same sport
  • Power only and HR only same sport are fused based on acknowledged coaching protocols
  • Combined sports (a best estimate) are also calculated

I’m trusting the process also and it will also tell me in advance to check my Wellness before say my next VO2 workout session when I’m particularly in fatigue with négative TSB.

Regards

Clive

Hello, this add-on is very nice. Now I let chatgpt create my cycling workouts. When I ask to put it in my intervals, he place it as a note and not as a cycling workout. What do I wrong?

1 Like

Hi, I have a problem! My chatgpt was reading incorrect data from my intervals account. I asked it what the problem might be and it told me the server cache was dirty, so I should disconnect and reconnect. So I went to interval and removed all the app’s permissions to disconnect it, but now I can’t reconnect it. Help me :sweat_smile::winking_face_with_tongue:

see this reply, to disconnect and reconnect. It’s best in web browser with chatgpt.

as a note this application does not store any data anywhere, its completely stateless. Within chatgpt in the same chat you may see some persistent data from old intervals requests, however any new chat will always get fresh intervals data. please remember that activties only recorded in strava will never appear (Strava API third party limitations introduced last year).

Clive

Hi Liefhooghed

Thanks for the feedback. For event creation it should create planned events and not notes. the sports support are:

let me know what sports/triggers you are using

Clive

Thanks for the reply. I’ve already tried this method but to no avail as I can’t log out.
I tried from various browsers and also from the app but nothing, the logout button doesn’t appear

this is down to chapgpt and not in my control sadly, suggest you try and clear cookies and site data by clearing browser cache. e.g. in chrome chrome://settings/siteData?searchSubpage=chat.openai.com

you should have in a web browser always see

I asked ChatGPT how to fix it and he suggested clearing Cloudflare’s cache… bohhh

Hello Clive,

I’m still having a lot of fun with your tool.

I have a small request.

From time to time, I want to compare two similar workouts: comparing BPM during interval blocks, heart rate drift, power, etc.

Currently, it seems to me that the tool only allows for a “big picture” analysis of the sessions, including warm-up, rest between intervals, and deload.

Is there a way to get it to analyze the work blocks directly? Currently, I’m still using the good old “copy and paste” method for the data in the “data” section on intervals. See exemple:

Thanks in advance and keep up the good work!

edit:
Also, but this concerns ChatGPT’s “RAG” prompting more: I find it very accommodating and always in agreement with my suggestions and comments.
I’ve always been used to coaches who are a little less flattering :slight_smile: Is there anything that can be done in terms of basic prompting? Currently, I just ask it to be more honest and to be able to disagree with my statements.

Finally, regarding training models, each new conversation starts with criticism of my lack of polarization. As a “time-crunched athlete,” I deliberately choose a more pyramidal model, with more sweet spots and (slightly) less Z2. Wouldn’t it be appropriate to “start the conversation” with a series of questions and answers on this subject?
I regularly start a new conversation to avoid GPT drifting off topic in overly long conversations, but this means I have to systematically recontextualize everything. Is there anything I can do about this?

1 Like

Hi Clive,
Is it possible to use your work with Gemini?
Thank you for your great work !

2 Likes

Bonjour Remi

Il y a beaucoup de questions dans ton message :smiley:

Q1. Can i compare workouts or activities? YES. simply ask “compare workouts on 18th January and 3rd January” (add year if different).

for example for me:
Here’s a side-by-side comparison of your two key training days — 3rd January vs 18th January 2026 — both of which featured long, demanding Alpe du Zwift sessions:


:puzzle_piece: Workout Comparison

Attribute 3rd Jan 2026 18th Jan 2026 :magnifying_glass_tilted_left: Difference / Interpretation

Session Name Zwift – Alpe ×2 (smoked by Smash Magnus) Zwift – Alpe ×2 Same route; different load quality
Type Virtual Ride Virtual Ride —
Duration 2 h 30 min (9005 s) 2 h 22 min (8509 s) ~8 min shorter
Distance 55.4 km 54.6 km Essentially identical
TSS (Training Load) 144 144 Equal workload
Intensity Factor (IF) 0.758 0.781 +3% higher on 18 Jan — slightly more intense
Average HR 128 bpm 121 bpm -7 bpm → better cardiovascular efficiency
ICU Intensity 75.8 78.1 Slightly higher — confirms marginally harder pacing
Power Distribution (assumed) Even Z2–Z3 focus Slightly higher Z3 proportion 18 Jan likely had shorter recoveries or more constant effort
VO₂max Context Stable (68) Stable (68) Aerobic efficiency unchanged
Fatigue Phase End of Build block Mid-Recovery block Same TSS produced less fatigue load → good adaptation


:brain: Interpretation

On 3 Jan, the Alpe x2 session represented a peak-load endurance challenge, done near the end of a build phase.

HR drift and intensity suggest moderate aerobic strain with fatigue accumulation.

Efficiency lower (higher HR at same IF).

On 18 Jan, the same TSS was achieved with lower HR, slightly higher IF, and shorter duration — a hallmark of improved aerobic durability.

You produced equal load with less cardiac cost.

Indicates recovery adaptations and better pacing control.

The metabolic efficiency (FatOx 0.68) and MES (22.5) metrics confirm this trend.


:speech_balloon: Coach’s Summary

:white_check_mark: Efficiency gain: 7 bpm lower HR at same workload → improved aerobic conditioning.
:white_check_mark: Load tolerance stable: both sessions = 144 TSS → durability sustained post-deload.
:gear: Pacing refinement: shorter, slightly more intense effort on 18 Jan with equal physiological cost.
:brain: Recommendation:

Use future Alpe repeats as controlled benchmarks — maintain HR <125 bpm at ~0.78 IF.

If HR <120 bpm next session for same TSS, consider increasing FTP or extending climb time by +10%.


Bottom Line:
Your 18th January Alpe x2 was more efficient, better recovered, and demonstrated clear endurance gains since 3rd January.

then ask to “analyse the intervals within each workout”, it will give you a greater amount of detail for both. you can also compare, highlight what worked what didnt etc..

1 Like

Q2 and last Q4: ChatGPT prompting, for standard reports I’ve minimised the prompting. However the follow up questions will always generate prompts, that’s the safety guard of ChatGPT and other LLMs. what you can do if it leads you down a merry path is tell ChatGPT the following to start over;

“Reset to start.”
“Restart this chat from the beginning.”
“Clear context and begin fresh.”
“Forget this thread — start a new weekly report.”

or want to undo the tangent;

“Go back to the last report summary.”
“Return to the previous topic.”
“Revert to the point before the interval analysis.”
“Undo the last few steps.”

or reload a report;

“Re-run the weekly report.”
“Re-run the wellness report for the last 42 days.”
“Reload the 90-day season block.”

or to change the tone!

“Stay in coach mode.”
“Switch back to analytical tone.”
“Be concise / detailed / metric-focused.”
“Summarize from the coaching perspective.”

With regards the new conversation and losing the previous context sadly each chat is non persistent and has no memory of the other chats. However, there is a small cheat, but it involves using a third party add in* and export of conversation and then you drop that text file back into a new chat asking it to load it into memory. Of course, be aware with ChatGPT a few important things.

  1. ChatGPT updates itself not my app at least once a day. This often is seen in the chat in a web browser at the bottom and can slow down the chat model response until you start a new chat (this is infuriating but that’s the way it is), the bigger the chat history, the slower it gets.
  2. ChatGPT mobile app in Android or IOS does not suffer the same issue as in 1. this is a known workaround when you have long chat models in context. Bizarre but that’s the way it is.

*3rd party browser add-in I recommend is tapermonkey and chatgpt conversation exporter (ChatGPT Conversation Exporter)

1 Like

Q3: The way the coach model works is based upon a important set of metrics, Polarisation is one of those, as is Recovery. No problem if it criticises, for example during Z2 build phases, I also have a low polarisation. That’s OK and normal. A weekly pyramidal load is also fine, however you already know that just riding in SS or Z3 won’t help the long-term fitness and you could end up in plateau. Trust the model :wink: Time-crunch can still work indoors and out :slight_smile:

Thank you for the feedback Remi, and am glad you are enjoying the process so far.

P.s I need more time to develop and ride ! its a vicious circle somedays.