Drew Mayer ← All Work

Passion project · Designed and built · iPhone, Apple Watch & web

Line Change: Turning Heart Rate Into Hockey Stats

I play adult league hockey and wanted to track my stats like the pros, but no app could tell me how a game actually went. So I designed and built one. Line Change reads heart rate from a chest strap or watch and turns it into shifts, time on ice, effort and recovery.

Try the App
Line Change game summary with time on ice, distance and a heart-rate chart with shifts highlighted

Role

Sole designer and developer

Platforms

iPhone, Apple Watch, web

Data sources

Polar H10 and Verity, Polar watches, Apple Health

Tested on

My own 71 games, 2016–2026

The Problem

Fitness apps treat a hockey game as one long workout. An average heart rate over 75 minutes hides what matters: how many shifts you took, how hard you went on each, and whether you faded late.

Rinks have no GPS and a strap has no idea when you're on the ice. The only signal is heart rate. The design question: how do you turn one noisy signal into stats a player trusts?

How It Works

Every screen is built on four steps, each one shown to the player rather than hidden.

  1. 01 · Capture

    Heart Rate

    From a chest strap, watch or Apple Health.

  2. 02 · Detect

    Shifts

    Inferred from heart-rate rises and recoveries, with warm-up separated out.

  3. 03 · Estimate

    Hockey Metrics

    Time on ice, distance, strides, effort and load.

  4. 04 · Compare

    Against Your Usual

    Your last 10, 20 or 50 games, or all of them.

Key Decisions

Effort and load rings showing minus 17 and minus 32 percent versus usual, with a likely-why explanation

01

Compare to You, Then Explain Why

A 3.9 effort score means nothing alone. So every score shows how it compares with your usual ("−17% vs usual"), a plain label ("Lighter Than Usual") and a likely reason: "second night in a row and a shorter game."

"What Drove Effort" breaks the score into its parts, and every chart carries a one-line caption: "Each bar is this game; the tick is your usual."

Tradeoff: More words on screen, in exchange for numbers nobody has to decode.

02

Let One Chart Answer Two Questions

In the shift-by-shift chart, bar height is how long the shift lasted and bar color is how hard it was: peak heart rate as a share of your max, from cool blue to red. A player sees at a glance that shift 5 was long, but shift 6 was the hardest.

Three summary cards below pull out the answers people ask first: longest shift, hardest shift and work-to-rest ratio.

Tradeoff: Color carries meaning, so the scale is always labeled directly under the chart.

Shift-by-shift bar chart where height is shift length and color is peak heart rate
Game summary showing time on ice, estimated distance and the heart-rate trace with warm-up and shifts shaded

03

Be Honest About What's Estimated

Without GPS, distance is a model, not a measurement. It's labeled "Est. Distance" and documented as roughly ±20%: good for comparing your own games, not for bragging rights. Info buttons and a "How These Are Measured" page explain every number.

The heart-rate trace shows its work, too: warm-up is shaded gray and each detected shift is shaded in, so players can check the app's reading against what they remember.

Tradeoff: Admitting uncertainty makes numbers look less impressive, but more trustworthy.

Small Details, Kind Framing

A low score isn't a failure. A red effort ring means "a light night, not a bad one," and the readiness bar ends on "Ready," not on a grade.

Effort over the last ten games with this game highlighted, and a readiness meter reading Ready
Recent games and readiness
Early versus late game recovery comparison and time in each heart-rate zone
Early vs. late game, and heart-rate zones
  • Drop-in sessions are detected automatically and kept out of game averages.
  • Demo data carries a clear "SAMPLE" banner until your first real workout replaces it.
  • A square game recap puts the stats in the center, so they survive Strava's feed crop.

What I Learned

Building it myself meant every design decision met real data right away. But the biggest changes came from testing with my teammates. Their feedback reshaped the entire dashboard’s look and feel, how settings are configured, and which numbers show up first.

Next case study

Rebuilding How Investors Navigate Nasdaq.com

Read →