{ "generated_at": "2026-04-27T07:52:41.576015", "source": "Intervals.icu API", "sync_version": "3.108", "script_hash": "41b49b1747e6", "data_range": { "earliest": "2023-06-24", "latest": "2026-04-27", "total_months": 34 }, "ftp_timeline": [ { "date": "2026-04-23", "ftp": 285, "type": "indoor", "source": "FTP" }, { "date": "2026-04-23", "ftp": 285, "type": "outdoor", "source": "FTP" }, { "date": "2026-04-27", "ftp": 275, "type": "indoor", "source": "FTP" }, { "date": "2026-04-27", "ftp": 275, "type": "outdoor", "source": "FTP" } ], "data_gaps": [ { "period": "2023-06-27 to 2023-07-08", "days_missing": 12 }, { "period": "2023-07-19 to 2023-07-21", "days_missing": 3 }, { "period": "2023-08-30 to 2023-09-02", "days_missing": 4 }, { "period": "2023-09-05 to 2023-09-08", "days_missing": 4 }, { "period": "2023-09-10 to 2023-09-12", "days_missing": 3 }, { "period": "2023-09-20 to 2023-10-14", "days_missing": 25 }, { "period": "2023-11-01 to 2023-11-04", "days_missing": 4 }, { "period": "2023-11-06 to 2023-11-08", "days_missing": 3 }, { "period": "2023-11-10 to 2023-12-02", "days_missing": 23 }, { "period": "2023-12-08 to 2023-12-11", "days_missing": 4 }, { "period": "2023-12-19 to 2023-12-24", "days_missing": 6 }, { "period": "2023-12-28 to 2024-01-04", "days_missing": 8 }, { "period": "2024-01-17 to 2024-01-19", "days_missing": 3 }, { "period": "2024-03-09 to 2024-03-17", "days_missing": 9 }, { "period": "2024-04-17 to 2024-04-19", "days_missing": 3 }, { "period": "2024-06-28 to 2024-06-30", "days_missing": 3 }, { "period": "2024-07-09 to 2024-07-15", "days_missing": 7 }, { "period": "2024-07-20 to 2024-07-22", "days_missing": 3 }, { "period": "2024-07-27 to 2024-07-29", "days_missing": 3 }, { "period": "2024-11-04 to 2024-11-07", "days_missing": 4 }, { "period": "2024-11-09 to 2024-11-14", "days_missing": 6 }, { "period": "2024-11-21 to 2024-11-23", "days_missing": 3 }, { "period": "2024-12-03 to 2024-12-09", "days_missing": 7 }, { "period": "2025-07-03 to 2025-07-06", "days_missing": 4 }, { "period": "2026-01-24 to 2026-01-26", "days_missing": 3 }, { "period": "2026-02-20 to 2026-02-22", "days_missing": 3 } ], "summaries": { "90d": { "avg_weekly_tss": 564.0, "avg_weekly_hours": 12.1, "ctl_start": 78.7, "ctl_end": 85.0, "total_activities": 80, "rest_days": 10, "hard_days": 38 }, "180d": { "avg_weekly_tss": 566.0, "avg_weekly_hours": 12.1, "ctl_start": 87.9, "ctl_end": 86.6, "weeks_tracked": 26 }, "1y": { "avg_monthly_tss": 2419.0, "ctl_peak": 91.7, "ctl_low": 73.6, "months_tracked": 13 }, "2y": { "avg_monthly_tss": 2079.0, "ctl_peak": 91.7, "ctl_low": 26.4, "months_tracked": 25 }, "3y": { "avg_monthly_tss": 2079.0, "ctl_peak": 91.7, "ctl_low": 1.0, "months_tracked": 37 } }, "daily_90d": [ { "date": "2026-01-28", "total_hours": 2.56, "total_tss": 114, "activity_count": 2, "activity_types": "VirtualRide, WeightTraining", "ctl": 78.708145, "atl": 72.63691, "tsb": 6.1, "hrv": 89.0, "rhr": 34, "sleep_hours": 8.23, "sleep_formatted": "8h14m", "sleep_quality": 2, "sleep_score": 88.0, "weight_kg": 75.387, "is_hard_day": true, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 5356, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-01-29", "total_hours": 1.0, "total_tss": 74, "activity_count": 1, "activity_types": "VirtualRide", "ctl": 78.597374, "atl": 72.81837, "tsb": 5.8, "hrv": 107.0, "rhr": 37, "sleep_hours": 7.7, "sleep_formatted": "7h42m", "sleep_quality": 2, "sleep_score": 85.0, "weight_kg": 76.294, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 5033, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-01-30", "total_hours": 0.0, "total_tss": 0, "activity_count": 0, "activity_types": "Rest", "ctl": 76.74811, "atl": 63.124634, "tsb": 13.6, "hrv": null, "rhr": null, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": null, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 6355, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-01-31", "total_hours": 3.14, "total_tss": 183, "activity_count": 1, "activity_types": "Ride", "ctl": 79.24804, "atl": 79.082695, "tsb": 0.2, "hrv": 79.0, "rhr": 38, "sleep_hours": 8.57, "sleep_formatted": "8h34m", "sleep_quality": 2, "sleep_score": 83.0, "weight_kg": 75.477, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 19285, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-01", "total_hours": 3.85, "total_tss": 201, "activity_count": 1, "activity_types": "Ride", "ctl": 82.112656, "atl": 95.312584, "tsb": -13.2, "hrv": 96.0, "rhr": 37, "sleep_hours": 9.03, "sleep_formatted": "9h2m", "sleep_quality": 2, "sleep_score": 82.0, "weight_kg": 75.84, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 30672, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-02", "total_hours": 0.69, "total_tss": 6, "activity_count": 1, "activity_types": "WeightTraining", "ctl": 80.18069, "atl": 83.4231, "tsb": -3.2, "hrv": 95.0, "rhr": 36, "sleep_hours": 8.2, "sleep_formatted": "8h12m", "sleep_quality": 2, "sleep_score": 86.0, "weight_kg": 76.475, "is_hard_day": false, "intensity_basis": "hr", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 10884, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-03", "total_hours": 2.17, "total_tss": 95, "activity_count": 4, "activity_types": "VirtualRide, Unknown, WeightTraining", "ctl": 81.211685, "atl": 90.156006, "tsb": -8.9, "hrv": 91.0, "rhr": 33, "sleep_hours": 7.95, "sleep_formatted": "7h57m", "sleep_quality": 3, "sleep_score": 67.0, "weight_kg": 75.931, "is_hard_day": true, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 4788, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-04", "total_hours": 1.14, "total_tss": 83, "activity_count": 1, "activity_types": "VirtualRide", "ctl": 81.25376, "atl": 89.203384, "tsb": -7.9, "hrv": 87.0, "rhr": 33, "sleep_hours": 7.45, "sleep_formatted": "7h27m", "sleep_quality": 3, "sleep_score": 75.0, "weight_kg": 75.84, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 10445, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-05", "total_hours": 0.0, "total_tss": 0, "activity_count": 1, "activity_types": "Unknown", "ctl": 79.671394, "atl": 79.192154, "tsb": 0.5, "hrv": 97.0, "rhr": 34, "sleep_hours": 6.3, "sleep_formatted": "6h18m", "sleep_quality": 3, "sleep_score": 68.0, "weight_kg": null, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 4289, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-06", "total_hours": 0.0, "total_tss": 0, "activity_count": 1, "activity_types": "Unknown", "ctl": 78.36154, "atl": 71.84486, "tsb": 6.5, "hrv": 102.0, "rhr": 42, "sleep_hours": 9.07, "sleep_formatted": "9h4m", "sleep_quality": 2, "sleep_score": 87.0, "weight_kg": null, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 4038, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-07", "total_hours": 0.0, "total_tss": 0, "activity_count": 1, "activity_types": "Unknown", "ctl": 77.20015, "atl": 66.14126, "tsb": 11.1, "hrv": 64.0, "rhr": 50, "sleep_hours": 9.17, "sleep_formatted": "9h10m", "sleep_quality": 2, "sleep_score": 84.0, "weight_kg": null, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 6990, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-08", "total_hours": 0.0, "total_tss": 0, "activity_count": 0, "activity_types": "Rest", "ctl": 75.38376, "atl": 57.336395, "tsb": 18.0, "hrv": 102.0, "rhr": 37, "sleep_hours": 8.85, "sleep_formatted": "8h51m", "sleep_quality": 3, "sleep_score": 76.0, "weight_kg": null, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 8094, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-09", "total_hours": 0.92, "total_tss": 8, "activity_count": 3, "activity_types": "Unknown, WeightTraining", "ctl": 74.45712, "atl": 55.561028, "tsb": 18.9, "hrv": 85.0, "rhr": 33, "sleep_hours": 7.63, "sleep_formatted": "7h38m", "sleep_quality": 2, "sleep_score": 85.0, "weight_kg": 76.475, "is_hard_day": false, "intensity_basis": "hr", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 4066, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-10", "total_hours": 1.0, "total_tss": 71, "activity_count": 3, "activity_types": "Unknown, VirtualRide", "ctl": 75.24633, "atl": 62.541813, "tsb": 12.7, "hrv": 95.0, "rhr": 33, "sleep_hours": 7.07, "sleep_formatted": "7h4m", "sleep_quality": 3, "sleep_score": 78.0, "weight_kg": 75.931, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 4584, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-11", "total_hours": 1.13, "total_tss": 82, "activity_count": 4, "activity_types": "VirtualRide, Unknown", "ctl": 76.32284, "atl": 71.52199, "tsb": 4.8, "hrv": 100.0, "rhr": 33, "sleep_hours": 6.48, "sleep_formatted": "6h29m", "sleep_quality": 3, "sleep_score": 66.0, "weight_kg": 76.022, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 3704, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-12", "total_hours": 2.07, "total_tss": 113, "activity_count": 4, "activity_types": "VirtualRide, Unknown", "ctl": 78.10339, "atl": 82.23539, "tsb": -4.1, "hrv": 98.0, "rhr": 38, "sleep_hours": 8.1, "sleep_formatted": "8h6m", "sleep_quality": 2, "sleep_score": 85.0, "weight_kg": 75.931, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 4520, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-13", "total_hours": 1.0, "total_tss": 40, "activity_count": 3, "activity_types": "Unknown, VirtualRide", "ctl": 78.12449, "atl": 81.80469, "tsb": -3.7, "hrv": 93.0, "rhr": 38, "sleep_hours": 8.02, "sleep_formatted": "8h1m", "sleep_quality": 2, "sleep_score": 88.0, "weight_kg": 75.84, "is_hard_day": false, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 4049, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-14", "total_hours": 2.01, "total_tss": 101, "activity_count": 1, "activity_types": "Run", "ctl": 78.66271, "atl": 84.36001, "tsb": -5.7, "hrv": 98.0, "rhr": 42, "sleep_hours": 6.75, "sleep_formatted": "6h45m", "sleep_quality": 3, "sleep_score": 75.0, "weight_kg": 75.749, "is_hard_day": false, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 3743, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-15", "total_hours": 2.0, "total_tss": 116, "activity_count": 1, "activity_types": "VirtualRide", "ctl": 79.5412, "atl": 88.57199, "tsb": -9.0, "hrv": 92.0, "rhr": 33, "sleep_hours": 7.88, "sleep_formatted": "7h53m", "sleep_quality": 2, "sleep_score": 88.0, "weight_kg": 76.022, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 3266, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-16", "total_hours": 1.92, "total_tss": 60, "activity_count": 4, "activity_types": "Run, Unknown, WeightTraining", "ctl": 79.904915, "atl": 90.35956, "tsb": -10.5, "hrv": 92.0, "rhr": 33, "sleep_hours": 8.32, "sleep_formatted": "8h19m", "sleep_quality": 2, "sleep_score": 88.0, "weight_kg": 75.568, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 13178, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-17", "total_hours": 1.07, "total_tss": 81, "activity_count": 3, "activity_types": "VirtualRide, Unknown", "ctl": 80.80123, "atl": 94.03911, "tsb": -13.2, "hrv": 84.0, "rhr": 35, "sleep_hours": 7.9, "sleep_formatted": "7h54m", "sleep_quality": 2, "sleep_score": 83.0, "weight_kg": 75.659, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 4989, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-18", "total_hours": 1.74, "total_tss": 50, "activity_count": 4, "activity_types": "WeightTraining, Unknown, VirtualRide", "ctl": 80.900024, "atl": 93.767654, "tsb": -12.9, "hrv": 85.0, "rhr": 32, "sleep_hours": 7.92, "sleep_formatted": "7h55m", "sleep_quality": 2, "sleep_score": 87.0, "weight_kg": 76.022, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 3894, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-19", "total_hours": 0.0, "total_tss": 0, "activity_count": 2, "activity_types": "Unknown", "ctl": 79.93771, "atl": 86.60999, "tsb": -6.7, "hrv": 70.0, "rhr": 33, "sleep_hours": 9.65, "sleep_formatted": "9h39m", "sleep_quality": 2, "sleep_score": 81.0, "weight_kg": 75.568, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 2703, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-20", "total_hours": 0.0, "total_tss": 0, "activity_count": 0, "activity_types": "Rest", "ctl": 78.056915, "atl": 75.08029, "tsb": 3.0, "hrv": null, "rhr": null, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": null, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 199, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-21", "total_hours": 0.0, "total_tss": 0, "activity_count": 0, "activity_types": "Rest", "ctl": 76.22037, "atl": 65.08545, "tsb": 11.1, "hrv": 86.0, "rhr": 40, "sleep_hours": 8.07, "sleep_formatted": "8h4m", "sleep_quality": 2, "sleep_score": 86.0, "weight_kg": null, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 2989, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-22", "total_hours": 0.0, "total_tss": 0, "activity_count": 0, "activity_types": "Rest", "ctl": 74.42703, "atl": 56.42114, "tsb": 18.0, "hrv": 91.0, "rhr": 37, "sleep_hours": 6.42, "sleep_formatted": "6h25m", "sleep_quality": 3, "sleep_score": 63.0, "weight_kg": null, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 4066, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-23", "total_hours": 1.02, "total_tss": 43, "activity_count": 3, "activity_types": "Unknown, VirtualRide", "ctl": 74.53463, "atl": 59.426884, "tsb": 15.1, "hrv": 87.0, "rhr": 33, "sleep_hours": 7.63, "sleep_formatted": "7h38m", "sleep_quality": 2, "sleep_score": 81.0, "weight_kg": 76.112, "is_hard_day": false, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 4884, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-24", "total_hours": 1.8, "total_tss": 75, "activity_count": 2, "activity_types": "WeightTraining, VirtualRide", "ctl": 74.42794, "atl": 61.50001, "tsb": 12.9, "hrv": null, "rhr": 45, "sleep_hours": 7.75, "sleep_formatted": "7h45m", "sleep_quality": 2, "sleep_score": 86.0, "weight_kg": 75.205, "is_hard_day": true, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 9622, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-25", "total_hours": 2.59, "total_tss": 87, "activity_count": 4, "activity_types": "WeightTraining, Ride, VirtualRide", "ctl": 74.41787, "atl": 64.89462, "tsb": 9.5, "hrv": 92.0, "rhr": 35, "sleep_hours": 7.93, "sleep_formatted": "7h56m", "sleep_quality": 2, "sleep_score": 89.0, "weight_kg": 74.8, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 120, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-26", "total_hours": 1.69, "total_tss": 118, "activity_count": 3, "activity_types": "Ride, VirtualRide", "ctl": 75.44328, "atl": 71.96412, "tsb": 3.5, "hrv": 94.0, "rhr": 34, "sleep_hours": 7.43, "sleep_formatted": "7h26m", "sleep_quality": 3, "sleep_score": 77.0, "weight_kg": null, "is_hard_day": true, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 1119, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-27", "total_hours": 1.65, "total_tss": 72, "activity_count": 3, "activity_types": "VirtualRide, Ride", "ctl": 75.36227, "atl": 71.968895, "tsb": 3.4, "hrv": null, "rhr": 44, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": null, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 85, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-02-28", "total_hours": 2.78, "total_tss": 178, "activity_count": 1, "activity_types": "Ride", "ctl": 77.77716, "atl": 86.08398, "tsb": -8.3, "hrv": 90.0, "rhr": 37, "sleep_hours": 7.82, "sleep_formatted": "7h49m", "sleep_quality": 2, "sleep_score": 88.0, "weight_kg": 74.57, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 14638, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-01", "total_hours": 0.0, "total_tss": 0, "activity_count": 0, "activity_types": "Rest", "ctl": 75.9472, "atl": 74.6243, "tsb": 1.3, "hrv": null, "rhr": 48, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": null, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 6472, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-02", "total_hours": 1.41, "total_tss": 42, "activity_count": 3, "activity_types": "WeightTraining, Ride", "ctl": 75.03084, "atl": 70.28128, "tsb": 4.7, "hrv": 113.0, "rhr": 38, "sleep_hours": 9.55, "sleep_formatted": "9h33m", "sleep_quality": 2, "sleep_score": 83.0, "weight_kg": 76.475, "is_hard_day": false, "intensity_basis": "hr", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 5, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-03", "total_hours": 2.57, "total_tss": 62, "activity_count": 2, "activity_types": "VirtualRide, WeightTraining", "ctl": 74.630135, "atl": 69.178856, "tsb": 5.5, "hrv": 89.0, "rhr": 33, "sleep_hours": 7.07, "sleep_formatted": "7h4m", "sleep_quality": 2, "sleep_score": 81.0, "weight_kg": 75.477, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 284, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-04", "total_hours": 1.07, "total_tss": 78, "activity_count": 1, "activity_types": "VirtualRide", "ctl": 74.70942, "atl": 70.35314, "tsb": 4.4, "hrv": 94.0, "rhr": 33, "sleep_hours": 7.55, "sleep_formatted": "7h33m", "sleep_quality": 3, "sleep_score": 79.0, "weight_kg": 75.568, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 1423, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-05", "total_hours": 0.0, "total_tss": 0, "activity_count": 0, "activity_types": "Rest", "ctl": 72.95163, "atl": 60.987583, "tsb": 12.0, "hrv": 89.0, "rhr": 34, "sleep_hours": 8.04, "sleep_formatted": "8h2m", "sleep_quality": 2, "sleep_score": 83.0, "weight_kg": null, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 146, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-06", "total_hours": 3.71, "total_tss": 182, "activity_count": 1, "activity_types": "Ride", "ctl": 75.51736, "atl": 77.09701, "tsb": -1.6, "hrv": 84.0, "rhr": 38, "sleep_hours": 8.37, "sleep_formatted": "8h22m", "sleep_quality": 2, "sleep_score": 88.0, "weight_kg": null, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 5328, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-07", "total_hours": 3.78, "total_tss": 225, "activity_count": 1, "activity_types": "Ride", "ctl": 79.03443, "atl": 96.78616, "tsb": -17.8, "hrv": 101.0, "rhr": 38, "sleep_hours": 7.08, "sleep_formatted": "7h5m", "sleep_quality": 3, "sleep_score": 71.0, "weight_kg": null, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 13849, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-08", "total_hours": 3.55, "total_tss": 206, "activity_count": 1, "activity_types": "Ride", "ctl": 82.02172, "atl": 111.324936, "tsb": -29.3, "hrv": 101.0, "rhr": 37, "sleep_hours": 6.65, "sleep_formatted": "6h39m", "sleep_quality": 3, "sleep_score": 65.0, "weight_kg": null, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 10091, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-09", "total_hours": 0.0, "total_tss": 0, "activity_count": 0, "activity_types": "Rest", "ctl": 80.09189, "atl": 96.50513, "tsb": -16.4, "hrv": 103.0, "rhr": 38, "sleep_hours": 9.23, "sleep_formatted": "9h14m", "sleep_quality": 3, "sleep_score": 75.0, "weight_kg": null, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 5194, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-10", "total_hours": 2.16, "total_tss": 49, "activity_count": 4, "activity_types": "VirtualRide, Unknown, WeightTraining", "ctl": 79.85445, "atl": 94.840416, "tsb": -15.0, "hrv": 90.0, "rhr": 33, "sleep_hours": 6.78, "sleep_formatted": "6h47m", "sleep_quality": 3, "sleep_score": 74.0, "weight_kg": 75.84, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 3382, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-11", "total_hours": 1.57, "total_tss": 103, "activity_count": 4, "activity_types": "Run, Unknown, VirtualRide", "ctl": 81.24604, "atl": 100.71903, "tsb": -19.5, "hrv": 84.0, "rhr": 33, "sleep_hours": 7.82, "sleep_formatted": "7h49m", "sleep_quality": 2, "sleep_score": 84.0, "weight_kg": 75.749, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 2045, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-12", "total_hours": 2.03, "total_tss": 51, "activity_count": 4, "activity_types": "WeightTraining, Ride", "ctl": 80.13442, "atl": 94.10033, "tsb": -14.0, "hrv": 98.0, "rhr": 42, "sleep_hours": 6.82, "sleep_formatted": "6h49m", "sleep_quality": 3, "sleep_score": 75.0, "weight_kg": 75.477, "is_hard_day": false, "intensity_basis": "hr", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 7, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-13", "total_hours": 1.66, "total_tss": 80, "activity_count": 3, "activity_types": "VirtualRide, Ride", "ctl": 80.131256, "atl": 92.22326, "tsb": -12.1, "hrv": null, "rhr": 47, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": 75.296, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 5, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-14", "total_hours": 3.01, "total_tss": 179, "activity_count": 1, "activity_types": "Ride", "ctl": 82.45747, "atl": 103.77516, "tsb": -21.3, "hrv": 77.0, "rhr": 38, "sleep_hours": 8.2, "sleep_formatted": "8h12m", "sleep_quality": 2, "sleep_score": 84.0, "weight_kg": 75.114, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 8, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-15", "total_hours": 2.28, "total_tss": 84, "activity_count": 2, "activity_types": "WeightTraining, VirtualRide", "ctl": 82.44671, "atl": 101.142654, "tsb": -18.7, "hrv": null, "rhr": 49, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": null, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 24, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-16", "total_hours": 1.8, "total_tss": 41, "activity_count": 2, "activity_types": "WeightTraining, VirtualRide", "ctl": 81.14214, "atl": 93.13634, "tsb": -12.0, "hrv": 94.0, "rhr": 33, "sleep_hours": 7.62, "sleep_formatted": "7h37m", "sleep_quality": 3, "sleep_score": 72.0, "weight_kg": 75.84, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 280, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-17", "total_hours": 1.67, "total_tss": 108, "activity_count": 1, "activity_types": "Ride", "ctl": 81.77406, "atl": 95.11502, "tsb": -13.3, "hrv": 89.0, "rhr": 37, "sleep_hours": 7.02, "sleep_formatted": "7h1m", "sleep_quality": 3, "sleep_score": 67.0, "weight_kg": 75.387, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 16, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-18", "total_hours": 1.7, "total_tss": 73, "activity_count": 1, "activity_types": "Ride", "ctl": 81.56763, "atl": 92.17102, "tsb": -10.6, "hrv": null, "rhr": 44, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": 75.205, "is_hard_day": false, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 46, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-19", "total_hours": 2.67, "total_tss": 106, "activity_count": 3, "activity_types": "WeightTraining, Ride", "ctl": 81.930725, "atl": 94.01196, "tsb": -12.1, "hrv": 93.0, "rhr": 33, "sleep_hours": 8.12, "sleep_formatted": "8h7m", "sleep_quality": 3, "sleep_score": 77.0, "weight_kg": null, "is_hard_day": true, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 506, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-20", "total_hours": 1.39, "total_tss": 50, "activity_count": 1, "activity_types": "Ride", "ctl": 81.17945, "atl": 88.153, "tsb": -7.0, "hrv": 72.0, "rhr": 33, "sleep_hours": 7.68, "sleep_formatted": "7h41m", "sleep_quality": 3, "sleep_score": 77.0, "weight_kg": 74.842, "is_hard_day": false, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 30, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-21", "total_hours": 2.97, "total_tss": 182, "activity_count": 1, "activity_types": "Ride", "ctl": 83.55159, "atl": 100.64611, "tsb": -17.1, "hrv": 76.0, "rhr": 36, "sleep_hours": 8.15, "sleep_formatted": "8h9m", "sleep_quality": 3, "sleep_score": 68.0, "weight_kg": 74.752, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 9026, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-22", "total_hours": 2.86, "total_tss": 127, "activity_count": 1, "activity_types": "Ride", "ctl": 84.57386, "atl": 104.154396, "tsb": -19.6, "hrv": null, "rhr": 43, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": null, "is_hard_day": false, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 7713, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-23", "total_hours": 2.26, "total_tss": 49, "activity_count": 2, "activity_types": "WeightTraining, Ride", "ctl": 83.54864, "atl": 96.812126, "tsb": -13.3, "hrv": 94.0, "rhr": 33, "sleep_hours": 7.97, "sleep_formatted": "7h58m", "sleep_quality": 1, "sleep_score": 90.0, "weight_kg": 75.659, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 14, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-24", "total_hours": 1.62, "total_tss": 92, "activity_count": 2, "activity_types": "VirtualRide, WeightTraining", "ctl": 83.700424, "atl": 96.171524, "tsb": -12.5, "hrv": null, "rhr": 33, "sleep_hours": 8.07, "sleep_formatted": "8h4m", "sleep_quality": 1, "sleep_score": 90.0, "weight_kg": 75.114, "is_hard_day": true, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 988, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-25", "total_hours": 1.71, "total_tss": 85, "activity_count": 2, "activity_types": "VirtualRide, Ride", "ctl": 83.731, "atl": 94.68435, "tsb": -11.0, "hrv": null, "rhr": 43, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": 75.205, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 246, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-26", "total_hours": 2.23, "total_tss": 98, "activity_count": 2, "activity_types": "WeightTraining, Ride", "ctl": 83.90203, "atl": 95.12573, "tsb": -11.2, "hrv": 70.0, "rhr": 42, "sleep_hours": 7.83, "sleep_formatted": "7h50m", "sleep_quality": 2, "sleep_score": 88.0, "weight_kg": null, "is_hard_day": true, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 218, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-27", "total_hours": 1.77, "total_tss": 38, "activity_count": 2, "activity_types": "WeightTraining, VirtualRide", "ctl": 82.77498, "atl": 87.521034, "tsb": -4.7, "hrv": 58.0, "rhr": 34, "sleep_hours": 8.2, "sleep_formatted": "8h12m", "sleep_quality": 3, "sleep_score": 77.0, "weight_kg": null, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 594, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-28", "total_hours": 3.83, "total_tss": 210, "activity_count": 1, "activity_types": "Ride", "ctl": 85.76837, "atl": 103.82569, "tsb": -18.1, "hrv": 50.0, "rhr": 34, "sleep_hours": 8.0, "sleep_formatted": "8h", "sleep_quality": 2, "sleep_score": 80.0, "weight_kg": 75.477, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 9070, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-29", "total_hours": 0.0, "total_tss": 0, "activity_count": 0, "activity_types": "Rest", "ctl": 83.75039, "atl": 90.004196, "tsb": -6.3, "hrv": null, "rhr": 45, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": null, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 8454, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-30", "total_hours": 2.4, "total_tss": 82, "activity_count": 2, "activity_types": "WeightTraining, Ride", "ctl": 83.56804, "atl": 88.93866, "tsb": -5.4, "hrv": 69.0, "rhr": 33, "sleep_hours": 9.07, "sleep_formatted": "9h4m", "sleep_quality": 2, "sleep_score": 82.0, "weight_kg": 76.022, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 11038, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-03-31", "total_hours": 1.84, "total_tss": 90, "activity_count": 2, "activity_types": "WeightTraining, VirtualRide", "ctl": 83.60173, "atl": 89.07995, "tsb": -5.5, "hrv": 84.0, "rhr": 33, "sleep_hours": 7.53, "sleep_formatted": "7h32m", "sleep_quality": 3, "sleep_score": 77.0, "weight_kg": 75.931, "is_hard_day": true, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 1686, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-01", "total_hours": 1.77, "total_tss": 92, "activity_count": 3, "activity_types": "Ride, VirtualRide", "ctl": 83.799324, "atl": 89.46867, "tsb": -5.7, "hrv": 62.0, "rhr": 33, "sleep_hours": 7.75, "sleep_formatted": "7h45m", "sleep_quality": 3, "sleep_score": 74.0, "weight_kg": 75.387, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 403, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-02", "total_hours": 2.06, "total_tss": 139, "activity_count": 3, "activity_types": "VirtualRide, Ride", "ctl": 85.09811, "atl": 96.062386, "tsb": -11.0, "hrv": null, "rhr": 40, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": 75.659, "is_hard_day": true, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 1538, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-03", "total_hours": 1.97, "total_tss": 144, "activity_count": 1, "activity_types": "Ride", "ctl": 86.48397, "atl": 102.44394, "tsb": -16.0, "hrv": 88.0, "rhr": 34, "sleep_hours": 8.1, "sleep_formatted": "8h6m", "sleep_quality": 2, "sleep_score": 88.0, "weight_kg": 75.568, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 34, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-04", "total_hours": 2.12, "total_tss": 13, "activity_count": 1, "activity_types": "Hike", "ctl": 84.75502, "atl": 90.53697, "tsb": -5.8, "hrv": null, "rhr": 39, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": null, "is_hard_day": false, "intensity_basis": "hr", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 17240, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-05", "total_hours": 3.02, "total_tss": 17, "activity_count": 1, "activity_types": "Walk", "ctl": 83.16086, "atl": 80.747574, "tsb": 2.4, "hrv": null, "rhr": 39, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": null, "is_hard_day": false, "intensity_basis": "hr", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 22726, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-06", "total_hours": 1.61, "total_tss": 141, "activity_count": 1, "activity_types": "Ride", "ctl": 84.52171, "atl": 88.7685, "tsb": -4.2, "hrv": null, "rhr": 44, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": null, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 18, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-07", "total_hours": 3.56, "total_tss": 126, "activity_count": 4, "activity_types": "Ride, WeightTraining", "ctl": 85.33293, "atl": 93.72484, "tsb": -8.4, "hrv": 96.0, "rhr": 34, "sleep_hours": 7.32, "sleep_formatted": "7h19m", "sleep_quality": 3, "sleep_score": 75.0, "weight_kg": 76.022, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 838, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-08", "total_hours": 3.04, "total_tss": 123, "activity_count": 4, "activity_types": "Ride, WeightTraining", "ctl": 86.17212, "atl": 97.62201, "tsb": -11.4, "hrv": 87.0, "rhr": 33, "sleep_hours": 7.72, "sleep_formatted": "7h43m", "sleep_quality": 3, "sleep_score": 77.0, "weight_kg": 75.296, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 330, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-09", "total_hours": 2.03, "total_tss": 75, "activity_count": 4, "activity_types": "WeightTraining, VirtualRide, Ride", "ctl": 85.67397, "atl": 94.61052, "tsb": -8.9, "hrv": 87.0, "rhr": 33, "sleep_hours": 8.73, "sleep_formatted": "8h44m", "sleep_quality": 2, "sleep_score": 87.0, "weight_kg": 75.477, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 7, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-10", "total_hours": 1.05, "total_tss": 39, "activity_count": 3, "activity_types": "Ride, WeightTraining", "ctl": 84.45817, "atl": 87.20753, "tsb": -2.7, "hrv": null, "rhr": 42, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": 75.568, "is_hard_day": false, "intensity_basis": "hr", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 174, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-11", "total_hours": 2.78, "total_tss": 192, "activity_count": 1, "activity_types": "Ride", "ctl": 86.98845, "atl": 101.15772, "tsb": -14.2, "hrv": null, "rhr": 45, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": 75.749, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 15, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-12", "total_hours": 1.75, "total_tss": 106, "activity_count": 1, "activity_types": "Ride", "ctl": 87.43576, "atl": 101.80234, "tsb": -14.4, "hrv": 89.0, "rhr": 33, "sleep_hours": 8.5, "sleep_formatted": "8h30m", "sleep_quality": 2, "sleep_score": 88.0, "weight_kg": null, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 32, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-13", "total_hours": 1.76, "total_tss": 36, "activity_count": 3, "activity_types": "Ride, WeightTraining", "ctl": 86.13145, "atl": 93.042595, "tsb": -6.9, "hrv": 86.0, "rhr": 33, "sleep_hours": 8.52, "sleep_formatted": "8h31m", "sleep_quality": 2, "sleep_score": 87.0, "weight_kg": 75.931, "is_hard_day": false, "intensity_basis": "hr", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 596, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-14", "total_hours": 2.03, "total_tss": 94, "activity_count": 3, "activity_types": "Ride, VirtualRide, WeightTraining", "ctl": 86.19894, "atl": 93.170044, "tsb": -7.0, "hrv": 69.0, "rhr": 33, "sleep_hours": 7.83, "sleep_formatted": "7h50m", "sleep_quality": 2, "sleep_score": 87.0, "weight_kg": 75.205, "is_hard_day": true, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 4423, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-15", "total_hours": 1.95, "total_tss": 87, "activity_count": 3, "activity_types": "VirtualRide, Ride", "ctl": 86.21778, "atl": 92.34867, "tsb": -6.1, "hrv": null, "rhr": 43, "sleep_hours": null, "sleep_formatted": null, "sleep_quality": null, "sleep_score": null, "weight_kg": null, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 790, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-16", "total_hours": 2.5, "total_tss": 114, "activity_count": 2, "activity_types": "Ride, WeightTraining", "ctl": 86.75381, "atl": 95.23094, "tsb": -8.5, "hrv": 86.0, "rhr": 33, "sleep_hours": 8.53, "sleep_formatted": "8h32m", "sleep_quality": 2, "sleep_score": 89.0, "weight_kg": 74.661, "is_hard_day": true, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 18210, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-17", "total_hours": 1.46, "total_tss": 63, "activity_count": 1, "activity_types": "VirtualRide", "ctl": 86.19492, "atl": 90.94029, "tsb": -4.7, "hrv": 87.0, "rhr": 36, "sleep_hours": 7.83, "sleep_formatted": "7h50m", "sleep_quality": 2, "sleep_score": 83.0, "weight_kg": 75.205, "is_hard_day": false, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 4901, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-18", "total_hours": 2.05, "total_tss": 98, "activity_count": 1, "activity_types": "VirtualRide", "ctl": 86.47268, "atl": 91.8801, "tsb": -5.4, "hrv": 97.0, "rhr": 38, "sleep_hours": 8.05, "sleep_formatted": "8h3m", "sleep_quality": 2, "sleep_score": 89.0, "weight_kg": null, "is_hard_day": false, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 11, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-19", "total_hours": 0.0, "total_tss": 0, "activity_count": 0, "activity_types": "Rest", "ctl": 84.438126, "atl": 79.64883, "tsb": 4.8, "hrv": 79.0, "rhr": 43, "sleep_hours": 1.4, "sleep_formatted": "1h24m", "sleep_quality": 4, "sleep_score": 35.0, "weight_kg": 75.659, "is_hard_day": null, "intensity_basis": null, "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 30, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-20", "total_hours": 1.64, "total_tss": 83, "activity_count": 3, "activity_types": "Ride, VirtualRide", "ctl": 84.40429, "atl": 80.09494, "tsb": 4.3, "hrv": 93.0, "rhr": 34, "sleep_hours": 8.25, "sleep_formatted": "8h15m", "sleep_quality": 2, "sleep_score": 88.0, "weight_kg": 75.84, "is_hard_day": false, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 8456, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-21", "total_hours": 0.87, "total_tss": 60, "activity_count": 1, "activity_types": "VirtualRide", "ctl": 83.8301, "atl": 77.41986, "tsb": 6.4, "hrv": 91.0, "rhr": 34, "sleep_hours": 8.02, "sleep_formatted": "8h1m", "sleep_quality": 1, "sleep_score": 91.0, "weight_kg": 75.659, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 5975, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-22", "total_hours": 0.34, "total_tss": 21, "activity_count": 1, "activity_types": "Run", "ctl": 82.351814, "atl": 69.909134, "tsb": 12.4, "hrv": 80.0, "rhr": 37, "sleep_hours": 7.07, "sleep_formatted": "7h4m", "sleep_quality": 3, "sleep_score": 72.0, "weight_kg": 75.205, "is_hard_day": false, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 8557, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-23", "total_hours": 2.33, "total_tss": 117, "activity_count": 2, "activity_types": "Ride, WeightTraining", "ctl": 83.00233, "atl": 76.17797, "tsb": 6.8, "hrv": 88.0, "rhr": 37, "sleep_hours": 9.28, "sleep_formatted": "9h17m", "sleep_quality": 2, "sleep_score": 86.0, "weight_kg": null, "is_hard_day": true, "intensity_basis": "mixed", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 25, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-24", "total_hours": 1.95, "total_tss": 67, "activity_count": 5, "activity_types": "Ride, WeightTraining", "ctl": 82.319954, "atl": 74.95618, "tsb": 7.4, "hrv": 111.0, "rhr": 38, "sleep_hours": 8.02, "sleep_formatted": "8h1m", "sleep_quality": 1, "sleep_score": 90.0, "weight_kg": null, "is_hard_day": false, "intensity_basis": "hr", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 514, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-25", "total_hours": 2.81, "total_tss": 185, "activity_count": 1, "activity_types": "Ride", "ctl": 84.73584, "atl": 89.60544, "tsb": -4.9, "hrv": 91.0, "rhr": 41, "sleep_hours": 7.63, "sleep_formatted": "7h38m", "sleep_quality": 3, "sleep_score": 78.0, "weight_kg": null, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 35, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-26", "total_hours": 2.72, "total_tss": 163, "activity_count": 1, "activity_types": "Ride", "ctl": 86.57726, "atl": 99.37588, "tsb": -12.8, "hrv": 107.0, "rhr": 38, "sleep_hours": 8.52, "sleep_formatted": "8h31m", "sleep_quality": 1, "sleep_score": 92.0, "weight_kg": null, "is_hard_day": true, "intensity_basis": "power", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": 98.0, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 27, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null }, { "date": "2026-04-27", "total_hours": 1.51, "total_tss": 28, "activity_count": 2, "activity_types": "Ride, WeightTraining", "ctl": 84.96375, "atl": 89.87417, "tsb": -4.9, "hrv": 88.0, "rhr": 34, "sleep_hours": 8.07, "sleep_formatted": "8h4m", "sleep_quality": 1, "sleep_score": 90.0, "weight_kg": null, "is_hard_day": false, "intensity_basis": "hr", "fatigue": null, "soreness": null, "stress": null, "mood": null, "motivation": null, "injury": null, "hydration": null, "spO2": null, "blood_glucose": null, "systolic": null, "diastolic": null, "baevsky_si": null, "lactate": null, "respiration": null, "body_fat_pct": null, "abdomen_cm": null, "steps": 26, "hydration_volume_l": null, "kcal_consumed": null, "carbohydrates_g": null, "protein_g": null, "fat_g": null, "menstrual_phase": null, "menstrual_phase_predicted": null, "readiness": null } ], "weekly_180d": [ { "week_start": "2025-10-27", "total_hours": 13.23, "total_tss": 660, "primary_sport": "cycling", "primary_sport_tss": 357.0, "sport_tss_breakdown": { "strength": 18.0, "cycling": 357.0, "run": 285.0 }, "activity_count": 14, "ctl_end": 87.9, "atl_end": 96.4, "tsb_end": -8.5, "ramp_rate": 0.64, "avg_hrv": 88.6, "avg_rhr": 36.4, "avg_sleep_hours": 7.73, "z1_z2_pct": 72.2, "z3_pct": 19.0, "z4_plus_pct": 8.9, "hard_days": 3, "longest_ride_hours": 2.01, "avg_feel": 3, "feel_count": 8, "avg_rpe": 2.2, "rpe_count": 8, "weight_kg": 74.9, "monotony": 2.19, "intensity_basis_breakdown": { "power": 2, "hr": 0 }, "acwr": null, "phase_detected": null }, { "week_start": "2025-11-03", "total_hours": 9.85, "total_tss": 517, "primary_sport": "cycling", "primary_sport_tss": 271.0, "sport_tss_breakdown": { "strength": 27.0, "run": 219.0, "cycling": 271.0 }, "activity_count": 7, "ctl_end": 85.4, "atl_end": 87.5, "tsb_end": -2.1, "ramp_rate": -2.53, "avg_hrv": 86.0, "avg_rhr": 36.9, "avg_sleep_hours": 8.0, "z1_z2_pct": 62.6, "z3_pct": 19.1, "z4_plus_pct": 18.3, "hard_days": 4, "longest_ride_hours": 2.96, "avg_feel": 4.3, "feel_count": 3, "avg_rpe": 2.7, "rpe_count": 3, "weight_kg": 74.7, "monotony": 1.17, "intensity_basis_breakdown": { "power": 3, "hr": 0 }, "acwr": null, "phase_detected": "Build" }, { "week_start": "2025-11-10", "total_hours": 14.8, "total_tss": 785, "primary_sport": "cycling", "primary_sport_tss": 688.0, "sport_tss_breakdown": { "strength": 25.0, "run": 72.0, "cycling": 688.0 }, "activity_count": 17, "ctl_end": 89.6, "atl_end": 113.1, "tsb_end": -23.6, "ramp_rate": 4.14, "avg_hrv": 87.9, "avg_rhr": 36.6, "avg_sleep_hours": 7.88, "z1_z2_pct": 63.1, "z3_pct": 23.4, "z4_plus_pct": 13.5, "hard_days": 6, "longest_ride_hours": 4.4, "avg_feel": 3.3, "feel_count": 7, "avg_rpe": 2, "rpe_count": 7, "weight_kg": 75.8, "monotony": 1.57, "intensity_basis_breakdown": { "power": 2, "hr": 0 }, "acwr": null, "phase_detected": "Build" }, { "week_start": "2025-11-17", "total_hours": 14.44, "total_tss": 763, "primary_sport": "cycling", "primary_sport_tss": 504.0, "sport_tss_breakdown": { "run": 243.0, "strength": 16.0, "cycling": 504.0 }, "activity_count": 16, "ctl_end": 92.4, "atl_end": 114.8, "tsb_end": -22.5, "ramp_rate": 2.81, "avg_hrv": 84.4, "avg_rhr": 36.1, "avg_sleep_hours": 8.01, "z1_z2_pct": 63.9, "z3_pct": 24.9, "z4_plus_pct": 11.1, "hard_days": 5, "longest_ride_hours": 4.48, "avg_feel": 2.7, "feel_count": 11, "avg_rpe": 1.5, "rpe_count": 11, "weight_kg": 76.4, "monotony": 1.76, "intensity_basis_breakdown": { "power": 2, "hr": 0 }, "acwr": 1.17, "phase_detected": "Build" }, { "week_start": "2025-11-24", "total_hours": 10.76, "total_tss": 612, "primary_sport": "cycling", "primary_sport_tss": 478.0, "sport_tss_breakdown": { "strength": 11.0, "cycling": 478.0, "run": 123.0 }, "activity_count": 15, "ctl_end": 91.7, "atl_end": 105.8, "tsb_end": -14.2, "ramp_rate": -0.68, "avg_hrv": 76.9, "avg_rhr": 36, "avg_sleep_hours": 7.83, "z1_z2_pct": 64.8, "z3_pct": 17.8, "z4_plus_pct": 17.4, "hard_days": 4, "longest_ride_hours": 4.17, "avg_feel": 3.2, "feel_count": 11, "avg_rpe": 1.6, "rpe_count": 11, "weight_kg": 75.7, "monotony": 0.94, "intensity_basis_breakdown": { "power": 2, "hr": 0 }, "acwr": 0.89, "phase_detected": "Build" }, { "week_start": "2025-12-01", "total_hours": 16.48, "total_tss": 255, "primary_sport": "run", "primary_sport_tss": 76.0, "sport_tss_breakdown": { "cycling": 35.0, "strength": 9.0, "run": 76.0 }, "activity_count": 7, "ctl_end": 83.0, "atl_end": 62.2, "tsb_end": 20.8, "ramp_rate": -8.67, "avg_hrv": 77.7, "avg_rhr": 37.9, "avg_sleep_hours": 7.37, "z1_z2_pct": 96.0, "z3_pct": 1.5, "z4_plus_pct": 2.5, "hard_days": 1, "longest_ride_hours": 5.17, "avg_feel": 3, "feel_count": 3, "avg_rpe": 3.7, "rpe_count": 3, "weight_kg": 75.6, "monotony": 1.23, "intensity_basis_breakdown": { "power": 0, "hr": 0 }, "acwr": 0.35, "phase_detected": "Deload" }, { "week_start": "2025-12-08", "total_hours": 16.75, "total_tss": 616, "primary_sport": "cycling", "primary_sport_tss": 318.0, "sport_tss_breakdown": { "cycling": 318.0, "run": 223.0, "strength": 9.0 }, "activity_count": 9, "ctl_end": 83.8, "atl_end": 84.3, "tsb_end": -0.5, "ramp_rate": 0.81, "avg_hrv": 94.3, "avg_rhr": 38.9, "avg_sleep_hours": 7.78, "z1_z2_pct": 78.2, "z3_pct": 10.1, "z4_plus_pct": 11.7, "hard_days": 3, "longest_ride_hours": 6.5, "avg_feel": 3.6, "feel_count": 5, "avg_rpe": 2.4, "rpe_count": 5, "weight_kg": 76.3, "monotony": 1.54, "intensity_basis_breakdown": { "power": 3, "hr": 0 }, "acwr": 1.13, "phase_detected": "Build" }, { "week_start": "2025-12-15", "total_hours": 11.61, "total_tss": 576, "primary_sport": "cycling", "primary_sport_tss": 307.0, "sport_tss_breakdown": { "strength": 19.0, "run": 250.0, "cycling": 307.0 }, "activity_count": 9, "ctl_end": 83.4, "atl_end": 89.0, "tsb_end": -5.6, "ramp_rate": -0.4, "avg_hrv": 94.6, "avg_rhr": 38, "avg_sleep_hours": 7.74, "z1_z2_pct": 67.0, "z3_pct": 14.2, "z4_plus_pct": 18.8, "hard_days": 4, "longest_ride_hours": 3.45, "avg_feel": 3.4, "feel_count": 5, "avg_rpe": 2.8, "rpe_count": 5, "weight_kg": 76.4, "monotony": 1.53, "intensity_basis_breakdown": { "power": 3, "hr": 0 }, "acwr": 1.17, "phase_detected": "Build" }, { "week_start": "2025-12-22", "total_hours": 11.69, "total_tss": 489, "primary_sport": "cycling", "primary_sport_tss": 335.0, "sport_tss_breakdown": { "cycling": 335.0, "run": 137.0, "walk": 17.0 }, "activity_count": 9, "ctl_end": 81.5, "atl_end": 80.8, "tsb_end": 0.7, "ramp_rate": -1.92, "avg_hrv": 86.0, "avg_rhr": 40.1, "avg_sleep_hours": 8.01, "z1_z2_pct": 74.2, "z3_pct": 13.9, "z4_plus_pct": 11.8, "hard_days": 3, "longest_ride_hours": 2.37, "avg_feel": 4, "feel_count": 4, "avg_rpe": 3, "rpe_count": 4, "weight_kg": 76.6, "monotony": 1.21, "intensity_basis_breakdown": { "power": 2, "hr": 0 }, "acwr": 1.01, "phase_detected": "Build" }, { "week_start": "2025-12-29", "total_hours": 9.38, "total_tss": 523, "primary_sport": "cycling", "primary_sport_tss": 305.0, "sport_tss_breakdown": { "run": 218.0, "cycling": 305.0 }, "activity_count": 7, "ctl_end": 80.6, "atl_end": 80.5, "tsb_end": 0.1, "ramp_rate": -0.9, "avg_hrv": 96.7, "avg_rhr": 39.5, "avg_sleep_hours": 8.48, "z1_z2_pct": 60.8, "z3_pct": 18.7, "z4_plus_pct": 20.5, "hard_days": 4, "longest_ride_hours": 2.15, "avg_feel": 3, "feel_count": 3, "avg_rpe": 2, "rpe_count": 4, "weight_kg": 77.3, "monotony": 1.79, "intensity_basis_breakdown": { "power": 4, "hr": 0 }, "acwr": 0.93, "phase_detected": "Build" }, { "week_start": "2026-01-05", "total_hours": 9.16, "total_tss": 499, "primary_sport": "run", "primary_sport_tss": 358.0, "sport_tss_breakdown": { "run": 358.0, "cycling": 141.0 }, "activity_count": 8, "ctl_end": 79.4, "atl_end": 79.3, "tsb_end": 0.0, "ramp_rate": -1.24, "avg_hrv": 95.0, "avg_rhr": 37.1, "avg_sleep_hours": 8.36, "z1_z2_pct": 64.8, "z3_pct": 19.9, "z4_plus_pct": 15.3, "hard_days": 4, "longest_ride_hours": 2.21, "avg_feel": 3.2, "feel_count": 5, "avg_rpe": 3, "rpe_count": 5, "weight_kg": 76.0, "monotony": 2.21, "intensity_basis_breakdown": { "power": 4, "hr": 0 }, "acwr": 0.94, "phase_detected": "Build" }, { "week_start": "2026-01-12", "total_hours": 11.31, "total_tss": 613, "primary_sport": "cycling", "primary_sport_tss": 327.0, "sport_tss_breakdown": { "run": 286.0, "cycling": 327.0 }, "activity_count": 10, "ctl_end": 81.2, "atl_end": 91.9, "tsb_end": -10.8, "ramp_rate": 1.82, "avg_hrv": 80.2, "avg_rhr": 47.6, "avg_sleep_hours": 8.0, "z1_z2_pct": 73.0, "z3_pct": 12.2, "z4_plus_pct": 14.8, "hard_days": 3, "longest_ride_hours": 3.05, "avg_feel": 4, "feel_count": 4, "avg_rpe": 4.8, "rpe_count": 4, "weight_kg": 75.9, "monotony": 1.84, "intensity_basis_breakdown": { "power": 3, "hr": 0 }, "acwr": 1.22, "phase_detected": "Build" }, { "week_start": "2026-01-19", "total_hours": 9.33, "total_tss": 516, "primary_sport": "cycling", "primary_sport_tss": 516.0, "sport_tss_breakdown": { "cycling": 516.0 }, "activity_count": 6, "ctl_end": 80.2, "atl_end": 76.0, "tsb_end": 4.2, "ramp_rate": -1.02, "avg_hrv": 87.2, "avg_rhr": 38.3, "avg_sleep_hours": 8.04, "z1_z2_pct": 54.4, "z3_pct": 31.7, "z4_plus_pct": 13.9, "hard_days": 4, "longest_ride_hours": 3.5, "avg_feel": null, "feel_count": 0, "avg_rpe": null, "rpe_count": 0, "weight_kg": 77.1, "monotony": 1.09, "intensity_basis_breakdown": { "power": 4, "hr": 0 }, "acwr": 0.95, "phase_detected": "Build" }, { "week_start": "2026-01-26", "total_hours": 11.65, "total_tss": 641, "primary_sport": "cycling", "primary_sport_tss": 564.0, "sport_tss_breakdown": { "run": 69.0, "cycling": 564.0, "strength": 8.0 }, "activity_count": 6, "ctl_end": 82.1, "atl_end": 95.3, "tsb_end": -13.2, "ramp_rate": 1.96, "avg_hrv": 92.7, "avg_rhr": 35.2, "avg_sleep_hours": 8.57, "z1_z2_pct": 58.0, "z3_pct": 20.5, "z4_plus_pct": 21.5, "hard_days": 5, "longest_ride_hours": 3.85, "avg_feel": 5, "feel_count": 1, "avg_rpe": 6, "rpe_count": 1, "weight_kg": 75.8, "monotony": 1.14, "intensity_basis_breakdown": { "power": 4, "hr": 0 }, "acwr": 1.18, "phase_detected": "Build" }, { "week_start": "2026-02-02", "total_hours": 4.0, "total_tss": 184, "primary_sport": "cycling", "primary_sport_tss": 168.0, "sport_tss_breakdown": { "strength": 16.0, "cycling": 168.0 }, "activity_count": 9, "ctl_end": 75.4, "atl_end": 57.3, "tsb_end": 18.0, "ramp_rate": -6.73, "avg_hrv": 91.1, "avg_rhr": 37.9, "avg_sleep_hours": 8.14, "z1_z2_pct": 74.5, "z3_pct": 2.4, "z4_plus_pct": 23.1, "hard_days": 2, "longest_ride_hours": 1.17, "avg_feel": null, "feel_count": 0, "avg_rpe": null, "rpe_count": 0, "weight_kg": 75.8, "monotony": 0.61, "intensity_basis_breakdown": { "power": 1, "hr": 0 }, "acwr": 0.31, "phase_detected": "Deload" }, { "week_start": "2026-02-09", "total_hours": 10.13, "total_tss": 531, "primary_sport": "cycling", "primary_sport_tss": 422.0, "sport_tss_breakdown": { "strength": 8.0, "cycling": 422.0, "run": 101.0 }, "activity_count": 19, "ctl_end": 79.5, "atl_end": 88.6, "tsb_end": -9.0, "ramp_rate": 4.16, "avg_hrv": 94.4, "avg_rhr": 35.7, "avg_sleep_hours": 7.42, "z1_z2_pct": 70.6, "z3_pct": 14.9, "z4_plus_pct": 14.5, "hard_days": 4, "longest_ride_hours": 2.01, "avg_feel": 4, "feel_count": 1, "avg_rpe": 2, "rpe_count": 1, "weight_kg": 76.0, "monotony": 1.9, "intensity_basis_breakdown": { "power": 4, "hr": 0 }, "acwr": 1.19, "phase_detected": "Build" }, { "week_start": "2026-02-16", "total_hours": 4.73, "total_tss": 191, "primary_sport": "cycling", "primary_sport_tss": 124.0, "sport_tss_breakdown": { "run": 53.0, "strength": 14.0, "cycling": 124.0 }, "activity_count": 13, "ctl_end": 74.4, "atl_end": 56.4, "tsb_end": 18.0, "ramp_rate": -5.11, "avg_hrv": 84.7, "avg_rhr": 35, "avg_sleep_hours": 8.04, "z1_z2_pct": 81.2, "z3_pct": 3.9, "z4_plus_pct": 14.9, "hard_days": 1, "longest_ride_hours": 1.07, "avg_feel": 4, "feel_count": 1, "avg_rpe": 2, "rpe_count": 1, "weight_kg": 75.6, "monotony": 0.77, "intensity_basis_breakdown": { "power": 1, "hr": 0 }, "acwr": 0.42, "phase_detected": "Deload" }, { "week_start": "2026-02-23", "total_hours": 11.52, "total_tss": 573, "primary_sport": "cycling", "primary_sport_tss": 555.0, "sport_tss_breakdown": { "cycling": 555.0, "strength": 18.0 }, "activity_count": 16, "ctl_end": 75.9, "atl_end": 74.6, "tsb_end": 1.3, "ramp_rate": 1.52, "avg_hrv": 90.8, "avg_rhr": 39.4, "avg_sleep_hours": 7.71, "z1_z2_pct": 82.1, "z3_pct": 5.1, "z4_plus_pct": 12.9, "hard_days": 3, "longest_ride_hours": 2.78, "avg_feel": 3, "feel_count": 6, "avg_rpe": 1.3, "rpe_count": 6, "weight_kg": 74.6, "monotony": 1.46, "intensity_basis_breakdown": { "power": 1, "hr": 0 }, "acwr": 1.9, "phase_detected": "Build" }, { "week_start": "2026-03-02", "total_hours": 16.1, "total_tss": 795, "primary_sport": "cycling", "primary_sport_tss": 786.0, "sport_tss_breakdown": { "strength": 9.0, "cycling": 786.0 }, "activity_count": 9, "ctl_end": 82.0, "atl_end": 111.3, "tsb_end": -29.3, "ramp_rate": 6.07, "avg_hrv": 95.9, "avg_rhr": 35.9, "avg_sleep_hours": 7.76, "z1_z2_pct": 75.1, "z3_pct": 7.3, "z4_plus_pct": 17.6, "hard_days": 4, "longest_ride_hours": 3.78, "avg_feel": 3, "feel_count": 2, "avg_rpe": 1, "rpe_count": 2, "weight_kg": 75.6, "monotony": 1.28, "intensity_basis_breakdown": { "power": 4, "hr": 0 }, "acwr": 1.84, "phase_detected": "Build" }, { "week_start": "2026-03-09", "total_hours": 12.7, "total_tss": 546, "primary_sport": "cycling", "primary_sport_tss": 483.0, "sport_tss_breakdown": { "cycling": 483.0, "strength": 33.0, "run": 30.0 }, "activity_count": 18, "ctl_end": 82.4, "atl_end": 101.1, "tsb_end": -18.7, "ramp_rate": 0.42, "avg_hrv": 90.4, "avg_rhr": 40, "avg_sleep_hours": 7.77, "z1_z2_pct": 84.4, "z3_pct": 6.2, "z4_plus_pct": 9.4, "hard_days": 2, "longest_ride_hours": 3.01, "avg_feel": 3, "feel_count": 6, "avg_rpe": 1.5, "rpe_count": 6, "weight_kg": 75.1, "monotony": 1.4, "intensity_basis_breakdown": { "power": 2, "hr": 0 }, "acwr": 1.05, "phase_detected": "Build" }, { "week_start": "2026-03-16", "total_hours": 15.06, "total_tss": 687, "primary_sport": "cycling", "primary_sport_tss": 664.0, "sport_tss_breakdown": { "strength": 23.0, "cycling": 664.0 }, "activity_count": 10, "ctl_end": 84.6, "atl_end": 104.2, "tsb_end": -19.6, "ramp_rate": 2.13, "avg_hrv": 84.8, "avg_rhr": 37, "avg_sleep_hours": 7.72, "z1_z2_pct": 78.5, "z3_pct": 9.8, "z4_plus_pct": 11.7, "hard_days": 3, "longest_ride_hours": 2.97, "avg_feel": 3, "feel_count": 1, "avg_rpe": 1, "rpe_count": 1, "weight_kg": 74.8, "monotony": 2.01, "intensity_basis_breakdown": { "power": 2, "hr": 0 }, "acwr": 1.08, "phase_detected": "Build" }, { "week_start": "2026-03-23", "total_hours": 13.42, "total_tss": 572, "primary_sport": "cycling", "primary_sport_tss": 553.0, "sport_tss_breakdown": { "strength": 19.0, "cycling": 553.0 }, "activity_count": 11, "ctl_end": 83.8, "atl_end": 90.0, "tsb_end": -6.3, "ramp_rate": -0.82, "avg_hrv": 68.0, "avg_rhr": 37.7, "avg_sleep_hours": 8.01, "z1_z2_pct": 79.2, "z3_pct": 7.2, "z4_plus_pct": 13.7, "hard_days": 3, "longest_ride_hours": 3.83, "avg_feel": 3, "feel_count": 4, "avg_rpe": 4, "rpe_count": 4, "weight_kg": 75.5, "monotony": 1.23, "intensity_basis_breakdown": { "power": 1, "hr": 0 }, "acwr": 0.85, "phase_detected": "Build" }, { "week_start": "2026-03-30", "total_hours": 15.19, "total_tss": 577, "primary_sport": "cycling", "primary_sport_tss": 536.0, "sport_tss_breakdown": { "strength": 11.0, "cycling": 536.0, "walk": 30.0 }, "activity_count": 13, "ctl_end": 83.2, "atl_end": 80.7, "tsb_end": 2.4, "ramp_rate": -0.59, "avg_hrv": 75.8, "avg_rhr": 35.9, "avg_sleep_hours": 8.11, "z1_z2_pct": 77.0, "z3_pct": 10.8, "z4_plus_pct": 12.2, "hard_days": 3, "longest_ride_hours": 3.02, "avg_feel": 3, "feel_count": 8, "avg_rpe": 4.4, "rpe_count": 8, "weight_kg": 75.6, "monotony": 1.58, "intensity_basis_breakdown": { "power": 1, "hr": 0 }, "acwr": 0.96, "phase_detected": "Build" }, { "week_start": "2026-04-06", "total_hours": 15.83, "total_tss": 802, "primary_sport": "cycling", "primary_sport_tss": 778.0, "sport_tss_breakdown": { "cycling": 778.0, "strength": 24.0 }, "activity_count": 18, "ctl_end": 87.4, "atl_end": 101.8, "tsb_end": -14.4, "ramp_rate": 4.27, "avg_hrv": 89.8, "avg_rhr": 37.7, "avg_sleep_hours": 8.07, "z1_z2_pct": 71.8, "z3_pct": 16.9, "z4_plus_pct": 11.3, "hard_days": 3, "longest_ride_hours": 2.78, "avg_feel": 3.3, "feel_count": 14, "avg_rpe": 3.6, "rpe_count": 14, "weight_kg": 75.7, "monotony": 2.35, "intensity_basis_breakdown": { "power": 3, "hr": 0 }, "acwr": 1.31, "phase_detected": "Build" }, { "week_start": "2026-04-13", "total_hours": 11.75, "total_tss": 492, "primary_sport": "cycling", "primary_sport_tss": 478.0, "sport_tss_breakdown": { "cycling": 478.0, "strength": 14.0 }, "activity_count": 13, "ctl_end": 84.4, "atl_end": 79.6, "tsb_end": 4.8, "ramp_rate": -3.0, "avg_hrv": 84.0, "avg_rhr": 37, "avg_sleep_hours": 7.03, "z1_z2_pct": 87.6, "z3_pct": 3.9, "z4_plus_pct": 8.5, "hard_days": 2, "longest_ride_hours": 2.05, "avg_feel": 3.1, "feel_count": 9, "avg_rpe": 3.4, "rpe_count": 9, "weight_kg": 75.7, "monotony": 1.75, "intensity_basis_breakdown": { "power": 0, "hr": 0 }, "acwr": 0.76, "phase_detected": "Deload" }, { "week_start": "2026-04-20", "total_hours": 12.67, "total_tss": 696, "primary_sport": "cycling", "primary_sport_tss": 655.0, "sport_tss_breakdown": { "cycling": 655.0, "run": 21.0, "strength": 20.0 }, "activity_count": 14, "ctl_end": 86.6, "atl_end": 99.4, "tsb_end": -12.8, "ramp_rate": 2.14, "avg_hrv": 94.4, "avg_rhr": 37, "avg_sleep_hours": 8.11, "z1_z2_pct": 70.5, "z3_pct": 11.1, "z4_plus_pct": 18.4, "hard_days": 4, "longest_ride_hours": 2.81, "avg_feel": 3.2, "feel_count": 12, "avg_rpe": 3.2, "rpe_count": 12, "weight_kg": 75.2, "monotony": 1.69, "intensity_basis_breakdown": { "power": 3, "hr": 0 }, "acwr": 1.12, "phase_detected": null } ], "monthly_1y": [ { "month": "2025-04", "total_hours": 51.15, "total_tss": 2415, "activity_count": 41, "ctl_peak": 83.4, "ctl_low": 76.1, "ctl_end": 77.0, "avg_hrv": 92.3, "avg_rhr": 37.8, "z1_z2_pct": 72.0, "z3_pct": 15.3, "z4_plus_pct": 12.7, "hard_days_avg_per_week": 4.4, "longest_ride_hours": 3.7, "avg_weight_kg": 78.0, "dominant_phase": "Maintenance", "days_with_data": 30 }, { "month": "2025-05", "total_hours": 60.61, "total_tss": 2442, "activity_count": 51, "ctl_peak": 81.1, "ctl_low": 73.4, "ctl_end": 76.6, "avg_hrv": 90.6, "avg_rhr": 37.5, "z1_z2_pct": 79.1, "z3_pct": 14.3, "z4_plus_pct": 6.6, "hard_days_avg_per_week": 2.7, "longest_ride_hours": 3.88, "avg_weight_kg": 78.6, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2025-06", "total_hours": 51.23, "total_tss": 2198, "activity_count": 58, "ctl_peak": 77.9, "ctl_low": 72.6, "ctl_end": 74.3, "avg_hrv": 88.5, "avg_rhr": 35.8, "z1_z2_pct": 74.2, "z3_pct": 16.6, "z4_plus_pct": 9.2, "hard_days_avg_per_week": 3.7, "longest_ride_hours": 3.89, "avg_weight_kg": 78.0, "dominant_phase": "Maintenance", "days_with_data": 30 }, { "month": "2025-07", "total_hours": 43.82, "total_tss": 2228, "activity_count": 43, "ctl_peak": 74.5, "ctl_low": 67.4, "ctl_end": 73.6, "avg_hrv": 82.5, "avg_rhr": 35.8, "z1_z2_pct": 72.0, "z3_pct": 16.3, "z4_plus_pct": 11.7, "hard_days_avg_per_week": 2.9, "longest_ride_hours": 2.96, "avg_weight_kg": 77.1, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2025-08", "total_hours": 64.14, "total_tss": 2934, "activity_count": 58, "ctl_peak": 87.9, "ctl_low": 71.4, "ctl_end": 87.9, "avg_hrv": 92.5, "avg_rhr": 34.8, "z1_z2_pct": 76.9, "z3_pct": 14.4, "z4_plus_pct": 8.8, "hard_days_avg_per_week": 3.8, "longest_ride_hours": 6.12, "avg_weight_kg": 75.9, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2025-09", "total_hours": 48.38, "total_tss": 2163, "activity_count": 57, "ctl_peak": 88.5, "ctl_low": 80.7, "ctl_end": 85.7, "avg_hrv": 89.7, "avg_rhr": 35.7, "z1_z2_pct": 81.3, "z3_pct": 9.0, "z4_plus_pct": 9.8, "hard_days_avg_per_week": 3.0, "longest_ride_hours": 3.19, "avg_weight_kg": 75.5, "dominant_phase": "Maintenance", "days_with_data": 30 }, { "month": "2025-10", "total_hours": 56.37, "total_tss": 2776, "activity_count": 66, "ctl_peak": 89.0, "ctl_low": 81.1, "ctl_end": 86.9, "avg_hrv": 87.6, "avg_rhr": 36.7, "z1_z2_pct": 75.3, "z3_pct": 16.2, "z4_plus_pct": 8.5, "hard_days_avg_per_week": 3.4, "longest_ride_hours": 3.26, "avg_weight_kg": 75.4, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2025-11", "total_hours": 53.63, "total_tss": 2895, "activity_count": 57, "ctl_peak": 92.4, "ctl_low": 82.7, "ctl_end": 91.7, "avg_hrv": 84.0, "avg_rhr": 36.5, "z1_z2_pct": 63.7, "z3_pct": 22.2, "z4_plus_pct": 14.2, "hard_days_avg_per_week": 4.7, "longest_ride_hours": 4.48, "avg_weight_kg": 75.5, "dominant_phase": "Base", "days_with_data": 30 }, { "month": "2025-12", "total_hours": 59.95, "total_tss": 2132, "activity_count": 37, "ctl_peak": 90.3, "ctl_low": 79.9, "ctl_end": 80.4, "avg_hrv": 88.4, "avg_rhr": 38.9, "z1_z2_pct": 79.4, "z3_pct": 9.3, "z4_plus_pct": 11.3, "hard_days_avg_per_week": 2.9, "longest_ride_hours": 6.5, "avg_weight_kg": 76.0, "dominant_phase": "Recovery", "days_with_data": 31 }, { "month": "2026-01", "total_hours": 43.57, "total_tss": 2395, "activity_count": 33, "ctl_peak": 84.1, "ctl_low": 76.7, "ctl_end": 79.2, "avg_hrv": 89.6, "avg_rhr": 39.7, "z1_z2_pct": 63.4, "z3_pct": 19.2, "z4_plus_pct": 17.4, "hard_days_avg_per_week": 3.8, "longest_ride_hours": 3.5, "avg_weight_kg": 76.5, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2026-02", "total_hours": 34.23, "total_tss": 1680, "activity_count": 58, "ctl_peak": 82.1, "ctl_low": 74.4, "ctl_end": 77.8, "avg_hrv": 90.6, "avg_rhr": 36.7, "z1_z2_pct": 74.9, "z3_pct": 11.0, "z4_plus_pct": 14.0, "hard_days_avg_per_week": 2.8, "longest_ride_hours": 3.85, "avg_weight_kg": 75.8, "dominant_phase": "Recovery", "days_with_data": 28 }, { "month": "2026-03", "total_hours": 61.52, "total_tss": 2772, "activity_count": 52, "ctl_peak": 85.8, "ctl_low": 73.0, "ctl_end": 83.6, "avg_hrv": 85.7, "avg_rhr": 37.7, "z1_z2_pct": 79.4, "z3_pct": 7.6, "z4_plus_pct": 12.9, "hard_days_avg_per_week": 2.9, "longest_ride_hours": 3.83, "avg_weight_kg": 75.5, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2026-04", "total_hours": 52.7, "total_tss": 2423, "activity_count": 56, "ctl_peak": 87.4, "ctl_low": 82.3, "ctl_end": 85.0, "avg_hrv": 88.1, "avg_rhr": 37.1, "z1_z2_pct": 76.3, "z3_pct": 11.1, "z4_plus_pct": 12.6, "hard_days_avg_per_week": 2.9, "longest_ride_hours": 3.02, "avg_weight_kg": 75.5, "dominant_phase": "Base", "days_with_data": 27 } ], "monthly_2y": [ { "month": "2024-04", "total_hours": 0.0, "total_tss": 0, "activity_count": 18, "ctl_peak": 27.6, "ctl_low": 18.7, "ctl_end": 26.4, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Base", "days_with_data": 30 }, { "month": "2024-05", "total_hours": 0.0, "total_tss": 0, "activity_count": 47, "ctl_peak": 42.8, "ctl_low": 25.2, "ctl_end": 38.4, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": 85.0, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2024-06", "total_hours": 14.81, "total_tss": 547, "activity_count": 36, "ctl_peak": 43.3, "ctl_low": 36.5, "ctl_end": 37.0, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": 38.2, "z3_pct": 24.4, "z4_plus_pct": 37.4, "hard_days_avg_per_week": 0.9, "longest_ride_hours": 3.0, "avg_weight_kg": null, "dominant_phase": "Maintenance", "days_with_data": 30 }, { "month": "2024-07", "total_hours": 18.39, "total_tss": 880, "activity_count": 22, "ctl_peak": 37.2, "ctl_low": 29.6, "ctl_end": 33.3, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": 74.7, "z3_pct": 11.7, "z4_plus_pct": 13.6, "hard_days_avg_per_week": 1.8, "longest_ride_hours": 3.23, "avg_weight_kg": null, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2024-08", "total_hours": 46.32, "total_tss": 2217, "activity_count": 70, "ctl_peak": 53.4, "ctl_low": 33.0, "ctl_end": 53.4, "avg_hrv": 87.3, "avg_rhr": 43.0, "z1_z2_pct": 77.7, "z3_pct": 14.3, "z4_plus_pct": 8.0, "hard_days_avg_per_week": 2.3, "longest_ride_hours": 2.93, "avg_weight_kg": 79.6, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2024-09", "total_hours": 52.23, "total_tss": 2268, "activity_count": 74, "ctl_peak": 65.2, "ctl_low": 52.4, "ctl_end": 64.5, "avg_hrv": 89.1, "avg_rhr": 43.8, "z1_z2_pct": 88.9, "z3_pct": 6.5, "z4_plus_pct": 4.5, "hard_days_avg_per_week": 1.6, "longest_ride_hours": 4.11, "avg_weight_kg": 79.2, "dominant_phase": "Base", "days_with_data": 30 }, { "month": "2024-10", "total_hours": 51.83, "total_tss": 2104, "activity_count": 55, "ctl_peak": 72.3, "ctl_low": 62.6, "ctl_end": 62.6, "avg_hrv": 93.2, "avg_rhr": 41.4, "z1_z2_pct": 84.3, "z3_pct": 8.9, "z4_plus_pct": 6.7, "hard_days_avg_per_week": 2.3, "longest_ride_hours": 3.62, "avg_weight_kg": 79.1, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2024-11", "total_hours": 15.34, "total_tss": 423, "activity_count": 16, "ctl_peak": 61.4, "ctl_low": 37.7, "ctl_end": 37.7, "avg_hrv": 82.8, "avg_rhr": 40.7, "z1_z2_pct": 86.3, "z3_pct": 8.6, "z4_plus_pct": 5.0, "hard_days_avg_per_week": 0.9, "longest_ride_hours": 1.84, "avg_weight_kg": null, "dominant_phase": "Recovery", "days_with_data": 30 }, { "month": "2024-12", "total_hours": 38.26, "total_tss": 1056, "activity_count": 37, "ctl_peak": 38.3, "ctl_low": 31.2, "ctl_end": 38.3, "avg_hrv": 87.3, "avg_rhr": 42.1, "z1_z2_pct": 90.9, "z3_pct": 6.7, "z4_plus_pct": 2.4, "hard_days_avg_per_week": 0.9, "longest_ride_hours": 3.07, "avg_weight_kg": 79.0, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2025-01", "total_hours": 74.49, "total_tss": 1851, "activity_count": 44, "ctl_peak": 49.0, "ctl_low": 36.4, "ctl_end": 48.7, "avg_hrv": 86.0, "avg_rhr": 39.7, "z1_z2_pct": 92.5, "z3_pct": 5.4, "z4_plus_pct": 2.1, "hard_days_avg_per_week": 2.0, "longest_ride_hours": 6.54, "avg_weight_kg": 79.3, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2025-02", "total_hours": 72.31, "total_tss": 2092, "activity_count": 55, "ctl_peak": 63.0, "ctl_low": 47.0, "ctl_end": 63.0, "avg_hrv": 89.4, "avg_rhr": 38.4, "z1_z2_pct": 87.3, "z3_pct": 8.4, "z4_plus_pct": 4.3, "hard_days_avg_per_week": 3.0, "longest_ride_hours": 5.9, "avg_weight_kg": 79.6, "dominant_phase": "Base", "days_with_data": 28 }, { "month": "2025-03", "total_hours": 61.75, "total_tss": 2931, "activity_count": 58, "ctl_peak": 80.8, "ctl_low": 63.9, "ctl_end": 78.2, "avg_hrv": 89.8, "avg_rhr": 41.1, "z1_z2_pct": 71.6, "z3_pct": 17.8, "z4_plus_pct": 10.6, "hard_days_avg_per_week": 3.6, "longest_ride_hours": 4.54, "avg_weight_kg": 77.8, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2025-04", "total_hours": 51.15, "total_tss": 2415, "activity_count": 41, "ctl_peak": 83.4, "ctl_low": 76.1, "ctl_end": 77.0, "avg_hrv": 92.3, "avg_rhr": 37.8, "z1_z2_pct": 72.0, "z3_pct": 15.3, "z4_plus_pct": 12.7, "hard_days_avg_per_week": 4.4, "longest_ride_hours": 3.7, "avg_weight_kg": 78.0, "dominant_phase": "Maintenance", "days_with_data": 30 }, { "month": "2025-05", "total_hours": 60.61, "total_tss": 2442, "activity_count": 51, "ctl_peak": 81.1, "ctl_low": 73.4, "ctl_end": 76.6, "avg_hrv": 90.6, "avg_rhr": 37.5, "z1_z2_pct": 79.1, "z3_pct": 14.3, "z4_plus_pct": 6.6, "hard_days_avg_per_week": 2.7, "longest_ride_hours": 3.88, "avg_weight_kg": 78.6, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2025-06", "total_hours": 51.23, "total_tss": 2198, "activity_count": 58, "ctl_peak": 77.9, "ctl_low": 72.6, "ctl_end": 74.3, "avg_hrv": 88.5, "avg_rhr": 35.8, "z1_z2_pct": 74.2, "z3_pct": 16.6, "z4_plus_pct": 9.2, "hard_days_avg_per_week": 3.7, "longest_ride_hours": 3.89, "avg_weight_kg": 78.0, "dominant_phase": "Maintenance", "days_with_data": 30 }, { "month": "2025-07", "total_hours": 43.82, "total_tss": 2228, "activity_count": 43, "ctl_peak": 74.5, "ctl_low": 67.4, "ctl_end": 73.6, "avg_hrv": 82.5, "avg_rhr": 35.8, "z1_z2_pct": 72.0, "z3_pct": 16.3, "z4_plus_pct": 11.7, "hard_days_avg_per_week": 2.9, "longest_ride_hours": 2.96, "avg_weight_kg": 77.1, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2025-08", "total_hours": 64.14, "total_tss": 2934, "activity_count": 58, "ctl_peak": 87.9, "ctl_low": 71.4, "ctl_end": 87.9, "avg_hrv": 92.5, "avg_rhr": 34.8, "z1_z2_pct": 76.9, "z3_pct": 14.4, "z4_plus_pct": 8.8, "hard_days_avg_per_week": 3.8, "longest_ride_hours": 6.12, "avg_weight_kg": 75.9, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2025-09", "total_hours": 48.38, "total_tss": 2163, "activity_count": 57, "ctl_peak": 88.5, "ctl_low": 80.7, "ctl_end": 85.7, "avg_hrv": 89.7, "avg_rhr": 35.7, "z1_z2_pct": 81.3, "z3_pct": 9.0, "z4_plus_pct": 9.8, "hard_days_avg_per_week": 3.0, "longest_ride_hours": 3.19, "avg_weight_kg": 75.5, "dominant_phase": "Maintenance", "days_with_data": 30 }, { "month": "2025-10", "total_hours": 56.37, "total_tss": 2776, "activity_count": 66, "ctl_peak": 89.0, "ctl_low": 81.1, "ctl_end": 86.9, "avg_hrv": 87.6, "avg_rhr": 36.7, "z1_z2_pct": 75.3, "z3_pct": 16.2, "z4_plus_pct": 8.5, "hard_days_avg_per_week": 3.4, "longest_ride_hours": 3.26, "avg_weight_kg": 75.4, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2025-11", "total_hours": 53.63, "total_tss": 2895, "activity_count": 57, "ctl_peak": 92.4, "ctl_low": 82.7, "ctl_end": 91.7, "avg_hrv": 84.0, "avg_rhr": 36.5, "z1_z2_pct": 63.7, "z3_pct": 22.2, "z4_plus_pct": 14.2, "hard_days_avg_per_week": 4.7, "longest_ride_hours": 4.48, "avg_weight_kg": 75.5, "dominant_phase": "Base", "days_with_data": 30 }, { "month": "2025-12", "total_hours": 59.95, "total_tss": 2132, "activity_count": 37, "ctl_peak": 90.3, "ctl_low": 79.9, "ctl_end": 80.4, "avg_hrv": 88.4, "avg_rhr": 38.9, "z1_z2_pct": 79.4, "z3_pct": 9.3, "z4_plus_pct": 11.3, "hard_days_avg_per_week": 2.9, "longest_ride_hours": 6.5, "avg_weight_kg": 76.0, "dominant_phase": "Recovery", "days_with_data": 31 }, { "month": "2026-01", "total_hours": 43.57, "total_tss": 2395, "activity_count": 33, "ctl_peak": 84.1, "ctl_low": 76.7, "ctl_end": 79.2, "avg_hrv": 89.6, "avg_rhr": 39.7, "z1_z2_pct": 63.4, "z3_pct": 19.2, "z4_plus_pct": 17.4, "hard_days_avg_per_week": 3.8, "longest_ride_hours": 3.5, "avg_weight_kg": 76.5, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2026-02", "total_hours": 34.23, "total_tss": 1680, "activity_count": 58, "ctl_peak": 82.1, "ctl_low": 74.4, "ctl_end": 77.8, "avg_hrv": 90.6, "avg_rhr": 36.7, "z1_z2_pct": 74.9, "z3_pct": 11.0, "z4_plus_pct": 14.0, "hard_days_avg_per_week": 2.8, "longest_ride_hours": 3.85, "avg_weight_kg": 75.8, "dominant_phase": "Recovery", "days_with_data": 28 }, { "month": "2026-03", "total_hours": 61.52, "total_tss": 2772, "activity_count": 52, "ctl_peak": 85.8, "ctl_low": 73.0, "ctl_end": 83.6, "avg_hrv": 85.7, "avg_rhr": 37.7, "z1_z2_pct": 79.4, "z3_pct": 7.6, "z4_plus_pct": 12.9, "hard_days_avg_per_week": 2.9, "longest_ride_hours": 3.83, "avg_weight_kg": 75.5, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2026-04", "total_hours": 52.7, "total_tss": 2423, "activity_count": 56, "ctl_peak": 87.4, "ctl_low": 82.3, "ctl_end": 85.0, "avg_hrv": 88.1, "avg_rhr": 37.1, "z1_z2_pct": 76.3, "z3_pct": 11.1, "z4_plus_pct": 12.6, "hard_days_avg_per_week": 2.9, "longest_ride_hours": 3.02, "avg_weight_kg": 75.5, "dominant_phase": "Base", "days_with_data": 27 } ], "monthly_3y": [ { "month": "2023-04", "total_hours": 0.0, "total_tss": 0, "activity_count": 0, "ctl_peak": null, "ctl_low": null, "ctl_end": null, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Unknown", "days_with_data": 3 }, { "month": "2023-05", "total_hours": 0.0, "total_tss": 0, "activity_count": 0, "ctl_peak": null, "ctl_low": null, "ctl_end": null, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Unknown", "days_with_data": 31 }, { "month": "2023-06", "total_hours": 0.0, "total_tss": 0, "activity_count": 3, "ctl_peak": 1.1, "ctl_low": 1.0, "ctl_end": 1.0, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Maintenance", "days_with_data": 30 }, { "month": "2023-07", "total_hours": 0.0, "total_tss": 0, "activity_count": 14, "ctl_peak": 17.0, "ctl_low": 0.8, "ctl_end": 16.6, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2023-08", "total_hours": 0.0, "total_tss": 0, "activity_count": 39, "ctl_peak": 30.9, "ctl_low": 16.5, "ctl_end": 29.5, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2023-09", "total_hours": 0.0, "total_tss": 0, "activity_count": 8, "ctl_peak": 29.3, "ctl_low": 20.4, "ctl_end": 20.4, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Recovery", "days_with_data": 30 }, { "month": "2023-10", "total_hours": 0.0, "total_tss": 0, "activity_count": 16, "ctl_peak": 27.0, "ctl_low": 14.6, "ctl_end": 26.7, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2023-11", "total_hours": 0.0, "total_tss": 0, "activity_count": 2, "ctl_peak": 26.1, "ctl_low": 14.5, "ctl_end": 14.5, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Recovery", "days_with_data": 30 }, { "month": "2023-12", "total_hours": 0.0, "total_tss": 0, "activity_count": 16, "ctl_peak": 23.3, "ctl_low": 13.8, "ctl_end": 17.1, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": 80.0, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2024-01", "total_hours": 0.0, "total_tss": 0, "activity_count": 14, "ctl_peak": 27.0, "ctl_low": 15.5, "ctl_end": 25.9, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2024-02", "total_hours": 0.0, "total_tss": 0, "activity_count": 21, "ctl_peak": 34.6, "ctl_low": 25.4, "ctl_end": 32.9, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Base", "days_with_data": 29 }, { "month": "2024-03", "total_hours": 0.0, "total_tss": 0, "activity_count": 24, "ctl_peak": 38.3, "ctl_low": 22.6, "ctl_end": 22.6, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Recovery", "days_with_data": 31 }, { "month": "2024-04", "total_hours": 0.0, "total_tss": 0, "activity_count": 18, "ctl_peak": 27.6, "ctl_low": 18.7, "ctl_end": 26.4, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": null, "dominant_phase": "Base", "days_with_data": 30 }, { "month": "2024-05", "total_hours": 0.0, "total_tss": 0, "activity_count": 47, "ctl_peak": 42.8, "ctl_low": 25.2, "ctl_end": 38.4, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": null, "z3_pct": null, "z4_plus_pct": null, "hard_days_avg_per_week": 0.0, "longest_ride_hours": 0.0, "avg_weight_kg": 85.0, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2024-06", "total_hours": 14.81, "total_tss": 547, "activity_count": 36, "ctl_peak": 43.3, "ctl_low": 36.5, "ctl_end": 37.0, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": 38.2, "z3_pct": 24.4, "z4_plus_pct": 37.4, "hard_days_avg_per_week": 0.9, "longest_ride_hours": 3.0, "avg_weight_kg": null, "dominant_phase": "Maintenance", "days_with_data": 30 }, { "month": "2024-07", "total_hours": 18.39, "total_tss": 880, "activity_count": 22, "ctl_peak": 37.2, "ctl_low": 29.6, "ctl_end": 33.3, "avg_hrv": null, "avg_rhr": null, "z1_z2_pct": 74.7, "z3_pct": 11.7, "z4_plus_pct": 13.6, "hard_days_avg_per_week": 1.8, "longest_ride_hours": 3.23, "avg_weight_kg": null, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2024-08", "total_hours": 46.32, "total_tss": 2217, "activity_count": 70, "ctl_peak": 53.4, "ctl_low": 33.0, "ctl_end": 53.4, "avg_hrv": 87.3, "avg_rhr": 43.0, "z1_z2_pct": 77.7, "z3_pct": 14.3, "z4_plus_pct": 8.0, "hard_days_avg_per_week": 2.3, "longest_ride_hours": 2.93, "avg_weight_kg": 79.6, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2024-09", "total_hours": 52.23, "total_tss": 2268, "activity_count": 74, "ctl_peak": 65.2, "ctl_low": 52.4, "ctl_end": 64.5, "avg_hrv": 89.1, "avg_rhr": 43.8, "z1_z2_pct": 88.9, "z3_pct": 6.5, "z4_plus_pct": 4.5, "hard_days_avg_per_week": 1.6, "longest_ride_hours": 4.11, "avg_weight_kg": 79.2, "dominant_phase": "Base", "days_with_data": 30 }, { "month": "2024-10", "total_hours": 51.83, "total_tss": 2104, "activity_count": 55, "ctl_peak": 72.3, "ctl_low": 62.6, "ctl_end": 62.6, "avg_hrv": 93.2, "avg_rhr": 41.4, "z1_z2_pct": 84.3, "z3_pct": 8.9, "z4_plus_pct": 6.7, "hard_days_avg_per_week": 2.3, "longest_ride_hours": 3.62, "avg_weight_kg": 79.1, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2024-11", "total_hours": 15.34, "total_tss": 423, "activity_count": 16, "ctl_peak": 61.4, "ctl_low": 37.7, "ctl_end": 37.7, "avg_hrv": 82.8, "avg_rhr": 40.7, "z1_z2_pct": 86.3, "z3_pct": 8.6, "z4_plus_pct": 5.0, "hard_days_avg_per_week": 0.9, "longest_ride_hours": 1.84, "avg_weight_kg": null, "dominant_phase": "Recovery", "days_with_data": 30 }, { "month": "2024-12", "total_hours": 38.26, "total_tss": 1056, "activity_count": 37, "ctl_peak": 38.3, "ctl_low": 31.2, "ctl_end": 38.3, "avg_hrv": 87.3, "avg_rhr": 42.1, "z1_z2_pct": 90.9, "z3_pct": 6.7, "z4_plus_pct": 2.4, "hard_days_avg_per_week": 0.9, "longest_ride_hours": 3.07, "avg_weight_kg": 79.0, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2025-01", "total_hours": 74.49, "total_tss": 1851, "activity_count": 44, "ctl_peak": 49.0, "ctl_low": 36.4, "ctl_end": 48.7, "avg_hrv": 86.0, "avg_rhr": 39.7, "z1_z2_pct": 92.5, "z3_pct": 5.4, "z4_plus_pct": 2.1, "hard_days_avg_per_week": 2.0, "longest_ride_hours": 6.54, "avg_weight_kg": 79.3, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2025-02", "total_hours": 72.31, "total_tss": 2092, "activity_count": 55, "ctl_peak": 63.0, "ctl_low": 47.0, "ctl_end": 63.0, "avg_hrv": 89.4, "avg_rhr": 38.4, "z1_z2_pct": 87.3, "z3_pct": 8.4, "z4_plus_pct": 4.3, "hard_days_avg_per_week": 3.0, "longest_ride_hours": 5.9, "avg_weight_kg": 79.6, "dominant_phase": "Base", "days_with_data": 28 }, { "month": "2025-03", "total_hours": 61.75, "total_tss": 2931, "activity_count": 58, "ctl_peak": 80.8, "ctl_low": 63.9, "ctl_end": 78.2, "avg_hrv": 89.8, "avg_rhr": 41.1, "z1_z2_pct": 71.6, "z3_pct": 17.8, "z4_plus_pct": 10.6, "hard_days_avg_per_week": 3.6, "longest_ride_hours": 4.54, "avg_weight_kg": 77.8, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2025-04", "total_hours": 51.15, "total_tss": 2415, "activity_count": 41, "ctl_peak": 83.4, "ctl_low": 76.1, "ctl_end": 77.0, "avg_hrv": 92.3, "avg_rhr": 37.8, "z1_z2_pct": 72.0, "z3_pct": 15.3, "z4_plus_pct": 12.7, "hard_days_avg_per_week": 4.4, "longest_ride_hours": 3.7, "avg_weight_kg": 78.0, "dominant_phase": "Maintenance", "days_with_data": 30 }, { "month": "2025-05", "total_hours": 60.61, "total_tss": 2442, "activity_count": 51, "ctl_peak": 81.1, "ctl_low": 73.4, "ctl_end": 76.6, "avg_hrv": 90.6, "avg_rhr": 37.5, "z1_z2_pct": 79.1, "z3_pct": 14.3, "z4_plus_pct": 6.6, "hard_days_avg_per_week": 2.7, "longest_ride_hours": 3.88, "avg_weight_kg": 78.6, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2025-06", "total_hours": 51.23, "total_tss": 2198, "activity_count": 58, "ctl_peak": 77.9, "ctl_low": 72.6, "ctl_end": 74.3, "avg_hrv": 88.5, "avg_rhr": 35.8, "z1_z2_pct": 74.2, "z3_pct": 16.6, "z4_plus_pct": 9.2, "hard_days_avg_per_week": 3.7, "longest_ride_hours": 3.89, "avg_weight_kg": 78.0, "dominant_phase": "Maintenance", "days_with_data": 30 }, { "month": "2025-07", "total_hours": 43.82, "total_tss": 2228, "activity_count": 43, "ctl_peak": 74.5, "ctl_low": 67.4, "ctl_end": 73.6, "avg_hrv": 82.5, "avg_rhr": 35.8, "z1_z2_pct": 72.0, "z3_pct": 16.3, "z4_plus_pct": 11.7, "hard_days_avg_per_week": 2.9, "longest_ride_hours": 2.96, "avg_weight_kg": 77.1, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2025-08", "total_hours": 64.14, "total_tss": 2934, "activity_count": 58, "ctl_peak": 87.9, "ctl_low": 71.4, "ctl_end": 87.9, "avg_hrv": 92.5, "avg_rhr": 34.8, "z1_z2_pct": 76.9, "z3_pct": 14.4, "z4_plus_pct": 8.8, "hard_days_avg_per_week": 3.8, "longest_ride_hours": 6.12, "avg_weight_kg": 75.9, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2025-09", "total_hours": 48.38, "total_tss": 2163, "activity_count": 57, "ctl_peak": 88.5, "ctl_low": 80.7, "ctl_end": 85.7, "avg_hrv": 89.7, "avg_rhr": 35.7, "z1_z2_pct": 81.3, "z3_pct": 9.0, "z4_plus_pct": 9.8, "hard_days_avg_per_week": 3.0, "longest_ride_hours": 3.19, "avg_weight_kg": 75.5, "dominant_phase": "Maintenance", "days_with_data": 30 }, { "month": "2025-10", "total_hours": 56.37, "total_tss": 2776, "activity_count": 66, "ctl_peak": 89.0, "ctl_low": 81.1, "ctl_end": 86.9, "avg_hrv": 87.6, "avg_rhr": 36.7, "z1_z2_pct": 75.3, "z3_pct": 16.2, "z4_plus_pct": 8.5, "hard_days_avg_per_week": 3.4, "longest_ride_hours": 3.26, "avg_weight_kg": 75.4, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2025-11", "total_hours": 53.63, "total_tss": 2895, "activity_count": 57, "ctl_peak": 92.4, "ctl_low": 82.7, "ctl_end": 91.7, "avg_hrv": 84.0, "avg_rhr": 36.5, "z1_z2_pct": 63.7, "z3_pct": 22.2, "z4_plus_pct": 14.2, "hard_days_avg_per_week": 4.7, "longest_ride_hours": 4.48, "avg_weight_kg": 75.5, "dominant_phase": "Base", "days_with_data": 30 }, { "month": "2025-12", "total_hours": 59.95, "total_tss": 2132, "activity_count": 37, "ctl_peak": 90.3, "ctl_low": 79.9, "ctl_end": 80.4, "avg_hrv": 88.4, "avg_rhr": 38.9, "z1_z2_pct": 79.4, "z3_pct": 9.3, "z4_plus_pct": 11.3, "hard_days_avg_per_week": 2.9, "longest_ride_hours": 6.5, "avg_weight_kg": 76.0, "dominant_phase": "Recovery", "days_with_data": 31 }, { "month": "2026-01", "total_hours": 43.57, "total_tss": 2395, "activity_count": 33, "ctl_peak": 84.1, "ctl_low": 76.7, "ctl_end": 79.2, "avg_hrv": 89.6, "avg_rhr": 39.7, "z1_z2_pct": 63.4, "z3_pct": 19.2, "z4_plus_pct": 17.4, "hard_days_avg_per_week": 3.8, "longest_ride_hours": 3.5, "avg_weight_kg": 76.5, "dominant_phase": "Maintenance", "days_with_data": 31 }, { "month": "2026-02", "total_hours": 34.23, "total_tss": 1680, "activity_count": 58, "ctl_peak": 82.1, "ctl_low": 74.4, "ctl_end": 77.8, "avg_hrv": 90.6, "avg_rhr": 36.7, "z1_z2_pct": 74.9, "z3_pct": 11.0, "z4_plus_pct": 14.0, "hard_days_avg_per_week": 2.8, "longest_ride_hours": 3.85, "avg_weight_kg": 75.8, "dominant_phase": "Recovery", "days_with_data": 28 }, { "month": "2026-03", "total_hours": 61.52, "total_tss": 2772, "activity_count": 52, "ctl_peak": 85.8, "ctl_low": 73.0, "ctl_end": 83.6, "avg_hrv": 85.7, "avg_rhr": 37.7, "z1_z2_pct": 79.4, "z3_pct": 7.6, "z4_plus_pct": 12.9, "hard_days_avg_per_week": 2.9, "longest_ride_hours": 3.83, "avg_weight_kg": 75.5, "dominant_phase": "Base", "days_with_data": 31 }, { "month": "2026-04", "total_hours": 52.7, "total_tss": 2423, "activity_count": 56, "ctl_peak": 87.4, "ctl_low": 82.3, "ctl_end": 85.0, "avg_hrv": 88.1, "avg_rhr": 37.1, "z1_z2_pct": 76.3, "z3_pct": 11.1, "z4_plus_pct": 12.6, "hard_days_avg_per_week": 2.9, "longest_ride_hours": 3.02, "avg_weight_kg": 75.5, "dominant_phase": "Base", "days_with_data": 27 } ] }