What's your FitScore?

A fitness metric that rewards what matters: consistency, aerobic volume, strength training, and movement variety. No games. No hacks. Just progress.

Two Scores, One Picture

ActivityScore

This week's training quality. How well you trained in the last 7 days—aerobic work, strength days, consistency, and variety. This is what you're contributing to your FitScore.

FitScore

Your current personal fitness level. This is where you stand right now—built up over time through consistent training, with gradual decay when you stop.

High ActivityScore turns to high FitScore.

84ActivityScore
Aerobic70
Strength80
Consistency+8%
Variety+7%
72FitScore

ActivityScore Components

Your weekly training quality is built from four scientifically validated* components:

Aerobic Hours
70%
Strength Days
30%
Weekly Aerobic Hours
100755025004h8h12h16h20h7192
5h → 71
10h → 92
15h → 98
Weighted 70% — Score of 71 contributes 50 to base
Weekly Strength Days
100755025001234567507590100
1 → 50
2 → 75
3 → 90
4+ → 100
Weighted 30% — Score of 90 contributes 27 to base

🚴 Aerobic

Based on weekly duration in hours. Diminishing returns—bigger gains from 0→5 hours than from 10→15. Caps around 15-20 hours/week. Zone 1 activities (walking) count at a reduced rate—a 3-hour walk isn't the same as a 3-hour Zone 2 ride.

💪 Strength

Based on days per week with strength activity. Any duration counts—3 minutes of kettlebell swings counts. Multiple workouts on the same day count as 1 day. 2 days gets you 75%, 3 days 90%, and 4+ days maxes out at 100%.

Consistency Bonus

How many days per week you train. Rewards showing up without punishing those who train daily.

1 day/week+0%
2 days/week+2%
3 days/week+4%
4 days/week+6%
5+ days/week+8%

Days 6 and 7 score the same as 5. No penalty for daily training if that works for you, but most people benefit from 1 or 2 rest days per week depending on how they train.

Variety Bonus

Count distinct sports done at least once per week. Running and cycling are separate. Swimming and lifting are separate. More variety means different muscles, joints, and movement patterns.

1 sport+0%
2 sports+3%
3 sports+5%
4+ sports+7%

Example ActivityScores

Weekend Warrior

Long rides on Saturday and Sunday

53
  • 6 hours cycling (Saturday 4h, Sunday 2h)
  • No strength training
  • 2 days active
  • 1 sport
Aerobic (6h → 75)75 × 0.7 = 52.5
Strength (0 days)0 × 0.3 = 0
Consistency (2 days)+2%
Variety (1 sport)+0%
ActivityScore53

Balanced Trainer

Mix of cycling, strength, and movement

87
  • 5 hours cycling across 3 rides
  • 3 days of kettlebells (15-20 min each)
  • Weekly yoga class
  • Daily dog walks
  • 4 days with intentional training
Aerobic (5h → 71)71 × 0.7 = 50
Strength (3 days → 90)90 × 0.3 = 27
Consistency (4 days)+6%
Variety (4 sports)+7%
ActivityScore87

Daily Minimalist

Short daily sessions, high consistency

69
  • 20 min zone 2 on bike trainer daily
  • 5 min kettlebells daily
  • Walking commute
  • 7 days active
Aerobic (2.3h → 44)44 × 0.7 = 31
Strength (7 days → 100)100 × 0.3 = 30
Consistency (7 days)+8%
Variety (3 sports)+5%
ActivityScore69

The Evolution of Fitness Metrics

TrainingPeaks and Andrew Coggan's Performance Management Chart—TSS, CTL, ATL—changed the industry. These concepts gave athletes and coaches a shared language for quantifying training load and managing fatigue. That was revolutionary.

But the PMC is trying to solve many problems at once: What is my fitness level? How much work should I be doing? Do I need recovery? It does most of those things reasonably well.

Except the worst one is fitness level.

The CTL model drives everyone toward the same approach: moderate-hard intensity with as many hours as possible. The number goes up, so it must be working. But this is rarely the best training approach for anyone.

Research over the past decade tells a different story. Zone 2 training. Polarized periodization. The 80/20 rule. Study after study shows that what CTL rewards is rarely optimal. What actually builds durable fitness is often smarter training, not more training.

Most of us intuitively know this: 10 hours of the right training beats 20 hours of sweetspot—even though CTL would tell you the 20 hours represents higher "fitness."

CTL doesn't promote balanced training. Full body strength is an important aspect of fitness and should be rewarded independently to recognize its importance. Look at an elite triathlete versus an elite cyclist. Most people would point to the triathlete as the picture of fitness—balanced, functional, durable. That's what fitness athletes aspire to. Not a single-sport specialist optimized for one output.

CTL Rewards

  • More hours = higher score
  • Higher intensity = higher score
  • Promotes intensity over quality
  • Rest weeks feel like failure

FitScore Rewards

  • Volume with realistic caps
  • Strength training
  • Showing up consistently
  • Doing different activities

A new standard for a new understanding of fitness.

*The Research

The 42-Day Model

FitScore uses the same exponential decay model as CTL. The ~42-day time constant for fitness adaptation is well-established in exercise science. We're not reinventing this wheel—we're changing what goes into it.

Banister Model Research →

Diminishing Returns Are Real

More isn't always better. The relationship between training volume and fitness follows a logarithmic curve—going from 5 to 10 hours produces massive gains, but 15 to 20 hours adds little. Even pros cap out around 25 hours because beyond that, adaptation stalls or reverses. CTL ignores this ceiling. FitScore doesn't.

Overtraining Syndrome Research →

Volume Builds Aerobic Fitness

Duration matters more than intensity. Polarized training research shows that 80% easy volume with 20% hard efforts outperforms intensity-focused approaches. More hours at lower intensity builds better aerobic engines than fewer hours at higher intensity—the opposite of what TSS rewards.

Frontiers in Physiology, 2014 →

The Problem with TSS

Intensity-based metrics don't predict performance. A 2025 study found that traditional fitness-fatigue models (CTL/TSS) have limited predictive validity for race performance. Training stress scores reward intensity over the volume that actually builds fitness.

Nature Scientific Reports, 2025 →

Strength Training Adds Years

Combined training beats cardio alone. Adding strength training twice weekly to aerobic exercise dropped mortality risk by 30%. This is why FitScore weights strength as 30% of your base score—it's independently important.

JAMA Internal Medicine, 2022 →

Variety Prevents Injury

Cross-training builds durability. Training multiple sports engages different muscle groups, reduces overuse injuries, and maintains fitness while allowing recovery. This is why FitScore rewards sport variety with up to a 7% bonus.

Sports Medicine, 2021 →

The Math

ActivityScore = Aerobic + Strength + Consistency + Variety

FitScore = 42-day rolling weighted average of ActivityScore

import math

def activity_score(aerobic_hours, strength_days, active_days, unique_sports):
    # Base scores (diminishing returns curves)
    aerobic = 100 * (1 - math.exp(-0.25 * aerobic_hours))
    strength = [0, 50, 75, 90, 100, 100, 100, 100][min(strength_days, 7)]

    # Weighted base (70% aerobic, 30% strength)
    base = (aerobic * 0.70) + (strength * 0.30)

    # Bonuses based on days active and sport variety
    consistency = [0, 0, 0.02, 0.04, 0.06, 0.08][min(active_days, 5)]
    variety = [0, 0, 0.03, 0.05, 0.07][min(unique_sports, 4)]

    return min(100, base * (1 + consistency + variety))

def fit_score(prev_fitscore, activity_score, days_elapsed):
    # 42-day exponential moving average (same math as CTL)
    decay = (1 - 1/42) ** days_elapsed
    return activity_score + (prev_fitscore - activity_score) * decay