All posts
Company Spotlights

what's this funnel's recovery score?

7 min read
GrowthFrontendCompany SpotlightProduct

How I Got Here

There's a software engineering role sitting open at WHOOP right now - Software Engineer I, Frontend, on the Growth team, here in Boston, a few T stops from where I'm writing this. WHOOP is one of those companies I've circled for a while: I'm a runner, I've eyed the band more than once, and it was a real contender to the lifestyle tracking watch I would go with - the mission of knowing your body and its metrics is very prevalent.

So, in an attempt to understand some struggles of potential consumers and practice being the type of developer seeing things from all levels, I opened their funnel, walked it like a real buyer, and wrote about it. Full transparency: this comes from someone with a rooting interest in seeing them get it right and hope that "growth engineer who already ran an experiment on our funnel" reads better than "applicant #1047."


The Most Expensive Click on the Page

Every purchase funnel (the path a visitor walks from first landing on the site to actually handing over a card) has a moment where the buyer either commits or quietly closes the tab. For WHOOP, a lot of that weight lands on one screen: Compare the memberships. By the time you're there, you've already decided you might want one, now you're just trying to figure out which one. That's the highest-intent, highest-leverage step in the whole flow. It's the click worth the most money.

And, for me, it's the click the current page may cause the most friction with.


Checkmark Plague?

WHOOP sells four options - ONE, PEAK, LIFE, and a Free Trial. The comparison table lays all four side by side and lists every feature under every column. Sounds reasonable. Here's the problem: of the roughly sixteen rows, seven are identical across all four plans - HSA/FSA eligibility, 14+ day battery, Recovery/Sleep/Strain scores, steps, haptic alarm, hormonal insights, VO₂ max. Those seven rows get rendered four times each. That's 28 cells of pure "yes, obviously, same as the others", visual noise you have to scroll past to find the handful of things that actually differ.

Because here's what does differ, and it's a clean little ladder once you strip the noise away: PEAK adds Healthspan, Stress, and Health Monitor over ONE. LIFE's "MG" device unlocks the cardiac suite: ECG, AFib (atrial fibrillation, an irregular heartbeat) detection, blood pressure. Charger and band quietly upgrade along the way. That's the real decision, ONE → PEAK → LIFE, and it's buried under three repetitions of "14+ day battery life."

There's also a small trust wrinkle I couldn't unsee: the Free Trial shows Healthspan, Stress Monitor, and Health Monitor as included - but ONE, the cheapest paid tier, doesn't. Scan it fast and you walk away thinking the free trial comes with more than the $199 plan. At the exact moment you want a buyer to feel confident, the table introduces a tiny "wait, what?"


I'm Not Here to Redesign Their Homepage on a Napkin

I won't pretend this is a slam dunk that someone on their team is too dim to have noticed. Comparison tables are a genuinely hard design problem, every PM (product manager) wants their feature in the grid, legal wants the disclaimers, and the page has to survive a dozen plan permutations and a marketing calendar. Shipping a clean one is harder than critiquing a messy one from my couch. I also can't see their analytics, their constraints, or the six tests they've already run. So I'm not claiming I'm right. I'm claiming this is testable, which, on a Growth team, is the only claim that matters.


The Experiment I'd Run First

The hypothesis is simple: collapse the seven universal features into a single "every membership includes" band, and show only the rows that actually differentiate the tiers. The bet is that making the ONE → PEAK → LIFE decision legible at a glance reduces choice overload at the highest-intent step and lifts click-through on the plan CTAs (a CTA is a "call to action", the button that actually kicks off a purchase).

If "A/B test" isn't part of your everyday vocabulary, here's the whole idea in a sentence: show one group of visitors version A and another group version B, keep everything else identical, and let their behavior, not an argument in a meeting room, tell you which one works better. That's really it.

So I built both. Toggle between the current grid (A) and the collapsed version (B) below, the plan CTAs log a live event per variant, so it behaves like a real experiment instead of a static mockup:

Experiment · Membership comparison layout

Hypothesis: collapsing the 7 features shared by every plan into one band — and showing only the rows that differ — makes the ONE → PEAK → LIFE decision legible at a glance and lifts plan-CTA click-through.

Primary metric: “Start with ___” click-through. Guardrail: trial starts shouldn't cannibalize paid.

Live events

0

A 0 · B 0

Cells removed

28

identical → 1 band

Variant

Compare the memberships

Showing the proposed redesign

ONE

$199/yr

WHOOP 5.0 · Wired charger · CoreKnit Jet Black

Most popular

PEAK

$239/yr

WHOOP 5.0 · Wireless charger · SuperKnit Obsidian

LIFE

$359/yr

WHOOP MG · Wireless charger · SuperKnit Luxe Obsidian

FREE TRIAL

Free · 1 mo

Pre-owned 5.0 · Wired charger · CoreKnit Jet Black

Every membership includes

HSA/FSA eligible 14+ day battery life Recovery, Sleep, & Strain Scores Steps & Activity Monitoring Haptic Alarm Women's Hormonal Insights VO₂ Max and Heart Rate Zones
What's differentONEPEAKLIFEFREE TRIAL
Hardware
DeviceWHOOP 5.0WHOOP 5.0WHOOP MGPre-owned 5.0
ChargerWiredWirelessWirelessWired
BandCoreKnitSuperKnitSuperKnit LuxeCoreKnit
Advanced health
Healthspan with WHOOP Age
Stress Monitor
Health Monitor
Heart Screener with ECG
On-demand AFib Detection
Blood Pressure Insights (Beta)

Click-through counts are captured live from this demo. Lift figures would come from running the test in production.

A few notes on how I'd actually run this, not just mock it up.

Primary metric (the single number I'd use to call it a win or a loss): click-through on "Start with ___." Did more people actually commit to a plan?

Guardrail (a second number you watch in the background to make sure the "win" didn't quietly break something else): free-trial starts shouldn't cannibalize, meaning eat into, paid conversions. A layout that's easier to scan shouldn't accidentally herd everyone into the free option and call it a victory.

Mechanics: I'd put the new layout behind a feature flag (a switch that turns version B on for a slice of users without me shipping new code every time), and use deterministic bucketing, which is a fancy way of saying the same visitor always lands in the same group, so nobody sees layout A on Monday and layout B on Tuesday and gets whiplash. Every time someone clicks a plan button, log it. And before I look at a single result, I'd lock in two things up front: how many visitors I need before the numbers mean anything (the sample size), and what actually counts as a win (the decision rule). That last part matters more than it sounds, because if you keep peeking at the data and stop the moment it looks good, you'll talk yourself into "wins" that are really just random noise.

You'll notice I didn't slap a "+23% conversion!" badge on variant B. I have a hypothesis, not a result. The number comes from running it, and inventing one would defeat the entire point of testing.


Two More for the Backlog

A good audit isn't a pile of ideas, it's a ranked pile. Two more friction points, ordered by impact-over-effort:

1. Add-on CTAs that don't say what they're for (medium impact, low effort). Further down the flow, "WHOOP Your Way 5.0" sits next to a "Customize" button, and I genuinely couldn't tell you what I'd be customizing or why I'd want to. Benefit-led copy (naming the outcome instead of the action) is the cheapest, fastest copy test on the board.

2. The band-color selector's locked checkmark (low impact, low effort). When you pick your device, one band color shows a checkmark you can't deselect. I clicked it three times before realizing it was the included default, not a bug. If it's a fixed inclusion, it belongs in its own labeled "included band" slot, not in the grid of choices where every other check is a choice. Pure usability, not a conversion lever, so it's a paper cut to fix, not a test to run.


WHOOP's whole pitch is that small, measured changes compound, that the unglamorous daily inputs are what move the number that matters. That's exactly what this is: not a redesign, not a rebrand, just one legible page and a hypothesis you can settle with data instead of opinion. It's the cheapest experiment on the board and the kind of thing a Growth team ships on a Tuesday.

Which, conveniently, is the job I'd like to be doing.