Fix bug parsing raw Fitbit calories JSON data#246
Merged
jenniferfedor merged 1 commit intodevelopfrom Feb 27, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every minute-level record in the raw Fitbit
activities-calories-intradaydataset is expected to containlevel,mets,time, andvalueelements. However, we've found that it's possible for raw intraday calories time series data to contain onlytimeandvalueelements. For example:Currently, parsing raw Fitbit intraday calories JSON data fails with these data specifically, as well as more broadly if
level,mets, and/orvalueelements are not present in at least one minute-level record for a participant. To fix this, before parsing each minute-level record into a row of data, we first check if the record contains all expected elements instead of assuming they are present. If one or more expected elements are missing, that minute-level record is discarded. If all minute-level records within an intraday dataset are missing one or more expected elements, this has the effect of discarding the entire day of data. Downstream, Fitbit intraday calories features are computed only from "complete" minutes of data.