UNPKG

@sports-alliance/sports-lib

Version:

A Library to for importing / exporting and processing GPX, TCX, FIT and JSON files from services such as Strava, Movescount, Garmin, Polar etc

1,642 lines 207 kB
{ "summary": { "scannedFitFiles": 62, "parseErrors": 4, "entriesWithReportedTss": 65, "computed": 65, "missingComputed": 0, "within1_0": 59, "above1_0": 6 }, "parseErrors": [ { "file": "src/specs/fixtures/others/27-days-activity.fit", "error": "Activity duration exceeds 14 days. That is not supported" }, { "file": "src/specs/fixtures/others/31-days-activity.fit", "error": "Activity duration exceeds 14 days. That is not supported" }, { "file": "src/specs/fixtures/others/empty-activities.fit", "error": "No activities found" }, { "file": "src/specs/fixtures/others/empty-sessions.fit", "error": "No activities found" } ], "rows": [ { "file": "src/specs/fixtures/rides/fit/6783622686.fit", "activityIndex": 0, "activityType": "Cycling", "reportedTss": 1.8, "reportedMethod": "IMPORTED", "computedTss": 349, "delta": 347.2, "absDelta": 347.2, "method": "HR", "diagnostics": { "selectedMethod": "HR", "selectedTss": 349, "durationSeconds": 18501.79, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": false, "reason": "missing_power_samples", "inputs": { "ftpOverride": null, "ftpStatBefore": 228, "ftpResolved": 228, "ftpSource": "DataFTP", "powerSampleCount": 0 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 179, "maxHeartRate": 179, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": 176, "lactateThresholdHR": 176, "lthrSource": "HR_zone5_lower", "hrSampleCount": 18514, "hrAverage": 141.483, "gender": "male", "hrAlgorithm": "EDWARDS" }, "result": { "tss": 349 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 18514, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 18514, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": true, "inputs": { "durationSeconds": 18501.79, "metOverride": null, "energy": 2379, "weight": 48.7, "metResolved": 9.505046247409373, "metSource": "estimated_from_energy_weight_duration", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" }, "result": { "tss": 464.322, "intensityFactor": 0.9505046247409373 } } ] } }, { "file": "samples/battery/batt.fit", "activityIndex": 0, "activityType": "Cycling", "reportedTss": 121.2, "reportedMethod": "IMPORTED", "computedTss": 261.4, "delta": 140.2, "absDelta": 140.2, "method": "HR", "diagnostics": { "selectedMethod": "HR", "selectedTss": 261.4, "durationSeconds": 9303.43, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": false, "reason": "missing_functionalThresholdPower", "inputs": { "ftpOverride": null, "ftpStatBefore": null, "ftpResolved": null, "ftpSource": "missing", "powerSampleCount": 0 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 160, "maxHeartRate": 160, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": null, "lactateThresholdHR": null, "lthrSource": "missing", "hrSampleCount": 9305, "hrAverage": 133.792, "hrAlgorithm": "EDWARDS" }, "result": { "tss": 261.354 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 9292, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 9292, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": false, "reason": "missing_met_score", "inputs": { "durationSeconds": 9303.43, "metOverride": null, "energy": 1434, "weight": null, "metResolved": null, "metSource": "missing", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" } } ] } }, { "file": "src/specs/fixtures/others/broken-start-latlng.fit", "activityIndex": 0, "activityType": "Cycling", "reportedTss": 82.4, "reportedMethod": "IMPORTED", "computedTss": 197.6, "delta": 115.2, "absDelta": 115.2, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 197.6, "durationSeconds": 6864, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 148, "ftpResolved": 148, "ftpSource": "DataFTP", "powerSampleCount": 6864 }, "result": { "tss": 197.636, "intensityFactor": 1.0202702702702702, "normalizedPower": 151 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 158, "maxHeartRate": 158, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": null, "lactateThresholdHR": null, "lthrSource": "missing", "hrSampleCount": 6864, "hrAverage": 119.678, "gender": "male", "hrAlgorithm": "EDWARDS" }, "result": { "tss": 147.826 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 6864, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 6864, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": false, "reason": "missing_met_score", "inputs": { "durationSeconds": 6864, "metOverride": null, "energy": null, "weight": 48.5, "metResolved": null, "metSource": "missing", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" } } ] } }, { "file": "samples/fit/suunto-bat.fit", "activityIndex": 0, "activityType": "Trail Running", "reportedTss": 74.2, "reportedMethod": "IMPORTED", "computedTss": 154, "delta": 79.8, "absDelta": 79.8, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 154, "durationSeconds": 4788.75, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 164, "ftpResolved": 164, "ftpSource": "DataFTP", "powerSampleCount": 4961 }, "result": { "tss": 154.007, "intensityFactor": 1.079268292682927, "normalizedPower": 177 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 169, "maxHeartRate": 169, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": null, "lactateThresholdHR": null, "lthrSource": "missing", "hrSampleCount": 4961, "hrAverage": 138.087, "hrAlgorithm": "EDWARDS" }, "result": { "tss": 125.701 } }, { "method": "PACE", "attempted": true, "eligible": true, "success": false, "reason": "missing_functionalThresholdPace", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 4776, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 4776, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": false, "reason": "missing_met_score", "inputs": { "durationSeconds": 4788.75, "metOverride": null, "energy": 732, "weight": null, "metResolved": null, "metSource": "missing", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" } } ] } }, { "file": "samples/fit/2026-01-31_10-51_1.fit", "activityIndex": 0, "activityType": "Trail Running", "reportedTss": 58.6, "reportedMethod": "IMPORTED", "computedTss": 120.4, "delta": 61.8, "absDelta": 61.8, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 120.4, "durationSeconds": 3884.52, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 233, "ftpResolved": 233, "ftpSource": "DataFTP", "powerSampleCount": 3885 }, "result": { "tss": 120.355, "intensityFactor": 1.0600858369098713, "normalizedPower": 247 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 154, "maxHeartRate": 154, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": null, "lactateThresholdHR": null, "lthrSource": "missing", "hrSampleCount": 3885, "hrAverage": 136.94, "hrAlgorithm": "EDWARDS" }, "result": { "tss": 119.285 } }, { "method": "PACE", "attempted": true, "eligible": true, "success": false, "reason": "missing_functionalThresholdPace", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 3874, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 3874, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": false, "reason": "missing_met_score", "inputs": { "durationSeconds": 3884.52, "metOverride": null, "energy": 736, "weight": null, "metResolved": null, "metSource": "missing", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" } } ] } }, { "file": "samples/fit/2025-08-27_10-52.fit", "activityIndex": 0, "activityType": "Snorkeling", "reportedTss": 19.6, "reportedMethod": "IMPORTED", "computedTss": 52.7, "delta": 33.1, "absDelta": 33.1, "method": "HR", "diagnostics": { "selectedMethod": "HR", "selectedTss": 52.7, "durationSeconds": 2111.01, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": false, "reason": "missing_functionalThresholdPower", "inputs": { "ftpOverride": null, "ftpStatBefore": null, "ftpResolved": null, "ftpSource": "missing", "powerSampleCount": 0 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 105, "maxHeartRate": 105, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": null, "lactateThresholdHR": null, "lthrSource": "missing", "hrSampleCount": 2112, "hrAverage": 84.978, "hrAlgorithm": "EDWARDS" }, "result": { "tss": 52.736 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 2103, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 2103, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": false, "reason": "missing_met_score", "inputs": { "durationSeconds": 2111.01, "metOverride": null, "energy": 133, "weight": null, "metResolved": null, "metSource": "missing", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" } } ] } }, { "file": "src/specs/fixtures/triathlons/fit/4623204522.fit", "activityIndex": 2, "activityType": "Cycling", "reportedTss": 310.4, "reportedMethod": "IMPORTED", "computedTss": 311.4, "delta": 1, "absDelta": 1, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 311.4, "durationSeconds": 17248.55, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 290, "ftpResolved": 290, "ftpSource": "DataFTP", "powerSampleCount": 17249 }, "result": { "tss": 311.426, "intensityFactor": 0.8068965517241379, "normalizedPower": 234 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 153, "maxHeartRate": 153, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": 144, "lactateThresholdHR": 144, "lthrSource": "HR_zone5_lower", "hrSampleCount": 17249, "hrAverage": 139.734, "gender": "male", "hrAlgorithm": "EDWARDS" }, "result": { "tss": 454.472 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 17243, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 17243, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": true, "inputs": { "durationSeconds": 17248.55, "metOverride": null, "energy": 3804, "weight": 77.7, "metResolved": 10.218082345884394, "metSource": "estimated_from_energy_weight_duration", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" }, "result": { "tss": 500.252, "intensityFactor": 1.0218082345884394 } } ] } }, { "file": "src/specs/fixtures/rides/fit/withpower/2025-12-29_14-12.fit", "activityIndex": 0, "activityType": "Cycling", "reportedTss": 101.1, "reportedMethod": "IMPORTED", "computedTss": 100.6, "delta": -0.5, "absDelta": 0.5, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 100.6, "durationSeconds": 9724.52, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 234, "ftpResolved": 234, "ftpSource": "DataFTP", "powerSampleCount": 9730 }, "result": { "tss": 100.579, "intensityFactor": 0.6111111111111112, "normalizedPower": 143 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 146, "maxHeartRate": 146, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": 148, "lactateThresholdHR": 148, "lthrSource": "HR_zone5_lower", "hrSampleCount": 9730, "hrAverage": 119.84, "gender": "male", "hrAlgorithm": "EDWARDS" }, "result": { "tss": 209.683 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 9730, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 9730, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": true, "inputs": { "durationSeconds": 9724.52, "metOverride": null, "energy": 1492, "weight": 64.7, "metResolved": 8.53687395836453, "metSource": "estimated_from_energy_weight_duration", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" }, "result": { "tss": 196.863, "intensityFactor": 0.853687395836453 } } ] } }, { "file": "samples/fit/laps-issue.fit", "activityIndex": 0, "activityType": "Cycling", "reportedTss": 251.2, "reportedMethod": "IMPORTED", "computedTss": 250.8, "delta": -0.4, "absDelta": 0.4, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 250.8, "durationSeconds": 17447.97, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 200, "ftpResolved": 200, "ftpSource": "DataFTP", "powerSampleCount": 17462 }, "result": { "tss": 250.833, "intensityFactor": 0.72, "normalizedPower": 144 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 173, "maxHeartRate": 173, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": 148, "lactateThresholdHR": 148, "lthrSource": "HR_zone5_lower", "hrSampleCount": 17462, "hrAverage": 124.511, "gender": "male", "hrAlgorithm": "EDWARDS" }, "result": { "tss": 373.236 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 17462, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 17462, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": true, "inputs": { "durationSeconds": 17447.97, "metOverride": null, "energy": 2413, "weight": 68, "metResolved": 7.321600095800796, "metSource": "estimated_from_energy_weight_duration", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" }, "result": { "tss": 259.809, "intensityFactor": 0.7321600095800795 } } ] } }, { "file": "src/specs/fixtures/rides/fit/garmin-device-info-spam.fit", "activityIndex": 0, "activityType": "Indoor Cycling", "reportedTss": 107.2, "reportedMethod": "IMPORTED", "computedTss": 107.6, "delta": 0.4, "absDelta": 0.4, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 107.6, "durationSeconds": 5462.52, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 225, "ftpResolved": 225, "ftpSource": "DataFTP", "powerSampleCount": 5463 }, "result": { "tss": 107.627, "intensityFactor": 0.8444444444444444, "normalizedPower": 190 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 162, "maxHeartRate": 162, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": 138, "lactateThresholdHR": 138, "lthrSource": "HR_zone5_lower", "hrSampleCount": 5463, "hrAverage": 128.425, "gender": "male", "hrAlgorithm": "EDWARDS" }, "result": { "tss": 129.667 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 5460, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 0, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 5460, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": true, "inputs": { "durationSeconds": 5462.52, "metOverride": null, "energy": 946, "weight": 79, "metResolved": 7.891753395775882, "metSource": "estimated_from_energy_weight_duration", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" }, "result": { "tss": 94.501, "intensityFactor": 0.7891753395775882 } } ] } }, { "file": "src/specs/fixtures/rides/fit/withpower/2025-11-02_10-30.fit", "activityIndex": 0, "activityType": "Cycling", "reportedTss": 251.2, "reportedMethod": "IMPORTED", "computedTss": 250.8, "delta": -0.4, "absDelta": 0.4, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 250.8, "durationSeconds": 17447.97, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 200, "ftpResolved": 200, "ftpSource": "DataFTP", "powerSampleCount": 17462 }, "result": { "tss": 250.833, "intensityFactor": 0.72, "normalizedPower": 144 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 173, "maxHeartRate": 173, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": 148, "lactateThresholdHR": 148, "lthrSource": "HR_zone5_lower", "hrSampleCount": 17462, "hrAverage": 124.511, "gender": "male", "hrAlgorithm": "EDWARDS" }, "result": { "tss": 373.236 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 17462, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 17462, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": true, "inputs": { "durationSeconds": 17447.97, "metOverride": null, "energy": 2413, "weight": 68, "metResolved": 7.321600095800796, "metSource": "estimated_from_energy_weight_duration", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" }, "result": { "tss": 259.809, "intensityFactor": 0.7321600095800795 } } ] } }, { "file": "samples/fit/2026-02-10_14-28.fit", "activityIndex": 0, "activityType": "Cycling", "reportedTss": 66.2, "reportedMethod": "IMPORTED", "computedTss": 65.9, "delta": -0.3, "absDelta": 0.3, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 65.9, "durationSeconds": 5367.05, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 234, "ftpResolved": 234, "ftpSource": "DataFTP", "powerSampleCount": 5375 }, "result": { "tss": 65.902, "intensityFactor": 0.6666666666666666, "normalizedPower": 156 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 148, "maxHeartRate": 148, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": 147, "lactateThresholdHR": 147, "lthrSource": "HR_zone5_lower", "hrSampleCount": 5375, "hrAverage": 124.513, "gender": "male", "hrAlgorithm": "EDWARDS" }, "result": { "tss": 120.944 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 5375, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 5375, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": true, "inputs": { "durationSeconds": 5367.05, "metOverride": null, "energy": 873, "weight": 64.7, "metResolved": 9.050588565436067, "metSource": "estimated_from_energy_weight_duration", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" }, "result": { "tss": 122.12, "intensityFactor": 0.9050588565436067 } } ] } }, { "file": "samples/fit/file-with-zones.fit", "activityIndex": 0, "activityType": "Cycling", "reportedTss": 76.7, "reportedMethod": "IMPORTED", "computedTss": 77, "delta": 0.3, "absDelta": 0.3, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 77, "durationSeconds": 7054.52, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 234, "ftpResolved": 234, "ftpSource": "DataFTP", "powerSampleCount": 7068 }, "result": { "tss": 77.016, "intensityFactor": 0.6282051282051282, "normalizedPower": 147 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 153, "maxHeartRate": 153, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": 148, "lactateThresholdHR": 148, "lthrSource": "HR_zone5_lower", "hrSampleCount": 7068, "hrAverage": 120.308, "gender": "male", "hrAlgorithm": "EDWARDS" }, "result": { "tss": 137.178 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 7066, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 7066, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": true, "inputs": { "durationSeconds": 7054.52, "metOverride": null, "energy": 1084, "weight": 64.7, "metResolved": 8.54988027407046, "metSource": "estimated_from_energy_weight_duration", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" }, "result": { "tss": 143.247, "intensityFactor": 0.854988027407046 } } ] } }, { "file": "src/specs/fixtures/rides/fit/7432332116.fit", "activityIndex": 0, "activityType": "Cycling", "reportedTss": 254, "reportedMethod": "IMPORTED", "computedTss": 254.3, "delta": 0.3, "absDelta": 0.3, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 254.3, "durationSeconds": 10055.65, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 180, "ftpResolved": 180, "ftpSource": "DataFTP", "powerSampleCount": 10063 }, "result": { "tss": 254.311, "intensityFactor": 0.9555555555555556, "normalizedPower": 172 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 184, "maxHeartRate": 184, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": 144, "lactateThresholdHR": 144, "lthrSource": "HR_zone5_lower", "hrSampleCount": 10063, "hrAverage": 164.779, "gender": "male", "hrAlgorithm": "EDWARDS" }, "result": { "tss": 422.87 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 10063, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 10063, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": true, "inputs": { "durationSeconds": 10055.65, "metOverride": null, "energy": 1532, "weight": 78, "metResolved": 7.0316381643844315, "metSource": "estimated_from_energy_weight_duration", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" }, "result": { "tss": 138.109, "intensityFactor": 0.7031638164384432 } } ] } }, { "file": "src/specs/fixtures/rides/fit/withpower/2026-01-27_14-37.fit", "activityIndex": 0, "activityType": "Cycling", "reportedTss": 76.7, "reportedMethod": "IMPORTED", "computedTss": 77, "delta": 0.3, "absDelta": 0.3, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 77, "durationSeconds": 7054.52, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 234, "ftpResolved": 234, "ftpSource": "DataFTP", "powerSampleCount": 7068 }, "result": { "tss": 77.016, "intensityFactor": 0.6282051282051282, "normalizedPower": 147 } }, { "method": "HR", "attempted": true, "eligible": true, "success": true, "inputs": { "maxHrOverride": null, "maxHrSetting": null, "maxHrStat": 153, "maxHeartRate": 153, "maxHrSource": "DataHeartRateMax", "restingHrOverride": null, "restingHeartRate": null, "restingHrSource": "missing", "lthrOverride": null, "lthrZone5": 148, "lactateThresholdHR": 148, "lthrSource": "HR_zone5_lower", "hrSampleCount": 7068, "hrAverage": 120.308, "gender": "male", "hrAlgorithm": "EDWARDS" }, "result": { "tss": 137.178 } }, { "method": "PACE", "attempted": false, "eligible": false, "success": false, "reason": "sport_not_pace_enabled", "inputs": { "thresholdOverride": null, "speedZone5": null, "thresholdPace": null, "thresholdSource": "missing", "speedSampleCount": 7066, "enableHeuristicFallbacks": true, "gradeSourceCounts": { "gradeSmooth": 7066, "grade": 0, "verticalSpeedOverSpeed": 0, "heuristicZero": 0, "unresolved": 0 } } }, { "method": "MET", "attempted": true, "eligible": true, "success": true, "inputs": { "durationSeconds": 7054.52, "metOverride": null, "energy": 1084, "weight": 64.7, "metResolved": 8.54988027407046, "metSource": "estimated_from_energy_weight_duration", "thresholdOverride": null, "thresholdMet": 10, "thresholdSource": "default_thresholdMet_10" }, "result": { "tss": 143.247, "intensityFactor": 0.854988027407046 } } ] } }, { "file": "src/specs/fixtures/rides/fit/7386755164.fit", "activityIndex": 0, "activityType": "Cycling", "reportedTss": 105.4, "reportedMethod": "IMPORTED", "computedTss": 105.2, "delta": -0.2, "absDelta": 0.2, "method": "POWER", "diagnostics": { "selectedMethod": "POWER", "selectedTss": 105.2, "durationSeconds": 6175.05, "enableHeuristicFallbacks": true, "attempts": [ { "method": "POWER", "attempted": true, "eligible": true, "success": true, "inputs": { "ftpOverride": null, "ftpStatBefore": 228, "ftpResolved": 228, "ftpSource": "DataFTP", "powerSampleCount": 6177 }, "result": { "tss": 105.228, "intensityFactor": 0.7850877192982456, "normalizedPower": 179 } }, { "method": "HR", "attempted": true, "eligible": true, "su