Possible bug in running interval pace calculation for Garmin-exported FIT files (Intervals vs Strava vs Garmin comparison)

I’ve found what looks like an inconsistency in how interval pace is calculated/displayed after importing a FIT file exported from Garmin.

Since the file comes from Garmin and Garmin Connect reads it correctly, I’m using that as the reference behavior.

Activity structure

The workout contains:

  • 3 longer blocks

  • repeated intervals of:

    • 40s work
    • 20s recovery

The FIT file includes lap markers and correct lap durations.

Comparison using the same Garmin-exported FIT file

Garmin Connect (reference)

The workout steps/laps are shown consistently:

  • 40s reps = 3:59 /km
  • recoveries = 0 distance as expected
  • durations and distances coherent

Strava

Using the same file, the laps are also shown consistently:

  • 40s reps = 3:59 /km
  • durations and distances coherent

Intervals

Several 40s reps are shown as:

  • 4:08 /km

while a later identical 40s rep is shown correctly as:

  • 3:59 /km

So equivalent intervals inside the same activity are not being calculated consistently.

Why this looks like a bug

If Garmin Connect (source platform) and Strava both interpret the same FIT file consistently, but Intervals shows different pace values for equivalent laps in the same workout, the issue seems specific to how Intervals calculates or displays the lap/interval pace column.

The pace graph itself looks correct, so this may be limited to the summary table logic rather than the raw imported data.

Screenshots

Attached:

  1. Intervals screenshot
  2. Strava screenshot
  3. Garmin Connect screenshot


Question

Can someone clarify which data source is used for the running interval pace column for Garmin FIT imports, or whether this is a known issue?

Intervals don’t use the laps summary for intervals metrics calculation. It’s based on the streams and therefore can be different from the summary fields

And the stream shows the correct values. I am pretty sure that the error comes from erroneously including one sample after the end of the 40s lap in the average computation. Pace should be 3:59. Only 1-2 samples at zero speed added to the average are enough to produce the wrong pace. It doesn’t happen on the last 40s lap because the speed doesn’t go immediately to zero at the end of that last lap, as in the previous ones.

I don’t understand. You tell the speed doesn’t go down in the last lap, and because of that you want the pace to be the same?

What do you mean with the stream shows correct data? Can you show an interval stream?

That is a totally erroneous assumption because Intervals isn’t using the velocity stream for Pace calculation of intervals. It uses the distance stream and the time in between end and start. Total distance over that time difference gives you the avg pave for that interval.
For GAP, the velocity stream is used because the GAP needs to be calculated point by point based on velocity and elevation change.

1 Like