Performance Analysis

In the version 1.20, ConnectStats supports a first version of long term (fitness) versus short term (fatigue) performance analysis. This is a bit rudimentary for now, and hopefully will improve over time.

The performance Index

The analysis is based on two fields, a summable field like distance, time or elevation gain and a second field to rescale it like heart rate, power, etc.

The analysis is based on an index built using this scalable field and summable field.

To access the analysis you need to select from the statistics field view, a field. If the field you select is summable (Distance, Time, Elevation Gain) it will use it as the summable field and choose Heart Rate as the scalable field. If you select a non summable field, it will use that as the scalable field and distance to sum.

Once the two fields are selected it will then apply a formula to get a performance index. The formula in this first version is simply to multiply the two fields, similar to a very simple TRIMP index, but in the future we could change that, for example along the line of normalised power and apply a function scaling more realistically to how the scalable field impact the distance field. This page gives some interesting comparison of the different way to do that.

Fitness (Long Term) versus fatigue (Short Term)

Given the two fields above and the performance index, then we will try to compare the long term accumulated fitness versus the short term training. We pick two periods, the short term period and the long term period, and plot the average performance index of the long term period versus the short term period.

Currently the short term period is the last seven days and the long term period is the month prior to that.

So the idea is to show how much training accumulated over a month (long term fitness) versus how much you are currently training. If your short term training is significantly above the long term fitness, you maybe over doing it. And you maybe taking it too easy or resting if the short term fitness is quite below the long term fitness.

In a future version I could parametrise both the performance index function and the periods used, depending how much people feel the idea is useful or not. So don’t hesitate to give feedback either with a review, tweet, comment or bug report.


Once you selected a field in the statistics view, tap the bottom plot to iterate between the different choices: Monthly value, performance index graph and histogram/distribution of values.

Here is my current running performance. You can see in this graph that recently I have been training a bit more which raised my long term fitness, while the toward the end november I did less running which lowered the long term fitness .

Screen Shot 2016-02-24 at 05.20.48

New Statistics Plots

In the version 1.20, I added to the main statistics page small preview graphs embedded in the table. I also rationalised somewhat the plots shown on individual fields.

Main Statistics Table

The statistics page start looking like this


For selected fields, you now see a small preview of a relevant graphs.

Here in distance it shows you the cumulative distance of the previous years, one of my favorite graph to track how you are doing on a given year compare to the previous ones.

Note that you can disable the embedded graphs with an option in settings in case you don’t like it.

For the Average Heart Rate and other non summable fields, it will show you the monthly average over the last 6 months.

Pressing the All button on the right will continue to rotate between the weekly, monthly and annual summary. The Sigma icon means it displays the total or average across all activity. If you press it, it will display the stats restricted to either the last week or last month. This enables you to see all details of the last month or week.


Here you can see that the Max Heart Rate over last week was 194, average moving pace 5:21 min/km. This enables you to see any statistics over that period easily. The weekly summary of the previous versions was limited to only a few key measures. Note that in this view the embedded plot becomes a weekly plot to compare this week’s statistics to the previous.

Field Statistics Details

If you press any field of the main statistics table, it will take you a more detail information on that fields, as for example here


This shows you two graphs and some basics stats. The first graph is a scatter plot against another variable. If you tap on that plot it will let you configure it and choose the second variable.

The bottom plot will rotate when you tap on it between a monthly summary, the performance analysis graph and an histogram of the different values as here. This post describes the performance analysis in more details.


Pressing the all button on the top right as before shows you weekly or monthly statistics.


Garmin automatic synchronisation to Strava and implication for ConnectStats

Strava now automatically synchronises with Garmin

Garmin provide now automatic synchronisation with different services, most notably Strava. You can read about it from this post from @dcrainmakerblog.

I find it very useful. I personally use Strava as well, I like their segment functionality and the social aspect of followers.

This is a continuation of the new policy change of Garmin to not support 3rd party app that access the data from garmin directly. You can also read about it here from @dcrainmakerblog

What’s next for ConnectStats

For ConnectStats, this new approach of auto sync just does not work. I do not have the ability, the means nor the time to build my own service to save users data on a web server and use that from ConnectStats.

Garmin announced that they would stop supporting the API ConnectStats uses, but as of beginning of August and the time of writing this, it still continues to work. We just don’t know for how much longer.

To address the potential shutdown, ConnectStats can use Strava as data source instead of Garmin Connect.

I still believe that ConnectStats can be quite useful to many users with extra plots, reports and views it provide currently not available directly from other services on an iOS device. So I will try to continue maintaining ConnectStats even if Garmin shuts down the API access. For that purpose the auto sync to strava is very useful, because it lets ConnectStats use Strava as a service provider to replace Garmin Connect.

What ConnectStats users will loose

It’s not all perfect though, here are some of what will be lost when Garmin Connect shuts down its service and ConnectStats user have to switch fully to Strava:

  • The auto sync service only seems to upload recent activities, long history of data will no longer be available to users.
  • Strava API itself only lets you download the two most recent months of activity via their API. This is quite an issue because a large part of the attraction of ConnectStats is to do comparison and plots that go back in time. My favourite features are to compare my fitness evolution over long period of time
  • Strava API currently will not provide access to all the different fields provided by garmin devices. Training Effects, Normalized Power, Vertical Oscillation, and many other data will no longer be available access to the garmin service stops and ConnectStats user switch to Strava.

Note that to mitigate the issue with only accessing recent history from Strava, I plan to add a merge feature to ConnectStats multiple service support, so at the time Garmin Connect API shuts down for those lucky user that already have their history saved on their device they can continue and use strava only for new activities.

Recent Silence

I have been recently a bit quiet. I admit the idea of potentially not being able to download data from Garmin and the implication of an end of ConnectStats wasn’t a great motivation to build new features.

Recently though I had a couple of ideas that excited me. I am still working on ability to keep track of time in zone, best rolling plots, Critical power plots etc over time. I would love to be able to compare my best rolling plot of current month versus last, or versus a given year, etc.

The other feature I am working on is ability to compare your recent performance (current training) versus your long term built fitness. Somewhat inspired by training peaks’ performance chart, and leveraging ideas from the following articles about how to measure impact of exercise.