Skip to content
BlackwatchTechnologies
All work
Fitness & WellnessWebsiteMobile AppAdmin Dashboard

Northwind Fitness

Retention engineered into the program itself.

An adaptive training platform responding to recovery signals from wearables — lifting 90-day retention 42% against the prior generation app.

Year
2025
Duration
6 months
Team
9 people
Sector
Fitness & Wellness
dashboard
MacBook Pro mockup

0%

90-day retention

Improvement over the prior app generation

0%

Session completion

Up from 44% of scheduled sessions

0.0×

Coach capacity

More clients per coach at equal satisfaction

0

Wearables supported

Normalized into one recovery model

The client

Northwind Fitness

A digital fitness company offering coached training programs to 620,000 subscribers, with a network of 1,100 certified remote coaches.

To build training programs that adapt to the person following them.

Company mission

Logo concept

NF

A wind-bent compass needle — direction maintained under resistance.

#1E40AF
#60A5FA

Founded

2018

Headquarters

Boulder, Colorado

Employees

480

Sector

Fitness & Wellness

Screens

Every surface we shipped

11 designed screens across 3 deliverables, rendered live rather than captured as static images.

Home
MacBook Pro mockup

Marketing Site

Program positioning with coach matching.

dashboard
MacBook Pro mockup

Training Dashboard

Today's session adapted to recovery state.

analytics
MacBook Pro mockup

Progress Analytics

Strength, volume, and recovery trends.

orders
MacBook Pro mockup

Coach Roster

Client assignment and session review queue.

products
MacBook Pro mockup

Program Library

Training programs with progression templates.

reports
MacBook Pro mockup

Reports

Scheduled exports and compliance-ready statement generation.

settings
MacBook Pro mockup

Settings

Organization, team, and integration configuration.

Mobile application

iPhone mockup

Sign In

iPhone mockup

Create Account

iPhone mockup

Notifications

iPhone mockup

Athlete Profile

Mockups

Across every form factor

The same design system, rendered at each breakpoint it has to survive.

analytics
Desktop Monitor mockup
orders
iPad mockup
iPhone mockup
Android mockup
Case study

The challenge

Northwind's churn was concentrated brutally early: 51% of subscribers stopped opening the app within 21 days. The programs were static — a plan written on day one ran unchanged for twelve weeks regardless of whether the user was recovering well, sleeping badly, or had missed four sessions. Users who fell behind found a plan that had moved on without them, and the most common exit-survey phrase was some version of feeling like they had already failed.

Research

  • Cohort analysis of 40,000 users identifying exact abandonment points
  • Exit interviews with 90 churned subscribers
  • Coach interviews on how they adjust programs manually for clients
  • Validation study comparing algorithmic adaptation against coach judgment on 200 cases

The solution

Programming adapts daily against a normalized recovery signal drawn from whichever wearable the user already owns — sleep, resting heart rate, and HRV where available, with graceful degradation to self-reported readiness when it isn't. A user recovering poorly gets a reduced session rather than the prescribed one; a user who missed a week gets a re-entry path rather than a plan four sessions ahead. The adaptation logic was validated against coach judgment on 200 cases before launch, agreeing with the coach's call 84% of the time and escalating most of the remainder.

UX decisions

Missed sessions never accumulate as a visible backlog

Exit interviews were emphatic. A growing list of skipped workouts was the single most common trigger for abandoning entirely.

Reduced sessions framed as the plan, not as a concession

Presenting a deload as 'taking it easy today' implied falling short. Presenting it as what the program calls for kept adherence intact.

Recovery data explained in plain language, never as a raw score

A 62 HRV score means nothing to most users and invites anxious optimization. 'You slept poorly — today is lighter' drove the behavior we wanted.

Coach review queue prioritized by adaptation uncertainty

Coaches don't need to review routine sessions. Surfacing only the cases where the engine was unsure is what let rosters grow without quality loss.

Features

  • Daily adaptive programming against normalized recovery signals
  • Ingestion across 14 wearable ecosystems with graceful degradation
  • Re-entry paths rather than accumulated session backlogs
  • Coach console with uncertainty-prioritized review queue
  • Strength, volume, and recovery trend analytics
  • Coach-athlete messaging with session context attached
  • Program library with progression templates per goal

Technology

React NativeTypeScriptNode.jsPythonPostgreSQLRedisAWSDocker

Architecture

Wearable data arrives through per-vendor adapters that normalize into a common recovery schema, with explicit handling for missing signals rather than imputation — a user without HRV data gets a model that doesn't pretend to have it. A Python adaptation service runs nightly per athlete, producing the next session with an uncertainty score that determines whether a coach reviews it. Node services back the React Native app and coach console over PostgreSQL, with Redis caching program state. Session and recovery history is retained in full so any adaptation decision can be reconstructed.

Results

90-day retention improved 42% over the prior app generation. Session completion rose from 44% to 67% of scheduled sessions. Coaches carry 2.4× more clients at equal satisfaction scores, since the review queue surfaces only genuinely uncertain cases. The adaptation engine agrees with coach judgment 84% of the time on the ongoing validation sample.

Lessons learned

  1. 01Removing the missed-session backlog was a one-line product decision with the largest single retention effect we measured. The most important feature was the one we deleted.
  2. 02Validating the adaptation engine against coach judgment before launch gave us both a quality bar and the coaches' buy-in. Shipping it unvalidated would have met justified resistance.
  3. 03Explicitly modeling missing wearable signals rather than imputing them kept the system honest with users who own less-capable devices — which turned out to be most of them.
Timeline

How the engagement ran

6 months across 4 phases with a team of 9.

  1. Churn Analysis

    4 weeks

    Identified where and why users abandoned in the first three weeks.

    Churn modelCohort analysisUser interviews
  2. Adaptive Engine

    10 weeks

    Built recovery-responsive programming validated against coach judgment.

    Adaptation engineRecovery modelCoach validation study
  3. Wearable Ingestion

    6 weeks

    Normalized 14 wearable ecosystems into a single recovery signal.

    Ingestion layerNormalization modelGap handling
  4. Coach Tooling

    6 weeks

    Built the review queue that let coaches scale their rosters.

    Coach consoleReview workflowEscalation rules

Have a problem shaped like this one?

We start every engagement with a paid discovery sprint. You get an architecture assessment and a delivery plan — whether or not you continue with us.

About this case study: Northwind Fitness is a fictional client. This engagement, its metrics, and its quotes are illustrative work product created to demonstrate our delivery approach, architecture reasoning, and design process. They do not describe a real customer.