Introducing Fitness Stats 2

I am super excited to be releasing Fitness Stats 2 today! It's more powerful, with more insights, and still simple, beautiful, and fun.

I built Fitness Stats at the beginning of the pandemic as a quick one-week project out of curiosity. It was originally called Activity Stats (when Apple's Fitness app was called Activity) and only showed lifetime totals for the activity and workout data in the Health app. The launch was received exceptionally well, and many found the app valuable.

Fitness Stats 2 marks the next chapter in the app's journey. It still maintains the original spirit of delight and simplicity, and the new features have been carefully crafted based on the fantastic feedback from many v1 users.


Fitness Stats 2 has an updated design with more stats and configuration options. I want to highlight two standout features in this post.

Fast Dates Picker

When Fitness Stats was launched, one of the most common feature requests was the ability to change start and end dates. Changing dates was originally built in a rudimentary way, and it was not easy and quick to change dates for the stats. Fitness Stats 2 adds a new screen with commonly used date range presets and the ability to use custom start and end dates.

Compare Stats

Why does everyone want to change the dates for the stats? Considering this context led me to identify and build a new feature — the ability to see stats across two different date ranges side by side. The challenge here was to keep the colorful rows in place and also handle details like iconography, text, values, and differences of different data types on the limited screen width. It took a lot of design cycles to get this to be simple and look great.


Upgrade Pricing

The original Fitness Stats was free to download because I did not expect much from the app's traction and value besides answering my curiosity and maybe a tiny user base. I had no plans to build the app beyond showing lifetime totals from the Health app. In retrospect, that's obviously not true. I find it super helpful, and so do others.

Last December (2022), I changed the app's pricing model from free to paid, and I was pleasantly surprised with the results. This led to the prioritization of releasing Fitness Stats 2 much faster, along with the upgrade pricing.

  • Fitness Stats 2 is free for users who have recently paid to get the app from the App Store.

  • For everyone else, who originally downloaded the app for free, Fitness Stats 2 will require a one-time purchase to unlock all the advanced features. This pricing is flexible, and users can choose what they want to pay: $2.99, $4.99, or $9.99.

I hope you find the update as valuable with your Health & Fitness goals as the original version.

Introducing Tempo 4

It's launch day for iOS 16 and watchOS 9, and I am excited to share Tempo 4, fully refreshed with great features and support for these OS updates!

New Running Metrics

In addition to the new Apple Watch Ultra model, Apple has significantly updated the Workout and Fitness app for running. Runners can now also track four new running dynamic metrics,

  • Vertical Oscillation
  • Stride Length
  • Ground Contact Time
  • Power

All runs recorded with the Workout app on Apple Watch Series 6 or higher models will also capture these new data points, each sampled throughout the workout. The Workout Details screen in Tempo has been updated to show these new metrics summarized as averages for the entire run, individual splits & intervals, and with the interactive workout charts.

Speaking of charts, Tempo's Workout Graph now supports all eight metrics — elevation, pace, heart rate, cadence, vertical oscillation, ground contact time, stride length, and power. It is more interactive and enables easy analysis of the eight metrics at any point during the workout. Charts can also be reordered, and enabled or disabled.

Lock Screen Widgets

A significant new change with iOS 16 is the addition of the new Lock Screen Widgets. We can now set up widgets to add glanceable info right from the lock screen of our iPhones.

Tempo 4 has over a dozen Lock Screen Widgets for the following types across different widget size options,

  1. Distance Totals for selected periods
  2. Goals
  3. Beautiful bar graph to show the last 7-day training segments

Shortcuts & Siri

With iOS 16, Tempo also brings a bunch of new shortcuts to support the following,

  1. View distance totals across different periods (including lifetime)
  2. View stats for a specific Tag

These shortcuts also back interactions with Siri. For example,

  1. Hey Siri, Ask Tempo to show my latest run
  2. Hey Siri, Ask Tempo how much did I run this month
  3. Hey Siri, Ask Tempo to show "your-favorite-tag-name" summary

My new favorite Siri interaction is: "Hey Siri, Ask Tempo for some pep talk" for Siri to read me an inspiring quote from Tempo's hand-curated Quotes library for runners.

And so much more

There's a lot more to Tempo 4. It's more beautiful than ever. There's a brand new App Icon with many great-looking alternate options to match your Home Screen and training mood. We also have two great new frequently requested features,

  1. Compare Workouts to view two workouts side-by-side with all the stats, including individual splits & segments, in a simple and beautiful format detailing positive and negative differences.
  2. Tag Alerts with the newly designed Tags Log. We can now set up a distance alert on any tag — great addition for better shoe tracking with tags.

What's next?

As always, we have a lot more in the works!

Introducing Goals

It always seems impossible until it’s done.
— Nelson Mandela

Last year, when I was working on Tempo 3, I had a bunch of features on the roadmap that I wanted to build and launch with Tempo 3. As I scoped out work for each of those features, a lot of them turned out to be big enough to be an app in itself. I won’t list all of the yet-to-be-released features, but two of those features were Personal Bests and Goals. Personal Bests was released earlier this year, and today Tempo v3.4.0 is launching with Goals! 🎉

TempoGoalsForBlog.png

Goals in Tempo is built around the idea of completing a total distance by doing one or more workouts. Goals can be great in keeping motivation high to maintain a consistent training routine, chase a new fitness peak, or do both!

Tempo’s goal setup is simple and fast, and tracking is fully automated. A goal can be setup to run, walk, or hike a total distance once over a set number of days, or repeat weekly or monthly.

Our workouts are only a fraction of the time throughout the day/week, but having a goal as a constant reminder really helps with the motivation to show up for the next workout and maintain that forward momentum. So Goals in Tempo are built to be everywhere,

  • On your Home Screen with beautiful goals widgets

  • On your favorite Apple Watch face with a goal complication

  • And in Tempo app on your iPhone and Apple Watch

That’s Goals in a nutshell. I hope you enjoy it and it helps you achieve your future training and fitness goals! 🎯🙌👏

* * *

Thank you!

I want to take a moment and say thanks. As I said above, every key feature in Tempo could be a standalone app in itself. All the work—iOS app, watchOS app, widgets, complications, synching, and more—requires a lot of time and effort. Tempo’s promise of privacy and attention to detail to bring it all together is what makes it so great for all of us. It’s insightful, motivating, and reliable. We are also in the early days of making it sustainable and long-lasting, and your support helps immensely. Thank you for being part of building our favorite training app!

Introducing Personal Bests

There is No Finish Line.
— Nike

In fitness, and in life, we aspire to be our best. The competition is not with anyone else, but a life-long pursuit of improving and pushing our own personal limits. This gets even more focussed for all of us everyday athletes, who log workouts day in, day out, at odd hours, for weeks, months, and years. It’s mostly driven by the joy of running, but over time, we also start appreciating the game of self-discipline to chase the next level of self-improvement. Seeing those times drop, on a race day, or just on a casual training day, is more gratifying than any race medals. Unlocking a new Personal Best is a badge of self-fulfillment, accomplished with relentless commitment to self-discipline. It’s the glorious part of all the hard work that deserves a celebration alongside the daily log of healthy living.

Personal Bests has been one of the oldest on the list of most requested features for Tempo. While it seems fairly straightforward at a surface level, implementing it locally on the device (vs taking all of our fitness data to a server) made this feature complex enough that I have had a few planning/design iterations for a couple of years now. So I am really excited to be finally releasing it.

The FAQ covers all the details of Personal Bests for easier reference. Here is a quick summary.

Tempo identifies and showcases PB times from 100 meters to 26.2 miles. Each Personal Best is calculated in 2 steps,

  1. An initial scan identifies PB by comparing average pace of every workout.

  2. Tempo then goes further by analyzing every data sample from every workout to aggregate the fastest times from 100m to 26.2. This is the key step to identify the most accurate (and real) fastest times. Imagine running a fast mile within a 5K workout that you walked for the second half. The average pace of that workout might not reveal that you ran your life’s best 1mi performance ever. By aggregating individual data samples within every workout Tempo can detect these interim fastest time segments.

In addition, Step 2 above also enables Tempo to highlight fastest times for every workout—a new section in the Workout Details. This section further allows interacting with the fastest time segments on a map and graphs, highlighted just for the selected fast time.

One of the challenges with analyzing data samples is the accuracy of each data sample. These data samples are short distances (few meters in length) with start and end timestamps, and are recorded by sensors (like GPS) of the workout tracking device (Apple Watch). Sometimes this data can be inaccurate (GPS glitches, etc), and result in impossibly fast time segments. Tempo addresses this by providing options to filter paces that are unattainably faster based on following 2 options,

  1. World Records option filters everything faster than current world record for the given distance.

  2. Tempo Pace Thresholds is a custom (and a very generous) fastest time estimator for various distances. This is based on your training data (and fitness level) and updates with your fitness level.

And if the above filtering options still misses any inaccurate data, Tempo also has the ability to mark individual Personal Best Records, or an entire workout, to be ignored from the Personal Bests list.

A lot of us have been running for decades, and possibly have some of our PB times that happened before we started using Apple Health to track all the fitness data. If that’s you, you can manually log a workout with that time for Tempo to showcase, and track it.

Enjoy, and Happy Chasing that Next PB! 🏅

Introducing Heart Rate Zones

One of the key ingredients of training well is heart rate, and more specifically heart rate zones. Heart rate zones can be really useful in targeting and understanding the effort type of every workout.

There is a lot of great information about heart rate based training on the web, so we won't get too much into that here. But here's a quick primer: running pace from warmup to sprinting hard usually aligns across different heart rate zones. Heart rate is the primary factor that drives performance, and each heart rate zone is a range with lower and upper threshold based on the percentage of the maximum heart rate. Maximum heart rate itself varies based on factors like age, genetics, fitness, and more. Heart rate zones are termed differently depending on the context/type of training. Generally speaking, there are 5 zones like warmup, maintain fitness, aerobic, anaerobic, and extreme. Each zone requires incrementally harder effort to maintain, and we can sustain working out for much longer at lower zones (lower heart rate range) vs higher zones.

When I started building this feature in Tempo, I knew it would require the ability to change the maximum heart rate, but I quickly realized that it needed to go further into personalization. Tempo's heart rate zones implementation is super configurable to match any athlete's general fitness profile as well as training goals. It enables following options,

  • Edit upper and lower limit for each heart rate zone
  • Edit name of each heart rate zone
  • Multiple naming schemes for heart rate zones
  • And of course, the ability to edit maximum heart rate

I am really glad how this turned out. I believe Tempo is the first iOS app for runners to provide such an extensive level of customization for heart rate based training.