RowingStrokes

Analyze your rowing data at your chosen sampling rate

Profile
πŸ“ Drop your CSV file here
or click to browse
⏳ Processing your data...
Session rowing data
Stroke Rate
Heart Rate
GPS Speed
Accel Surge (+ve Fwd)
Filtered Accel Surge
Accel Sway (+ve Stb)
Accel Heave (+ve g Up)
Meters/Stroke
Speed/SPM Ratio
Stroke Analysis

βš™οΈ Stroke Detection Settings

🚣 Stroke Overlay

- -
Strokes Post-processing
Stroke Rate
Heart Rate
GPS Speed
Accel Surge (+ve Fwd)
Accel Sway (+ve Stbd)
Accel Heave (+ve Up)
Filtered Accel Surge (iOS App)
SpeedCoachGPS data comparison
Stroke Rate
Heart Rate
GPS Speed
Accel Surge (+ve Fwd)
Filtered Accel Surge
Meters/Stroke
Speed/SPM Ratio
Accel Sway (+ve Stb)
Accel Heave (+ve g Up)

Stroke Analysis Tutorial

This dashboard breaks down your rowing into three dimensions: Technique (Efficiency), Power (Work), and Outcome (Speed). Use these 7 metrics to diagnose your stroke.

The 7 Key Metrics

Metric What It Measures The Physics Goal Interpretation & Coaching
1. Drive Impulse
(Propulsion)
The "Engine"
Total work (positive accel area) during drive
Measures velocity added by pushing, excluding drag. Your "engine size." MAXIMIZE
(Higher better)
β€’ High: Force over long, effective distance.
β€’ Low: "Washing out" or missing connection.
β€’ Low Rate + High Impulse = efficient power.
2. Braking Force
(Recovery & Catch)
The "Brake"
Deepest negative accel spike at Catch
Rush the slide β†’ slam into footplate β†’ momentum against boat = anchor MINIMIZE
(Closer to 0)
β€’ High (-2.9 m/sΒ²): "Crashing the catch." Slow down last 3 inches.
β€’ Low (-1.0 m/sΒ²): Floating into catch smoothly.
3. Check Phase
(Catch Efficiency)
The "Decel Zone"
% of stroke spent decelerating around catch
Negative acceleration zone around catch. Defined by zero-crossings of filtered accel. Shorter = faster momentum reversal. MINIMIZE
(Lower %)
β€’ Low (<30%): Quick, efficient catch — boat barely slows.
β€’ High (>45%): Long deceleration — rushing the slide or slow blade entry.
β€’ Correlates with Braking Force: fix the catch, both improve.
4. Relative Speed
(Efficiency)
The "Rhythm"
Speed fluctuation per stroke (Vmax-Vmin)
Constant speed = efficient. Stop-and-start wastes energy. CONSISTENT
(Flat line)
β€’ Spiky graph: Inconsistent recovery rhythm.
β€’ High value: Checking boat or rushing.
β€’ Flat during sprint = technique holding up.
5. Composite Speed
(Speed Profile)
The "Full Picture"
Actual boat speed within each stroke
GPS avg + accel-derived variation. Orange dots mark check phase boundaries (zero-crossings around catch) — the zone where the boat decelerates. Green dots mark the catch (min speed). MINIMIZE
CHECK LOSS

(Shallow dip)
β€’ Shallow dip: Smooth catch, body deceleration absorbed — boat keeps running.
β€’ Deep dip: Crashing into footplate, large speed loss. Slow the last 3 inches of the slide.
β€’ The check phase is the #1 lever for efficiency. A 0.5 m/s smaller dip at 30 SPM saves ~15s over 2000m.
6. Normalized Rel. Speed
(Efficiency Index)
The "Technique Test"
Fluctuation as % of avg speed
Removes speed factor. Compare 20 SPM vs 30 SPM fairly. Raw efficiency score. KEEP FLAT
(or minimize)
β€’ <15%: Elite efficiency.
β€’ 15-20%: Good club level.
β€’ >20%: Checking the boat.
β€’ Key: Rel.Speed↑ + Norm↔ = just faster. Both↑ = losing efficiency.
7. Meters/Stroke
(Distance)
The "Length"
Distance per stroke cycle
Ultimate efficiency measure. Hard pull + blade slip = drops. MAXIMIZE
(For given rate)
β€’ High (>8m): Effective blade work, clean run-out.
β€’ Low: "Spinning wheels" - short or checking.
β€’ Test: Same Rate + dropping Distance = fatigue.
8. Avg Speed
(Pace)
The "Race Pace"
Mean velocity per stroke
Your /500m split. Product of Rate Γ— Distance. MAXIMIZE
(Wins races)
β€’ Flat line: Perfect steady-state.
β€’ The Trap: Rate up but Speed flat = Distance crashed. Just rushing!

Quick Diagnostic: The "Speed Equation"

Use the metrics together to find your rower profile:

  • "The Log": Low Braking + Low Impulse = Paddling β†’ Push harder.
  • "The Crash": High Braking + High Impulse = Wasted Energy β†’ Fix your catch.
  • "The Glider": Low Rate + High Distance = Great Base β†’ Perfect steady state.
  • "Washing Machine": High Rate + Low Distance = Inefficient β†’ Slow down & lengthen.
  • "Heavy Water": High Impulse + Small Speed Bump = Efficiency Gap β†’ Drag eating energy. Check: crashing catch? blades too deep?

Understanding the Chart Markers

  • Green dots = Catch position (minimum acceleration / minimum velocity)
  • Orange dots = Check phase boundaries (zero-crossings around catch)
  • Red dots = PostProcessing stroke markers
  • Blue dots = iOS app stroke detection markers (for comparison)

KPIs & Math Reference

Underlying Physics

All stroke-level KPIs are derived from one key insight: an accelerometer on the boat measures the boat's acceleration along its surge axis (forward/backward). By integrating this signal over one stroke cycle (catch to catch), we recover the relative velocity profile — how the boat speed varies within each stroke.

Because accelerometer drift would cause the integrated velocity to diverge, we apply drift compensation: over one complete stroke cycle, net velocity change must be zero (the boat returns to the same periodic state). So we subtract the mean acceleration bias before integrating:

Mean bias:ā = (∫ a(t) dt) / ΔT
Corrected acceleration:  a'(t) = a(t) − ā
Relative velocity:  Δv(t) = ∫0t a'(τ) dτ  (starts at 0)
Composite velocity:  Vcomp(t) = Vavg + (Δv(t) − Δv)  (GPS avg + centered variation)

Session-Level Metrics (from CSV data)

KPI Unit Source Meaning
GPS Speed km/h GPS Boat speed over ground
Stroke Rate (SPM) strokes/min Stroke detection Rowing cadence
Heart Rate BPM Bluetooth HR monitor Physiological effort
Meters/Stroke m GPS distance ÷ strokes Distance efficiency — higher = better blade work
Speed/SPM Ratio (km/h)/SPM × 200 Derived Pace efficiency — higher = more distance per stroke at a given rate
Accel Surge m/s² Accelerometer Forward (+) / backward (−) boat acceleration
Accel Sway m/s² Accelerometer Starboard (+) / port (−) lateral acceleration
Accel Heave m/s² Accelerometer Upward (+) / downward (−) vertical acceleration

Stroke-Level KPIs (Post-Processing)

These are computed per stroke after stroke detection. They appear in the Post-Processing charts below the Stroke Overlay.

KPI Category Formula What it measures & interpretation
Composite Speed
(Vavg + Δv)
Efficiency
Vcomp(t) = Vavg + (Δv(t) − Δv)
Actual boat speed profile. Combines the GPS stroke-average speed (absolute reference) with the accelerometer-derived intra-stroke variation (centered around Vavg).
Orange dots mark the check phase boundaries (zero-crossings of filtered acceleration around catch). Green dots mark the catch (minimum speed). The check phase is the deceleration zone between the orange dots — minimizing speed loss here is the single most impactful technique improvement.
Typical range: 3–6 m/s. A shallow speed dip = smooth catch. A deep dip = crashing the catch.
Impulse
(Drive Phase)
Power
I = ∫0tVmax max(0, a'(t)) dt
Total propulsive impulse during drive. Integrates only positive (forward) corrected acceleration from catch to the point of maximum velocity (finish/extraction).
Higher = more effective power application, better connection with the water.
Low = washing out (blade slipping) or missing connection at catch. Drops when tired = losing effectiveness.
Braking Force
(min accel at catch)
Technique
BF = min( a'(t) )
Catch quality. At the catch, the rower's body mass decelerates and pushes against the footplate, momentarily slowing the boat.
Closer to 0 = smoother, softer catch (good).
Large negative = "crashing" into the footplate (bad).
A skilled rower times blade entry to minimize this braking impulse.
Check Phase
(% of stroke)
Technique
CP% = tcheck / tstroke × 100
Time spent decelerating around catch. The check phase is the negative acceleration zone bounded by zero-crossings of filtered surge acceleration. Stroke defined from after-catch zero-crossing to the next.
Lower % = quick, efficient catch with minimal boat deceleration.
Higher % = long deceleration phase, typically from rushing the slide or slow blade entry.
Relative Speed
(Check Factor)
Efficiency
CF = Vmax − Vmin
Speed fluctuation per stroke. The boat accelerates during the drive and decelerates during the recovery — this captures the amplitude of that oscillation.
Lower = smoother boat run, more even power application.
Higher = jerky, inconsistent rhythm. Lightweight boats (singles/pairs) naturally have higher values than eights.
Normalized Rel. Speed Efficiency
CFnorm = CF / Vavg
Speed fluctuation relative to boat speed. Normalizes the check factor so you can compare across different paces.
Flat line during rate changes or sprints = technique holds up under pressure.
Rising values = technique deteriorating as fatigue or rate increases.
Meters/Stroke
(Post-Process)
Efficiency
GPS distance per
stroke cycle
Distance per stroke. The ultimate efficiency measure.
Higher = effective blade work, clean run-out.
Drops when tired = technique failing under fatigue.
Stroke Avg Speed Pace
Vavg = mean(GPS vel.)
Race pace stroke by stroke. Mean boat velocity for each stroke.
Flat line = perfect steady-state rowing.
Goes up with increased rate OR more effective strokes.

Stroke Overlay Charts

Chart Description
Acceleration Overlay All detected strokes superimposed on the same time axis (each starting at t=0). Average stroke in red, individual strokes in semi-transparent blue. Shows the acceleration pattern: positive peak (drive), negative trough (catch/recovery).
Speed (Composite) Overlay Same superposition but showing the composite speed (GPS avg + centered Δv) for each stroke. Y-axis shows actual boat speed in m/s. Average drawn behind (thicker red line), individual strokes on top. Shows the speed profile: rises during drive to peak speed, then drops through the check phase (recovery → catch) to minimum speed.

Stroke Detection Methods

Method Algorithm Key Parameters
GT Method SMA-filtered surge exceeds threshold, with hysteresis reset at 50% Threshold (m/s²), SMA window (samples), Refractory period (s)
Zero-Cross (Raw) Raw surge acceleration crosses zero from negative to positive (= catch) Refractory period (s)
Zero-Cross (EKF) Same as Raw but with Extended Kalman Filter smoothing applied first Refractory period (s) + EKF noise parameters