Are there at least 2 streams of data responsible for what you see in Connect?

Speculation. After following the quirks of how my activity appears in the Connect app for the last 8 months, I've come to the conclusion that what I'm seeing in the app is based upon data gathered from the watch that gets subsequently massaged after being bounced over to my phone and/or Garmin's servers.

I base this upon how data that I see in Connect (in more-or-less real time) gets altered slightly (and retroactively) after the watch talks to the cloud. Data is personalized, but only within certain parameters. 

  • Some of the data that you see in the home page in the app is "real time" data that are not yet synced to the servers. If you click any of the data you see what is synced to the servers. That is why you sometimes see higher values in the home page than in the details page.

  • Actually a lot of the "activity tracking" [*] and training-related data that you see is generated on the watch itself and passed on to Connect basically unmodified. This includes all the FirstBeat related algorithms like training load, VO2 Max, body battery, etc. Some of this stuff may be rounded for display though.

    [*] this actually means physical activity metrics collected outside of the context of a timed activity, like steps and all-day heart rate

    Ironically, some people wish that some of this stuff was calculated in Connect and not the device, because that way it's conceivable that they could edit an activity and have the changes affect their training load or whatever. But it doesn't work that way.

    Additionally, if you have multiple devices that support Physio TrueUp, then training-related metrics like training load that are recorded on one device will be synced to the other devices which should hopefully cause the aggregate metrics on each device to be in sync. Garmin has also recently enabled body battery to be synced between devices.

    The exception to all of this is that Garmin allows activities from certain 3rd party platforms to populate training metrics in Connect. Obviously in this case, the training metrics have to be generated by Connect itself. Garmin basically describes this as another facet of Physio TrueUp (you need Physio TrueUp for these training metrics from 3rd party activities to make it back to your Garmin devices)

    As far as timed activities go, there is definitely a limited amount of post processing that happens. One example is that if you have a watch without a barometer, then elevation corrections are applied after the activity is synced to your Connect account. But those corrections don't make it back to the watch. (Same with any manual activity edits).

     bounced over to my phone and/or Garmin's servers.

    I'm fairly sure that your phone isn't really involved in any generation or massaging of data, as it's entirely possible to sync to Connect without a phone (using Garmin Express or Wi-Fi). Garmin wouldn't want your data to be different based on *how* it was synced.

    One exception may be if you use an HRM-PRO or later strap, which collects data even when it isn't talking to your watch and uses your phone to sync with Connect and your watch. In this case, the app on the phone *might* be doing something extra with the data before syncing it to Connect and back to your watch, but I wouldn't know either way.

    Data is personalized, but only within certain parameters

    Not sure what you're getting at here. Whether or not data from the watch is massaged by Connect or not has no bearing on how personalized it is, imo. The data is based on your physical activity, therefore it's personal to you. 

    Unless I'm missing something. Are you talking about personalized insights from Garmin? If that's what you're looking for, I can't see how having data analyzed or massaged in the cloud would make the insights worse than they would've been if they were generated on the watch. 

    Are there at least 2 streams of data responsible for what you see in Connect?

    I don't really understand this overall point / question. Even if Connect was massaging your data like crazy, it would still originally be based on the data collected from your watch (or Edge). So I don't see where a 2nd stream comes into play (unless you have multiple devices on your account).

    Do you think that Garmin populates your Connect account with fake data averaged from the population of Garmin users or something?

  • If you really want an in-depth look at what was recorded on the watch for a timed activity, you can export the FIT file from the Connect website (open activity, click gear icon, and select Export File)  or copy the FIT file from \GARMIN\ACTIVITIES on the watch itself. The FIT file should be the same either way, which is one indication that Connect at least keeps the original data around.

    After you export the FIT file, you can open it in https://www.fitfileviewer.com/ to see the original data, unmodified by Connect.

    You will see that things like time in zones were calculated and recorded on the watch itself, not generated after the fact by Connect. Same with training load, VO2 Max, etc. Your watch is the source of truth for most of this stuff, except in the case of Physio TrueUp, where these stats can also be synced from other devices or 3rd-party platforms like Zwift.

  • Obviously in this case, the training metrics have to be generated by Connect itself.

    Actually, it is not generated by Connect self. Most of the metrics comes already in the FIT file from the certified 3rd party app, It is then passed from GC to your Garmin device, the Training Status (and probably a few other values) are processed on it, and then synced back to Connect. It is documented in the article: Why Is My Training Status Not Updating on My Garmin Device? | Garmin Customer Support

    Before your Garmin Connect account can analyze Tacx or third party activities, a cycling activity needs to be uploaded from a Training Status capable device and a cycling VO2 Max must be established. After an activity has been uploaded from a training app, you will need to sync your training status device with your Garmin Connect account for Training Status to update on the Garmin device, then sync back to your account.

  • Obviously in this case, the training metrics have to be generated by Connect itself.

    Actually, it is not generated by Connect self. Most of the metrics comes already in the FIT file from the certified 3rd party app, It is then passed from GC to your Garmin device, the Training Status (and probably a few other values) are processed on it, and then synced back to Connect. It is documented in the article: Why Is My Training Status Not Updating on My Garmin Device? | Garmin Customer Support

    Thank you, my mistake! Should have read my own sources properly haha.

    Ofc that only strengthens my argument that most of the data displayed in Connect is not generated by Connect (or the backend servers), but on the device itself (Garmin watch or Edge).

    In that case, other than elevation corrections, I can't think of too many metrics that are modified / calculated by Connect and not the device, other than aggregated data / insights (which ofc are based on data from the device in the first place).

    (In the past, sleep tracking analysis was done in Connect iirc, but now it's done on the device if I'm not mistaken.)

  • Yes, it is comprehensible that Garmin tries to "outsource" any data processing away from their servers. If they had to process all the metrics on their side, instead of using all those tens or hundreds of millions of CPUs in their devices, they would have to boost their data centers incredibly, resulting in astronomical increase of costs.

    In the past, sleep tracking analysis was done in Connect iirc, but now it's done on the device if I'm not mistaken.

    Garmin still calculates the sleep analysis on the server side for old models, not having any internal sleep analysis. Otherwise there is indeed very little processing on their side, though there are still some features processed on the servers - for example matching Segments, and very likely to a great extent also calculating Badges, Challenges, probably also Insights, and there may still be some other features requiring some server-side processing. Though, most of the health and fitness metrics is indeed processed exclusively on user devices.

  • Do you think that Garmin populates your Connect account with fake data averaged from the population of Garmin users or something?

    For example, I think that if the same data is coming from users of different recorded ages, if will be treated differently. I had previously owned a Vivoactive and initially entered a birth year that was off 6 years from my actual birth year and noticed a distinct change in what Connect was showing after I corrected the year.

  • For example, I think that if the same data is coming from users of different recorded ages, if will be treated differently. I had previously owned a Vivoactive and initially entered a birth year that was off 6 years from my actual birth year and noticed a distinct change in what Connect was showing after I corrected the year.

    Ok, so that is an example of personalization, right? Which is what you want? Or is it not? It's really hard to tell from this sentence: "Data is personalized, but only within certain parameters. "

    I'm def confused about what your point/question is. Are you saying there's too much personalization or not enough? 

    I still don't see how the "at least 2 streams of data" angle comes into play here. 

    What is the 2nd stream? The vast majority of your data in Connect flows from your primary device (usually a watch). Yes, other data can come from 3rd party activities and secondary Garmin devices, but that's actually seen as a feature, not a problem.

    Treating the same data differently depending on the user's age does not equate to a "second stream of data" to me, but maybe I'm not understanding what you mean by that.

    It's not unheard of for certain algorithms in health and fitness to be based on the individual's age.

    I have a handheld "body fat monitor" which measures the electrical impedance of my body when I grip the handles and press a button. It asks for the user's height, weight, age and gender before it can be used. After I press the button and it takes a reading, it spits out my BMI (obviously directly calculated from height and weight) and my estimated body fat %.

    I noticed that if I take successive readings with different ages, I get different body fat % estimates. Clearly nothing else has changed except the age I entered, so I can only conclude that the algorithm used to estimate body fat based on electrical impedance is also dependent on age. In other words, the same input data (other than age) results in different outputs. Same thing happens if I take successive readings and only change the gender.

    Despite this fact, I wouldn't say there's a "second stream of data" for my body fat monitor.

    noticed a distinct change in what Connect was showing after I corrected the year.

    Could you be more specific? 

    For example, fitness age and default insights are based on your current age. Same with VO2 Max classification (which is based on age/gender tables that reflect general population data).

    Do you expect the same data to always be treated identically by Garmin regardless of age or gender?

    That wouldn't fly for things like VO2 Max classification. For example, an estimated VO2 Max of 37 would be classified as "excellent" for a 70 year old man, but also classified as "poor" for any man under 50. There isn't any single standard that would fairly apply to both demographics, because the distribution of VO2 Max values is different for those two groups.

    And just because Garmin displays different things based on your age and gender (for example), doesn't mean there's necessarily a "second stream of data". Your watch knows your age and gender just as much as the Connect backend does.

    Going back to the OP:

    Speculation. After following the quirks of how my activity appears in the Connect app for the last 8 months, I've come to the conclusion that what I'm seeing in the app is based upon data gathered from the watch that gets subsequently massaged after being bounced over to my phone and/or Garmin's servers.

    I base this upon how data that I see in Connect (in more-or-less real time) gets altered slightly (and retroactively) after the watch talks to the cloud. Data is personalized, but only within certain parameters. 

    All of this is very vague. You say that your data is being altered, but you don't say which data is altered or how it's altered. Similarly, in your follow up, you say that when you changed your birth year, you noticed a change in what Connect was showing, but you don't say what data changed or how.

    So we have no way of knowing whether the changes you are seeing make sense, whether there's anything we should be worried about, or whether there's anything interesting to discuss.

  • An example of a common health/fitness calculation that's based on age and gender is the Harris-Benedict formula for basal metabolic rate (BMR), which is used to estimate your "resting calories" (https://www.garmin.com/en-CA/garmin-technology/health-science/calories-burned/)

    So if you change your age or gender in Connect, then your future daily resting calories might be very different than the your previous daily resting calories.

    Similarly, two people of different age/gender could have otherwise identical data, but their daily resting calories could be very different.

    I wouldn't say that's a indication of "2 streams of data" or even any out of the ordinary personalization. It's exactly the kind of personalization I'd expect: health metrics that are based on my actual physical attributes.

    Garmin actually uses HR as well as user profile data (age, weight, height, etc) to estimate calorie burn during an activity, using a proprietary algorithm:

    https://support.garmin.com/en-CA/?faq=efAKrxmc0n0uCzEfFUmvpA 

    Is this "personalized data"? I guess. Is there something strange, unexpected, or wrong about it? I don't think so. 

    Is it something that's done in Connect and not on the watch (causing data to be updated in real time)? I don't think so. My activity calorie info is the same on watch as it is on Connect (except Connect gives more details).

    Two different people who somehow have the exact same activity data (speed, distance, HR, etc.), except one of them happens to be 20 lbs heavier (for example), can be reasonably expected to have burned different amounts of calories.

    Even the standard, widely used formula for calculating calorie burn (based on MET) takes body weight into account. The heavier you are, the more calories you burn for a run of given speed and duration.

    Does this count as "2 streams of data" for whatever app or service is calculating calorie burn? I don't think so, but maybe I just don't understand what's meant by "2 streams of data". If the 2nd stream of data is your physical attributes like age, gender, height and weight, I'd say that's a pretty facile definition of "2nd stream", as it's hard to imagine any health/fitness app or service that doesn't take any of that stuff into account somehow. Some of these services like to display your BMI (which requires height and weight), and many of them also like to estimate your active calories (which requires weight).

    So if Garmin is using a "2nd stream of data" by taking things like age, gender, height and weight into account, then so is everyone else in health and fitness.

  • noticed a distinct change in what Connect was showing after I corrected the year.

    That's not surprising. It would be wrong if nothing changed. With the age, your Max HR drops, and the metabolic rate & the recovery rate slow down. It means Garmin has to adjust the Max HR, especially at models not supporting the Max HR auto-detection (which usually requires some time and some intensive activities anyway). Also the Resting Calories, Active Calories, EPOC (Training Load), recovery rate, and some other metrics have to be adjusted to respect the age induced changes of metabolism.

    It then has an impact on HR Zones, on VO₂max and LTHR detection, and consequently on most other fitness metrics like Training Status, Training Load, etc, etc.

    And, of course, as mentioned, the classifications like Fitness Age, VO₂max class., Insights, etc, must be adjusted to respect the age too.