TrainerRoad -> Strava Integration kJ vs. Calories [Feature Request]

My apologies if there is another thread on this, I searched and couldn’t find one with this exact question

This is an admittedly small issue, but I’m curious if anyone else has the same discrepancy and if we can figure out where it is coming from.

For workouts that I record on TrainerRoad the data integrates from TrainerRoad directly to Strava. On these workouts there is a kJ vs. calories discrepancy in Strava. It is often small, but always there. Here is an example from a workout I just finished:



As you can see, the kJ is identical between the two, as are the other power related fields. However, in Strava there is a separate ‘Calories’ field that is lower.

Fine you say, this is a Strava issue of some sort. Perhaps, but when I record a ride on my Wahoo Bolt the data integration is, I believe Wahoo->Strava. In these instances the calories and kJ are much closer, but still slightly different



The data flow on this into TrainerRoad is, I believe, Wahoo->Strava->TrainerRoad.

I haven’t looked into the Strava APIs but I am guessing they have separate kJ and Calorie fields and that Wahoo and TrainerRoad are handling this slightly differently.

Curious if anyone else has the same issue and where it might be sneaking into the data flow.

Obviously a pretty small issue in the grand scheme of things, but something I noticed a while back and haven’t been able to figure out

My guess would be this is just a question of the time recorded for each, or perhaps a rounding difference in the calculations? Since kJ is calculated by Watts * time if there was a small difference in time, or a small difference in average wattage calculated over that time, then the kJ would be different. I noticed that the durations of the first workout are identical, but different for the second one. Could account for the difference in kJ

You might find some useful information in this thread

FWIW, if you search on google you will find no end of complaints and discrepancies with regards to calories on Strava

1 Like

Maybe - but why the larger discrepancy between the ride with the identical time than the rides with different time? Auto-pause is on for outside, thus the time difference, but indoors it still doesn’t line up

Thanks - will read that over.

It seems they are mostly talking about the non-power meter based calculations from Strava. - so HR based calorie calculations. That shouldn’t really apply here since I was using a power meter. Also don’t see anything that would explain why Wahoo and Strava are more closely aligned than TrainerRoad and Strava - i.e. that different file sources creates a different discrepancy.

There are a few posts reporting the same issue, but no real resolution or answer as to why the (slight) differences.

Oh I gotcha, that difference then is how Strava is calculating human efficiency. kCal and kJoules are not identical, but after factoring in human inefficiency, they end up being the same. You can read more here. Strava likely uses a different coefficient of efficiency than TR; Strava says they use one here.

Having said that, the Strava API does take in calories when creating an activity, so you may be right in how the activity is uploaded by Wahoo and Trainerroad.

And this is worth a quick read:

1 Like

If you’re using a power meter, kilo joules (kj) is a hard number - it is an actual measurement of how much energy you put into/through the power meter over the course of the ride.

Your body had to expend energy to generate that kj number. That is measured in calories and requires some assumptions about your body’s efficiency in turning stored energy into actual power. There are some slight variations in the formula to convert kj to calories in the various fitness tracker apps.


One more piece of information since you’ve captured my curiosity, I just compared all my TR, Garmin, and Strava rides. If I recorded the activity in TR and that’s what got uploaded to Strava, kCal is identical. If the ride is uploaded from Garmin, it’s different than what TR records, but not by much

I don’t think this is the case - the discrepancy doesn’t appear to be a consistent % and it definitely doesn’t match across different data sources.

Understood - but if Wahoo is capable of using the kJ value as the calorie value that is sent to Strava why doesn’t TrainerRoad do the same?

This is extremely interesting to me as it is my TrainerRoad rides that have the difference. Are you saying that the kJ and Calories in Strava, for rides sourced from TrainerRoad to Strava, are identical? i.e. calories matches kJ? Basically - unlike the first two screenshots in my original post?

Ahh, no, the kJ for TR and Strava are the same, and now I understand what you’re saying. in TR, kJ=kCal, indicating that TR doesn’t do a separate calculation for calories, it just uses the kJ value since they’re more or less the same when you factor in efficiency. It does appear that Strava calculates calories separately, since it’s a separate API field and reported separately in the UI. Garmin, FWIW, reports work (kJ) when the workout includes a power meter, and kCal estimate when it doesn’t, so it’s not converting kJ to kCal. Maybe the separate kCal calculation by Strava is causing this?

Perhaps - but it does appear that if the integrated values include Calories (which it appears Wahoo does and TrainerRoad does not) then Strava will not attempt to calculate the values separately and will accept the externally provided calorie value.

Perhaps that’s what this boils down to - a feature request for TrainerRoad’s integration to Strava to populate the Calories field with the kJ information when the source of kJ is from a power meter.

Of course, all guesswork as to the introduction of the discrepancy - if we are correct then I think that’s a logical enhancement for TrainerRoad to implement

@IvyAudrain See the above feature request

Thanks for the tag! It completely makes sense why you’d an actual calorie calculation in TrainerRoad not based upon kJs, and maybe the current level of autonomy between the two isn’t showing consistent data between platforms. I’ll pass this along to the development team right away and see if they can hopefully get that on the roadmap soon!