Workout log and site updates

Time for another colophon.

In My blog workout log — where I wrote in detail about how I put together my workout log — I closed with some ideas for improvements.

I wrote:

Totals per year is a big miss at the moment. I also want to show these totals per activity type. While I ditched it initially, I'm still very much interested in my weekly totals. (Just look at notes for the last activity at the end of any given week.) As a compromise, I might add a weekly bar chart for the last 12 ISO weeks to the front page.

Having lived with the initial implementation for a while, it became clear that I hit the nail on the head here. These details are important to me in tracking and evaluating my workouts. Starting work on improving the setup, there were three specific needs I wanted to solve:

  1. Give a quick overview of how I'm going on the front page.
  2. Show weekly totals, overall and per activity type.
  3. Similarly display the same totals per year.

Quick overview of recent training

Solving this one was easy. I had already identified the solution and laid it out in the referenced post: Show a weekly bar chart for the last 12 ISO weeks on the front page. As I'm still trying to stay active across several activity types, I went with active time as the basis for calculating the bar heights.

This gives me a quick overview of how I'm currently going. If all the bars are around the same height, it means I've been consistently and am (probably) going well in training. Variations in bar height indicate inconsistencies. These could stem from a variety of causes, like loss of motivation, life being life, illness or whatever.

Take a look at my current last 12 weeks:

Screenshot of bar chart showing total training time per week for the last 12 weeks.

I am generally going well in this period. There were peaks in week 30 due to a bike excursion) and week 33 on account of mountain hikes. Conversely, the dips in week 35, week 36 and, to a lesser extent, week 38 were slight downs on account of illness.

You might ask why in the world someone would need something like this. Can't you just look at the individual activities in the log? The answer is that a quick glance at the "body of work" and consistency over a recent period provides real insight into how I'm doing. From day to day it is easy to get caught up in the details of each individual workout. But, I know that my long term development is a result of consistency. From week to week, and month to month.

With this view, I can get a quick feel for how I'm doing in that regard.

Weekly details

While weekly totals provide insight, the details of any given week are also interesting. Every Sunday, I like to sit down and look at what I did that week. Just look at the comments of a random Sunday sun.

Previously, I depended on Intervals.icu for finding the weekly totals for running. For strength training, I simply went through all the activities and manually summarised the time to find the total. Inconvenient, and not something I was particularly consistent in doing, meaning that I didn't always have these totals at hand.

Definitely something I needed to fix if I were to make this my "single source of truth" workout log, without having to depend on other services.

With the data readily available, the challenge here was presentation. Where and how do I show these numbers in a manner that works with the current setup? I spitballed many potential solutions:

  • A "weeks" section just below the months section showing the details for each week of the year.
  • Inserting a "week summary" in the daily section for each month that somehow expands to show details on click.
  • Completely separate documents showing a weekly instead of monthly breakdowns of workouts instead of monthly.

When I finally identified the solution, it was so obvious that I couldn't understand how I'd missed it: Insert a weekly summary into the "feed" of the workouts after the final workout of a week. Make it stand out ever so slightly visually. This way, I can quickly find the details for any given week by using the existing document navigation and minimal scrolling.

Screenshot showing a weekly total inserted into the list of workouts.

Just like with each individual workout, the box can be expanded with a click. It will then show weekly active time and distance per activity type.

I am really happy with how this turned out. It lets me quickly find the details of any given throughout my entire workout history. Looking at 2020 I can immediately see that, wow, July was a pretty big month. Scrolling through the month I can quickly see what that looked like broken into weeks.

Yearly totals

At this point, one more total remained. Seeing aggregated numbers for a full year is the true measure of the work you've put in over time. As I mentioned above, it is easy to get stuck in the weeds and small details when you're looking at details at the workout level, or even at the weekly level.

At the year level, however, it is different. This is where the details of individual workouts that don't particularly matter are wiped out. Here is where you see whether you've showed up. And if you kept showing up, you'll keep improving.

That's what I hope, anyways. Either way, I like looking at my yearly totals, especially per activity. Again, the stats were readily available and it was mostly a matter of figuring out how to present them. After trying and discarding a couple ideas, I took the easy way out and simply reused the solution I ended up with for my weekly totals.

Screenshot showing a yearly totals box below the bar chart for each month's total active time.

As with the weekly totals, the box expands with a click to show totals per activity type.

This solution didn't feel quite as elegant here as when I used it for weekly totals. Nevertheless, it does the job. Moreover, I decided to reuse the same background colour as I did for the weekly totals and switch to that same background colour for for the boxes showing all time totals per activity type on the front page of the workout log. The purpose was to establish a pattern that this particular background indicates that you can look here to find some sort of aggregated total.

Breadcrumbs

The final change I've made recently is the only one that extends beyond the workout log. However, it was navigating the workout log that gave me the idea.

When navigating into a particular year of the workout log, say 2024, I was annoyed that there was no quick way on the page to get back to the front page of the workout log. This has annoyed me since day one, but I couldn't find an elegant fix. I tried adding a "Front page" link in the yearly navigation bar. It clearly didn't belong there.

A while back I finally made the connection that this is why someone invented breadcrumb navigation. So I started tinkering around with what that might look like.

Of course, if you look at the URL structure (and the footer menu) you'll see that the workout log doesn't sit at the root level. Together with my reading log it is grouped under logs. For the sake of consistency and to avoid general confusion, this quickly led me to three conclusions:

  • Logs must be the base of the breadcrumb for the workout log.
  • The reading log also needs a breadcrumb.
  • And actually, in that case, every piece of content that doesn't sit directly at the root level needs a breadcrumb.

I think this is a change for the better all around. As this site has evolved to contain more content than just my writing, I've thrown it all in sort of haphazardly without thinking too much about the overall structure. To help with that, I've tweaked the menu slightly. And, for every page on the site not placed at the root level, now there's also a breadcrumb at the top to indicate where in the content structure it is located.

That sounds fancier than it is. It just means that if you're viewing a note or a post there is a link to the notes archive or the posts archive at the top. And the same is true for both log sections.

Pages at the root level, like About or Subscribe do not get as much as even a little crumb. Because, in their case, the next level up would be the front page, which is always accessible (as it always should be on every website) by clicking the site name and/or the little purple square logo thingamajingy.

Future changes?

Who knows. I'm very happy with how the workout log has turned out. It is now probably good enough that I could use it as the only place to track my training.

The only thing remaining to make it a proper replacement is some more data on the activity level. Heart rate details (cookie diagram for zones or just a line chart), elevation numbers and line chart plus, possibly, a map of some sort. For the last one, I'm not sure, because I'm loath to introduce third party content on the site. And building a map engine isn't exactly on my list of things I want to tackle.

But I'll keep thinking about that. Either way, I think I want to make some changes to how I'm handling workout data upstream before I tackle any of those. To make the solution a bit more robust.

I also mentioned in a recent note that I'm thinking about making some changes to the front page. So there's that. And, lastly, I've been thinking that both my reading log and my workout log should have dedicated feeds.

Plenty to do, in other words!