We’ve noticed that when retrieving data using the Get Daily Activity Summary API, the summary: caloriesBMR value fluctuates for some users depending on the time the API request is made. This issue seems to have started around September 2, 2024.
I’ve attached the data for one particular user, retrieved on September 4, 2024, at 18:35 JST.
Data for September 3, 2024:
"summary": {
"caloriesOut": 1811,
"activityCalories": 1749,
"caloriesBmr": 1547,
"activeScore": "-1",
Today Data for September 4, 2024:
"summary": {
"caloriesOut": 2273,
"activityCalories": 6166,
"caloriesBmr": 1198,
"activeScore": "-1",
Future Data for September 5, 2024:
"summary": {
"caloriesOut": 1637,
"activityCalories": 0,
"caloriesBmr": 1547,
"activeScore": "-1",
Since caloriesBMR represents the basal metabolic rate, we expect it to consistently return a value of 1547, regardless of the time the API request is made. Could you please confirm if this behavior is expected?
It does seem that the caloriesBMR for the current day reflects the value up until the actual time.
A few days ago, with a different Fitbit account, the caloriesBMR for the current day did not fluctuate, but now it also reflects the value up until the actual time.
If this is the expected behavior, it would be problematic because the only way to obtain the accurate caloriesBMR for the current day would be to retrieve it the day before or on the following day.
Best AnswerWhy is this problematic? You can use your own calculation based on the current time and the bmr calories to calculate the bmr calories for the full day, or you use the estimated bmr calories of the next day. It seems to me that these are nice workarounds for your issue.
I agree that an undocumented change isn't nice, but the way Fitbit now returns the bmr calories for the current day isn't wrong: it shows the accumulated value up to the current time (time of request). More bmr calories are not burned for the current day at that time.
Best AnswerI concur, seeing these same issues and having users suddenly complain that the reported values synced to our app are too high. I note that the fitbit status page acknowledges there's an issue since teusday:
"Some users may notice data discrepancies or syncing issues between 3P apps and Fitbit. Our team is currently investigating the root cause of the issue."
Can someone from fitbit give us any guidance on timelines or steps to mitigate if these JSON values have semantically changed?
Does fitbit view this as an undocumented change that will stay this way, or as a regression that will be fixed soon?
Best Answer
Fitbit Developers oversee the SDK and API forums. We're here to answer questions about Fitbit developer tools, assist with projects, and make sure your voice is heard by the development team.
Hi @popom
Thank you for reporting this problem. Let me try to reproduce this problem and report it to our engineering team.
Best Answer
Fitbit Developers oversee the SDK and API forums. We're here to answer questions about Fitbit developer tools, assist with projects, and make sure your voice is heard by the development team.
Hi @popom
It does seem the change in caloriesBMR value is changing based on the timing of the day and how many calories the person has currently burned at that time. I'm checking with engineering to determine if this behavior is correct. I'll let you know what I find out.
Best Answer
Fitbit Developers oversee the SDK and API forums. We're here to answer questions about Fitbit developer tools, assist with projects, and make sure your voice is heard by the development team.
Hi everyone,
I was able to confirm that this happens because the caloriesBMR for the current date is computed based on the number of minutes elapsed on that day.
Hi Gordon -- thanks for confirming this. We had figured that out, but it was for the last 8 years or so, reporting a full day's BMR and then changed to this new behaviour. Can you confirm. this was intentional undocumented change and that it's going to stay that way going forward, or will it be fixed back to old behaviour?
Best Answer