HealthStats

Table of Contents

Description


HealthStats provides in depth look at all the data from the health data you collect with your iPhone or Apple Watch.

It will let you analyse steps, heart rate, weight over time or on a specific days. It will also allow you to review and analyse recorded workouts.

The app is for data geeks that want full access and views on the numbers and statistics.

This app is now open source on GitHub as part of the ConnectStats project, feel free to review the code, give feedback or contribute.

Features

  • Calendar View of your days and workouts
  • Compare your month to month distance in cumulative plots
  • Monthly/Weekly summary statistics of your days and workouts
  • Monthly/Weekly historical report and graphs of your recorded data
  • Scatter plots and trend for both historical or workout data
  • Best Rolling Plots, histograms for workouts
  • Support multiple source, for example data collected by your phone or your watch
  • Calculated laps for your workouts: find your fastest kilometer, or split time, etc
  • Display time in zone for heart rate or pace in your work outs
  • Slice your statistics by workout types: running, biking, etc

Quick Guide

  • When you first start the program, you will need to authorize the app to access your health data and choose the source for your data
  • Data will be refreshed as you pull down the activity list on the first tab or overtime you start the app
  • The Day Detail tab provide a view on a given day or work out
  • The stats tab provide historical report and graphs, tap on the different buttons on the navigation bar or on graph and numbers in the tables to explore further analysis
  • The calendar view provide summary views on the month, explore it by tapping the different configuration buttons

Notes

  • All the data is analysed locally on your phone, no data will be sent anywhere.

Recent Posts

4 years 8 months later… broke and works again

The number of ConnectStats users has dropped quite a bit over the years, but about a week ago I started seeing messages on the blog that it had stopped working.

Short version: it works again.

The last time I touched the ConnectStats server was four years and eight months ago (confirmed by my version control history). So when I saw those messages, I panicked — I genuinely didn’t remember how most of it worked. But here’s the thing: over the last few months I’ve fully embraced AI-assisted programming, first with Cursor and now especially my favorite tool, Claude Code.

So while I started looking at my old code and immediately felt overwhelmed, I asked Claude to look at the app code, the server code, and fed it the Garmin documentation for good measure. Within minutes it could walk me through the login workflow, tell me where to set breakpoints to understand the failure, and before long we’d pinpointed the issue: a disk on my server had filled up.

Claude then wrote a script to clean up inactive users — the kind of tedious, nerve-wracking maintenance task I’d been putting off for years. Disk space reclaimed, everything back online.

Even better, Claude now understands the full codebase and has suggested a bunch of cleanup improvements. I might actually start adding features again.

  1. Current Status, what works and what doesn’t 27 Replies
  2. A big steps toward fixing the issue 4 Replies
  3. Still working on it and issue with Strava 34 Replies
  4. Is this the beginning of the end? 9 Replies
  5. Running Effectiveness and historical statistics improvement 14 Replies
  6. Notifications in ConnectStats 3 Replies
  7. Detailed Comparison of Running and Cycling Statistics over time 6 Replies
  8. Garmin Service Error 14 Replies
  9. AppStore Submission Rejection Syndrome 5 Replies