Effort Pace uses pace semantics (min/km), not speed semantics (m/s). Its average, minimum, maximum, and unit-variant metric types follow paceUnits.
Sports Lib currently exposes a broad metric surface from the public data barrel (src/data/index.ts) and concrete data classes (static type declarations).
src/data/index.tsData*.type) from exported Data classes... in ...)The library exposes these metrics through streams, stats, laps/events, and event summaries.
Canonical type strings are the same values used by ActivityParsingOptions.streams.includeTypes.
Some legacy metric types include intentional whitespace in their token (for example Steps), so copy tokens exactly.
Time metric semantics:
Duration (unit: s): active duration (timer time).Timer time (unit: s): explicit timer/active time.Elapsed time (unit: s): wall-clock elapsed time (includes pauses).Pause Time (unit: s): explicit paused time, computed as max(ElapsedTime - TimerTime, 0).Moving time (unit: s): movement-only time; separate from pause semantics.High-level metric domains include:
The following formulas describe how missing streams/stats are computed in:
src/events/utilities/activity.utilities.tssrc/events/utilities/grade-calculator/grade-calculator.tssrc/events/utilities/helpers.tsDistance[t] = Distance[t-1] + geodesic(Position[t-1], Position[t])
Speed[t] = (Distance[t] - Distance[t-1]) / deltaTimeSeconds
Pace (sec/km) = 1000 / Speed(m/s)
Swim Pace (sec/100m) = 100 / Speed(m/s)
AltitudeSmooth = medianFilter(11) -> lowPassFilter
Grade(%) = clamp((deltaAltitude / deltaDistance) * 100, -50, +50)
with lookAheadDistance = 10 m, rounded to 0.1
GradeSmooth = KalmanFilter(R=0.01, Q=0.5) over Grade
GradeAdjustedSpeed = Speed * (kA + kB*g + kC*g^2 + kD*g^3 + kE*g^4 + kF*g^5)
where:
kA=1
kB=0.029290920646623777
kC=0.0018083953212790634
kD=4.0662425671715924e-7
kE=-3.686186584867523e-7
kF=-2.6628107325930747e-9
GradeAdjustedPace = 1000 / GradeAdjustedSpeed
PowerRight = Power * (RightBalance / 100)
PowerLeft = Power * (LeftBalance / 100)
StanceTimeBalanceRight = 100 - StanceTimeBalanceLeft
Average = sum(filteredFiniteValues) / count
Maximum = max(filteredFiniteValues)
Minimum = min(filteredFiniteValues)
Ascent/Loss uses thresholded step accumulation (default minDiff = 2):
- Gain: accumulate positive deltas when previous + minDiff <= next
- Loss: accumulate negative deltas when previous - minDiff >= next
Grade Smooth when present.NormalizedPower (NP):
- Build ~30s buffered means from power-by-time samples
- Raise each mean to the 4th power
NP = 4th_root(average(mean30s^4))
PowerCurve(duration d): max rolling mean power over window d
FTP = round(0.95 * best_20min_power)
IF = NP / FTP
Critical Power model (Monod-Scherrer on duration 180..1200s):
x = 1 / timeSeconds
y = power
slope = (n*sumXY - sumX*sumY) / (n*sumXX - sumX^2) = W'
intercept = (sumY - slope*sumX) / n = CP
samplePowerCurveAtDuration samples exact points or interpolates in reciprocal-duration (1/t) space. Interpolation
requires neighboring durations within the default 1.25 ratio (configurable up to the hard maximum of 2), keeps the
strongest duplicate, and never extrapolates. comparePowerCurveWindows reports recent/reference retention percentage
and its percentage-point delta from 100 while normalizing each input curve only once.
Durability Evidence is a compact, versioned activity stat. Running, cycling/MTB, and open-water evidence compares
output/heart-rate efficiency across fixed early and late time halves after warm-up/cool-down exclusion. Pool evidence
compares the outer thirds of like-for-like active lengths using the dominant stroke and pool length. Timelines and source
streams are never stored in the stat; a deterministic protocol-input fingerprint invalidates stale evidence, and
ineligible activities retain an explicit reason and coverage instead of zero values.
Three Dimensional Strain Evidence is a compact, versioned activity stat generated from an activity's own recorded
power and mean-max power curve. It is available for cycling/MTB and running/trail-running activities with power data.
The stat stores the fitted CP/W′/Pmax parameters, fit quality, coverage, status, and the total/CP/W′/Pmax strain
components when the source passes its quality gates. Missing power, insufficient coverage, inadequate duration range,
poor fits, and power above fitted Pmax retain an explicit reason rather than a zero score. It does not replace FTP,
CriticalPower, WPrime, or Maximum Power; it is excluded from event summaries and stores no source stream or
timeline.
Three-dimensional impulse-response utilities:
fitThreeParameterCriticalPowerModel fits the Morton three-parameter power-duration model from a mean-max curve,
returning CP, W′, Pmax, fit quality, and convergence state. It needs several distinct maximal-duration efforts; a
mathematically successful fit is not proof those efforts represent current capacity.calculateThreeDimensionalStrain takes continuous power plus those externally chosen model parameters. It uses W′
balance, maximum power available (MPA), and the CP/W′/Pmax power allocation to return total strain and the three
components. It never fills missing power samples: insufficient coverage, missing power, and power above Pmax leave
scores unavailable.wPrimeBalanceTiming: 'after-sample'; consumers must persist both choices. When observed power exceeds MPA, the
strain calculation floors MPA at observed power so the strain coefficient remains at or below one.calculateThreeDimensionalImpulseResponse applies independent exponential fitness-fatigue responses to the three
strain series. It does not infer individual gains or time constants. Fit and validate those parameters against held-out
CP, W′, and Pmax observations before showing predictive athlete-facing conclusions.SWOLF(poolLength) = round((secondsPerMeter + strokesPerMeter) * poolLength, 1)
where:
secondsPerMeter = (secondsPer100m / 100)
strokesPerMeter = ((strokesPerMinute * (secondsPer100m / 60)) / 100)
PowerWork(kJ) = round((AveragePower * MovingTimeSeconds) / 1000)
BatteryConsumption = max(BatteryCharge) - min(BatteryCharge)
BatteryLifeEstimation = ((activityDurationSeconds * 100) / BatteryConsumption)
Generated from modules re-exported by src/data/index.ts, then resolved to each module's concrete static type declarations.
Steps (leading space intentionally preserved; legacy alias)Absolute Pressure (unit: hpa)Accumulated Power (unit: watts)Active LapActive LengthsActivity TypesAerobic Training EffectAge (unit: years)Air Power (unit: watt)Alti Baro ProfileAltitude (unit: m)Altitude (Stryd)Altitude GPS (unit: m)Altitude SmoothAnaerobic Training EffectAscentAscent TimeAuto LapAuto Lap Distance (unit: m)Auto Lap DurationAuto PauseBattery Charge (unit: %)Battery Consumption (unit: %)Battery Current (unit: mA)Battery Life Est.Battery Voltage (unit: V)Beginning Potential Stamina (unit: %)Bike PodCadence (unit: rpm)CriticalPowerCycling Avg Seated Power (unit: watt)Cycling Avg Standing Power (unit: watt)Cycling Max Seated Power (unit: watt)Cycling Max Standing Power (unit: watt)Cycling Seated Time (unit: s)Cycling Standing Time (unit: s)Depth (unit: m)DescentDescent TimeDescriptionDevice LocationDevice NamesDistance (unit: m)Distance (Stryd)Durability EvidenceDuration (unit: s)Elapsed time (unit: s)Effort PaceEHPEEnabled Navigation SystemsEnd AltitudeEnd PositionEnding Potential Stamina (unit: %)Energy (unit: KCal)EPOC (unit: ml/kg)Est Sweat Loss (unit: ml)EVPEFeelingFitness Age (unit: years)FlowFoot PodForm PowerFTPFused AltitudeFused LocationGenderGNSS DistanceGradeGrade Adjusted Pace (unit: min/km)Grade Adjusted SpeedGrade SmoothGritGround Contact Time (unit: ms)Ground Contact Time Balance LeftGround Contact Time Balance RightGround Time (unit: ms)Heart Rate (unit: bpm)Heart Rate UsedHeight (unit: m)IBI (unit: ms)Impact Loading Rate Balance LeftImpact Loading Rate Balance RightJump CountJump DistanceJump EventJump ScoreLatitude (unit: degrees)Left Pedal Smoothness (unit: %)Left Torque Effectiveness (unit: %)Leg Spring Stiffness (unit: "KN/m")Leg Spring Stiffness Balance LeftLeg Spring Stiffness Balance RightLeg Stiffness (unit: "KN/m")Longitude (unit: degrees)Moving timeNumber of SamplesNumber of SatellitesPace (unit: min/km)Pause TimePeak EPOCPeak Training EffectPool Length (unit: m)PositionPower (unit: watt)Power Balance LeftPower Balance RightPower Down EventPower Intensity FactorPower LeftPower NormalizedPower Pedal Smoothness LeftPower Pedal Smoothness RightPower PodPower RightPower Torque Effectiveness LeftPower Torque Effectiveness RightPower Up EventPower Work (unit: kJ)PowerCurvePowerWattsPerKgPotential Stamina (unit: %)Primary BenefitRated Perceived ExertionRecovery TimeResting Calories (unit: kcal)Rider Position Change EventRight Pedal Smoothness (unit: %)Right Torque Effectiveness (unit: %)RotationsSatellite 5 Best SNRSea Level Pressure (unit: hpa)Speed (unit: m/s)Speed (Stryd)Sport Profile NameStamina (unit: %)Stance Time (unit: ms)Stance Time Balance LeftStance Time Balance RightStart EventStart PositionStarting AltitudeStep LengthStepsStop ALL EventStop EventSwim Pace (unit: min/100m)Temperature (unit: °C)TimeTimer timeThree Dimensional Strain EvidenceTotal CyclesTotal FlowTotal GritTraining Load PeakTraining Stress ScoreTraining Stress Score MethodVertical Oscillation (unit: mm)Vertical Oscillation Balance LeftVertical Oscillation Balance RightVertical Ratio (unit: %)Vertical Speed (unit: m/s)VO2 MaxWeight (unit: kg)WPrimeDistance TargetHeart Rate Zone Five DurationHeart Rate Zone Four DurationHeart Rate Zone One DurationHeart Rate Zone Seven DurationHeart Rate Zone Six DurationHeart Rate Zone TargetHeart Rate Zone Three DurationHeart Rate Zone Two DurationPower Zone Five DurationPower Zone Four DurationPower Zone One DurationPower Zone Seven DurationPower Zone Six DurationPower Zone TargetPower Zone Three DurationPower Zone Two DurationSpeed Zone Five DurationSpeed Zone Four DurationSpeed Zone One DurationSpeed Zone Seven DurationSpeed Zone Six DurationSpeed Zone TargetSpeed Zone Three DurationSpeed Zone Two DurationTime TargetAverage Absolute PressureAverage Air PowerAverage AltitudeAverage CadenceAverage Effort PaceAverage Effort Pace in minutes per mileAverage EHPEAverage EVPEAverage FlowAverage Grade Adjusted PaceAverage Grade Adjusted Pace in minutes per mile (unit: min/m)Average Grade Adjusted SpeedAverage Grade Adjusted Speed in feet per minuteAverage Grade Adjusted Speed in feet per secondAverage Grade Adjusted Speed in kilometers per hourAverage Grade Adjusted Speed in knotsAverage Grade Adjusted Speed in meters per minuteAverage Grade Adjusted Speed in miles per hourAverage GritAverage Ground Contact Time (unit: ms)Average Heart RateAverage Jump DistanceAverage Jump Hang TimeAverage Jump Height (unit: m)Average Jump RotationsAverage Jump ScoreAverage Jump SpeedAverage jump speed in feet per minuteAverage jump speed in feet per secondAverage jump speed in kilometers per hourAverage jump speed in knotsAverage jump speed in meters per minuteAverage jump speed in miles per hourAverage Number of SatellitesAverage PaceAverage pace in minutes per mileAverage PowerAverage Potential Stamina (unit: %)Average Respiration Rate (unit: br/min)Average Satellite 5 Best SNRAverage SpeedAverage Stamina (unit: %)Average speed in feet per minuteAverage speed in feet per secondAverage speed in kilometers per hourAverage speed in knotsAverage speed in meters per minuteAverage speed in miles per hourAverage Stride LengthAverage Stroke CountAverage Stroke DistanceAverage Swim PaceAverage swim pace in minutes per 100 yardAverage SWOLF 25mAverage SWOLF 50mAverage TemperatureAverage VAM (unit: m/h)Average Vertical Oscillation (unit: mm)Average Vertical SpeedAverage vertical speed in feet per hourAverage vertical speed in feet per minuteAverage vertical speed in feet per secondAverage vertical speed in kilometers per hourAverage vertical speed in meters per hourAverage vertical speed in meters per minuteAverage vertical speed in miles per hourMaximum Absolute PressureMaximum Air PowerMaximum AltitudeMaximum CadenceMaximum Depth (unit: m)Maximum Effort PaceMaximum Effort Pace in minutes per mileMaximum EHPEMaximum EVPEMaximum Grade Adjusted PaceMaximum Grade Adjusted Pace in minutes per mile (unit: min/m)Maximum Grade Adjusted SpeedMaximum Grade Adjusted Speed in feet per minuteMaximum Grade Adjusted Speed in feet per secondMaximum Grade Adjusted Speed in kilometers per hourMaximum Grade Adjusted Speed in knotsMaximum Grade Adjusted Speed in meters per minuteMaximum Grade Adjusted Speed in miles per hourMaximum Ground Contact Time (unit: ms)Maximum Heart RateMaximum HR Setting (unit: bpm)Maximum Jump DistanceMaximum Jump Hang TimeMaximum Jump Height (unit: m)Maximum Jump RotationsMaximum Jump ScoreMaximum Jump SpeedMaximum jump speed in feet per minuteMaximum jump speed in feet per secondMaximum jump speed in kilometers per hourMaximum jump speed in knotsMaximum jump speed in meters per minuteMaximum jump speed in miles per hourMaximum Number of SatellitesMaximum PaceMaximum pace in minutes per mileMaximum PowerMaximum Potential Stamina (unit: %)Maximum Respiration Rate (unit: br/min)Maximum Satellite 5 Best SNRMaximum SpeedMaximum Stamina (unit: %)Maximum speed in feet per minuteMaximum speed in feet per secondMaximum speed in kilometers per hourMaximum speed in knotsMaximum speed in meters per minuteMaximum speed in miles per hourMaximum Swim PaceMaximum swim pace in minutes per 100 yardMaximum TemperatureMaximum Vertical Oscillation (unit: mm)Maximum Vertical SpeedMaximum vertical speed in feet per hourMaximum vertical speed in feet per minuteMaximum vertical speed in feet per secondMaximum vertical speed in kilometers per hourMaximum vertical speed in meters per hourMaximum vertical speed in meters per minuteMaximum vertical speed in miles per hourMinimum Absolute PressureMinimum Air PowerMinimum AltitudeMinimum CadenceMinimum Effort PaceMinimum Effort Pace in minutes per mileMinimum EHPEMinimum EVPEMinimum Grade Adjusted PaceMinimum Grade Adjusted pace in minutes per mile (unit: min/m)Minimum Grade Adjusted SpeedMinimum Grade Adjusted Speed in feet per minuteMinimum Grade Adjusted Speed in feet per secondMinimum Grade Adjusted Speed in kilometers per hourMinimum Grade Adjusted Speed in knotsMinimum Grade Adjusted Speed in meters per minuteMinimum Grade Adjusted Speed in miles per hourMinimum Ground Contact Time (unit: ms)Minimum Heart RateMinimum Jump DistanceMinimum Jump Hang TimeMinimum Jump Height (unit: m)Minimum Jump RotationsMinimum Jump ScoreMinimum Jump SpeedMinimum jump speed in feet per minuteMinimum jump speed in feet per secondMinimum jump speed in kilometers per hourMinimum jump speed in knotsMinimum jump speed in meters per minuteMinimum jump speed in miles per hourMinimum Number of SatellitesMinimum PaceMinimum pace in minutes per mileMinimum PowerMinimum Potential Stamina (unit: %)Minimum Respiration Rate (unit: br/min)Minimum Satellite 5 Best SNRMinimum SpeedMinimum Stamina (unit: %)Minimum speed in feet per minuteMinimum speed in feet per secondMinimum speed in kilometers per hourMinimum speed in knotMinimum speed in meters per minuteMinimum speed in miles per hourMinimum Swim PaceMinimum swim pace in minutes per 100 yardMinimum TemperatureMinimum Vertical Oscillation (unit: mm)Minimum Vertical SpeedMinimum vertical speed in feet per hourMinimum vertical speed in feet per minuteMinimum vertical speed in feet per secondMinimum vertical speed in kilometers per hourMinimum vertical speed in meters per hourMinimum vertical speed in meters per minuteMinimum vertical speed in miles per hourDistance in miles (unit: mi)Effort Pace in minutes per mileGNSS Distance in miles (unit: mi)Grade Adjusted Pace in minutes per mile (unit: min/m)Grade Adjusted Speed in feet per minute (unit: ft/min)Grade Adjusted Speed in feet per second (unit: ft/s)Grade Adjusted Speed in kilometers per hour (unit: km/h)Grade Adjusted Speed in knots (unit: kn)Grade Adjusted Speed in meters per minute (unit: m/min)Grade Adjusted Speed in miles per hour (unit: mph)Pace in minutes per mile (unit: min/m)Speed in feet per minute (unit: ft/min)Speed in feet per second (unit: ft/s)Speed in kilometers per hour (unit: km/h)Speed in knots (unit: kn)Speed in meters per minute (unit: m/min)Speed in miles per hour (unit: mph)Swim Pace in minutes per 100 yard (unit: min/100yrd)Vertical speed in feet per hour (unit: ft/h)Vertical speed in feet per minute (unit: ft/min)Vertical speed in feet per second (unit: ft/s)Vertical speed in kilometers per hour (unit: km/h)Vertical speed in meters per hour (unit: m/h)Vertical speed in meters per minute (unit: m/min)Vertical speed in miles per hour (unit: mph)