Getting Started with SwimAnalytics

Your complete guide to tracking swimming performance, CSS testing, and training load analytics

Welcome to Data-Driven Swimming

SwimAnalytics transforms your swimming workouts into actionable insights using Critical Swim Speed (CSS), Training Stress Score (sTSS), and Performance Management Chart (PMC) metrics. This guide will take you from first setup to advanced training load analysis in 4 simple steps.

Quick Start (5 Minutes)

1

Download & Install

Download SwimAnalytics from the App Store and grant permission to access Apple Health. The app syncs swimming workouts automatically—no manual logging required.

Download App →
2

Perform CSS Test

Complete a 400m and 200m time trial to establish your Critical Swim Speed. This is the foundation of all metrics—without CSS, sTSS and training zones cannot be calculated.

CSS Test Protocol ↓
3

Enter CSS Results

Input your 400m and 200m times in the app. SwimAnalytics calculates CSS, pace zones, and personalizes all metrics to your physiology. Update every 6-8 weeks as fitness improves.

4

Start Tracking Workouts

Swim with Apple Watch and Health app. SwimAnalytics automatically imports workouts, calculates sTSS, updates CTL/ATL/TSB, and tracks progress. No manual data entry needed.

Complete CSS Testing Protocol

📋 What You Need

  • Pool access: 25m or 50m pool (25yd acceptable)
  • Timing: Stopwatch, pace clock, or Apple Watch
  • Warm-up time: 15-20 minutes before test
  • Recovery: 5-10 minutes between trials
  • Effort: Maximum sustainable pace (not all-out sprint)

⏱️ Test Day Conditions

  • Rested: No hard training 24-48 hours before
  • Hydrated: Well-hydrated, normal eating
  • Pool temp: 26-28°C ideal (avoid very cold/warm)
  • Time of day: When you normally train best
  • Equipment: Same as training (goggles, cap, suit)

Step-by-Step CSS Test

Warm-up

15-20 minutes

400-800m easy swimming, drills, and progressive build-ups. Include 2-3×50 at increasing pace (60%, 75%, 85% effort). Rest 2-3 minutes before test.

Trial 1

400m Maximum Effort

Push start (no dive). Swim 400m at the fastest pace you can sustain for the full distance. This is NOT a sprint—pace yourself. Record time in mm:ss format (e.g., 6:08).

Pacing tip: Aim for even 100m splits. Second 200m should be ≤ first 200m (negative split ideal).
Recovery

5-10 minutes

CRITICAL PHASE: Easy swimming or complete rest. Wait until heart rate drops below 120 bpm and breathing fully recovered. Insufficient recovery = inaccurate CSS.

Trial 2

200m Maximum Effort

Push start (no dive). Maximum sustainable effort for 200m. This should feel harder per 100m than the 400m. Record time in mm:ss format (e.g., 2:30).

Validation check: 200m pace/100m should be 3-6 seconds faster than 400m pace/100m. If not, recovery was insufficient or pacing was off.
Cool-down

10-15 minutes

300-500m easy swimming, stretching. Record your times immediately—don't trust memory.

⚠️ Common CSS Test Mistakes

  • Going out too fast on 400m: Results in blowup, inaccurate CSS. Use even pacing.
  • Insufficient recovery between trials: Fatigue slows 200m, making CSS artificially fast → overtrained zones.
  • Using dive starts: Adds 0.5-1.5s advantage, skewing calculations. Always push from wall.
  • Testing when fatigued: Heavy training load 24-48h before = depressed results. Test when fresh.
  • Not recording immediately: Memory is unreliable. Write times down before cool-down.

Entering CSS Results in SwimAnalytics

Step 1: Open CSS Settings

In SwimAnalytics app, go to Settings → Critical Swim Speed. Tap "Perform CSS Test" or "Update CSS".

Step 2: Input Times

Enter your 400m time (e.g., 6:08) and 200m time (e.g., 2:30). Use the exact format shown. Tap "Calculate".

Step 3: Review Results

App displays:

  • CSS speed: 0.917 m/s
  • CSS pace: 1:49/100m
  • Training zones: 7 personalized zones (Zone 1-7)
  • sTSS baseline: Now enabled for all workouts

Step 4: Save & Sync

Tap "Save CSS". The app immediately:

  • Recalculates training zones
  • Retroactively updates sTSS for past 90 days
  • Adjusts CTL/ATL/TSB calculations
  • Enables zone-based workout analysis

💡 Pro Tip: Historical CSS Testing

If you already know your CSS from previous tests, you can input those times directly. However, for most accurate results, perform a fresh test every 6-8 weeks. Your CSS should improve (get faster) as training progresses.

Understanding Your Metrics

Critical Swim Speed (CSS)

What it is: Your aerobic threshold pace—the fastest speed you can sustain for ~30 minutes without exhaustion.

What it means: CSS = 1:49/100m means you can hold 1:49 pace for sustained threshold efforts.

How to use: Basis for all training zones and sTSS calculation. Update every 6-8 weeks.

Learn CSS →

Training Zones

What they are: 7 intensity ranges based on your CSS, from recovery (Zone 1) to sprint (Zone 7).

What they mean: Each zone targets specific physiological adaptations (aerobic base, threshold, VO₂max).

How to use: Follow zone prescriptions for structured training. App shows time-in-zone for each workout.

Training Zones →

Swimming Training Stress Score (sTSS)

What it is: Quantified workout stress combining intensity and duration. 1 hour at CSS pace = 100 sTSS.

What it means: sTSS 50 = easy recovery, sTSS 100 = moderate, sTSS 200+ = very hard session.

How to use: Track daily/weekly sTSS to manage training load. Aim for 5-10 sTSS increase per week max.

sTSS Guide →

CTL / ATL / TSB

What they are:

  • CTL: Chronic Training Load (fitness) - 42-day average sTSS
  • ATL: Acute Training Load (fatigue) - 7-day average sTSS
  • TSB: Training Stress Balance (form) = CTL - ATL

How to use: Positive TSB = fresh/tapered, negative TSB = fatigued. Race when TSB = +5 to +25.

📊 Your First Week Goals

After entering CSS and completing 3-5 workouts:

  • Check sTSS values: Confirm they match effort perception (easy ~50, moderate ~100, hard ~150+)
  • Review zone distribution: Are you spending 60-70% in Zone 2 (aerobic base)?
  • Establish baseline CTL: Your first week's average sTSS becomes initial fitness baseline
  • Identify patterns: Which workouts generate highest sTSS? Are you recovering adequately?

Typical User Journey (First 8 Weeks)

Week 1-2: Establish Baseline

  • Perform CSS test and enter results
  • Complete 3-5 normal training workouts
  • Observe sTSS values and zone distribution
  • Establish initial CTL (fitness level)
  • Goal: Understand metrics, no changes yet

Week 3-4: Apply Zones

  • Use CSS zones in workout planning
  • Intentionally swim Zone 2 for aerobic sets
  • Track weekly sTSS totals (aim for consistency)
  • Monitor TSB (should be slightly negative = training)
  • Goal: Train by zones, not feel

Week 5-6: Progressive Overload

  • Increase weekly sTSS by 5-10% from baseline
  • Add 1 threshold (Zone 4) session per week
  • CTL should gradually rise (fitness improving)
  • ATL may spike on hard weeks (normal)
  • Goal: Controlled fitness progression

Week 7-8: Retest & Adjust

  • Perform second CSS test (should be faster)
  • Update zones in app (pace improves)
  • Compare CTL Week 1 vs Week 8 (should be +10-20)
  • Review progress: Are times dropping? Feel easier?
  • Goal: Validate training effectiveness

✅ Success Indicators

After 8 weeks of structured training with SwimAnalytics, you should see:

  • CSS improvement: 1-3% faster CSS pace (e.g., 1:49 → 1:47)
  • CTL increase: +15-25 points (e.g., 30 → 50 CTL)
  • Consistent sTSS: Weekly totals within 10-15% variance
  • Better pacing: More even splits, better effort calibration
  • Improved recovery: TSB cycles predictably (-10 to +5)

Troubleshooting & FAQs

My sTSS seems too high/low for workout effort

Cause: CSS is outdated or inaccurate.

Solution: Retest CSS. If you tested when fatigued or paced poorly, CSS will be wrong. A proper CSS test is critical for all downstream metrics.

App shows "No CSS configured"

Cause: CSS test not completed or not saved.

Solution: Go to Settings → Critical Swim Speed → Perform Test. Enter both 400m and 200m times, then tap Save.

Workouts not syncing from Apple Watch

Cause: Health app permissions not granted or workout not categorized as "Swimming".

Solution: Check Settings → Privacy → Health → SwimAnalytics → Allow Read for Workouts. Ensure Apple Watch workout type is "Pool Swim" or "Open Water Swim".

CTL not increasing despite consistent training

Cause: sTSS totals too low or inconsistent frequency.

Solution: CTL is 42-day exponentially weighted average. It rises slowly. Increase weekly sTSS by 5-10%, and maintain 4+ workouts/week for consistent CTL growth.

How often should I retest CSS?

Recommendation: Every 6-8 weeks during base/build phases. Retest after illness, injury, long break, or when zones feel consistently too easy/hard.

Can I use SwimAnalytics for other strokes?

Yes, with limitations: CSS is typically tested in freestyle. For IM/backstroke/breaststroke workouts, sTSS is calculated based on freestyle CSS. Consider performing stroke-specific CSS tests for more accuracy.

Next Steps

Learn Training Zones

Understand how to train in Zone 2 (aerobic base), Zone 4 (threshold), and Zone 5 (VO₂max) for specific adaptations.

Training Zones →

Calculate sTSS

Use our free sTSS calculator to understand training load before committing to workouts.

sTSS Calculator →

Dive Deeper into Metrics

Explore the science behind CSS, sTSS, CTL/ATL/TSB with peer-reviewed research references.

Research →

Ready to start tracking?

Download SwimAnalytics Free

7-day free trial • No credit card required • iOS 16+