Analysis data format

Analysis exports and the summary API

Overview and activity-detail exports use version: "activity-analytics-v1". This analysis format is distinct from the summary API's schema_version: 1. Reject unknown versions explicitly or request an update instead of silently interpreting them as an older schema.

Signed-in users obtain analysis exports from the console. The personal-token API still exposes activity summaries and CSV/JSON summary exports only. It does not grant analysis-detail, location or training-plan write access. Do not copy browser cookies or login tokens into third-party software.

Overview fields

FieldMeaning
analysisstatus is processing or ready; completed / total count analyzed and required originals
range / comparisonInclusive YYYY-MM-DD date intervals
sportSelected sport, or null for all
totals / previous_totalsSessions, active days, duration, distance, ascent and coverage counts
days / previous_daysConsecutive calendar days, including rest and explicit missing values
rowsSelected activity metrics with original activity UUIDs
zones_msTime in Z1–Z5, in milliseconds
heart_covered_msAll valid heart-rate time, including samples below Z1
recordsContinuous distance efforts, elevation by distance and sustained heart-rate/power peaks
fitness_historyRunning ability and cardio fitness with sources
efficiencyStable-window efficiency and aerobic decoupling

Seconds are seconds; meters and ascent_meters are metres. Pace fields use seconds per kilometre, heart rate uses bpm, and power uses watts. Cardio fitness and some recording fields use scaled x10 integers: convert according to each field name rather than dividing every number by ten.

Edwards, sRPE, CTL, ATL and balance have separate fields. Unknown values are null; rest-day load is zero. See Metric definitions. Distance or elevation totals may include only covered activities, so inspect their coverage counts too.

Activity-detail fields

Activity contains the saved summary and training content; summary contains analysis metrics. Recording, sensor_analysis, energy and outdoor are supplied when supported.

Each series has key, unit and points. Points are [active_ms, value | null]. Active time is milliseconds of activity, not UTC time. Null breaks the signal and must not be interpolated or filled forward.

Segments are separate route lines with points [longitude, latitude, active_ms]; coordinates are decimal degrees. Never connect separate segments. Map and chart points are reduced for display and are not a raw archive or a source for maximum-precision record calculations.

Split interval indices match activity splits and start at 1. For distance records, target is metres and value is seconds. For heart-rate/power records, target is window duration in seconds and value is bpm/W respectively. Elevation target and value both use metres. Start_ms locates the activity window.

While analysis.status is processing, only saved summaries and completed derivations are available. Unfinished fields are not evidence of permanently missing data. The page refreshes automatically; export again after completion for a full snapshot. Series keys ending in _estimate distinguish motion-sensor estimates from device-reported gait.

Handling exports

Analysis JSON can contain locations, training and physiological measurements. Use trusted tools and limit retention and sharing to your purpose. PNG and print exports may also reveal dates and training information. Every download is a snapshot; later sync, calibration or filter changes do not update it.

Updated