Any questions?

Designing a Cross-Device Training Platform

In anticipation of the release of our next flagship GPS, I redesigned Hammerhead's ecosystem of workout tools. In doing so, I revisited assumptions we had previously made regarding our then-neglected support for structured training. The workout design initiative became a critical component of Karoo 24's unique value proposition. My deliverables included tools for web-based training plans, device-based workout configuration, integrations with partner companies, and a novel set of data visualizations to follow structured workouts during bike rides. My research showed that to sell a better training experience, users needed to solve problems across touch points in their product journey. I've studied training principles from our professional athletes and simplified their training insights into a consumer-friendly product. The resulting product capitalizes on best-in-class methods and tooling while simplifying the complex nature of endurance training.

Before I dive, in, it's helpful to know a few terms:

Structured Training – Structured training refers to using a formal training plan to conduct workouts methodologically. In cycling training, coaches and athletes often use training platforms like Training Peaks or TrainerRoad to build programs and follow them.

FIT, ZWO, and ERG – Individual workouts are commonly built on training platforms and shared in the formats .fit, .zwo, and .erg. These files describe a workout's lap, intervals, targets, and other information.

Supporting Evidence

While creating the product definition for Karoo 24, we discovered that our existing workout and training plan tool set was insufficient for serious athletes. My quantitative jobs-to-be-done analysis revealed two categorical insights regarding structured training:

  1. The Karoo fell behind competitors in supporting competitive athletes in their structured training.
  2. Structured training tools were necessary for training athletes, but the tools offered by  all head unit manufacturers left most athletes unsatisfied with their ability to train effectively.

These findings were supported by research I previously wrote about in my Karoo 24 Product Definition Process write-up. Insight #1 was supported by a difference in the  satisfaction score Karoo users ranked their ability to conduct training outcomes versus non-Karoo rankings. Insight #2 was kept in a relatively high  opportunity score while ranked  highly important. In conversational terms, although we fell behind in this category, no single competitor provided a satisfactory solution. The surveys used for this research included 40+ questions across various training outcome statements. The survey yielded over 10,000+ data points.

A slide showing quotes of how structured training is broken for cyclists  
A slide showing an example survey quesiton asked to cyclists An example workout outcome a user might face when using a cycling head unit
A slide showing how survey questions are transformed to quantifiable opportunity How the survey results pipe into our analysis
A matrix measuring the importance vs satisfaciton cyclists have when using their devices Outcomes were analyzed against competitors

While our product definition process proved the value of investing in training tools, it wasn't prescriptive of what the tools should look like. Our intention from the K24 PDP was to include focused research specific to each major product initiative. Like other design projects I've written about, I followed a version of the traditional design thinking process popularized by IDEO and the D.School. Within our software product team, we've modified these processes to fit our regular sprint cadence. Explore one of our cross-team workshops I organized between engineering and product explore ways to help our lagging workout tooling.

Generative Research & Insights

To understand what a complete and satisfactory toolset would look like for our athletes, we began with user calls to uncover problems in their existing journeys. As with any significant Hammerhead design project, we did these interviews to understand better the pain points riders were facing within the Hammerhead ecosystem and with competitors. I helped set up and moderated 12 interviews via the Hammerhead Research Group. Although I entered these calls with a list of workout-related topics, each session had the possibility of unlocking new behaviors and pain points. Dovetail, our research repository, was my chosen tool of analysis. Dovetail provides annotation tools that help with data tagging, filtering, and synthesis. The 12 interviews netted me over 30 insights, each backed up with multiple supporting quotes. With insights, Grayson Pollock and I sifted through to group similar workout topics. Our grouping method helps figure out complimentary features that, together, holistically some of the paint points. Some of our significant "categories" of workout insights included setup pains, training education, in-ride coaching, responding to data changes, and interactions with external platforms.

Baseline Training Metric Pains

Most modern endurance training plans' workouts are based on intensity zones. Intensity zones are built to categorize and simplify levels of strenuous effort to follow workouts better and understand the biological adaptations at each intensity level. These zones are often measured in three ways: 1. Pace, 2. Heart Rate, and 3. Power Output. For cycling, 2 & 3 are most common. Heart rate and power zones differ for every individual, and each coach might have a different method of breaking them up. The result is that training platforms have built non-standard defaults and configuration tools. Strava does five zones by default, TrainingPeaks does 6, and many others recommend 7. Coaches prescribe workouts to derive heart rate or power threshold markers to find each zone value, which becomes the basis of zone calculations. These baseline fitness tests are often done regularly (I do mine every six weeks, for example). Each test nets a new value, which requires the rider to recalculate their zones each time. They then have to update their zones on their planning software (Training Peaks), their head unit (Karoo), and their post-ride tools (Strava). Since these platforms each have their implementations, it leads the riders to re-input data across different interfaces. It's a time-consuming step that riders dread.

A chart showing different methods to calculate training zones This chart shows a fraction of the possible zone calculations. Now configure each data point you see into each of your training apps. Repeat this every time you re-test, every six weeks. Frustrating, isn't it?

Understanding Workout Adaptations

When training plan providers, either coaches or software, share their plans with athletes, the athlete has to digest large sets of raw information to understand their upcoming day, week, or training season. What we found was that although the high-level training plan across several weeks or months was easy to understand, the rationale behind day-to-day workouts was mysterious. The training provider builds workouts based on the long-term plan, inputting information like rider fatigue levels, cumulative training volume, intensity polarization, and athlete availability. In their processing, individual workout motivations are lost on the end-athlete. These athletes are often curious and intelligent people who like to know  why what they are being prescribed is the best workout that day. Even amateur cyclists aren't satisfied blindly trusting a training source without more profound knowledge of each workout's impact on their progress.

In-ride Coaching Failures

Training cyclists often buy head units like the Karoo as a tool to coach them on their rides. Via the athlete's training provider, they load .fit, .erg, or .zwo files onto their devices to run workouts. Karoo, like competing head units, follows the files in-ride and shows the rider their current targets for each interval. An interesting sub-insight was that riders often forgo their structure workout files when the workout that day is a simple endurance workout. These endurance workouts usually involve long, extended times at low intensities. For example, I have a workout this week that prescribes:

 1. 10 minute warmup, ramping from Zone 1 to Zone 3
2. 1 hour 30 minutes endurance, Zone 2
3. 10 minute cooldown, Zone 1

These workouts are easy to keep in their head. It's easier for riders to follow the above workout mentally than to go through the hassle of moving files across platforms. But, for more complex training, structured workout files are critical. Take the following workout, which I occasionally do:

 1. 10 minute warmup, ramping from Zone 1 to Zone 3
2. 3x Set of:
- 1 minute Zone 3
- 1 minute Zone 1
3. 10 minute endurance, Zone 2
4. 5x Set of:
- 3 minutes 30 seconds at Z4
- 30 seconds at Zone 5
- 1 minute Zone 1
5. 10 minute cooldown, Zone 1.

Whoa. No one is keeping that all in their head. Much less so when they are out in the real world, facing wind, traffic, and fatigue. This is where the head unit comes into play, and the magic of structured workouts shines. Upon starting the workout, the device triggers the first interval and shows target intensities. It also shows where the athlete's current output is compared to the target. Visualizations help them think, "Do I go hard, easier, or stay at this intensity?". The device handles triggering the following laps and indicating upcoming changes. But, the existing in-ride workout implementation on the Karoo fell short.

A gif of a Karoo's animated workout data fields An example of our previous workout page implementation

For one, riders found our target visualization challenging to see in glare and other low-visibility situations. When a rider originally opened a workout on Karoo, we would add a specialty workout visualization page to their in-ride interface. The primary interval target value would be shown (for example, "152bpm") with a red arrow in the back if the rider was out of the zone range. The red arrows are powerful but make the text difficult to read. We also heard how the inability to configure this page made it useless for those who prefer more or less data granularity. Some users liked simple instructions, telling them, "Go harder!". Others are highly opinionated that they must see their target power range to the exact watt every second of the ride. The middle ground we offered at the time appeased neither side. We had already built customizable numeric data fields and visualizations on our standard in-ride screens but not on the workout page.

Coach Cues

Another frustration we heard was we didn't support coach-cues. Some structured workout formats support pre-ride notes from coaches and time-stamped text to accompany intervals. For example, a coach might add a text cue for an interval that says, "Only use your right foot for this interval to work on muscle isolation and technique." Text cues aren't widely adopted across workout platforms, but riders who needed them, needed them.

 1. 10 minute warmup, ramping from Zone 1 to Zone 3
2. 1 hour 30 minutes endurance, Zone 2
- Text @ 0:10:00: "Keep it easy, try to breath through your nose."
3. 10 minute cooldown, Zone 1

Setup Confusion

At the time, the workout tooling needed to be more straightforward for riders first using the device. Particularly challenging was how the workout page added during rides had poor discoverability. Some people didn't know of its existence, and those that did felt they had to escape their preferred customized in-ride screens to view it. For the rider to be notified of interval changes, they must be on the workout page to see. There wasn't a way to message interval changes and targets universally, regardless of page.

Workout Planning Behaviors

A universally recognized challenge for endurance athletes is finding the time to do their workouts. Our JTBD analysis revealed that time management was one of the most significant opportunity areas regardless of whether the rider was racing or casually riding. While we had explored more off-the-wall solutions for this problem elsewhere, we found that it could apply today on our workout platform. Athletes commonly receive their training plans in one to two-week chunks. The effect is that they can plan far enough to schedule training times but not too far where injury, illness, or other life factors might throw a wrench in progress.

At the time, the Hammerhead Dashboard didn't provide much for workout planning. While we did pull in workout files from third parties, like Training Peaks, the dashboard reflected a high-level summary of workout duration and date. The user calls showed us how riders often pulled open their phones to understand upcoming workouts the night before. Doing so, they could know where to do this workout and  when they had time the next day. Since the Karoo, or any other head unit, is generally stored near the rider's bike outside of riding (often in the garage), riders weren't using the device to familiarize themselves with their plans. Their preferred touchpoint is on their phone or at their computer. At the time, it required the rider to log into their coach's training platform to review individual workouts to understand the makeup of intervals and how they should prepare. Coaching platforms, while data-rich, can make it difficult for the end rider to digest high-level summaries of workouts to make informed decisions.

A photo of the TrainingPeaks calendar page A few examples of other training software. To answer, "What workout should I do tomorrow?", this is information overload.
A screenshot of a cyclist's power curve  
A screenshot of the Intervals.icu fitness page  

Real World Interruptions

As mentioned above, understanding upcoming workouts is critical since time and route planning are significant hurdles. By far, the biggest category of challenges we hear from riders is how following a structured workout outdoors is highly challenging. Indoor training on platforms like Peloton and Zwift keeps athletes in controlled environments. There is no traffic, no road hazards, resistance and power are controlled by the smart-trainer bike, and rarely are there complete workout interruptions. If a rider were to only ever ride on a stationary bike at home, they would execute their training plan perfectly. If riders follow their prescribed plan perfectly, they are almost guaranteed to make performance gains. The biggest roadblock keeping athletes from performance gains is their inability to do what is prescribed.

Athletes aren't intentionally going off-plan. But endurance cyclists don't follow training plans, so they can keep following training plans. If that were the case, they would always stay in their house and exclusively train indoors. Cyclists ride for the love of riding. Cyclists ride socially. Cyclists ride to explore. Inevitably, they will deviate from their plan by riding outside. We heard that there are standard variables that can't be accounted for, forcing them to get off-target or off-route. Sometimes, a plan will tell a rider to cruise at low intensities, but there is a hill they have to struggle to get over. Sometimes, a plan will tell a rider to sprint for one minute, but the light in front of them turns red. Wind, weather, nutrition, and countless outside factors add to the equations.

Cyclists' natural response to this is to develop their workarounds. For some, getting stopped, mid-interval leads them to "over-compensate" and subsequently go over-target, so their overall average interval intensity bounces back to target. Some continue at the target, leading to their interval average dipping below the target. For some, they restart the interval. These individual behaviors change day-to-day and are highly context-driven. Compensating for real-world interruptions always leads riders to feel uncertainty about their decision-making. Among athletes and coaches, there is no consensus on the appropriate response.

Insight Scoping

Our generative research phase created valuable, actionable insights, including more than I discussed. Grayson and I analyzed our opportunities in these insights and cut them down to sets we found feasible to develop within the project's constraints. The leftover insights were slated for future design initiatives.

Design Exploration

Naturally, I explored possible improvements to act on the insights we synthesized above. I quickly found that comprehensive solutions to user pain points meant designing for flows spanning both the web dashboard and the Karoo.

Third-Party Metric Sync

Solving for insight: Baseline Training Metric Pains

To alleviate pains in updating zone metrics across software, I thought about the origin of the problem. Each platform has tried creating a novel approach to zone calculation and management. My initial instinct was to design a common denominator between all competitors, which would find a middle ground. Iterating on these designs, it became clear that an average between all platforms netted a better experience for no one. It would contribute to the problem further by providing yet another approach.

An XKDC comic on standards XKDC on standards. A problem I nearly contributed to.

Instead, I looked for ways of offloading the problem on our end. Digging through the APIs of the major third-party platforms we support, I found most provided training metrics, including zones. Based on the standard zone data we could pull from these APIs, I built designs that let riders sync zones from their preferred sources. In doing so, we effectively removed another place where the user needed to re-enter data. This solved half of the problem. Syncing  from third parties eliminated the pain of using our tools but didn't help the pain of syncing  to third parties. I brainstormed with our engineers to see what else we could do about this. We concocted, through experimentation, a feature to  push any training metric or zone updates to the APIs that could ingest it. For one, manual zone changes on our end update the riders' Strava's and Training Peaks. More impactful, though, is how we could act as the link from a third-party source to update every other connected platform. By doing so, we weren't just alleviating the pains of using our product but solving for a painful flow across every tool in the rider's bag. Our learnings have since become a driving principle around new feature development on the Karoo– Lean into the best-in-class tools third parties provide and build the glue that facilitates better experiences between them.

A diagram showing how possible training metric sources could get synced through one platform How our data flow eliminates data re-entry across platforms
Screens showing how a user can adjust their training metric sources on device  
Karoo screens showing how training metrics could get pushed to alternate platforms  
Karoo UI screens of the zone adjustment flow Zone input interface
Karoo UI elements for the zone design pattern Zones are color-coded

Ride Focus

Solving for insight: Understanding Workout Adaptations

Figuring out how to understand the impact of workouts each day proved to be one of the most complex challenges of this project. Only after diving into endurance training on my own time and using a variety of platforms did I deduce the most crucial info. For most scenarios, any workout targets one biological adaptation at a time. Remember, zones are meant to break down intensity into simple generalized categories. These categories usually align with physical adaptations at each intensity level. The currently accepted practice is that workouts are most effective when targeting only one biological adaptation at a time. This could be rewritten as:  The most effective workouts focus on only one training zone at a time. You will find very few workouts that try to build base endurance (Zone 1/2) while including high intensities for sprints (Zone 5). Training plans are made based on changing the cumulative time in each training zone over weeks, months, or seasons. But not by changing zones within a workout session.

Focusing on one zone at a time isn't a new idea. This principle helps algorithmically-driven training platforms like TrainerRoad, Xert, or Zwift ground each workout with a clear output. A few standard metrics are used as well to indicate the training adaptations each workout produces:

  • TSS (Training Stress Score) measures a workout's training load. TSS accounts for the duration and intensity of a workout. A long, low-intensity workout might have a lower TSS than a high-intensity, low-duration workout. TSS ≈ Duration x Intensity
  • IF (Intensity Factor) – A measurement of a workout's intensity, accounting for each individual's fitness. An exercise with an IF of 0.8 will be just as tricky for a novice as it would for a world tour pro.
  • NP (Normalized Power) – A measurement of a workout's intensity, taking the average power output and weighing it for time at higher power levels. While that world tour pro's ride might have the same IF for the novice, their NP will differ significantly.

Read more about the algorithms and science behind these metrics→

For our power users, those actively competing and following these metrics, it was clear that this information had to be quick to find when planning their next day or week. This may be rocket science for the individuals dipping their toes into structured training. How, then, can we convey the impact of a workout to that rider? Focus. As only one zone is the focus of each ride, that zone should be emphasized in each workout's ride summary. Since my zone configuration designs allowed for the input of zone labels, this information could propagate wherever zones are relevant. In talking with users, I found that "Focus" is a helpful metric in their journey. It's useful when planning to understand why a workout is effective. It's beneficial to find the appropriate workout for that day on-device. It's helpful in-ride to confirm they are following the plan (focus works even without a workout file loaded). After the ride, it's helpful to understand that their zone distribution was accurate that day. It's helpful in their post-ride analysis tools, like the dashboard, to figure out if they need to adapt their following workouts to fit.

Dashboard UI elements for the focus data point Focus as seen on the Dashboard planning and data analysis tools
Two variations of the Karoo focus data field on-device Focus data fields as they would be seen in-ride
Time in zone chart for the Karoo post-ride screen The post-ride summary on Karoo
Hammerhead Dashboard workout planning detail metadata Our derived workout metadata, as seen on the Dashboard's workout detail page

Compliance

Solving for insight: Real World Interruptions

You'll notice that a new concern becomes apparent in scenarios after ride planning– compliance. Once a rider understands  why they are doing a workout, their next set of uncertainties stems from  whether they are following the workout to plan. Some training tools provide similar concepts upon post-ride review, but my research showed this is also essential. This is particularly important in the real world, where interruptions are common, and compensating for interruptions can be difficult. So, I adapted principles of similar metrics found outside of the ride and redesigned them to be user-friendly, both in and out. The resulting metric takes the ongoing ride's cumulative TSS score as a percentage of the planned workout's total TSS. Compliance is measured in percentage. Not only is compliance described numerically, but we found that color-coding compliance is helpful for quickly ingesting the information.

 Green   Completed TSS is within    +-  20% of planned TSS
Yellow Completed TSS is within +- 50% of planned TSS
Orange Completed TSS is within +- 100% of planned TSS
Red Completed TSS is more than +- 100% of planned TSS
Grey No associated workout

Color is effective for skimming workout summaries and analysis but becomes critical in-ride. On the bike, the Karoo has limited screen real estate, and small typography doesn't lend itself to safety. Instead, the use of compliance as a metric mainly works by color. Through conversations with riders, I found two helpful touchpoints during the ride. The first is to provide compliance as a standalone data field, which helps riders gauge whether or not they need to keep riding. This is helpful when it comes to real-world interruptions. The second is to provide compliance on an interval-by-interval basis. Once the next interval starts, riders find it helpful to see if they completed the previous one as prescribed. They can adjust future intervals to compensate as they see fit if needed. After a workout, riders can see what percentage of intervals were completed on target. The suite of compliance tools throughout the Hammerhead interfaces allows riders to have a standard metric followed through from ride planning to the workout to the post-ride analysis. It breaks down the complexities of day-to-day training into simple metrics.

UI elements of the Karoo post-ride compliance data field Post-ride review on the Karoo
UI elements of the Karoo post-ride compliance data field New in-ride compliance data fields
UI elements of the Hammerhead Dashboard post-ride compliance data field  
UI elements of the Hammerhead Dashboard post-ride compliance data field Post-ride analysis workout summary

Workout Drawer

Solving for insights: In-ride Coaching Failures Coach Cues Setup Confusion

It was clear to us that the workout page was a UX failure. We heard a need for better configurability, legibility, text cues support, and better integration into their preferred flows. I went about by exploring two directions. 1. I rebuilt the workout page with customization and legibility. We quickly found limitations with this approach, both from a usability perspective and due to developer constraints. So, I pursued option 2: Integrate the workout player into Karoo's existing "drawer" paradigm. The drawer was an interaction pattern we developed after the initial workout page. The drawer allows for contextually relevant ride data to appear when needed. Unlike the workout page, drawer pages could notify users of ride-critical events from any data page. For example, a turn-by-turn notification can occur in the drawer while you are actively following the map. The non-persistent nature of workouts during a ride lent itself well to the drawer paradigm.

The resulting designs exist in three flavors– 1. The pre-workout state, 2. The in-workout state, and 3. the post-workout state. One of the tricky requirements we set was that workouts must be controlled independently of the recorded ride itself. This was one of the few positives of our existing workout page, and riders requested we maintain it. Once a workout is loaded, the drawer gains a new Workout Tab. Typically, when a rider triggers a lap manually on the Karoo, a Lap Tab opens. Workouts effectively replace the lap tab, as workout intervals secretly start new laps on the back end. In its initial state, the workout tab reads the loaded workout and offers a play button to initiate the workout. After a count-in, the drawer switches to its in-ride state. The drawer in this state shows the remaining duration of the ongoing interval and relevant zone target information. Entering a new interval, the drawer gives a heads-up of the upcoming intensity target. This gives the rider time to prepare, speed up, or slow down. Immediately after the next interval triggers, the upcoming interval target changes to a short-form summary of the previous interval. The only information conveyed here is whether or not they completed the interval to spec, also known as compliance.

The workout drawer's flow "in interval," "upcoming interval," "previous interval summary," and back to "in the interval" repeats until the workout has ended. Once completed, the workout drawer shows a high-level summary of the rider's compliance with the workout. At any point during the workout, the rider can pull open the drawer for a richer experience. This pattern, typical across all drawer tab types, allows that drawer to utilize the entire screen's real estate. In the case of the workout tab, the user sees the same interval progress, as well as a table of all past and upcoming intervals. For previously completed intervals, the table shows compliance with the target. This historical information can be used to compensate for upcoming intervals. The workout drawer accommodates other edge cases, like lap-triggered intervals, distance-based intervals, and workout paused states.

Karoo workout drawer UI elements Initial and in-interval states
Karoo workout drawer UI elements Visual target field enabled
Karoo workout drawer UI elements Soon after an interval ends, the user sees a summary of the previous interval
Karoo workout drawer UI elements After the workout has been completed
Karoo workout drawer UI elements The open drawer after the user has swiped up
Karoo workout drawer UI elements Chronological list of previous and upcoming intervals
Karoo workout drawer UI elements  

Knowing legibility was a concern, I created several new visualizations to live in the drawer. Knowing the duration remaining in an interval is half what riders need to follow it. The other key data point is their output concerning the target. Should they go harder, stay steady, or stay at that intensity? We needed these designs to be legible, easy to digest, and customizable for power users. Power users strongly prefer raw numerical fields, while some prefer simplified graphics to follow their workouts. I iterated over dozens of new data visualizations to convey interval targets. Our final design offers two visualizations based on user preference. 1. A glanceable bar that visually conveys the user's current intensity, average intensity for the interval, and whether or not they are in the zone. 2. A dual data field configuration that closely matches existing data fields on the Karoo and is similar to the previous workout page. We knew we had to provide replacement interfaces to move away from the workout page model.

New Data Fields & Visualizations

Solving for insights: In-ride Coaching Failures Setup Confusion

We had to replace its unique data fields elsewhere to phase out the workout drawer. The workout drawer acts as a "minimum viable workout player," providing what a rider needs to follow workouts and no more. But, in doing so, it doesn't give power users the ability to configure data fields to their hearts' desire. To double down on configurability, I rebuilt the workout page data fields and visualizations into new fields compatible with standard data pages. We created several new generic data fields:

  1. Generic Data Field Visualizations – We created a new set of options that could apply to any given numeric field. We added the ability to color fields when above or below a target. We allowed power and heart rate fields to get colored by their corresponding zone color.
  2. Workout Structure Graph – The original workout page included a bar-chart style graph plotting intensity over time. This common visualization is helpful for an intuitive understanding of the workout to come. We added the option to color the bars by their corresponding intensity zone.
  3. Updated Zone Visualizations – I improved our existing zone visualization graph to have better legibility in low visibility conditions. We provided the option for users to label zones by number (1, 2, 3, 4, 5), label (Threshold, VO2 Max, Endurance), or by absolute value (143 bpm).
  4. Workout Progress Visualizations – We added the new progress bar visualization from the drawer as a data visualization that could be added to any page.
  5. Compliance Visualization – We added a gauge style field, which helps show the completion of a planned workout.

In doing this exercise, I also explored rethinking the design language of in-ride data fields on Karoo. Our existing fields needed to be updated to avoid poor labeling and clutter to guarantee legibility. I also attempted to aesthetically improve them to make our UI feel more "designed." The resulting designs use highly legible labels where needed, forgo labels where not, and capitalize on our device's industry-leading display. To give credit where credit is due,  the Teenage Engineering OP-1's interface was my reference as I designed these visuals.

Karoo UI dava visualizations My new data visualization design language
Karoo UI dava visualizations Each field has been built for high legibility
Karoo UI dava visualizations Target visualization variants
Karoo UI dava visualizations target visualization anatomy
Karoo UI dava visualizations Zone visualization variants
Karoo UI dava visualizations Zone visualization anatomy
Karoo UI dava visualizations Workout structure graph anatomy and variants
Karoo UI dava visualizations Data field visualization generics
Karoo UI dava visualizations Generic data field variants

Dashboard Workout Page

Solving for insight: Workout Planning Pains

The dashboard's neglected interface needed love to tie together the overall Hammerhead workout ecosystem. The behavior of athletes using their phones and computers the day before a workout helped us uncover how some wanted more support on the dashboard. The dashboard's workout "card" elements had poorly rendered workout structure graphs, so I naturally updated them with the new visualization design language. I then created a workout detail page, adding more detailed workout information. This page sits between the workout card (high-level information, very little information) and the original training plan software (low-level information, vast amounts of information). Sitting between the two and providing just the required information for ride planning, the workout detail page becomes a sticky touchpoint for the end user.

Within the workout details page, I tested all types of data with users to find the most important for quick comprehension. I found that an interactive workout chart best-conveyed structure at first glance. The chart was rated highly as an essential component of their workout details. Below, I split the page's layout in two. The left column holds workout notes from the coaches and an interval-by-interval breakdown. To the right, I put workout metadata and derived summary data. Together, the layout provides everything most riders need. I tested more or less information, but this combination proved efficient. If someone needs more granular details on the workout, the metadata box includes a direct link to the original workout file on the workout provider's website. Remember the lesson from third-party sync?  Lean into the best-in-class tools third parties provide and build the glue that facilitates better experiences between them.

A screenshot of the Hammerhead Dashboard's workout detail page Workout details
A screenshot of mouse interactivity on the workout detail page chart Chart interactivity
A screenshot of the workout's metadata Metadata on right, with links to source workout
A screenshot of the workout detail page in a responsive breakpoint Responsive for mobile support
UI elements for the workout breakdown Interval breakdown table
A screenshot of the detail page for a workout with ramped intervals Support for ramp intervals
A screenshot of the dashboard workout browser Workout Browser

The riders visiting the dashboard the night before a ride sometimes review past workouts during this time. My thinking changed regarding the workout journey once I saw how it's a loop, not a linear flow. The results of one workout and their compliance with it feed into the next workout that the rider does. This behavior proved that certain workout elements had to exist in our post-ride analysis tools. Focus, compliance, and time in zone distributions are key data points that I work out on this analysis page. The complete dashboard now acts as a convenient single location to complete the pre and post-workout flows.

Other Designs Not Discussed

TrainerRoad Integrations – Since developing our updated workout ecosystem, I've had the privilege to lead the design collaboration with TrainerRoad on deep integrations. Our research showed how TrainerRoad is seen as one of the best workout platforms in the industry, so we applied our principle of working with third parties where applicable.

Control Center Updates – To avoid breaking down the hardware button paradigm I wrote about in  my case study on the control center, I designed all of the workout controls to maintain accessibility, even in the rain or with gloves on.

Text Cues – I designed a system leveraging our existing in-ride message drawer tab to solve the need for text-cue support.

Post-ride Perceived Exertion – After a ride, we (optionally) give users a simple form rating of how hard the workout was. The response feeds into third parties like Strava as RPE (Rate of perceived exertion).

Scheduled Workouts – I built a flow that allows pre-scheduled workouts to automatically populate on the rider's Karoo, so they no longer have to menu dive to follow their workout.

UI elements of a Hammerhead & trainerRoad integration TrainerRoad Integrations
UI states of the Karoo Control Center workout controls Control Centers
UI states of the Karoo text cue drawer Workout text cues
UI elements of the Karoo RPE survey screens RPE Survey
Screenshots of pre-loaded workouts on Karoo Pre-loaded workouts

Validation & Refinement

The above designs have been tested, iterated upon, and retested to validate effectiveness. You can read more about our design validation process in  my case study on the control center. This initiative's prototype testing with Maze and strategic survey questions helped me discover design vulnerabilities and reduce our risk developing each feature. When shown the entire workout ecosystem, survey respondents rated their satisfaction with new designs highly. The software suite now ranks much higher than our competitors at satisfying workout needs. Explore the insights from one of my Maze tests below:

Parting Thoughts

I applaud you if you've made it this far in my write-up. I set out to write a brief overview of the design initiative spanning multiple quarters, but I found workouts to be a topic difficult to discuss without deeper conversation. I could write a case study for any subject I wrote about here. If you have any questions or want to dive into the science of endurance training, please reach out. The Karoo's new workout ecosystem is set to release in 2024.

A mockup of the Dashboard workout detail page on a MacBook

Collaborators

Grayson Pollock acted as PM for this design initiative.
Will Tribble collaborated with me in the JTBD research that led to this initiative.

Resources

Training for the Uphill Athlete – The book I'm building my current training plan on.

Normalized Power, Intensity Factor, and Training Stress Score – A brief description of the metrics mentioned earlier. Author Dr. Andrew Coggan, Ph.D., is one of the most impactful endurance sports scientists and has invented many of the principles world-class athletes use today.

The Trainer Road Blog – A great resource to learn concepts used across training platforms.

Dylan Johnson's Youtube – Dylan is a self-coached world-class cyclist. He produces videos breaking down the most up-to-date research and applies it to endurance training.