Recently introduced kj/calorie discrepancy with Strava

Is anyone else experiencing larger variance between the TR reported kj values and the calorie values when the activity syncs to Strava?

Historically these values have been very closely correlated (although not 1:1). However, starting Wednesday I’m seeing much larger variances. I’ll put some comparative values from TR and Strava below for reference

Curious if anyone else is seeing this or if it’s somehow specific to my setup

The two that vary more
Today TR 2383 kj, Strava 2657 calories
Yesterday TR 2674 kj, Strava 2982 calories

Older examples that more closely match
Tuesday TR 2675 kj, Strava 2662 calories
Monday TR 1259 kj, Strava 1256 calories
Sunday TR 2370 kj, Strava 2360 calories
Saturday TR 2850 kj, Strava 2838 calories

I haven’t changed my setup but it seems some issue was introduced overnight Tuesday

Hey @trpnhntr,

I’m not 100% sure what Strava does with Calories, but it does look like the kilojoules match from yesterday’s ride.


I can’t seem to find your ride from today in Strava, but it looks like pretty much all others match as far as kjs go. :man_shrugging:

It might be worth reaching out to Strava to see how they’re calculating Calories because as far as I know Calories = kilojoules x 4.18.

Thanks for the quick reply. I understand that the kj forks match, I was referring to the calories field in Strava

I believe this is a separate field in the Strava API which was previously populated by TR so I was considering whether this was a change in the data TR was providing to Strava

I think, but am uncertain, that if this field is not provided then Strava does their own (bad) calorie calculation

If you’re essentially confirming that nothing has changed on the TR side then this would be a change on the Strava end with no likely avenue for correction

I can dig a bit deeper to see if anyone on the team knows of any changes! :technologist:

Great, thanks for checking!

1 Like

It sounds like this is likely something that Strava may have changed. We aren’t aware of any changes made on our end. :man_shrugging:

is TR pushing to Strava?

FWIW it appears that Strava simply uses the calories it gets from my Garmin 840. Doing a quick spot check, a year ago calories were roughly 111% of kJ, and lately it’s been 118% (ish). The calories and work in Garmin, are the same as what I see in Strava, Intervals, and TrainingPeaks - which is why I’m saying it appears that Strava simply uses the calories it gets from Garmin 840. Again that is from a quick spot check.

Appreciate the data but it’s unrelated as this is a TR->Strava thing. How data integrates from Garmin or wahoo isn’t material AFAIK

Thanks for checking, I guess they have changed the way they consume whatever data TR is providing

1 Like

My ride today 689 cals from Garmin results in 689csls on Strava.

:+1: sounds like you need to file a support ticket with Strava and ask. FWIW the only good data is kJ work, (as I’m sure you know) the calories estimates use assumptions that often aren’t true for you as an individual.

1 Like

Yeah. The interesting thing is that until Wednesday Strava was populating a value into calories that was nearly identical to kj, but that changed

Frustratingly data from wahoo does correctly populate into Strava with kj=calories, similar to what others are reporting for Garmin data into Strava

My guess is that TR could resolve this by sending data to Strava differently even if the change/fault was initiated by Strava


with your very high level of fitness and long hours on the bike, you burn thru a metric crap ton of calories. Are you relying on the kcal estimates for fueling? Or kJ and your own estimates? I’ve ended up with the later, however my burn rate is much lower due to shorter workouts and lower ftp.

1 Like

@trpnhntr Just chiming in to say I noticed the same. Previous to Tuesday the 18th, Strava’s calories were ~99% of TR’s kilojoules for a ride; post, Strava has calories at something around 115% of kilojoules. E.g. of before

Follow Perry on Strava to see this activity. Join for free.

& after

Follow Perry on Strava to see this activity. Join for free.

I made a support request inquiring about the change (maybe on Weds), but haven’t gotten a response.

@eddiegrinwald Agreed that this appears to be exclusively a change on Strava’s end. Would be grateful if you could work any connections with them to get more info! I can’t find it in writing anymore, but I recall seeing a statement from Strava that, when present, they would use kJs from a ride as the basis for calories, & when not present they would fall back to their own calculation method. The change this week departs from that. FWIW their support page on calculation method has not been updated recently.


Here’s some technical info which I hope adds to the discussion.

Your power meter measures work done to the bike (or your trainer flywheel). That’s the kJ field.

Now, on to the calories field. You can easily find that 1 calorie = 4.18 kJ. In addition to this, we need to remember that the body is a machine, and no machines have 100% efficiency. You know why you get so hot if you don’t use a fan, or why they say just keep moving if you’re cold? Because you produce a lot of waste heat to burn those 705 kJ or however much work you did.

Strava is making an assumption about the body’s gross efficiency (GE). I think it assumes close to 23%. Maybe they changed that number because of some updated literature they found, IDK. I think I did the math a few years back and at the time, it was more like 21.5%.

The thing to remember is, your GE differs slightly from my GE. One 2010 study I found (free to access) found that at lactate threshold, men in their sample of trained cyclists had an average GE of 21.9%, with a standard deviation of 1.7 percentage points. Recall that almost everyone is within 1.96 standard deviations of the mean. Women in their sample had an average GE of 23.2%, SD 3.5 percentage points. Moreover, I think that your own GE varies depending on effort level, with efficiency rising slightly as you increase effort. That’s sort of corroborated in table 2 of the study, although that’s presenting average GEs at 4 effort levels. Anyway, you know how on Zwift, when it estimates your max aerobic power, there’s the small disclaimer “assumes a fixed cycling efficiency”? This is what they mean.

FYI, the sample was pretty fit trained cyclists; average VO2max of about 60 for men and 49 for women.

Basically, the kJ field is not measuring the same concept as the calories field. Calories are calculated from kJ work done based on some assumptions. You can probably add an error margin of 1-200 calories to either side of the ride above (do the math if interested).

1 Like

Worth noting my above comment that while this does seem to be a change on the Strava side it doesn’t appear to have impacted rides coming from wahoo or Garmin

This seems to imply that there is a way for TR to address this, likely by sending data in a way that is consistent with these platforms

OK, but if you read my post above, you’ll realize that it sort of doesn’t matter, right? Each platform could use a slightly different GE assumption. It is not necessarily going to be your GE. How do you find your own GE? Well … do a VO2max test, but they also have to measure cycling power at the same time. I’m not sure how often this is done. If you don’t have your own GE, my view is that I treat calories as an estimate, internally add a margin of error on both sides, and do let satiety be my guide.

Actually, who am I kidding, I just stuff my face with fries.

Maybe! But without knowing the Strava software, it’s hard to conclude much :woman_shrugging:

I read your post and well understand the relationship between efficiency and caloric burn

I don’t agree with you that it doesn’t matter. Having kj = calories is not going to be 100% accurate, but it is going to be consistent. Whereas when systems such as strava provide behind the scenes ‘math’ to convert kj into calories we lose insight into what that math is and don’t gain any real accuracy due to the individual nature of efficiency. So…we lose consistency, visibility, all while not improving accuracy.

As such - I disagree with the idea that it doesn’t matter - having them equal to each other is vastly preferrable even if it does not represent a 100% accurate number

While Strava is a black box in this case - we know that others have been able to integrate with them to get kj=calories, so there is a way to feed the black box to get this outcome :slight_smile:

1 Like

Fair enough — I fully grant that work in kilojoules does not strictly equal energy expenditure in calories!

But we end up operationalizing this stuff in our own biometric workflows, & in my particular one, Strava plays a key part in the pipeline, & a change north of 10% ranks above the level of just noise for me.

I guess my point is, the exact number of calories depends on the GE assumption the software makes. Your own GE will vary from the population norm, and I think it varies a bit less depending on your effort level. So maybe the exact number of calories matters less than the trend in the number of calories from workout to workout. I stuff relatively few fries into my face after a VO2max session, I stuff a few more after a long threshold session, I stuff a whole lot of them after a solo 80 miler.