Small steps. Big impact.


A brief look into how the Fitbit algorithms work


Again, I apologize for the infrequency of these blog posts. I’m a procrastinator when it comes to writing these things, which is bad.  A commenter suggested in a previous post that we make shorter more frequent updates rather than really long infrequent updates, which is what I’ll try to do in the future.

That said, you’re stuck with a long post this time around :)

On shipping…The bad news is that I still can’t give out a concrete date, yet. The good news is that we’ve resolved the problems around charging, which had been holding us up. I hope to have a firm shipping date soon. We’re waiting for one last round of prototypes to confirm our design and to tune a few last things. You’ve already been waiting patiently and the last thing we’d want to do is ship out anything that isn’t worthy of your wait. Rest assured, my team and I are singularly focused on getting the Fitbit out the door in a high quality way. I get enough queries from friends and relatives constantly asking when we’re shipping. :)

We’re also steadily working on the website. We hope to release a preview of that before the Fitbit ships so that you can get familiar with the interface.

We’ve also had a bunch of questions about the algorithms behind the Fitbit, so let me talk about that. The Fitbit’s primary method of collecting data is an accelerometer. Its accelerometer constantly measures the acceleration of your body and algorithms convert this raw data into useful information about your daily life, such as calories burned, steps, distance and sleep quality.

How do we develop these algorithms? Our approach is that we have test subjects wear the Fitbit while also wearing a device that produces a “truth” value. For calories, this “truth” device might be something like a Parvo Medics TrueOne 2400 or a Cosmed K4b2. You’d look really stylish wearing one of these:


These devices measure the gas composition of your breath, which is a very accurate way of measuring calorie burn. By wearing this type of device and the Fitbit at the same time, equations/algorithms can be developed that attempt to accurately convert the raw data collected by the Fitbit into the calorie numbers reported by the “truth” device.

Developing these algorithms take a lot of experimentation and test data. Sometimes the algorithms you develop work very well in one case but completely fail in another. For instance, your algorithm might be really accurate for slow walking but starts to fall apart during running. A lot of our research is finding algorithms that work reasonably well across a lot of different scenarios.

Here’s a recent result from a calorie measurement test we ran on a treadmill. RevB is the 2nd hardware revision of the Fitbit. The light grey line is what the treadmill showed for calories burned. The black line is what the Parvo TrueOne 2400 reported. The vertical lines are error bars which show the range of accuracy for the Parvo. As long as the Fitbit falls within those error bars, you can consider the results to be pretty good. As shown on this graph, the Fitbit measures calories reasonably well up to 8mph, where it starts to underreport calories slightly. This is an older result…we’ve improved things since then. The Fitbit’s software is also upgradeable over the wireless link, so as we constantly improve our algorithms, these improvements will be automatically uploaded to your Fitbit.

Calories burned on treadmill test

To develop the algorithms for step counting, we have test subjects wear the Fitbit while also carrying a click counter and clicking off steps. Sometimes we also have the test subject wear competitive devices so that we can measure how good we are against them. Here’s a photo of a typical setup. I’ve masked out the competitive devices to protect the innocent. (also, so they don’t get upset at us :) )

Device Test Belt

We really try to put the step counting algorithms through a lot of different (some crazy) scenarios:

This graph shows % step accuracy for climbing stairs quickly at 2 stairs/sec for the Fitbit vs 2 leading pedometers:

Fast stair climbing

You see that we’re fairly close to each other. We all average about ~89% accuracy.

An interesting thing happens when we start taking stairs a bit slower at 1 stair/sec:

Slow stair climbing

You see that the first pedometer really collapses to 20.5% accuracy, the 2nd pedometer degrades slightly and the Fitbit actually improves.

Here’s another graph which shows results from an 80 year old male with a cane walking 0.25miles around the block in 11 minutes (1.5mph). The Fitbit does pretty well here with 97.4% accuracy.

Results for an 80 year old male with cane

Most pedometers have trouble with people who take soft steps, which include a lot of elderly people. The cane here also can cause confusion, since the cane could look like a 3rd step in a stride. Even though these were some of the best pedometers on the market, they still had trouble in cases where you just weren’t simply walking smoothly and firmly in a straight line.

In general throughout our step counting tests, we found that the more expensive pedometers have better accuracy. If you ever get a free pedometer at work, just toss it out. Are you in the market to to buy a $5 or $10 pedometer? Don’t bother. Chances are you’ll be very disappointed.