Incorrect pool swim interval data

For cycling, running etc. Intervals.icu only considers moving time for the TSS calculation. Otherwise a 30 minute coffee stop in the middle of a ride will increase the TSS and I don’t think that makes a lot of sense.

But maybe it would be better to do it differently for swims? Do your laps include rest time?

What you could do now is use the ATL/CTL factors in /settings to generally reduce swim TSS:

Ha. Maybe I should just have coffee breaks during the swim too. Maybe in the summer. At the beach. :slight_smile:

My watch records workout and recovery separately, which appears accurately reflected in my direct fit file uploads. But I do swim mostly in 25m pools, so there’s a lot of flipping and turning that is then not counted as work. TP also states that recovery and flip turns are not reflected in their calculations. I am neither a sports or data scientist, but would argue that excluding flip turns is not reflective of the actual effort. Even though I’m not moving horizontally, I’m still ‘working’ and thus flips should count as part of the interval pace IMHO. Only when I hit my watch button does my interval end (even though flips come with other variables like turning and push off speed, which affect interval time too).

With regard to recovery (or a coffee break) affecting overall TSS: in my mind, more recovery = lower overall intensity, whereas less recovery = higher overall intensity, even if my pace will likely be lower with shorter recovery between intervals. Since including recovery time for TSS would artificially inflate TSS, my feeling is that with TSS based on work (including flips) and IF based on work+recovery, TSS x IF could then be used to correct for the difference between for example 10 x 25m with 10" recovery vs 10 x 25m with 40" recovery (as long as recovery is non-moving of course). I realize this is not how IF is officially calculated though.

For now, I’ve set my ICU swim threshold at 1:35 (which normally hovers around 1:40 based on CSS) and that seems to yield TSS and IF that fits my RPE.

Unrelated to exact calculations: an additional problem for me specifically may be that whereas I can out sprint some of my fellow swim mates on 25-50m intervals, I can barely keep up during 400m intervals (worse technique and lactate clearance probably). So maybe the load and IF of my swims will simply always depend more on my work out type than whether its calculations properly reflect sTSS.

Really appreciate the discussion by the way. It’s helping a lot with future interpretation of TSS.

3 Likes

Very interesting discussion. I’m starting to swim again and I’m also swapping my data from TP to ICU during the coming weeks. I can see the same differences and my laps are not as nicely “cut off” as Strava or Garmin. I also finally found the “drill” button/data screen on my Garmin, so I’m going to play with this and see what happens. This “drill” functionality gives the opportunity to include non-arm-swinging technique drills. I wonder if ICU will see this as moving time or recovery or nothing? (it suppose to give a timing + manual entry of distances after the drill).

I will upload some pictures in this thread after my next swim.

Thx.

1 Like

I did my first swim of the year. Here are some screenshots ICU vs TP vs GC.
[Fenix5s + HRM pro chest strap].

I did use the “drill” functionality for the first time, and it worked pretty fine. (If you use the correct lap-button…). Now I can add laps manually after each drill. Easy to add the correct pool distances for each drill, because without arm-swinging, my garmin doesn’t record any distance. If you see 3x rest after some laps, this means I hit the wrong button :wink:

Remarks:

  • Strange way of splitting all the different laps in ICU. Distances are not exactly 100m, but cut-off. This gives an incorrect lap pace/100m. However, the overall distance of 2600m is correct.
  • With an incorrect lap pace, also comes an incorrect time in zone (pace). ICU vs TP.
  • IF/sTSS for TP = 0.95/71, IF/hrTSS for TP = 0.77/55, IF/load for ICU = 0.63/43 → big difference even though the pace-zones are set equally, but the lap-results are different ICU vs GC/TP.
  • No “name” for each lap. Would be nice if the recognized stroke (freestyle/breaststroke/drill/…) could be mentioned on top. (cfr GC and TP).
  • Moving time and avg pace seems to be the same for all 3 platforms.
  • Extra fields to add for ICU: stroke length/avg stroke/swolf/… See GC.







Any other remarks always welcome.

1 Like

Tx for all this info. I need to sink some more time into improving swims and will try to do so soon.

10 Likes

Very happy that I can now directly upload my Coros (Pace 2 for swim & run) data to intervals directly instead of via Strava or manual fit uploads.

I noticed that intervals has now retroactively reset my work & recovery as well as the exact distance for my swims (going back two months but not beyond that), which is what I hoped for. However, for those reset swims, the average pace now appears 20s/100m faster than what it should be based on the Coros average pace calculation. This now artificially inflates the load (often >100 for a <60m total work time) even when those individual work paces rarely go below my Settings threshold pace (in a typical session, roughly 2/3rds is warm up and drills well above threshold pace and only 1/3rd is actual effort at or slightly below threshold pace).

Any idea what’s going on here for (a) the average pace issue and (b) the resetting actual workout, recovery, and distance for swims dating back two months but not beyond that?

Thanks !

1 Like

Can you give me an example swim on Intervals.icu and info on what correct numbers are and I can try figure this out. Intervals.icu uses the length data to generate activity traces for swims.

When you connect Coros the last 30 days or so of activities are downloaded. These will replace ones from Strava (the reset). You can use the “Download old data” button in the Coros box in /settings to get older data.

Apologies for the delay, Busy work week. And thanks in advance for looking into it again. Makes sense about the historical activities.

I also reread the thread and forgot Daniel and I noted in November that Intervals may miscalculate the total activity/moving time, which could have been a moving time versus elapsed time issue or even a not moving during flip turns issue (and then I got sidetracked with IF calculations). Not sure though if that still applies since the interval data for individual 50/100/200/etc sets seems to be correct in these sessions and it’s just the average pace that’s off. When I look at intensity in the interval data, that seems correct, since it’s all just below or above my threshold and I suppose that then works though to calculating load.

For direct Coros to Intervals uploads, please see examples below (all from last 30 days). I’ve noted the dates and the Intervals/Coros calculated paces as well.

Intervals.icu (17 april; Intervals/Coros average pace 1.31/1.44)
Intervals.icu (13 april; Intervals/Coros average pace 1.35/1.45)
Intervals.icu (30 march; Intervals/Coros average pace 1.32/1.43)
Intervals.icu (27 march; Intervals/Coros average pace 1.24/1.41)

Although I regularly hit sub-1.35 paces on my 50m and 100m intervals, I barely get below 1.35 on longer intervals and definitely not during warm up / drills. So the overall session average pace being faster than my threshold pace seems unlikely (especially when it’s 10 seconds faster than my CSS).

If it helps, our sessions are in 25m pools and generally scheduled as warm up → 50m activation intervals → main set one with a bunch of drills, including some legs only which always result in distance miscalculations on my watch → main set two with 50/100/200/400 intervals at CSS +/- X seconds (sometimes with standing rest, sometimes easy 50/100m in between) → cool down. Sometimes we skip the drills, but not often.

For indirect Coros to Strava to Intervals uploads:

Intervals.icu (16 march; Intervals/Coros average pace 1.45/1.44)
Intervals.icu (13 march; Intervals/Coros average pace 1.51/1.50)
Intervals.icu (9 march; Intervals/Coros average pace 1.46/1.45)
Intervals.icu (6 march; Intervals/Coros average pace 1.43/1.42)

I did notice that Intervals marked everything as work in the indirect Coros/Strava/Intervals uploads but that it still gets the average pace very close even though there’s a lot of unlabeled recovery in there. Since Intervals still got the approximate intensity and load close to what I felt it should be, it worked out fine to track my fitness, etc. For the direct Coros to Intervals uploads, this is no longer the case.

I can provide original fit files for all if you’d like those. Just let me know the preferred way to securely share them. I’d rather not download all old data right now since that’s likely to mess with historical TSS and CIL as well, but I can upload a couple of them just for the troubleshooting.

It seems the calculated moving time for the swim is too short pushing up the average pace. I am trying to figure out why. Intervals.icu needs to recalculate that (and other things) from the data to support cropping and so on.

Ok. Thanks again! Hope it can be resolved.

In activity i16578330 many of the Coros length records “overlap” in time i.e. the start_time of length n+1 is before the end time (timestamp) of the previous length. And the total_timer_time or total_elapsed_time for each length added to the start_time is often past the start_time of the next length.

Also there are 23 duplicate records (for heart rate, cadence etc.) from approx 4915. Or maybe they aren’t dups and the time went backwards around about then.

I am not sure what I can do about this. The length data doesn’t look reliable and thats how Intervals.icu generates the activity streams.

Odd. The only discrepancies in actual length data I noticed myself is when we do leg drills with no or very little arm movement (evident when lengths are not a multiple of 50 or when the time is excessive, e.g. 3+ minutes for 50m). That does not seem to affect the overall pace average as much though on the Coros app or Evolabs. Too bad. Is this a Coros-specific thing or do other brands have this too?

I haven’t had any reports of pace being off for Garmin swims so I think those are ok. The overall average pace is available in the fit file. I could use that but then if you do any cropping etc. it will be re-computed from the bad streams data. I also suspect average pace for the intervals derived from laps is likely also too high.

I don’t really do any alterations to my data since I track my training mostly on trends and feel, and make sure I do the right variety and all that, so don’t need high accuracy. It’s just that sTSS is way off now on intervals while TP shows the same as Coros.

Simply using the average pace from Coros would probably work for me. Maybe TP is already doing that too, but I can’t see the laps on there since that’s a premium feature.

Keeping semi-accurate time in pace zones would be nice to have but may be similarly affected.

Actually, i noticed the swim pace being off for my garmin FR 245 swims.
Connect file: Garmin Connect
main set laps as being clocked and shown in Garmin Connect:

lap time(m:s)
12	1:29,8
13	1:25,4
14	1:29,4
15	1:25,1
16	1:25,3
17	1:26,6
18	1:28,9
19	1:24,3
20	1:23,9
21	1:24,8
22	1:25,7
23	1:26,2

compare this to the same file synced to ICU: Intervals.icu
using the ‘Use Laps’ function, you would expect the same times but ICU gives

lap duration (s)
12	91
13	88
14	92
15	87
16	88
17	89
18	92
19	86
20	86
21	87
22	89
23	88

all laps in ICU are about 2-3 seconds longer.

If i can help by providing any further details of data please let me know.

1 Like

I am going to look at this some more on the weekend. I might be able to “stack” the lengths one after the other to keep the recorded durations instead of adjusting the start time to avoid starting during the previous length.

1 Like

Bringing this one back to life again after reading this. Tried uploading the .fit file directly, but still getting discrepancies between Strava / HealthFit and intervals.icu. A bit more context:

  • This workout was recorded from my Apple Watch Ultra.
  • Data was extracted using HealthFit and synced to Strava and Intervals.icu.
  • I tried deleting the strava and intervals.icu activity entry and uploaded the fit file directly. Same Intervals.icu result.

Link to fit file here.

Intervals.icu screenshot:

Strava activity link here.

Healthfit screenshot:


  • notice the difference in avg pace. 1:56 autoset pace to 1:38 pace on intervals.

Is there any way to bring in the Auto Set data into Intervals?

Thank you in advance.

@david, I’m noticing that ICU and Garmin swim interval times and paces don’t match. I discovered this when doing a TT test (500m WU, 5x 100m tempo, 1000m TT, CD)

1 Like

@david Was hoping to bring this topic back to life - I’m experiecing the same problem using the native Apple watch workout feature to record a swim, then importing into healthfit before exporting to intervals.icu. Did you find a ‘fix’?

@Errolleesw Did you find a work around for the healthfit / intervals.icu set discrepancies?

I’ve also noticed that total distance is correct - 1.6km, however sum of intervals is off?

image

Intervals.icu workout

Iphone auto sets - i.e. the ‘correct’ view of my session, aligning with stopwatch for 400 and 200 time trials.

Any help would be appreciated!

J

Hi David, any progress on this matter. The average pace is still off and I just noticed a weird thing in the Pace graph. The laps info shows a 36seconds duration, but the pace/100mts shows a 1:25 time, which is 13seconds off.

For the whole session strava and coros shows a 1:34 average pace/100mts while intervals gives me a 1:22 which I wish I could do.

Is there anything I could do to fix this?
Thanks in advance

2 Likes