Hey there!
Really love the functionality and scientific rigor that Runalyze provides.
I had one thought about a possible tweak in the algorithm that computes the pace curve. I think there might not be a clear right/wrong answer to how to compute this, but I would like to make my case for a different implementation from what's currently there.
I have attached two screenshots from my pace curve. I ran a 15km race in 52:30 minutes. That's why it is showing the pace for 52:30 as 3:30 min/km. Then the race was over. On a different run, it seems that I encountered a situation, where my average pace for 53:30 minutes was 3:55 min/km. So because I never was faster than that, it picks 3:55min/km as the value for my pace curve.
However, I'd argue that you should consider the race (that only had a duration of 52:30min) by just extending the .fit file with zero distance increase indefinitely into the future.
So running 52:30 for 15km and then ending the activity should also be considered as running 15km in 53:30min and 54min, 55min, .... inf min. In that case, the pace curve should show a value of 53:30min / 15km = slightly over 3:30, but much under the 3:55min.
I think this could be straight forward to implement. First you just compute the pace curve as is with the values at different time stamps. Then you need to step through that array from left to right and check whether the previous pace multiplied with a correction term for the longer duration is still better than the originally computed value. If so, overwrite.
This would smoothen out the pace curve a lot.
I read some values from my pace curve and did this math myself (or have Claude Code do it) and the resulting two pace curves are shown in the third screenshot.
Very curious to hear what everyone thinks.


