2019-01-03

Know What Garmin, Strava, Google, Etc. Are Selling You


When you use a smart watch or fitness tracker, what generally happens is that the watch/tracker's operating system generates fitness-tracking data using its hardware.

So, for example, if you go for a run, your fitness tracker's operating system pings a GPS satellite to confirm geographic location. Then, the watch OS starts its chronograph to keep track of time. As you move, the system keeps pinging the GPS satellite to gather location data; different trackers do this at a different rate, but it's generally every X number of seconds. The difference in time divided by the difference in GPS location is a simple arithmetic calculation that establishes your running pace. Meanwhile, the OS pings its heart rate sensor at a different rate to establish your heart rate while you're running. If your tracker is equipped with additional sensors, they are also triggered at various rates to calculate altitude, change in altitude, running cadence, number of steps, and so on. All of this data is gathered into a single file, usually a .GPX file, and transferred to a permanent location: your phone, table, home computer, or "the cloud."

GPX files are as complete as your fitness tracker is capable of making them. Whatever data your tracker collects will end up in the GPX file. It's a standard file, containing more or less standard fields, and to my knowledge every company's fitness tracking platform processes it in a near-identical way[1].

If you, the consumer, were as agnostic as your fitness tracker's operating system, all you'd really care about in a fitness tracker is the hardware. Which sensors does this watch have, how frequently do they collect data during exercise, how robust are the readings, and how long with the hardware last until product failure?

The smart watch industry offers roughly the same things. Pedometers only track steps, low-level "bands" add basic watch and Bluetooth functionality to this, then you get into trackers that have built-in GPS sensors, heart rate sensors, and so on. The more sensors, the pricier the watch.

The first "trick" you have to look for is the watch screen. Bright AMOLED touch-screens are visually impressive, but they eat a lot of battery power. If you charge your watch once every 1-2 days, then this is no issue, but if you insist on not charging your watch except every 3-4 days, then you'll want to skip the fancy screen. The problem here is that some companies don't offer a watch with an LCD screen, and all the sensors you want. So by bundling certain sensors with an AMOLED screen, they induce you to spend more money. Some of us would skip the screen to get the sensors; others would skip the sensors to get the screen. Instead, we all pay the same high price and get someone we don't want along with something we are willing to pay for.

The second "trick" is the more frustrating, at least to me. The fitness tracker collects all the data it can and dumps it into a GPX file. Every other graph, metric, calculation, and table is provided via software. It's not the watch that does that, it's the app. Some of what you are paying for is software. Companies will only give you access to the output of the software with the purchase of certain watches.

For example, in order to gain access to a VO2-max estimation in Garmin's smart watch platform, you have to spend extra money on one of their Forerunner or Fenix model watches. These flagship watches will set you back $500 or more. That's a lot of coin. But you can estimate your own VO2-max using a simple arithmetic calculation based on data that can be extracted from any fitness tracker with a heart rate monitor. This means that Garmin could actually estimate the VO2-max of any of their customers, but they refuse to do so for any except Fenix and Forerunner owners.

Strava, meanwhile, has a new series of fitness metrics that are very much like VO2-max estimations -- they're based on heart rate, age, weight, and running pace data found either in the GPX file or in your user settings -- but they only make them available if you pay an annual fee for their premium product. It is naturally in their best interest to keep this proprietary arithmetic a closely guarded secret. If you knew what the formula was, you could just do it at home on a 99-cent calculator or a spreadsheet.

So companies extract a premium from their customers by ensuring that the customer knows as little as possible about the contents of a GPX file, and the formulas used to calculate things like VO2-max and estimated recovery time.

But this is the internet age. Just search for it on Google. Plug it into a calculator. Save yourself the money.

Google, Apple, and Samsung all offer free spreadsheet software that is every bit as powerful as Microsoft Excel. If you know how to install a Linux instance on your home computer, you can also access the Linux version of Excel for free. Or run it on a $35 Raspberry Pi box. Whatever.

None of this requires anything more than a basic knowledge of how to download files, upload files, fill out a spreadsheet, use a calculator, and perform arithmetic. This is not secret "tech knowledge" that only hackers understand. This is like knowing how to put gasoline in your car.

This is a bit of a passion project for me. I would love to be able to proof-out a platform-agnostic smart watch that can simultaneously run on iOS, Android, Linux, and Windows, and feed GPX files to Strava, Garmin Connect, Runtastic, Smashrun, Apple Health, Samsung Health, and so on. I can "see," in my mind's eye, exactly how to do it. The barriers appear to be time and money. But if I ever do it, I think I'll give the software away for free. The hardware is the only thing that's really worth selling.

____________________________

[1] There are some time codes at the beginning and end of GPX files that are processed slightly differently. When you see that Strava, for example, has given you a slightly different mileage reading than Microsoft, this is because the two APIs are pointing to different time codes. It's unclear to me which one is the "real" code to use. However, it looks like Samsung and Microsoft use one time code, while Garmin and Strava use another one. I don't know which one is used by Apple, Polar, Runtastic, etc.