Wrong calculation of calories #257

Open
opened 10 months ago by CBac52d280C4aFa8C · 8 comments

TLDR: Calculated calories are around twice as height as the realistic value.

Hey,

I just noticed that the calories calculation might be somewhere wrong. I uploaded the lastest route here.

I have already run this route at least over 50 times and everytime the number of burnt calories is around >400. So the number of burnt calories in the attachment images is no outlier, the track has been recorded correctly.

I never questioned the number of burnt calories.

However most of the online calculators achieve only ~200 calories:
-https://www.fitrechner.de/kalorienverbrauch/USC12020/Joggen+%28Durchschnittswert%29?menge=19&groesse=195&gewicht=95&alter=25&sex=m

-https://www.stuttgarter-nachrichten.de/inhalt.kalorienverbrauch-joggen-mhsd.67abab5c-0844-49f6-9a6f-f7e9b3b3b2e0.html

-https://www.meine-gesundheit.de/service/tests/kalorienverbrauch-berechnen

-https://www.bergfreunde.de/kalorienverbrauch-sport-rechner/

If considered more in depth, it makes no sense to burn around 420 calories in just 18 minutes. 200 calories seem to be much more realistic.

Other activies like bicycle for 2 hours and 18 minutes (no hills, just straight roads) also resulted in 1958 calories, which is far from reality (900-1000 calories is more reasonable).

The calculation of calories may to be adapted. (At least in my case) the number of burnt calories displayed is around twice as high as the realistic number. I know that science does not agree on a single formula how to calculate the calories, but twice as height is probably too much.

Kind regards
Julian

Weight in app: 95kg (additionally infos: 25 years old, 195cm, male)

*TLDR: Calculated calories are around twice as height as the realistic value.* Hey, I just noticed that the calories calculation might be somewhere wrong. I uploaded the lastest route here. I have already run this route at least over 50 times and everytime the number of burnt calories is around >400. So the number of burnt calories in the attachment images is **no outlier**, the track has been recorded correctly. I never questioned the number of burnt calories. However most of the online calculators achieve only ~200 calories: -https://www.fitrechner.de/kalorienverbrauch/USC12020/Joggen+%28Durchschnittswert%29?menge=19&groesse=195&gewicht=95&alter=25&sex=m -https://www.stuttgarter-nachrichten.de/inhalt.kalorienverbrauch-joggen-mhsd.67abab5c-0844-49f6-9a6f-f7e9b3b3b2e0.html -https://www.meine-gesundheit.de/service/tests/kalorienverbrauch-berechnen -https://www.bergfreunde.de/kalorienverbrauch-sport-rechner/ If considered more in depth, it makes no sense to burn around 420 calories in just 18 minutes. 200 calories seem to be much more realistic. Other activies like bicycle for 2 hours and 18 minutes (no hills, just straight roads) also resulted in 1958 calories, which is far from reality (900-1000 calories is more reasonable). The calculation of calories may to be adapted. (At least in my case) the number of burnt calories displayed is around **twice as high as the realistic number**. I know that science does not agree on a single formula how to calculate the calories, but twice as height is probably too much. Kind regards Julian **Weight in app: 95kg (additionally infos: 25 years old, 195cm, male)**
CBac52d280C4aFa8C changed title from Wrong Calories calculation to Wrong calculation of calories 10 months ago

https://keisan.casio.com/exec/system/1350959101 shows 280 kcal

I think the main code is to be found here:
https://codeberg.org/jannis/FitoTrack/src/branch/master/app/src/main/java/de/tadris/fitness/util/CalorieCalculator.java

MET = speedInKmh * 0.97 (11.7 * 0.97) = 11.34

https://codeberg.org/jannis/FitoTrack/src/branch/master/app/src/main/java/de/tadris/fitness/util/CalorieCalculator.java#L35

(mins * (getMET(context, workout) * 3.5 * weight) / 200) + ascent

(17.5 * (11.34 * 3.5 * 95) / 200) + 67

396.923125

It appears.. you have entered 85 as weight in the app:P. Do you have sugessions for an other algorithm?
Greetings

https://keisan.casio.com/exec/system/1350959101 shows 280 kcal I think the main code is to be found here: https://codeberg.org/jannis/FitoTrack/src/branch/master/app/src/main/java/de/tadris/fitness/util/CalorieCalculator.java MET = speedInKmh * 0.97 (11.7 * 0.97) = 11.34 https://codeberg.org/jannis/FitoTrack/src/branch/master/app/src/main/java/de/tadris/fitness/util/CalorieCalculator.java#L35 (mins * (getMET(context, workout) * 3.5 * weight) / 200) + ascent (17.5 * (11.34 * 3.5 * 95) / 200) + 67 396.923125 It appears.. you have entered 85 as weight in the app:P. Do you have sugessions for an other algorithm? Greetings

Hi,

Doing some calculations here I found some references to the calculation.
95 KG a (11.5 / 1.6) -> 7.2 mph gives a MET of 11 (quite close to the calcuated MET of 11.34 above)

https://captaincalculator.com/health/calorie/calories-burned-running-calculator/

Is there really 67 meters assent in your run?

Hi, Doing some calculations here I found some references to the calculation. 95 KG a (11.5 / 1.6) -> 7.2 mph gives a MET of 11 (quite close to the calcuated MET of 11.34 above) https://captaincalculator.com/health/calorie/calories-burned-running-calculator/ Is there really 67 meters assent in your run?

Hey,

It appears.. you have entered 85 as weight in the app:P. Do you have sugessions for an other algorithm?

I checked it again, but I entered 95 kg in the app, not 85 kg.

Unfortunately I am not familiar with coding, so I cannot suggest another algorithm. Maybe change some weighting factors (multiplying ones), but I sadly cannot make a suggestion here. But I will do some research to find another formula for that.

Is there really 67 meters assent in your run?

Yeah probably. I live on a hill, there are some as- and descents along the route (only 2-3 meters, but I guess it sums up along the track). Probably there are minor GPS inaccuracies of +/-2 m included, which also sum up. But even when substracting the ascent of 67 m, it still equals 329 calories, which is way too much. Adapting the 3.5 or the 200 divisor would lower the number, but unfortunately I cannot make a suitable suggestion on how to adapt these factors.

Another run for one hour equals 1200 calories (attachment). It would be quite easy, if burning calories would be that simple ;)

Hey, > It appears.. you have entered 85 as weight in the app:P. Do you have sugessions for an other algorithm? I checked it again, but I entered 95 kg in the app, not 85 kg. Unfortunately I am not familiar with coding, so I cannot suggest another algorithm. Maybe change some weighting factors (multiplying ones), but I sadly cannot make a suggestion here. But I will do some research to find another formula for that. > Is there really 67 meters assent in your run? Yeah probably. I live on a hill, there are some as- and descents along the route (only 2-3 meters, but I guess it sums up along the track). Probably there are minor GPS inaccuracies of +/-2 m included, which also sum up. But even when substracting the ascent of 67 m, it still equals 329 calories, which is way too much. Adapting the 3.5 or the 200 divisor would lower the number, but unfortunately I cannot make a suitable suggestion on how to adapt these factors. Another run for one hour equals 1200 calories (attachment). It would be quite easy, if burning calories would be that simple ;)

Hey,

awhile back I was tackling the whole calorie calculations issue and wanted to find a way done without using MET. Because MET is not precise and it changes due to the conditions of the route like altitude and speed.

This algorithm is a bit more precise than using MET but not all the way there because it is based off of kilometers. To be more precise one would have to divide it down to segments of grade changes of the route.

Remarks:

  • sadly not all the sources are provided where I got the algorithm from
  • the code is in TypeScript and not Java, though shouldn't be too much of an issue
  • there is ruckWeightInKg parameter which can be 0 if no backpack is present
  • this algorithm is based off of walking/hiking, it could vary a bit for biking, where other factors could be weight of bike and on a decline if you are actually peddling or free rolling
  • this algorithm is based off of vo2 over MET
Hey, awhile back I was tackling the whole calorie calculations issue and wanted to find a way done without using MET. Because MET is not precise and it changes due to the conditions of the route like altitude and speed. This algorithm is a bit more precise than using MET but not all the way there because it is based off of kilometers. To be more precise one would have to divide it down to segments of grade changes of the route. Remarks: - sadly not all the sources are provided where I got the algorithm from - the code is in TypeScript and not Java, though shouldn't be too much of an issue - there is `ruckWeightInKg` parameter which can be 0 if no backpack is present - this algorithm is based off of walking/hiking, it could vary a bit for biking, where other factors could be weight of bike and on a decline if you are actually peddling or free rolling - this algorithm is based off of vo2 over MET

Hey,

I found the same cacluation was wrong by the Android's Height API data.

The White color backgound photo has the accurated data from Android Brometer's data and location API than the phone by the Black backgroud photo.

The burned energy value was caculated by different Height value. so, the same route has different burned engergy value.

The Android phone's GPS height value was not accurate for user now.
By comparing with Fitbit's value, the burned engergy value from white background photo is nearly to Fibit Ionic's data.

So, the Height value is the main point for the Burned engergy by my learning.

Kind regards

J

Hey, I found the same cacluation was wrong by the Android's Height API data. The White color backgound photo has the accurated data from Android Brometer's data and location API than the phone by the Black backgroud photo. The burned energy value was caculated by different Height value. so, the same route has different burned engergy value. The Android phone's GPS height value was not accurate for user now. By comparing with Fitbit's value, the burned engergy value from white background photo is nearly to Fibit Ionic's data. So, the Height value is the main point for the Burned engergy by my learning. Kind regards J
Owner

@lynxdingo Thanks for the code. I might take a look at it and implement it for running/walking and hiking.

It might be the easiest to stay with the MET approach for the other workout types like cycling/skating and custom ones of course.

@lynxdingo Thanks for the code. I might take a look at it and implement it for running/walking and hiking. It might be the easiest to stay with the MET approach for the other workout types like cycling/skating and custom ones of course.
Owner

@jmcal currently the algorithm just adds the ascent to the calories, so 1 meter = 1 kcal extra. This probably should be removed xD

@jmcal currently the algorithm just adds the ascent to the calories, so 1 meter = 1 kcal extra. This probably should be removed xD

The problem was from the value of elevation(xx.751511573791504) from Android API.
Some android phone can't show high accuracy value by weak GPS signal.
The Kal data is correct while running or hiking.

if possible, it can show the height value by peroid like per 10 seconds for the weak GPS signal problem in final page.

The problem was from the value of elevation(<ele>xx.751511573791504</ele>) from Android API. Some android phone can't show high accuracy value by weak GPS signal. The Kal data is correct while running or hiking. if possible, it can show the height value by peroid like per 10 seconds for the weak GPS signal problem in final page.
Sign in to join this conversation.
No Milestone
No Assignees
5 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.