GPS + motion surf-training data: per-session breakdown, accuracy tiers, ground-truth labeling, and trends
Apple Watch Sessions
Surflink turns Apple Watch sensor data into surf-training metrics. When an athlete records a session on the watch (or you import a GPX/HealthKit file), it lands in Manage → Wearable (/wearable) as a session you can open, analyse, and validate against footage.
Filming + watch session: start to finish
A watch capture and the footage you film are two signals for the same surf. The training session is the hub they both attach to. The full flow:
Before the surf
- Schedule it. Create the training session (
/training-sessions) with the athlete and start time. This is what links everything together later — no manual matching. - The athlete's iPhone quietly pushes their day's sessions to their Apple Watch, so the watch knows what's on even with no signal in the water.
At the start (athlete, on the watch) 3. Open Surflink on the watch and tap the scheduled session under Today (or Freestyle if nothing's scheduled), then Start Surf. This opens a real surfing workout (water lock, GPS, HR, motion) and pins the recording to that athlete and session from the first second.
During the surf (coach, on the iPhone) 4. Open the capture screen. It shows who's surfing now — athletes from in-progress training sessions plus anyone with a live watch session — and pre-selects the most likely one. Confirm or tap to switch athletes. 5. Film the rides. Each clip is stamped with its true start time and frame rate. When the selected athlete's watch is live, the clip is locked to that exact watch session immediately (deterministic), so footage and watch data are paired with no extra work.
At the end
6. The athlete taps End Session on the watch. The recording hands off to their iPhone and uploads to POST /api/wearable/sessions (offline-first — it retries until it lands).
7. Surflink finalises the watch session and finishes aligning it to the footage. The result shows up under the training session's Watch Data card and on the clip's insights.
Offline by design (e.g. Barbados): the schedule prior needs zero athlete connectivity, so filming still picks the right athlete even when the watch is fully offline. If the watch never pinged live, clips fall back to motion-correlation sync after upload.
Deleting a watch session
Watch data is coaching data, so only coaches/admins can delete a wearable session — athletes cannot remove their own. Use the trash control on a card in /wearable or the Delete button on a session page. Deleting removes the capture, its raw samples, and any event labels or video-sync links; linked footage is unaffected.
What gets captured
The watch streams a high-fidelity raw signal and we derive surf-specific metrics from it:
- GPS — speed, distance, and track (used for the map and per-wave speeds).
- Motion (IMU @ up to 100 Hz) — gravity-separated acceleration, rotation, and orientation. This is what powers pop-up, turn, G-force and airtime detection.
- Heart rate & calories — effort, HR zones, recovery (HRR60), and a training-load score.
- Environment — relative altitude and, on Ultra, best-effort water temperature.
The full raw signal is retained, so detectors can be re-run as they improve.
The session page
Open a session to see:
- Map + linked charts — the GPS track with a speed/HR chart; selecting a wave cross-highlights the map, chart, and timeline.
- Per-wave breakdown — speed, duration, peak G, turns, airtime, and pop-up time for each detected ride, with a dedicated motion chart per wave.
- Effort panel — HR zones, recovery, training load, paddle/ride/rest split, cadence, and calories.
- Coaching takeaways — rule-based, surf-specific pointers from the session's metrics.
Accuracy tiers (be honest about confidence)
Every session shows a confidence tier so you know how much to trust it:
- Tier 1 — Trust: validated against labels or high-quality signal.
- Tier 2 — Estimated: heuristic detection with good signal but no ground truth yet.
- Tier 3 — Beta / GPS-only: low signal (e.g. no motion data) — treat as indicative.
Absolute speed and distance are always GPS-bound (the wrist is often submerged); motion events (ride/pop-up/turn) get more accurate as labels accrue.
Ground-truth labeling (how accuracy improves)
Accuracy comes from telling the system what actually happened on film:
- On the session timeline, confirm, edit, or add ride starts/ends, pop-ups, and turns.
- These labels are stored as ground truth and used to measure detector precision/recall and auto-tune thresholds — globally and per athlete.
- Re-run detectors on an old session at any time to backfill it with the improved classifier.
The more sessions you label, the better detection gets for that athlete and the whole roster.
Trends
The Trends tab on /wearable rolls sessions up into trend charts (waves/session, top speed, ride time, calories, training load, paddle efficiency), personal bests, and a rolling training-load view. Use the per-athlete filter to focus on one surfer.
Wearable sessions respect the same access rules as the rest of Surflink: an athlete sees their own; you see your assigned athletes'.