HornetMaX wrote: ↑April 3rd, 2023, 3:23 am
Yeah but that's for the instantaneous stroke rate. For the split/interval/session "global" (average) stroke rate, something way more fishy seems to be done.
Wouldn't the sane approach be to average the stroke rates across all strokes in a split/interval/session?
The alternative approach would introduce all kind of weird problems, like rounding errors. As some here already suggested: you can't "simply count" the number of strokes in an interval.
Lets do some simple example. A 250 meter interval at a perfect 2:00 pace (thus an exact 60 seconds session) and a perfect distance per stroke of 10.0 meters, you'd do 25 strokes per minute. But when your stroke end is just after the minute mark (could be a millisecond due to startup noise), it would be counted as 24 strokes per minute? From the "you did a 60 seconds session with 24 completed full strokes" perspective, it might be true, but the person rowed a 25 SPM session (hence the DPS of 10 meters).
This approach would introduce all kinds of rounding issues with shorter splits or sessions. All it takes is a 99% completed stroke at the end of an interval to mess up a lot of metrics.
I just compared my last rowing session where my stroke rate slowly increased to compensate for drive strength (after a half marathon yeasterday, the muscles gave up on an additional 5K, but my mind didn't).
This is what OpenRowingMonitor and RowsAndAll produce (please note: ORM calculates SPM twice per stroke with a one decimal precision and averages that across the two calculations, RowsAndAll is told what the splits are afterwards and interpolates the metrics to fit the splits):
#-|SDist|-Split-|-SPace-|-Pwr-|SPM-|AvgHR|MaxHR|DPS-
00|00200|00:54.7|02:16.8|136.6|21.1|106.3|120.0|10.4
01|00300|01:19.2|02:11.9|152.0|21.2|130.0|133.0|10.7
02|00500|02:08.9|02:08.9|163.5|21.4|135.1|138.0|10.9
03|00500|02:07.5|02:07.5|168.6|21.5|140.8|146.0|11.0
04|00500|02:06.6|02:06.6|172.5|21.9|145.8|150.0|10.8
05|00500|02:05.0|02:05.0|179.2|22.1|152.1|155.0|10.9
06|00500|02:05.0|02:05.0|179.1|22.5|154.8|157.0|10.7
07|00500|02:02.6|02:02.6|189.5|22.9|159.5|163.0|10.7
08|00500|02:02.1|02:02.1|191.9|23.1|163.5|166.0|10.6
09|00500|02:01.0|02:01.0|198.1|23.7|167.6|169.0|10.5
10|00300|01:12.3|02:00.5|200.2|24.1|170.2|171.0|10.3
11|00200|00:48.2|02:00.5|199.6|24.4|169.5|171.0|10.2
This is the exact same row recorded with the PM5, ErgData and the Concept2 log:
2:13.6 500m 2:13.6 147 805 21 133
2:08.9 500m 2:08.9 163 862 21 138
2:07.5 500m 2:07.5 169 881 22 146
2:06.6 500m 2:06.6 172 893 22 150
2:05.0 500m 2:05.0 179 916 22 154
2:05.0 500m 2:05.0 179 916 23 155
2:02.7 500m 2:02.7 189 952 23 163
2:02.2 500m 2:02.2 192 960 23 166
2:00.9 500m 2:00.9 198 981 24 168
2:00.5 500m 2:00.5 200 988 24 169
Please note that the first PM5 split is divided across the 00 and 01 ORM split, as is the last PM5 split is divided across 10 and 11 ORM split. There are extremely subtle differences in pace as ORM tends to start 0.5 seconds before the PM5.
Looking at split 2, you see that the average of all ORM splits is 21.4, where C2 nicely rounds this to 21. At split 3, you see that the average of all ORM splits is 21.5, where C2 nicely rounds this to 22. Another interesting one is split 6: ORM has a 22.5 SPM, and C2 again nicely rounds to 23.
I must admit, when I look at the Steady State Half Marathon I see more deviations (see bold lines). First the data from ORM/RowsAndAll:
#-|SDist|-Split-|-SPace-|-Pwr-|SPM-|AvgHR|MaxHR|DPS-
00|00200|00:57.5|02:23.7|117.9|21.1|097.5|112.0|09.9
01|00300|01:22.4|02:17.3|135.3|21.6|118.7|122.0|10.1
02|00500|02:16.8|02:16.8|136.7|21.4|121.4|125.0|10.2
03|00500|02:14.6|02:14.6|143.5|21.1|130.7|133.0|10.6
04|00500|02:14.7|02:14.7|143.1|21.1|136.1|139.0|10.6
05|00500|02:12.8|02:12.8|149.3|21.3|141.4|145.0|10.6
06|00500|02:12.6|02:12.6|150.1|21.3|145.3|148.0|10.6
07|00500|02:11.8|02:11.8|153.0|21.6|146.3|149.0|10.6
08|00500|02:11.3|02:11.3|154.8|21.5|148.6|151.0|10.6
09|00500|02:11.0|02:11.0|155.3|21.6|150.6|153.0|10.6
10|00500|02:12.1|02:12.1|152.1|21.3|151.2|152.0|10.7
11|00500|02:12.4|02:12.4|150.9|21.5|152.5|154.0|10.6
12|00500|02:11.5|02:11.5|153.8|21.7|153.0|157.0|10.5
13|00500|02:11.5|02:11.5|154.2|21.9|154.9|157.0|10.4
14|00500|02:11.1|02:11.1|155.3|21.7|156.3|157.0|10.5
15|00500|02:11.0|02:11.0|155.8|21.7|157.6|159.0|10.5
16|00500|02:11.3|02:11.3|154.7|22.0|156.6|158.0|10.4
17|00500|02:11.4|02:11.4|154.1|22.0|157.0|159.0|10.4
18|00500|02:11.5|02:11.5|153.8|22.0|158.3|160.0|10.4
19|00500|02:11.3|02:11.3|154.4|22.0|158.7|161.0|10.4
20|00500|02:11.2|02:11.2|155.2|22.3|158.6|160.0|10.3
21|00500|02:12.1|02:12.1|152.0|22.4|157.5|161.0|10.1
22|00500|02:12.0|02:12.0|152.5|22.3|157.2|159.0|10.2
23|00500|02:12.5|02:12.5|150.7|22.7|157.2|160.0|10.0
24|00500|02:12.3|02:12.3|150.9|22.6|157.1|159.0|10.0
25|00500|02:12.5|02:12.5|150.4|22.4|158.0|160.0|10.1
26|00500|02:12.3|02:12.3|151.3|22.2|156.5|161.0|10.2
27|00500|02:11.5|02:11.5|153.8|22.0|158.5|161.0|10.4
28|00500|02:11.6|02:11.6|153.7|22.2|158.8|161.0|10.3
29|00500|02:12.6|02:12.6|150.3|22.3|158.3|160.0|10.1
30|00500|02:12.6|02:12.6|150.0|22.1|156.6|160.0|10.2
31|00500|02:13.1|02:13.1|148.5|22.4|157.0|159.0|10.1
32|00500|02:11.6|02:11.6|153.6|22.8|155.9|158.0|10.0
33|00500|02:11.6|02:11.6|153.5|22.9|157.7|159.0|09.9
34|00500|02:12.1|02:12.1|151.8|22.8|157.0|159.0|10.0
35|00500|02:12.6|02:12.6|150.1|22.6|157.5|159.0|10.0
36|00500|02:12.8|02:12.8|149.7|22.6|156.0|157.0|10.0
37|00500|02:11.6|02:11.6|153.9|22.4|158.0|159.0|10.2
38|00500|02:11.2|02:11.2|155.0|22.1|157.7|161.0|10.3
39|00500|02:10.9|02:10.9|155.9|22.2|159.3|161.0|10.3
40|00500|02:09.9|02:09.9|159.7|22.6|161.2|163.0|10.2
41|00500|02:10.2|02:10.2|158.6|22.5|159.9|163.0|10.2
42|00300|01:16.5|02:07.5|169.1|22.7|163.1|164.0|10.3
43|00297|01:14.0|02:04.6|180.5|23.8|164.1|165.0|10.1
Same data from the PM5:
2:19.5 500m 2:19.5 129 743 22 122
2:16.8 500m 2:16.8 137 770 21 125
2:14.6 500m 2:14.6 144 793 21 132
2:14.8 500m 2:14.8 143 791 21 137
2:12.8 500m 2:12.8 149 814 22 145
2:12.6 500m 2:12.6 150 816 21 147
2:11.8 500m 2:11.8 153 826 21 148
2:11.3 500m 2:11.3 155 832 21 149
2:11.2 500m 2:11.2 155 833 22 151
2:12.0 500m 2:12.0 152 823 21 152
2:12.4 500m 2:12.4 151 818 22 153
2:11.5 500m 2:11.5 154 829 21 154
2:11.4 500m 2:11.4 154 830 22 155
2:11.2 500m 2:11.2 155 833 22 156
2:11.0 500m 2:11.0 156 835 22 157
2:11.4 500m 2:11.4 154 830 22 157
2:11.4 500m 2:11.4 154 830 22 155
2:11.5 500m 2:11.5 154 829 22 156
2:11.4 500m 2:11.4 154 830 22 160
2:11.1 500m 2:11.1 155 834 22 160
2:12.1 500m 2:12.1 152 822 22 158
2:11.9 500m 2:11.9 153 824 22 157
2:12.4 500m 2:12.4 151 818 23 157
2:12.4 500m 2:12.4 151 818 23 158
2:12.5 500m 2:12.5 150 817 22 159
2:12.3 500m 2:12.3 151 820 22 157
2:11.5 500m 2:11.5 154 829 22 160
2:11.6 500m 2:11.6 154 828 22 160
2:12.5 500m 2:12.5 150 817 23 150
2:12.7 500m 2:12.7 150 815 22 159
2:13.2 500m 2:13.2 148 809 22 157
2:11.5 500m 2:11.5 154 829 23 157
2:11.6 500m 2:11.6 154 828 23 157
2:12.2 500m 2:12.2 151 821 23 158
2:12.7 500m 2:12.7 150 815 23 157
2:12.7 500m 2:12.7 150 815 23 156
2:11.6 500m 2:11.6 154 828 22 158
2:11.2 500m 2:11.2 155 833 22 158
2:10.9 500m 2:10.9 156 837 22 158
2:09.9 500m 2:09.9 160 849 23 163
2:10.2 500m 2:10.2 159 845 23 155
2:07.1 500m 2:07.1 170 886 23 164
0:23.5 97m 2:01.1 197 977 26 165
What I notice is that these deviations are in areas where the ORM data indicates that SPM did not vary much: the surrounding splits have a more or less same SPM.
I dug deeper (the joy of ORM and RowsAndAll data), and before 2000 meters there was no SPM above 12.5, at that time it "spiked" to 12.6 until 2050 meters, after which it went below 12.5 again until 2730 meters. At 14500 meters, the SPM is around 22.3, where it is actually around 22.1 until the end of the split where it "peaks" to sligthly above 22.5 at 15017 meters.
Could this be an issue we've seen before with heartrate, where the average HR isn't the average at all, but the last measured value?