A while ago Stages added a new feature to their power meter:

High Speed Data recording added to capture pedaling force (kgf) and torque (Nm) 64 times per second for post ride analysis (.csv format).

I captured part of a short ride with this, which produced data like this:

Timestamp, kgf, Nm
"2014-06-26 19:21:25.025",,
46441, 7.3, 12.2
46473, 7.5, 12.6
46505, 7.9, 13.1
46537, -1.7, -2.8
46569, -2.2, -3.7
46601, -3.5, -5.8
46633, -4.0, -6.7
46665, -4.1, -6.8
46697, -4.2, -7.0
46729, -5.6, -9.3
46761, -6.1, -10.2
46793, -6.8, -11.4
46825, -7.1, -11.8
46857, -4.8, -8.0
46889, -1.1, -1.9
46921, -6.4, -10.7
46953, -10.7, -17.9
46985, -9.0, -15.1
47017, -5.7, -9.4
47049, -6.7, -11.2
47081, -6.8, -11.4
47113, -6.8, -11.4
47145, -7.3, -12.1

(the complete file file, captured with firmware v2.051)

I could well be mistaken, but the data seems either useless or broken to me:

  • the kgf column is almost exactly equal to the Nm multiplied by 0.6, so both only measuring the torque, not the pedal velocity.. so you cannot recalculate wattage..?
  • There is no obvious way to tell the angle of the pedal.. so you cannot reliably visualise torque throughout the pedal stroke..?

Is there any interesting analysis that can be done with this data? Searching only finds articles like this and various news items on the release

  • Wattage is define as Joules Per Second, or Nm / seconds. Since you have a value for Nm, and the timestamp, you should be able to calculate the wattage. The angle or speed of the crank arm doesn't come into the equation. Your wattage will vary throughout the pedal stroke, as you are less efficient at various positions through the pedal stroke. At least I think this is the way it works. Somebody feel free to correct me.
    – Kibbee
    Jul 4, 2014 at 14:17
  • @Kibbee But that Nm is torque not work (Joule). If I stand at 3 and 9 I produce torque but not work.
    – paparazzo
    Jul 4, 2014 at 18:12
  • Can you say a bit more about the full data set? Could it be that you did about 20 seconds worth of pedal strokes at roughly 60rpm, then coasted down, then did another 15 seconds or so at a slower cadence? Or am I completely off?
    – R. Chung
    Jul 5, 2014 at 7:49
  • @R.Chung Hm, the recording start/stop seemed a bit unpredictable, so I'm actually not certain how it relates to my Garmin recording of the same ride. According to the timestamps, it started at the left side of this graph (selected region selected to show the cadence Y axis scale), but it lines up better this this part (which roughly lines up with the Garmin lap markers I added trying to sync the two)
    – dbr
    Jul 5, 2014 at 8:37
  • @dbr, here's a plot of the kgf and timestamp from your "full" data file: anonymous.coward.free.fr/wattage/stages/dbr2.png (and here's a plot of the first 128 kgf samples: anonymous.coward.free.fr/wattage/stages/dbr1.png)
    – R. Chung
    Jul 5, 2014 at 9:06

3 Answers 3


The raw pedal force or torque data are difficult to work with but you can extract some information from them. First, note that Stages mounts the strain gages (or gauges) permanently to the crank, so the crank length is constant and they know what it is; that means that there is a one-to-one relationship between the kgf and torque columns. In this case, it appears from the given kgf and Nm data that your left crank is 170mm long.

Stages say the data are sent at 64 Hz but note that the timestamps are not all equally-spaced; there are some gaps in the timestamps. In any event, to make things simple, here is a plot of the first 128 kgf samples from your data set (if the data density were truly 64 Hz, these first 128 samples would represent exactly 2 seconds of data):

first 128 samples of force data

The data are not stamped with the crank position or crank angle but all is not lost: we can calculate the elapsed time between the peaks of the data. For those same interpeak intervals we can calculate the mean force or mean torque. Dividing the mean torque (in Nm) over each revolution of the cranks by the elapsed time over each crank revolution (in seconds) gives us the average power over each revolution in watts, since a Nm/s is a watt. Note that this will differ from the data usually reported since that is power over a second of time rather than power over a crank revolution. However, note that this is exactly how most power meters currently on the market calculate power: they average torque over a complete crank revolution, then divide it by the elapsed time for a revolution. Most (but not all) power meters currently on the market use a reed switch to determine when the crank passes by a fixed point. Thus, they know the elapsed time between closings of the reed switch and the position of the crank only once per revolution. In addition, although most power meters transmit data to the receiving head unit either once per second or sometimes at a nominal 4 Hz, they generally report the average power over the last completed crank revolution before the scheduled data transmission.

How do we know that this is a valid approach? Below is a plot of torque and crank angle from Kautz's classic study of pedal force and crank torque. From this plot it is clear that the torque peaks only once per crank revolution. Note, by the way, that the Kautz data were collected from an instrumented pedal on only one crank, so the torque is measured only on one side, just as Stages collects only on one side. These data show that the assumption that the torque peaks observed in the data here also only occur once per crank revolution, even though we are plotting against time rather than crank angle. Importantly for this analysis, maximum torque is more easily identifiable than minimum torque. If you look at the first plot above, you can see that maximum torque is (in this sample) single-peaked but minimum torque can sometimes have a "blip" or other anomaly that makes identifying the peak-to-peak interval easier to find than identifying the trough-to-trough interval. Kautz torque data showing maximum only once per crank revolution Below I have plotted your data file with the x-axis converted from "Timestamp" to seconds of elapsed time and with torque (in Nm) on the y-axis. For each crank revolution I have done as described above and calculated the mean power in watts between torque peaks, presumably equivalent to crank revolutions. The average power between peaks is shown in red. Note that over one of the intervals the average torque as measured by the left crank was negative -- I have not suppressed or cleaned up the data so that shows up as -20 watts for the period from roughly 14 to 22 seconds on the plot (presumably, your right leg was generating positive torque at that point but we cannot see it). A slightly larger version of the plot below can be seen here.

calculated power over each crank revolution

Note that other power meters (including the Garmin Vector, the Power2Max, and the new Pioneer, among others) use a combination of force-sensing strain gages and acclerometers just as the Stages does to determine force patterns and thus power. In fact, the Power Tap uses only strain gages and elsewhere I have shown that its "virtual cadence" estimated by variations in torque measured at the hub provide a reasonably good estimate of cadence as measured by a dedicated reed switch on the crank. Once again, this supports the approach taken here of using torque or force patterns as a way to determine time taken for a full crank revolution.

Since we calculated the elapsed time for each crank revolution, we can also calculate the cadence (in terms of revolutions per minute). I had calculated 28 values for the power over the 28 interpeak intervals in the plot above. The plot below shows the cadence and average torque for each revolution corresponding to those 28 values, with the cadence and average torque pairs sequentially identified by a number from 1 to 28, indicating which crank revolution is shown (thus, the first combination of cadence and torque is labeled "1", the second by "2" and so on; the point with negative average torque is off the bottom of the plot). The dotted red lines are isopower contours at 100, 150, 200, and 250 watts. As can be seen from the plot, for the first 16 or so peaks, cadence was higher and torque lower than for the final few pedal strokes. That is consistent with the first plot above of torque against time-stamp: you can see that the pedal strokes are farther apart and the torque peaks are higher. cadence-torque plot Thus, you can see that even without nominal crank angle, it is possible to reconstruct reasonable estimates of power and cadence from these data, tedious though the effort may be. If your data sample were longer you might want to pass the torque data through a filter to strengthen the "signal" and suppress the "noise," then difference the filtered torque values and look for records where the difference passes zero from above; this will identify a torque peak (this method is essentially the same as examining the first derivative of a function to identify transition points and then examining the second derivative to determine whether the transition point was a maximum or a minimum). Then you can calculate the elapsed time and average torque between peaks as described above to derive power and cadence.

Is there a way to check that the cadence values derived in this way are correct? Not with only these data alone. However, almost all usual Stages data sets will include wheel speed. Wheel speed is typically measured by a reed switch (see this bicycles.stackexchange answer for a description of how speed is measured) and it is possible to use measured speed and estimated cadence to calculate the implied gear ratio. Except for the rare bicycles with continuously variable transmissions, gear ratios are discrete. That means that if you plot the putative gear ratio based on speed and cadence over time, they should fall into easily recognizable discrete rows rather than into a random scatterplot. As an example, below you can see calculated gear ratios based on speed and cadence from a ride. Unfortunately in this plot you cannot see the speed but the measured cadence is shown in the top panel, and you can verify that it is not constant but rather varies up and down. The bottom panel shows the calculated gear ratios and, as expected, they fall into discrete and easily identifiable rows. If the cadences estimated for the Stages high-frequency data were correct, the gear ratios derived from them would both fall into discrete rows and also would coincide with the gear ratios defined by the actual chain rings and cogs on the rider's bicycle. That would provide a check and validation of the method of estimating cadence from the peak-to-peak intervals. speed and cadence can be used to calculate gear ratios

In summary, these data are not easy to work with but, evidently surprisingly to many, it is still possible to glean some information from them. In combination with other information that will probably be available from the usual Stages data files (speed and power) you could verify that this approach produced the correct high-frequency torque values to be consistent with the 1-second data. Then you could use the torque values to examine application of power around the pedal stroke with some amount of confidence that the data were complete and consistent.

  • The negative parts clearly means that dbr should work on the pedaling, as they corresponds to counteracting the right crank arm. Also, the power transferred to the wheel would correspond to the mean value. However, from a number of calories burnt point of view, wouldn't it make sense to compute the average absolute value? Although the force is not transmitted to the wheel there is a bit of additional resistance added. Not really related to the original question, but it just struck me.
    – Oscar
    Jul 7, 2014 at 9:21
  • @Oscar The negative parts do reflect counter-acting torque but it appears dbr may have been coasting at the time rather than pedaling. I included the calculation just to show the anomaly. If I were were doing this in "production mode" I would almost certainly record that as zero power, and tine-tune the analytical algorithm to produce average power over a second rather than over a crank revolution.
    – R. Chung
    Jul 7, 2014 at 10:05
  • I wasn't actually thinking of the coasting part, but one of the standard pedal revolutions (although it wasn't clear). This holds even for time-based intervals. But indeed, the coasting part does not count for calories, so somehow one will need to distinguish between coasting negatives and counter-acting negatives.
    – Oscar
    Jul 7, 2014 at 10:09
  • Interesting analysis but infer pedal motion from a force profile is problematic. And an estimate then take the average is not accurate. On an uphill going to have low cadence and a lot of force. On the downhill low force and high cadence or possibly no cadence.
    – paparazzo
    Jul 7, 2014 at 14:11
  • The question is not about Power2Max, the Garmin Vector, or the new Panasonic. This question is about States and Stages uses an accelerometer for cadence. Stages states they use the RPM from the accelerometer to calculate power. Quote from their site "The use of an accelerometer to measure cadence gives multiple position measurements per revolution, giving us enough data to know when a rider stops pedaling within the second they do so. The fast response and higher resolution allows us to build a better database of both power and cadence information."
    – paparazzo
    Jul 9, 2014 at 22:02

Negative force/torque power !+ actively resisting the pedal. Thus, no conclusions about pedaling "style" (even for the left leg, which is all that Stages measures) can be drawn from data such as these.

  • Welcome to bicycles.stackexchange, Andy.
    – R. Chung
    Jul 9, 2014 at 14:13

I agree both are measuring torque/force. That is the ratio you would get with 170 mm cranks. 1 kgf = 9.80665 newtons. 7.3 * 9.80665 * 170 / 1000 = 12.2.

But without pedal angle I agree you cannot calculate work or power (wattage). And this appears to be just one pedal.


From there, the rest of the equation is standard physics. The average force per revolution (Fave) is measured by the strain gauges in kilograms and then converted to torque in Nm (Newton Meters) by multiplying it by the crank length (L) in meters and the gravitational constant (9.8m/s^2). Finally it is multiplied by the crank RPM which is converted to radians per second to derive the power.

And I don't understand the number and magnitude of the negative numbers. Even when it looks like you were in a cadence your negative were 1/3 the positive. And in a stretch you have negative that are some on the biggest numbers.

  • 2
    It is only one pedal, because the stages is a one crank arm power meter. Jul 4, 2014 at 19:10
  • Interesting, the ride was indeed on 170mm cranks and only measuring at the left crankarm
    – dbr
    Jul 5, 2014 at 8:42
  • He may not have pedal angle but he does have a timestamp and thus elapsed time between peaks of the force or torque curve. Since the Stages only measures forces on the left crank, you could integrate over the cycle and do what Stages does: double it to get total power. If you were obsessive, you could do what has been proposed elsewhere: use the difference in trough-to-peak time to peak-to-trough time as an estimate of L/R balance to get a refined estimate of total power.
    – R. Chung
    Jul 6, 2014 at 6:39
  • @R.Chung Then post that as an answer. Force and time is not work. I can stand on the pedals at 3 and 9 with no movement and produce a force and produce zero work. According to stages web site they use rpm in their power calculation.
    – paparazzo
    Jul 6, 2014 at 14:39
  • Would the negative numbers during coasting indicate that dbr was coasting with the right arm in front? Hitting a bump before starting to pedal again?
    – Oscar
    Jul 7, 2014 at 8:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.