{
  "generated": "2026-10-16",
  "current_week": "2026-10-12",
  "week_number": 15,
  "program_sessions": {
    "2026-10-05": [
      {
        "slot": "AM",
        "type": "push_a",
        "label": "Push A \u2014 Chest",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-05",
        "week_number": 14
      }
    ],
    "2026-10-06": [
      {
        "slot": "AM",
        "type": "pull_a",
        "label": "Pull A \u2014 Back width",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-05",
        "week_number": 14
      }
    ],
    "2026-10-07": [
      {
        "slot": "AM",
        "type": "intervals",
        "label": "Intervals 6\u00d7800m",
        "duration_min": 45,
        "exercises": [],
        "week_start": "2026-10-05",
        "week_number": 14
      }
    ],
    "2026-10-08": [
      {
        "slot": "AM",
        "type": "push_b",
        "label": "Push B \u2014 Shoulders",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-05",
        "week_number": 14
      }
    ],
    "2026-10-09": [
      {
        "slot": "AM",
        "type": "pull_b",
        "label": "Pull B \u2014 Back thick",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-05",
        "week_number": 14
      }
    ],
    "2026-10-10": [
      {
        "slot": "AM",
        "type": "tempo_run",
        "label": "Tempo 20\u201330 min",
        "duration_min": 30,
        "exercises": [],
        "week_start": "2026-10-05",
        "week_number": 14
      }
    ],
    "2026-10-12": [
      {
        "slot": "AM",
        "type": "push_a",
        "label": "Push A \u2014 Chest",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-12",
        "week_number": 15
      }
    ],
    "2026-10-13": [
      {
        "slot": "AM",
        "type": "pull_a",
        "label": "Pull A \u2014 Back width",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-12",
        "week_number": 15
      }
    ],
    "2026-10-14": [
      {
        "slot": "AM",
        "type": "intervals",
        "label": "Intervals 6\u00d7800m",
        "duration_min": 45,
        "exercises": [],
        "week_start": "2026-10-12",
        "week_number": 15
      }
    ],
    "2026-10-15": [
      {
        "slot": "AM",
        "type": "push_b",
        "label": "Push B \u2014 Shoulders",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-12",
        "week_number": 15
      }
    ],
    "2026-10-16": [
      {
        "slot": "AM",
        "type": "pull_b",
        "label": "Pull B \u2014 Back thick",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-12",
        "week_number": 15
      }
    ],
    "2026-10-17": [
      {
        "slot": "AM",
        "type": "tempo_run",
        "label": "Tempo 20\u201330 min",
        "duration_min": 30,
        "exercises": [],
        "week_start": "2026-10-12",
        "week_number": 15
      }
    ],
    "2026-10-19": [
      {
        "slot": "AM",
        "type": "push_a",
        "label": "Push A \u2014 Chest",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-19",
        "week_number": 16
      }
    ],
    "2026-10-20": [
      {
        "slot": "AM",
        "type": "pull_a",
        "label": "Pull A \u2014 Back width",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-19",
        "week_number": 16
      }
    ],
    "2026-10-21": [
      {
        "slot": "AM",
        "type": "intervals",
        "label": "Intervals 6\u00d7800m",
        "duration_min": 45,
        "exercises": [],
        "week_start": "2026-10-19",
        "week_number": 16
      }
    ],
    "2026-10-22": [
      {
        "slot": "AM",
        "type": "push_b",
        "label": "Push B \u2014 Shoulders",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-19",
        "week_number": 16
      }
    ],
    "2026-10-23": [
      {
        "slot": "AM",
        "type": "pull_b",
        "label": "Pull B \u2014 Back thick",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-19",
        "week_number": 16
      }
    ],
    "2026-10-24": [
      {
        "slot": "AM",
        "type": "tempo_run",
        "label": "Tempo 20\u201330 min",
        "duration_min": 30,
        "exercises": [],
        "week_start": "2026-10-19",
        "week_number": 16
      }
    ],
    "2026-10-26": [
      {
        "slot": "AM",
        "type": "push_a",
        "label": "Push A \u2014 Chest",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-26",
        "week_number": 17
      }
    ],
    "2026-10-27": [
      {
        "slot": "AM",
        "type": "pull_a",
        "label": "Pull A \u2014 Back width",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-26",
        "week_number": 17
      }
    ],
    "2026-10-28": [
      {
        "slot": "AM",
        "type": "intervals",
        "label": "Intervals 6\u00d7800m",
        "duration_min": 45,
        "exercises": [],
        "week_start": "2026-10-26",
        "week_number": 17
      }
    ],
    "2026-10-29": [
      {
        "slot": "AM",
        "type": "push_b",
        "label": "Push B \u2014 Shoulders",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-26",
        "week_number": 17
      }
    ],
    "2026-10-30": [
      {
        "slot": "AM",
        "type": "pull_b",
        "label": "Pull B \u2014 Back thick",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-10-26",
        "week_number": 17
      }
    ],
    "2026-10-31": [
      {
        "slot": "AM",
        "type": "tempo_run",
        "label": "Tempo 20\u201330 min",
        "duration_min": 30,
        "exercises": [],
        "week_start": "2026-10-26",
        "week_number": 17
      }
    ],
    "2026-11-02": [
      {
        "slot": "AM",
        "type": "push_a",
        "label": "Push A \u2014 Chest",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-11-02",
        "week_number": 18
      }
    ],
    "2026-11-03": [
      {
        "slot": "AM",
        "type": "pull_a",
        "label": "Pull A \u2014 Back width",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-11-02",
        "week_number": 18
      }
    ],
    "2026-11-04": [
      {
        "slot": "AM",
        "type": "intervals",
        "label": "Intervals 6\u00d7800m",
        "duration_min": 45,
        "exercises": [],
        "week_start": "2026-11-02",
        "week_number": 18
      }
    ],
    "2026-11-05": [
      {
        "slot": "AM",
        "type": "push_b",
        "label": "Push B \u2014 Shoulders",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-11-02",
        "week_number": 18
      }
    ],
    "2026-11-06": [
      {
        "slot": "AM",
        "type": "pull_b",
        "label": "Pull B \u2014 Back thick",
        "duration_min": 70,
        "exercises": [],
        "week_start": "2026-11-02",
        "week_number": 18
      }
    ],
    "2026-11-07": [
      {
        "slot": "AM",
        "type": "tempo_run",
        "label": "Tempo 20\u201330 min",
        "duration_min": 30,
        "exercises": [],
        "week_start": "2026-11-02",
        "week_number": 18
      }
    ]
  },
  "actual_sessions": {
    "2026-07-06": [
      {
        "title": "Upper",
        "type": "strength",
        "duration_min": 52,
        "source": "hevy"
      },
      {
        "title": "Upper",
        "type": "strength",
        "duration_min": 52,
        "source": "hevy"
      },
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 14,
        "source": "garmin"
      },
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 11,
        "source": "garmin"
      }
    ],
    "2026-07-07": [
      {
        "title": "Lower 1",
        "type": "strength",
        "duration_min": 48,
        "source": "hevy"
      },
      {
        "title": "Lower 1",
        "type": "strength",
        "duration_min": 48,
        "source": "hevy"
      }
    ],
    "2026-07-08": [
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 40,
        "source": "garmin"
      },
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 4,
        "source": "garmin"
      }
    ],
    "2026-07-09": [
      {
        "title": "Upper 2",
        "type": "strength",
        "duration_min": 29,
        "source": "hevy"
      },
      {
        "title": "Upper 2",
        "type": "strength",
        "duration_min": 29,
        "source": "hevy"
      },
      {
        "title": "HIIT",
        "type": "hyrox_class",
        "duration_min": 42,
        "source": "garmin"
      }
    ],
    "2026-07-10": [
      {
        "title": "HIIT",
        "type": "hyrox_class",
        "duration_min": 38,
        "source": "garmin"
      }
    ],
    "2026-07-11": [
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 16,
        "source": "garmin"
      },
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 7,
        "source": "garmin"
      }
    ],
    "2026-07-12": [
      {
        "title": "Toronto Running",
        "type": "long_run",
        "duration_min": 84,
        "source": "garmin"
      },
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 24,
        "source": "garmin"
      }
    ],
    "2026-07-13": [
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 29,
        "source": "garmin"
      },
      {
        "title": "Toronto - W2 Tempo Run (Mon PM)",
        "type": "tempo_run",
        "duration_min": 24,
        "source": "garmin"
      }
    ],
    "2026-07-14": [
      {
        "title": "Upper 1",
        "type": "strength",
        "duration_min": 49,
        "source": "hevy"
      },
      {
        "title": "Upper 1",
        "type": "strength",
        "duration_min": 49,
        "source": "hevy"
      }
    ],
    "2026-07-16": [
      {
        "title": "HIIT",
        "type": "hyrox_class",
        "duration_min": 40,
        "source": "garmin"
      }
    ],
    "2026-07-17": [
      {
        "title": "That was brutal lol",
        "type": "strength",
        "duration_min": 69,
        "source": "hevy"
      },
      {
        "title": "That was brutal lol",
        "type": "strength",
        "duration_min": 69,
        "source": "hevy"
      },
      {
        "title": "Toronto - W2 Zone 2 Run (Fri PM)",
        "type": "zone2_run",
        "duration_min": 6,
        "source": "garmin"
      },
      {
        "title": "Toronto - VO2max Intervals \u2014 4x1000m",
        "type": "intervals",
        "duration_min": 3,
        "source": "garmin"
      }
    ],
    "2026-07-18": [
      {
        "title": "VO2 -> Upper 1",
        "type": "strength",
        "duration_min": 40,
        "source": "hevy"
      },
      {
        "title": "VO2 -> Upper 1",
        "type": "strength",
        "duration_min": 40,
        "source": "hevy"
      },
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 2,
        "source": "garmin"
      },
      {
        "title": "VO2max Intervals \u2014 4x1000m",
        "type": "intervals",
        "duration_min": 22,
        "source": "garmin"
      }
    ],
    "2026-07-19": [
      {
        "title": "HIIT",
        "type": "hyrox_class",
        "duration_min": 45,
        "source": "garmin"
      }
    ],
    "2026-07-21": [
      {
        "title": "Upper 1",
        "type": "strength",
        "duration_min": 39,
        "source": "hevy"
      },
      {
        "title": "San Francisco Running",
        "type": "zone2_run",
        "duration_min": 3,
        "source": "garmin"
      },
      {
        "title": "San Francisco Running",
        "type": "zone2_run",
        "duration_min": 6,
        "source": "garmin"
      }
    ],
    "2026-07-22": [
      {
        "title": "Lower 1",
        "type": "strength",
        "duration_min": 51,
        "source": "hevy"
      },
      {
        "title": "San Francisco - Intervals \u2014 4\u00d71000m",
        "type": "intervals",
        "duration_min": 14,
        "source": "garmin"
      }
    ],
    "2026-07-23": [
      {
        "title": "Upper 2",
        "type": "strength",
        "duration_min": 37,
        "source": "hevy"
      }
    ],
    "2026-07-27": [
      {
        "title": "Upper 1",
        "type": "strength",
        "duration_min": 52,
        "source": "hevy"
      }
    ],
    "2026-07-28": [
      {
        "title": "Lower B",
        "type": "strength",
        "duration_min": 48,
        "source": "hevy"
      },
      {
        "title": "Alberta Running",
        "type": "zone2_run",
        "duration_min": 50,
        "source": "garmin"
      }
    ],
    "2026-07-29": [
      {
        "title": "Upper B",
        "type": "strength",
        "duration_min": 48,
        "source": "hevy"
      },
      {
        "title": "Canmore Running",
        "type": "zone2_run",
        "duration_min": 60,
        "source": "garmin"
      }
    ],
    "2026-07-30": [
      {
        "title": "Upper A",
        "type": "strength",
        "duration_min": 51,
        "source": "hevy"
      }
    ],
    "2026-07-31": [
      {
        "title": "Lower A",
        "type": "strength",
        "duration_min": 51,
        "source": "hevy"
      }
    ],
    "2026-08-01": [
      {
        "title": "Upper B (short)",
        "type": "strength",
        "duration_min": 71,
        "source": "hevy"
      }
    ],
    "2026-08-03": [
      {
        "title": "YYC dips",
        "type": "strength",
        "duration_min": 16,
        "source": "hevy"
      }
    ],
    "2026-08-04": [
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 3,
        "source": "garmin"
      },
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 31,
        "source": "garmin"
      }
    ],
    "2026-08-05": [
      {
        "title": "Upper A (sorta)",
        "type": "strength",
        "duration_min": 20,
        "source": "hevy"
      },
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 36,
        "source": "garmin"
      }
    ],
    "2026-08-06": [
      {
        "title": "Upper B",
        "type": "strength",
        "duration_min": 65,
        "source": "hevy"
      },
      {
        "title": "Toronto Soccer/Football",
        "type": "other",
        "duration_min": 56,
        "source": "garmin"
      },
      {
        "title": "Toronto Cycling",
        "type": "zone2_ride",
        "duration_min": 14,
        "source": "garmin"
      }
    ],
    "2026-08-07": [
      {
        "title": "Lower A",
        "type": "strength",
        "duration_min": 56,
        "source": "hevy"
      }
    ],
    "2026-08-08": [
      {
        "title": "Toronto - Zone 2 Run \u2014 11km backyard ult",
        "type": "long_run",
        "duration_min": 75,
        "source": "garmin"
      },
      {
        "title": "Toronto Cycling",
        "type": "zone2_ride",
        "duration_min": 14,
        "source": "garmin"
      }
    ],
    "2026-08-09": [
      {
        "title": "Toronto - Long Run \u2014 17km @ 5:20\u20135:50/",
        "type": "long_run",
        "duration_min": 86,
        "source": "garmin"
      }
    ],
    "2026-08-10": [
      {
        "title": "Toronto - Tempo \u2014 20 min @ 4:08\u20134:15/k",
        "type": "tempo_run",
        "duration_min": 17,
        "source": "garmin"
      }
    ],
    "2026-08-11": [
      {
        "title": "Quick upper",
        "type": "strength",
        "duration_min": 32,
        "source": "hevy"
      },
      {
        "title": "Indoor Cycling",
        "type": "zone2_ride",
        "duration_min": 39,
        "source": "garmin"
      }
    ],
    "2026-08-12": [
      {
        "title": "\ud83d\udeb4 PELOTON (rain sub) \u2014 Inte",
        "type": "zone2_ride",
        "duration_min": 33,
        "source": "garmin"
      }
    ],
    "2026-08-13": [
      {
        "title": "HIIT",
        "type": "hyrox_class",
        "duration_min": 40,
        "source": "garmin"
      }
    ],
    "2026-08-14": [
      {
        "title": "Nope",
        "type": "strength",
        "duration_min": 24,
        "source": "hevy"
      }
    ],
    "2026-08-16": [
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 19,
        "source": "garmin"
      },
      {
        "title": "Toronto Running",
        "type": "long_run",
        "duration_min": 91,
        "source": "garmin"
      }
    ],
    "2026-08-17": [
      {
        "title": "OA - Fortitude",
        "type": "strength",
        "duration_min": 36,
        "source": "hevy"
      },
      {
        "title": "Indoor Cycling",
        "type": "zone2_ride",
        "duration_min": 9,
        "source": "garmin"
      }
    ],
    "2026-08-18": [
      {
        "title": "Pull 1",
        "type": "pull_a",
        "duration_min": 47,
        "source": "hevy"
      },
      {
        "title": "Toronto - Tempo \u2014 25 min @ 4:12/km",
        "type": "tempo_run",
        "duration_min": 30,
        "source": "garmin"
      },
      {
        "title": "Indoor Cycling",
        "type": "zone2_ride",
        "duration_min": 13,
        "source": "garmin"
      }
    ],
    "2026-08-20": [
      {
        "title": "Push 2",
        "type": "push_a",
        "duration_min": 69,
        "source": "hevy"
      },
      {
        "title": "HIIT",
        "type": "hyrox_class",
        "duration_min": 41,
        "source": "garmin"
      }
    ],
    "2026-08-21": [
      {
        "title": "Toronto Track Running",
        "type": "zone2_run",
        "duration_min": 33,
        "source": "garmin"
      },
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 2,
        "source": "garmin"
      }
    ],
    "2026-08-22": [
      {
        "title": "Pull 2",
        "type": "pull_a",
        "duration_min": 60,
        "source": "hevy"
      }
    ],
    "2026-08-23": [
      {
        "title": "Toronto Cycling",
        "type": "zone2_ride",
        "duration_min": 25,
        "source": "garmin"
      },
      {
        "title": "Toronto - Long Run \u2014 21km @ 5:30\u20135:50/",
        "type": "long_run",
        "duration_min": 69,
        "source": "garmin"
      }
    ],
    "2026-08-24": [
      {
        "title": "HIIT",
        "type": "hyrox_class",
        "duration_min": 37,
        "source": "garmin"
      }
    ],
    "2026-08-25": [
      {
        "title": "Pull 1",
        "type": "pull_a",
        "duration_min": 81,
        "source": "hevy"
      }
    ],
    "2026-08-27": [
      {
        "title": "Upper 2",
        "type": "strength",
        "duration_min": 53,
        "source": "hevy"
      }
    ],
    "2026-08-28": [
      {
        "title": "Vanity",
        "type": "strength",
        "duration_min": 48,
        "source": "hevy"
      }
    ],
    "2026-08-29": [
      {
        "title": "Quick upper pre trip",
        "type": "strength",
        "duration_min": 33,
        "source": "hevy"
      }
    ],
    "2026-09-08": [
      {
        "title": "Street workout HK",
        "type": "strength",
        "duration_min": 52,
        "source": "hevy"
      }
    ],
    "2026-09-12": [
      {
        "title": "HK street workout #2",
        "type": "strength",
        "duration_min": 39,
        "source": "hevy"
      }
    ],
    "2026-09-13": [
      {
        "title": "SF street workout",
        "type": "strength",
        "duration_min": 40,
        "source": "hevy"
      }
    ],
    "2026-09-17": [
      {
        "title": "BACK IN CANADA BABY WEEUUU",
        "type": "strength",
        "duration_min": 50,
        "source": "hevy"
      },
      {
        "title": "Indoor Cycling",
        "type": "zone2_ride",
        "duration_min": 25,
        "source": "garmin"
      }
    ],
    "2026-09-18": [
      {
        "title": "Push",
        "type": "push_a",
        "duration_min": 59,
        "source": "hevy"
      }
    ],
    "2026-09-19": [
      {
        "title": "Cycling",
        "type": "zone2_ride",
        "duration_min": 20,
        "source": "garmin"
      },
      {
        "title": "Toronto Cycling",
        "type": "zone2_ride",
        "duration_min": 15,
        "source": "garmin"
      },
      {
        "title": "Toronto Cycling",
        "type": "zone2_ride",
        "duration_min": 7,
        "source": "garmin"
      }
    ],
    "2026-09-20": [
      {
        "title": "W1 - PushA",
        "type": "push_a",
        "duration_min": 69,
        "source": "hevy"
      }
    ],
    "2026-09-21": [
      {
        "title": "W1 - Pull B",
        "type": "pull_b",
        "duration_min": 80,
        "source": "hevy"
      }
    ],
    "2026-09-23": [
      {
        "title": "W1- Push B",
        "type": "push_b",
        "duration_min": 51,
        "source": "hevy"
      },
      {
        "title": "Indoor Cycling",
        "type": "zone2_ride",
        "duration_min": 30,
        "source": "garmin"
      }
    ],
    "2026-09-24": [
      {
        "title": "HIIT",
        "type": "hyrox_class",
        "duration_min": 65,
        "source": "garmin"
      }
    ],
    "2026-09-25": [
      {
        "title": "W2 - Pull A",
        "type": "pull_a",
        "duration_min": 66,
        "source": "hevy"
      }
    ],
    "2026-09-26": [
      {
        "title": "W2 - Push A",
        "type": "push_a",
        "duration_min": 58,
        "source": "hevy"
      }
    ],
    "2026-09-27": [
      {
        "title": "HIIT",
        "type": "hyrox_class",
        "duration_min": 70,
        "source": "garmin"
      }
    ],
    "2026-09-28": [
      {
        "title": "OA - Fortitude (lifting)",
        "type": "strength",
        "duration_min": 30,
        "source": "hevy"
      },
      {
        "title": "HIIT",
        "type": "hyrox_class",
        "duration_min": 41,
        "source": "garmin"
      }
    ],
    "2026-09-29": [
      {
        "title": "W2 - Push B (double push)",
        "type": "push_b",
        "duration_min": 38,
        "source": "hevy"
      }
    ],
    "2026-09-30": [
      {
        "title": "W2 - Pull A",
        "type": "pull_a",
        "duration_min": 54,
        "source": "hevy"
      }
    ],
    "2026-10-01": [
      {
        "title": "W2 - Push A",
        "type": "push_a",
        "duration_min": 67,
        "source": "hevy"
      },
      {
        "title": "Toronto Running",
        "type": "zone2_run",
        "duration_min": 23,
        "source": "garmin"
      }
    ],
    "2026-10-02": [
      {
        "title": "Indoor Cycling",
        "type": "zone2_ride",
        "duration_min": 21,
        "source": "garmin"
      }
    ],
    "2026-10-04": [
      {
        "title": "W2 - Pull B",
        "type": "pull_b",
        "duration_min": 55,
        "source": "hevy"
      }
    ],
    "2026-10-06": [
      {
        "title": "New York Running",
        "type": "zone2_run",
        "duration_min": 8,
        "source": "garmin"
      },
      {
        "title": "New York Running",
        "type": "zone2_run",
        "duration_min": 7,
        "source": "garmin"
      },
      {
        "title": "New York Running",
        "type": "zone2_run",
        "duration_min": 8,
        "source": "garmin"
      }
    ],
    "2026-10-07": [
      {
        "title": "W3 - Push A",
        "type": "push_a",
        "duration_min": 53,
        "source": "hevy"
      }
    ],
    "2026-10-10": [
      {
        "title": "W3 - Pull A",
        "type": "pull_a",
        "duration_min": 62,
        "source": "hevy"
      }
    ],
    "2026-10-11": [
      {
        "title": "W3- Push B",
        "type": "push_b",
        "duration_min": 72,
        "source": "hevy"
      }
    ],
    "2026-10-12": [
      {
        "title": "W3 - Pull B",
        "type": "pull_b",
        "duration_min": 48,
        "source": "hevy"
      }
    ],
    "2026-10-13": [
      {
        "title": "W4 - Push A",
        "type": "push_a",
        "duration_min": 81,
        "source": "hevy"
      }
    ],
    "2026-10-14": [
      {
        "title": "Quick pull day",
        "type": "pull_a",
        "duration_min": 57,
        "source": "hevy"
      }
    ],
    "2026-10-15": [
      {
        "title": "W4 - Push B",
        "type": "push_b",
        "duration_min": 89,
        "source": "hevy"
      },
      {
        "title": "HIIT",
        "type": "hyrox_class",
        "duration_min": 40,
        "source": "garmin"
      },
      {
        "title": "Running",
        "type": "zone2_run",
        "duration_min": 1,
        "source": "garmin"
      }
    ]
  },
  "benchmarks": [
    {
      "id": 1,
      "category": "fitness",
      "metric": "VO2max",
      "spec": "Estimated",
      "unit": "mL/kg/min",
      "current_est": "65.0",
      "open_target": "60",
      "pro_target": "62-64",
      "elite_15": "65+",
      "elite_15_seconds": null,
      "source": "Est.",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 2,
      "category": "fitness",
      "metric": "Weekly running volume",
      "spec": "Peak training block",
      "unit": "km/week",
      "current_est": "30",
      "open_target": "45",
      "pro_target": "60-65",
      "elite_15": "79",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": "Median of Elite\n  15 survey",
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 3,
      "category": "fitness",
      "metric": "Weekly training volume",
      "spec": "All modalities",
      "unit": "hrs/week",
      "current_est": "10-12",
      "open_target": "12-14",
      "pro_target": "14-16",
      "elite_15": "18",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 23,
      "category": "hyrox_race",
      "metric": "Total race time (Open)",
      "spec": "Open division\n  weights",
      "unit": "H:MM:SS",
      "current_est": "1:25-1:30",
      "open_target": "sub-1:05:00",
      "pro_target": null,
      "elite_15": null,
      "elite_15_seconds": null,
      "source": "HYROX-DL",
      "notes": "Open elite = sub-1:05",
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 24,
      "category": "hyrox_race",
      "metric": "Total race time (Pro)",
      "spec": "Pro division; qual std\n  = 1:05:00",
      "unit": "H:MM:SS",
      "current_est": null,
      "open_target": null,
      "pro_target": "1:05:00",
      "elite_15": "~55:17",
      "elite_15_seconds": null,
      "source": "RL25,HYROX",
      "notes": "2025 WC field: 53:22-56:40",
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 21,
      "category": "machine",
      "metric": "Rowing 2 km",
      "spec": "Concept2; damper 4-6; fresh effort",
      "unit": "MM:SS",
      "current_est": "8:00",
      "open_target": "7:10",
      "pro_target": "6:48",
      "elite_15": "6:37",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 22,
      "category": "machine",
      "metric": "Rowing 500 m split",
      "spec": "Derived from 2 km",
      "unit": "M:SS/500m",
      "current_est": "2:00",
      "open_target": "1:47",
      "pro_target": "1:42",
      "elite_15": "1:39",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 19,
      "category": "machine",
      "metric": "SkiErg 2 km",
      "spec": "Concept2; fresh effort",
      "unit": "MM:SS",
      "current_est": "8:30",
      "open_target": "7:30",
      "pro_target": "7:05",
      "elite_15": "6:50",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 20,
      "category": "machine",
      "metric": "SkiErg 500 m split",
      "spec": "Derived from 2 km",
      "unit": "M:SS/500m",
      "current_est": "2:07",
      "open_target": "1:52",
      "pro_target": "1:46",
      "elite_15": "1:42",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 8,
      "category": "running_hyrox",
      "metric": "Avg km pace (race)",
      "spec": "Under fatigue, all 8\n  km",
      "unit": "M:SS/km",
      "current_est": "5:45",
      "open_target": "4:40",
      "pro_target": "4:15",
      "elite_15": "3:51",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": "RL22\n  data ~58:50 total; current elite ~3:45/km",
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 10,
      "category": "running_hyrox",
      "metric": "Km 1 split",
      "spec": "First run, no prior station\n  load",
      "unit": "MM:SS",
      "current_est": "4:30",
      "open_target": "3:55",
      "pro_target": "3:40",
      "elite_15": "3:24",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 11,
      "category": "running_hyrox",
      "metric": "Km 8 split",
      "spec": "Final run, most fatigued",
      "unit": "MM:SS",
      "current_est": "6:30",
      "open_target": "4:45",
      "pro_target": "4:20",
      "elite_15": "4:15",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 12,
      "category": "running_hyrox",
      "metric": "Roxzone time (total)",
      "spec": "8 transitions; ~800\n  m",
      "unit": "MM:SS",
      "current_est": "7:00",
      "open_target": "4:30",
      "pro_target": "3:30",
      "elite_15": "2:54",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 9,
      "category": "running_hyrox",
      "metric": "Total run time (8 km)",
      "spec": "Sum of all 8 x 1 km\n  splits",
      "unit": "MM:SS",
      "current_est": "46:00",
      "open_target": "37:20",
      "pro_target": "34:00",
      "elite_15": "30:46",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 5,
      "category": "running_road",
      "metric": "10 km",
      "spec": "Fresh, road",
      "unit": "MM:SS",
      "current_est": "44:00",
      "open_target": "39:00",
      "pro_target": "35:00",
      "elite_15": "33:30",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 4,
      "category": "running_road",
      "metric": "5 km",
      "spec": "Fresh, road or track",
      "unit": "MM:SS",
      "current_est": "21:30",
      "open_target": "19:00",
      "pro_target": "17:00",
      "elite_15": "16:00",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 6,
      "category": "running_road",
      "metric": "Half marathon",
      "spec": "Fresh, road",
      "unit": "H:MM:SS",
      "current_est": "1:35:00",
      "open_target": "1:22:00",
      "pro_target": "1:18:00",
      "elite_15": "1:15:00",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 7,
      "category": "running_road",
      "metric": "Marathon",
      "spec": "Fresh, road",
      "unit": "H:MM:SS",
      "current_est": null,
      "open_target": "3:15:00",
      "pro_target": "2:53:00",
      "elite_15": "2:45:00",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 28,
      "category": "station_open",
      "metric": "Burpee broad jump 80 m",
      "spec": "Bodyweight; all\n  divisions same",
      "unit": "MM:SS",
      "current_est": "5:00",
      "open_target": "2:50",
      "pro_target": "2:40",
      "elite_15": "2:21",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 30,
      "category": "station_open",
      "metric": "Farmer carry 200 m",
      "spec": "2x24 kg kettlebells;\n  zigzag",
      "unit": "MM:SS",
      "current_est": "2:30",
      "open_target": "1:45",
      "pro_target": null,
      "elite_15": null,
      "elite_15_seconds": null,
      "source": "Est.",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 29,
      "category": "station_open",
      "metric": "Row 1000 m",
      "spec": "Concept2; all divisions same",
      "unit": "MM:SS",
      "current_est": "4:45",
      "open_target": "4:10",
      "pro_target": "4:05",
      "elite_15": "3:58",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 31,
      "category": "station_open",
      "metric": "Sandbag lunges 100 m",
      "spec": "20 kg sandbag; 100 m\n  walking lunges",
      "unit": "MM:SS",
      "current_est": "5:00",
      "open_target": "3:30",
      "pro_target": null,
      "elite_15": null,
      "elite_15_seconds": null,
      "source": "Est.",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 25,
      "category": "station_open",
      "metric": "SkiErg 1000 m",
      "spec": "1000 m; all divisions same",
      "unit": "MM:SS",
      "current_est": "4:30",
      "open_target": "3:55",
      "pro_target": "3:50",
      "elite_15": "3:47",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 27,
      "category": "station_open",
      "metric": "Sled pull 50 m",
      "spec": "103 kg total; hand-over-hand\n   rope",
      "unit": "MM:SS",
      "current_est": "5:00",
      "open_target": "3:45",
      "pro_target": null,
      "elite_15": null,
      "elite_15_seconds": null,
      "source": "Est.",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 26,
      "category": "station_open",
      "metric": "Sled push 50 m",
      "spec": "152 kg total incl. sled;\n  Open men",
      "unit": "MM:SS",
      "current_est": "3:00",
      "open_target": "2:20",
      "pro_target": null,
      "elite_15": null,
      "elite_15_seconds": null,
      "source": "Est.",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 32,
      "category": "station_open",
      "metric": "Wall balls 100 reps",
      "spec": "6 kg ball; 10 ft\n  target; Open men",
      "unit": "MM:SS",
      "current_est": "6:00",
      "open_target": "4:10",
      "pro_target": null,
      "elite_15": null,
      "elite_15_seconds": null,
      "source": "Est.",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 33,
      "category": "station_open",
      "metric": "Wall balls unbroken (skill)",
      "spec": "Max unbroken in\n   training; 6 kg",
      "unit": "reps",
      "current_est": "40-60",
      "open_target": "100",
      "pro_target": "100",
      "elite_15": "100",
      "elite_15_seconds": null,
      "source": "Est.",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 37,
      "category": "station_pro",
      "metric": "Burpee broad jump 80 m",
      "spec": "Bodyweight; same as\n  Open",
      "unit": "MM:SS",
      "current_est": null,
      "open_target": null,
      "pro_target": "2:40",
      "elite_15": "2:21",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 39,
      "category": "station_pro",
      "metric": "Farmer carry 200 m",
      "spec": "2x32 kg kettlebells; Pro\n  men",
      "unit": "MM:SS",
      "current_est": null,
      "open_target": null,
      "pro_target": "1:55",
      "elite_15": "1:37",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 38,
      "category": "station_pro",
      "metric": "Row 1000 m",
      "spec": "Concept2; same as Open",
      "unit": "MM:SS",
      "current_est": null,
      "open_target": null,
      "pro_target": "4:05",
      "elite_15": "3:58",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 40,
      "category": "station_pro",
      "metric": "Sandbag lunges 100 m",
      "spec": "30 kg sandbag; Pro\n  men",
      "unit": "MM:SS",
      "current_est": null,
      "open_target": null,
      "pro_target": "3:30",
      "elite_15": "3:03",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 34,
      "category": "station_pro",
      "metric": "SkiErg 1000 m",
      "spec": "1000 m; same as Open",
      "unit": "MM:SS",
      "current_est": null,
      "open_target": null,
      "pro_target": "3:50",
      "elite_15": "3:47",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 36,
      "category": "station_pro",
      "metric": "Sled pull 50 m",
      "spec": "153 kg total; Pro men",
      "unit": "MM:SS",
      "current_est": null,
      "open_target": null,
      "pro_target": "3:45",
      "elite_15": "3:14",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 35,
      "category": "station_pro",
      "metric": "Sled push 50 m",
      "spec": "202 kg total incl. sled; Pro\n  men",
      "unit": "MM:SS",
      "current_est": null,
      "open_target": null,
      "pro_target": "3:15",
      "elite_15": "2:45",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 41,
      "category": "station_pro",
      "metric": "Wall balls 100 reps",
      "spec": "9 kg ball; 10 ft target;\n   Pro men",
      "unit": "MM:SS",
      "current_est": null,
      "open_target": null,
      "pro_target": "4:45",
      "elite_15": "4:25",
      "elite_15_seconds": null,
      "source": "RL22",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 13,
      "category": "strength",
      "metric": "Back squat 1RM",
      "spec": "Barbell; Epley from 3RM survey",
      "unit": "kg",
      "current_est": "144.2",
      "open_target": "125",
      "pro_target": "135",
      "elite_15": "145",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": "Survey: 3RM 132 kg \u2192\n   1RM ~145 kg",
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 16,
      "category": "strength",
      "metric": "Bench press 1RM",
      "spec": "Flat barbell; Epley from 3RM\n  survey",
      "unit": "kg",
      "current_est": "122.9",
      "open_target": "98",
      "pro_target": "107",
      "elite_15": "114",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": "Survey: 3RM\n  104 kg \u2192 1RM ~114 kg",
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 14,
      "category": "strength",
      "metric": "Deadlift 1RM",
      "spec": "Conventional; Epley from 3RM\n  survey",
      "unit": "kg",
      "current_est": "180.1",
      "open_target": "140",
      "pro_target": "150",
      "elite_15": "160",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": "Survey: 3RM\n  165 kg \u2192 1RM ~181 kg",
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 15,
      "category": "strength",
      "metric": "Military press 1RM",
      "spec": "Strict barbell; Epley from\n  3RM survey",
      "unit": "kg",
      "current_est": "77.6",
      "open_target": "67",
      "pro_target": "72",
      "elite_15": "77",
      "elite_15_seconds": null,
      "source": "RL25",
      "notes": "Survey: 3RM\n  70 kg \u2192 1RM ~77 kg",
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    },
    {
      "id": 17,
      "category": "strength",
      "metric": "Weighted pull-up 1RM",
      "spec": "Added weight via belt; not\n   in survey",
      "unit": "kg added",
      "current_est": "55.6",
      "open_target": "30",
      "pro_target": "40",
      "elite_15": "50",
      "elite_15_seconds": null,
      "source": "Est.",
      "notes": null,
      "confirmed": false,
      "created_at": "2026-07-06T21:54:19.903599+00:00",
      "updated_at": "2026-07-06T21:54:19.903599+00:00"
    }
  ],
  "weekly_volume": [
    {
      "week_start": "2026-07-05",
      "week_number": 1,
      "label": "7/6",
      "km": 16.18
    },
    {
      "week_start": "2026-07-12",
      "week_number": 2,
      "label": "7/13",
      "km": 35.28
    },
    {
      "week_start": "2026-07-19",
      "week_number": 3,
      "label": "7/20",
      "km": 4.33
    },
    {
      "week_start": "2026-07-26",
      "week_number": 4,
      "label": "7/27",
      "km": 14.68
    },
    {
      "week_start": "2026-08-02",
      "week_number": 5,
      "label": "8/3",
      "km": 25.9
    },
    {
      "week_start": "2026-08-09",
      "week_number": 6,
      "label": "8/10",
      "km": 18.79
    },
    {
      "week_start": "2026-08-16",
      "week_number": 7,
      "label": "8/17",
      "km": 29.91
    },
    {
      "week_start": "2026-08-23",
      "week_number": 8,
      "label": "8/24",
      "km": 12.41
    },
    {
      "week_start": "2026-08-30",
      "week_number": 9,
      "label": "8/31",
      "km": 0
    },
    {
      "week_start": "2026-09-06",
      "week_number": 10,
      "label": "9/7",
      "km": 0
    },
    {
      "week_start": "2026-09-13",
      "week_number": 11,
      "label": "9/14",
      "km": 0
    },
    {
      "week_start": "2026-09-20",
      "week_number": 12,
      "label": "9/21",
      "km": 0
    },
    {
      "week_start": "2026-09-27",
      "week_number": 13,
      "label": "9/28",
      "km": 4.46
    },
    {
      "week_start": "2026-10-04",
      "week_number": 14,
      "label": "10/5",
      "km": 5.01
    },
    {
      "week_start": "2026-10-11",
      "week_number": 15,
      "label": "10/12",
      "km": 0.28
    }
  ],
  "vo2max_trend": [
    {
      "date": "2026-07-06",
      "value": 55.0
    },
    {
      "date": "2026-07-08",
      "value": 55.0
    },
    {
      "date": "2026-07-11",
      "value": 55.0
    },
    {
      "date": "2026-07-12",
      "value": 55.0
    },
    {
      "date": "2026-07-13",
      "value": 55.0
    },
    {
      "date": "2026-07-17",
      "value": 55.0
    },
    {
      "date": "2026-07-21",
      "value": 55.0
    },
    {
      "date": "2026-07-22",
      "value": 55.0
    },
    {
      "date": "2026-07-28",
      "value": 54.0
    },
    {
      "date": "2026-07-29",
      "value": 54.0
    },
    {
      "date": "2026-08-04",
      "value": 55.0
    },
    {
      "date": "2026-08-05",
      "value": 56.0
    },
    {
      "date": "2026-08-08",
      "value": 56.0
    },
    {
      "date": "2026-08-09",
      "value": 56.0
    },
    {
      "date": "2026-08-10",
      "value": 56.0
    },
    {
      "date": "2026-08-16",
      "value": 56.0
    },
    {
      "date": "2026-08-18",
      "value": 56.0
    },
    {
      "date": "2026-08-21",
      "value": 56.0
    },
    {
      "date": "2026-08-23",
      "value": 56.0
    },
    {
      "date": "2026-10-01",
      "value": 55.0
    },
    {
      "date": "2026-10-06",
      "value": 56.0
    }
  ],
  "perf_vdot": [
    {
      "date": "2026-07-13",
      "vdot": 41.2,
      "type": "tempo",
      "distance_km": 5.1,
      "pace": "4:42/km"
    },
    {
      "date": "2026-07-22",
      "vdot": 36.7,
      "type": "intervals",
      "distance_km": 2.8,
      "pace": "5:01/km"
    },
    {
      "date": "2026-08-10",
      "vdot": 39.7,
      "type": "tempo",
      "distance_km": 3.7,
      "pace": "4:46/km"
    },
    {
      "date": "2026-08-16",
      "vdot": 39.7,
      "type": "zone2",
      "distance_km": 4.0,
      "pace": "4:48/km"
    },
    {
      "date": "2026-08-18",
      "vdot": 44.7,
      "type": "tempo",
      "distance_km": 6.7,
      "pace": "4:27/km"
    }
  ],
  "goals": [
    {
      "id": "bb714983-07b3-4bfc-8f90-e210cc423d0a",
      "metric": "Half marathon finish time",
      "target_value": "sub-1:25:00",
      "deadline": "2026-10-18",
      "notes": "Toronto half marathon. Target pace 4:02/km.",
      "status": "active"
    },
    {
      "id": "10c60cd4-4491-4328-b233-dad3878ea9b9",
      "metric": "VO2max",
      "target_value": "65+",
      "deadline": "2027-07-06",
      "notes": "Year 1 foundation goal. Current est. 56.",
      "status": "active"
    },
    {
      "id": "d2da2375-86d0-469f-8290-869dc7612df4",
      "metric": "HYROX Open race time",
      "target_value": "sub-1:05:00",
      "deadline": "2026-12-19",
      "notes": "Vancouver HYROX Open (Men's Open). Registered Dec 19 2026.",
      "status": "active"
    },
    {
      "id": "63b81886-e8dc-4227-b6f7-daf850882c6d",
      "metric": "Freestanding handstand pushup \u2014 first clean rep",
      "target_value": "1 rep, full range, controlled descent",
      "deadline": "2026-12-31",
      "notes": null,
      "status": "active"
    },
    {
      "id": "b9718d4e-4891-4147-a0e2-a1a1009984ef",
      "metric": "Strength vs Elite 15",
      "target_value": "100% of Elite 15 benchmarks",
      "deadline": "2027-07-06",
      "notes": "Back squat ~138kg, deadlift ~172kg, bench ~108kg, OHP ~73kg.",
      "status": "active"
    }
  ],
  "hyrox_station_pbs": {},
  "training_arc": [
    {
      "week_start": "2026-07-06",
      "week_number": 1,
      "label": "W1",
      "phase": "Year 1 \u2014 Foundation",
      "phase_color": "#3b82f6",
      "theme": "Introduction",
      "is_deload": false,
      "has_race": false,
      "gate": null,
      "targets": {
        "tempo_min": 20,
        "tempo_pace": "4:30\u20134:45",
        "long_run_km": 13,
        "total_km": 13.0
      },
      "actual": {
        "long_run_km": 15.3,
        "total_km": 36.0,
        "quality_done": false,
        "best_pace_sec": 283
      }
    },
    {
      "week_start": "2026-07-13",
      "week_number": 2,
      "label": "W2",
      "phase": "Year 1 \u2014 Foundation",
      "phase_color": "#3b82f6",
      "theme": "First Intervals",
      "is_deload": false,
      "has_race": false,
      "gate": null,
      "targets": {
        "tempo_min": 20,
        "tempo_pace": "4:30\u20134:45",
        "long_run_km": null
      },
      "actual": {
        "long_run_km": 5.1,
        "total_km": 15.5,
        "quality_done": true,
        "best_pace_sec": 270
      }
    },
    {
      "week_start": "2026-07-20",
      "week_number": 3,
      "label": "W3",
      "phase": "Year 1 \u2014 Foundation",
      "phase_color": "#3b82f6",
      "theme": "",
      "is_deload": false,
      "has_race": false,
      "gate": null,
      "targets": {
        "interval_reps": null,
        "interval_dist_m": null,
        "interval_pace": null
      },
      "actual": {
        "long_run_km": 2.8,
        "total_km": 4.3,
        "quality_done": true,
        "best_pace_sec": null
      }
    },
    {
      "week_start": "2026-07-27",
      "week_number": 4,
      "label": "W4",
      "phase": "Year 1 \u2014 Foundation",
      "phase_color": "#3b82f6",
      "theme": "Volume Build \u2014 Air Quality Adaptation",
      "is_deload": false,
      "has_race": false,
      "gate": null,
      "targets": {
        "long_run_km": 18,
        "total_km": 18.0
      },
      "actual": {
        "long_run_km": 9.0,
        "total_km": 14.7,
        "quality_done": false,
        "best_pace_sec": null
      }
    },
    {
      "week_start": "2026-08-03",
      "week_number": 5,
      "label": "W5",
      "phase": "Year 1 \u2014 Foundation",
      "phase_color": "#3b82f6",
      "theme": "",
      "is_deload": false,
      "has_race": false,
      "gate": null,
      "targets": {
        "long_run_km": null
      },
      "actual": {
        "long_run_km": 15.1,
        "total_km": 41.0,
        "quality_done": false,
        "best_pace_sec": 212
      }
    },
    {
      "week_start": "2026-08-10",
      "week_number": 6,
      "label": "W6",
      "phase": "Year 1 \u2014 Foundation",
      "phase_color": "#3b82f6",
      "theme": "Foundation Build",
      "is_deload": false,
      "has_race": false,
      "gate": null,
      "targets": {
        "tempo_min": null,
        "tempo_pace": null,
        "interval_reps": null,
        "interval_dist_m": null,
        "interval_pace": null,
        "long_run_km": 18,
        "total_km": 30.5
      },
      "actual": {
        "long_run_km": 13.2,
        "total_km": 20.9,
        "quality_done": true,
        "best_pace_sec": null
      }
    },
    {
      "week_start": "2026-08-17",
      "week_number": 7,
      "label": "W7",
      "phase": "Year 1 \u2014 Foundation (Push/Pull split, Week 7)",
      "phase_color": "#64748b",
      "theme": "",
      "is_deload": false,
      "has_race": false,
      "gate": null,
      "targets": {
        "tempo_min": null,
        "tempo_pace": null,
        "interval_reps": null,
        "interval_dist_m": null,
        "interval_pace": null,
        "long_run_km": null
      },
      "actual": {
        "long_run_km": 12.4,
        "total_km": 25.1,
        "quality_done": true,
        "best_pace_sec": 267
      }
    },
    {
      "week_start": "2026-08-24",
      "week_number": 8,
      "label": "W8",
      "phase": "Year 1 \u2014 Foundation (Push/Pull split, Week 8 \u2014 Peak Ultra)",
      "phase_color": "#64748b",
      "theme": "",
      "is_deload": false,
      "has_race": false,
      "gate": null,
      "targets": {
        "interval_reps": null,
        "interval_dist_m": null,
        "interval_pace": null,
        "long_run_km": null
      },
      "actual": {
        "long_run_km": null,
        "total_km": null,
        "quality_done": false,
        "best_pace_sec": null
      }
    },
    {
      "week_start": "2026-08-31",
      "week_number": 9,
      "label": "W9",
      "phase": "Year 1 \u2014 Foundation (Push/Pull split, Week 9 \u2014 Ultra Taper)",
      "phase_color": "#64748b",
      "theme": "",
      "is_deload": false,
      "has_race": false,
      "gate": null,
      "targets": {
        "tempo_min": null,
        "tempo_pace": null,
        "interval_reps": null,
        "interval_dist_m": null,
        "interval_pace": null,
        "long_run_km": null
      },
      "actual": {
        "long_run_km": null,
        "total_km": null,
        "quality_done": false,
        "best_pace_sec": null
      }
    },
    {
      "week_start": "2026-09-07",
      "week_number": 10,
      "label": "W10",
      "phase": "Year 1 \u2014 Foundation (Race Week)",
      "phase_color": "#64748b",
      "theme": "",
      "is_deload": false,
      "has_race": false,
      "gate": null,
      "targets": {},
      "actual": {
        "long_run_km": null,
        "total_km": null,
        "quality_done": false,
        "best_pace_sec": null
      }
    }
  ],
  "performance_gates": [],
  "training_load": {
    "dates": [
      "2026-07-06",
      "2026-07-07",
      "2026-07-08",
      "2026-07-09",
      "2026-07-10",
      "2026-07-11",
      "2026-07-12",
      "2026-07-13",
      "2026-07-14",
      "2026-07-15",
      "2026-07-16",
      "2026-07-17",
      "2026-07-18",
      "2026-07-19",
      "2026-07-20",
      "2026-07-21",
      "2026-07-22",
      "2026-07-23",
      "2026-07-24",
      "2026-07-25",
      "2026-07-26",
      "2026-07-27",
      "2026-07-28",
      "2026-07-29",
      "2026-07-30",
      "2026-07-31",
      "2026-08-01",
      "2026-08-02",
      "2026-08-03",
      "2026-08-04",
      "2026-08-05",
      "2026-08-06",
      "2026-08-07",
      "2026-08-08",
      "2026-08-09",
      "2026-08-10",
      "2026-08-11",
      "2026-08-12",
      "2026-08-13",
      "2026-08-14",
      "2026-08-15",
      "2026-08-16",
      "2026-08-17",
      "2026-08-18",
      "2026-08-19",
      "2026-08-20",
      "2026-08-21",
      "2026-08-22",
      "2026-08-23",
      "2026-08-24",
      "2026-08-25",
      "2026-08-26",
      "2026-08-27",
      "2026-08-28",
      "2026-08-29",
      "2026-08-30",
      "2026-08-31",
      "2026-09-01",
      "2026-09-02",
      "2026-09-03",
      "2026-09-04",
      "2026-09-05",
      "2026-09-06",
      "2026-09-07",
      "2026-09-08",
      "2026-09-09",
      "2026-09-10",
      "2026-09-11",
      "2026-09-12",
      "2026-09-13",
      "2026-09-14",
      "2026-09-15",
      "2026-09-16",
      "2026-09-17",
      "2026-09-18",
      "2026-09-19",
      "2026-09-20",
      "2026-09-21",
      "2026-09-22",
      "2026-09-23",
      "2026-09-24",
      "2026-09-25",
      "2026-09-26",
      "2026-09-27",
      "2026-09-28",
      "2026-09-29",
      "2026-09-30",
      "2026-10-01",
      "2026-10-02",
      "2026-10-03",
      "2026-10-04",
      "2026-10-05",
      "2026-10-06",
      "2026-10-07",
      "2026-10-08",
      "2026-10-09",
      "2026-10-10",
      "2026-10-11",
      "2026-10-12",
      "2026-10-13",
      "2026-10-14",
      "2026-10-15",
      "2026-10-16"
    ],
    "run": {
      "atl": [
        1.7,
        1.4,
        5.4,
        10.8,
        14.9,
        15.7,
        24.1,
        26.8,
        23.2,
        20.2,
        23.3,
        21.2,
        20.1,
        24.1,
        20.8,
        18.9,
        18.0,
        15.6,
        13.5,
        11.7,
        10.2,
        8.8,
        11.0,
        13.5,
        11.7,
        10.1,
        8.8,
        7.6,
        6.6,
        9.8,
        10.9,
        9.4,
        8.2,
        14.1,
        20.2,
        19.8,
        17.1,
        14.9,
        18.7,
        16.2,
        14.1,
        20.8,
        18.0,
        19.6,
        17.0,
        20.7,
        21.3,
        18.5,
        22.5,
        24.9,
        21.6,
        18.7,
        16.2,
        14.1,
        12.2,
        10.6,
        9.2,
        7.9,
        6.9,
        6.0,
        5.2,
        4.5,
        3.9,
        3.4,
        2.9,
        2.5,
        2.2,
        1.9,
        1.6,
        1.4,
        1.2,
        1.1,
        0.9,
        0.8,
        0.7,
        0.6,
        0.5,
        0.5,
        0.4,
        0.3,
        9.8,
        8.5,
        7.4,
        16.6,
        20.4,
        17.7,
        15.4,
        15.9,
        13.8,
        12.0,
        10.4,
        9.0,
        10.9,
        9.4,
        8.2,
        7.1,
        6.1,
        5.3,
        4.6,
        4.0,
        3.5,
        9.0,
        7.8
      ],
      "ctl": [
        0.3,
        0.3,
        1.0,
        2.1,
        3.0,
        3.4,
        5.2,
        6.1,
        6.0,
        5.8,
        6.7,
        6.8,
        6.9,
        7.9,
        7.7,
        7.7,
        7.8,
        7.6,
        7.4,
        7.2,
        7.1,
        6.9,
        7.3,
        7.9,
        7.7,
        7.5,
        7.3,
        7.2,
        7.0,
        7.5,
        7.8,
        7.6,
        7.4,
        8.5,
        9.7,
        9.9,
        9.6,
        9.4,
        10.2,
        10.0,
        9.7,
        11.0,
        10.8,
        11.2,
        11.0,
        11.8,
        12.1,
        11.8,
        12.7,
        13.3,
        13.0,
        12.7,
        12.4,
        12.1,
        11.8,
        11.5,
        11.3,
        11.0,
        10.7,
        10.5,
        10.2,
        10.0,
        9.8,
        9.5,
        9.3,
        9.1,
        8.9,
        8.7,
        8.5,
        8.3,
        8.1,
        7.9,
        7.7,
        7.5,
        7.3,
        7.2,
        7.0,
        6.8,
        6.7,
        6.5,
        8.0,
        7.9,
        7.7,
        9.3,
        10.1,
        9.9,
        9.7,
        9.9,
        9.7,
        9.4,
        9.2,
        9.0,
        9.3,
        9.1,
        8.9,
        8.7,
        8.5,
        8.3,
        8.1,
        7.9,
        7.7,
        8.6,
        8.4
      ],
      "tsb": [
        -1.4,
        -1.2,
        -4.3,
        -8.7,
        -11.9,
        -12.3,
        -18.9,
        -20.7,
        -17.3,
        -14.3,
        -16.6,
        -14.5,
        -13.2,
        -16.1,
        -13.1,
        -11.2,
        -10.2,
        -8.0,
        -6.1,
        -4.5,
        -3.1,
        -1.9,
        -3.6,
        -5.6,
        -4.0,
        -2.6,
        -1.5,
        -0.5,
        0.4,
        -2.2,
        -3.1,
        -1.8,
        -0.7,
        -5.6,
        -10.5,
        -9.9,
        -7.5,
        -5.5,
        -8.5,
        -6.3,
        -4.3,
        -9.8,
        -7.2,
        -8.4,
        -6.0,
        -9.0,
        -9.2,
        -6.7,
        -9.8,
        -11.6,
        -8.6,
        -6.0,
        -3.8,
        -1.9,
        -0.4,
        1.0,
        2.1,
        3.1,
        3.9,
        4.5,
        5.1,
        5.5,
        5.9,
        6.2,
        6.4,
        6.6,
        6.7,
        6.8,
        6.8,
        6.8,
        6.8,
        6.8,
        6.8,
        6.7,
        6.6,
        6.6,
        6.5,
        6.4,
        6.3,
        6.2,
        -1.8,
        -0.7,
        0.3,
        -7.3,
        -10.3,
        -7.8,
        -5.7,
        -6.0,
        -4.1,
        -2.5,
        -1.1,
        0.0,
        -1.5,
        -0.3,
        0.7,
        1.6,
        2.4,
        3.0,
        3.5,
        3.9,
        4.3,
        -0.4,
        0.6
      ]
    },
    "strength": {
      "atl": [
        14.8,
        35.4,
        30.7,
        41.7,
        36.2,
        31.4,
        27.2,
        23.6,
        34.9,
        30.3,
        26.2,
        48.3,
        53.6,
        46.4,
        40.3,
        43.6,
        47.5,
        45.6,
        39.5,
        34.3,
        29.7,
        34.3,
        35.7,
        38.4,
        42.2,
        46.4,
        43.9,
        38.0,
        34.7,
        30.1,
        28.6,
        31.1,
        32.7,
        28.3,
        24.6,
        21.3,
        23.2,
        20.1,
        17.5,
        16.6,
        14.4,
        12.5,
        25.8,
        27.1,
        23.5,
        27.8,
        24.1,
        26.9,
        23.3,
        20.2,
        23.3,
        20.2,
        26.1,
        28.7,
        29.3,
        25.4,
        22.1,
        19.1,
        16.6,
        14.4,
        12.5,
        10.8,
        9.4,
        8.1,
        14.5,
        12.6,
        10.9,
        9.5,
        13.5,
        17.8,
        15.4,
        13.4,
        11.6,
        18.4,
        24.2,
        21.0,
        28.8,
        35.6,
        30.9,
        36.5,
        31.7,
        38.8,
        43.3,
        37.5,
        37.4,
        39.7,
        39.9,
        40.9,
        35.4,
        30.7,
        32.8,
        28.4,
        24.7,
        28.4,
        24.6,
        21.4,
        24.4,
        25.9,
        28.7,
        33.2,
        34.3,
        36.0,
        31.2
      ],
      "ctl": [
        2.6,
        6.5,
        6.4,
        8.9,
        8.7,
        8.5,
        8.3,
        8.1,
        10.5,
        10.2,
        10.0,
        14.3,
        16.0,
        15.6,
        15.3,
        16.4,
        17.8,
        18.1,
        17.7,
        17.3,
        16.9,
        18.0,
        18.6,
        19.5,
        20.6,
        21.9,
        22.0,
        21.5,
        21.3,
        20.8,
        20.7,
        21.4,
        21.9,
        21.4,
        20.9,
        20.4,
        20.7,
        20.2,
        19.8,
        19.6,
        19.1,
        18.7,
        20.9,
        21.2,
        20.7,
        21.5,
        21.0,
        21.6,
        21.1,
        20.6,
        21.1,
        20.6,
        21.7,
        22.2,
        22.5,
        22.0,
        21.4,
        20.9,
        20.5,
        20.0,
        19.5,
        19.0,
        18.6,
        18.2,
        19.1,
        18.6,
        18.2,
        17.7,
        18.3,
        18.9,
        18.5,
        18.0,
        17.6,
        18.7,
        19.7,
        19.2,
        20.6,
        22.0,
        21.5,
        22.7,
        22.2,
        23.7,
        24.8,
        24.3,
        24.5,
        25.3,
        25.6,
        26.1,
        25.5,
        24.9,
        25.4,
        24.8,
        24.2,
        24.9,
        24.3,
        23.8,
        24.2,
        24.5,
        25.0,
        25.9,
        26.3,
        26.8,
        26.2
      ],
      "tsb": [
        -12.2,
        -28.9,
        -24.3,
        -32.8,
        -27.5,
        -22.9,
        -18.9,
        -15.5,
        -24.4,
        -20.0,
        -16.2,
        -34.0,
        -37.6,
        -30.8,
        -25.0,
        -27.2,
        -29.8,
        -27.5,
        -21.8,
        -17.0,
        -12.8,
        -16.3,
        -17.1,
        -18.9,
        -21.6,
        -24.5,
        -21.9,
        -16.6,
        -13.4,
        -9.3,
        -7.9,
        -9.8,
        -10.8,
        -7.0,
        -3.7,
        -0.9,
        -2.5,
        0.1,
        2.3,
        3.0,
        4.7,
        6.2,
        -4.9,
        -5.9,
        -2.8,
        -6.3,
        -3.1,
        -5.3,
        -2.3,
        0.4,
        -2.2,
        0.4,
        -4.4,
        -6.5,
        -6.9,
        -3.5,
        -0.6,
        1.8,
        3.9,
        5.6,
        7.0,
        8.2,
        9.2,
        10.0,
        4.5,
        6.0,
        7.3,
        8.3,
        4.7,
        1.1,
        3.0,
        4.7,
        6.0,
        0.3,
        -4.6,
        -1.8,
        -8.1,
        -13.6,
        -9.3,
        -13.8,
        -9.5,
        -15.1,
        -18.5,
        -13.3,
        -12.8,
        -14.5,
        -14.3,
        -14.7,
        -9.9,
        -5.8,
        -7.4,
        -3.6,
        -0.4,
        -3.5,
        -0.3,
        2.4,
        -0.2,
        -1.4,
        -3.7,
        -7.3,
        -8.0,
        -9.2,
        -5.1
      ]
    }
  },
  "one_rm_history": {
    "weeks": [
      "7/6",
      "7/13",
      "7/20",
      "7/27",
      "8/3",
      "8/10",
      "8/17",
      "8/24",
      "9/14",
      "9/21",
      "9/28",
      "10/5",
      "10/12"
    ],
    "week_starts": [
      "2026-07-06",
      "2026-07-13",
      "2026-07-20",
      "2026-07-27",
      "2026-08-03",
      "2026-08-10",
      "2026-08-17",
      "2026-08-24",
      "2026-09-14",
      "2026-09-21",
      "2026-09-28",
      "2026-10-05",
      "2026-10-12"
    ],
    "series": [
      {
        "metric": "Bench press 1RM",
        "display": "Bench",
        "color": "#f97316",
        "data": [
          82.2,
          82.2,
          119.0,
          119.5,
          122.9,
          null,
          111.6,
          90.8,
          112.1,
          109.2,
          115.1,
          113.8,
          113.8
        ]
      },
      {
        "metric": "Weighted pull-up 1RM",
        "display": "Pull-up",
        "color": "#22c55e",
        "data": [
          31.6,
          24.5,
          29.1,
          35.4,
          37.0,
          38.1,
          38.1,
          40.2,
          32.7,
          32.7,
          39.2,
          33.6,
          55.6
        ]
      },
      {
        "metric": "Military press 1RM",
        "display": "OHP",
        "color": "#f59e0b",
        "data": [
          68.0,
          66.2,
          77.1,
          71.4,
          69.4,
          72.7,
          68.0,
          71.4,
          73.5,
          75.5,
          77.6,
          74.5,
          77.3
        ]
      },
      {
        "metric": "Back squat 1RM",
        "display": "Back Squat",
        "color": "#3b82f6",
        "data": [
          126.8,
          134.9,
          null,
          142.9,
          122.5,
          null,
          144.2,
          null,
          93.3,
          null,
          null,
          null,
          null
        ]
      },
      {
        "metric": "Deadlift 1RM",
        "display": "Deadlift",
        "color": "#6366f1",
        "data": [
          132.2,
          139.0,
          107.0,
          150.8,
          139.0,
          null,
          154.8,
          null,
          null,
          null,
          180.1,
          null,
          null
        ]
      }
    ]
  },
  "oura_trend": [
    {
      "date": "2026-07-06",
      "sleep_score": 74,
      "sleep_hrs": 6.46,
      "sleep_efficiency": 80,
      "hrv_avg": 80.0,
      "readiness_score": 78,
      "hrv_balance": 94,
      "resting_hr": 88,
      "activity_score": 92,
      "steps": 10150,
      "stress_balance": -3600
    },
    {
      "date": "2026-07-07",
      "sleep_score": 74,
      "sleep_hrs": 7.71,
      "sleep_efficiency": 90,
      "hrv_avg": 109.0,
      "readiness_score": 85,
      "hrv_balance": 95,
      "resting_hr": 100,
      "activity_score": 87,
      "steps": 8119,
      "stress_balance": -7200
    },
    {
      "date": "2026-07-08",
      "sleep_score": 74,
      "sleep_hrs": 6.58,
      "sleep_efficiency": 86,
      "hrv_avg": 96.0,
      "readiness_score": 76,
      "hrv_balance": 90,
      "resting_hr": 69,
      "activity_score": 96,
      "steps": 15430,
      "stress_balance": -8100
    },
    {
      "date": "2026-07-09",
      "sleep_score": 66,
      "sleep_hrs": 6.08,
      "sleep_efficiency": 88,
      "hrv_avg": 103.0,
      "readiness_score": 76,
      "hrv_balance": 91,
      "resting_hr": 88,
      "activity_score": 95,
      "steps": 10324,
      "stress_balance": -17100
    },
    {
      "date": "2026-07-10",
      "sleep_score": 74,
      "sleep_hrs": 6.29,
      "sleep_efficiency": 85,
      "hrv_avg": 97.0,
      "readiness_score": 74,
      "hrv_balance": 89,
      "resting_hr": 79,
      "activity_score": 96,
      "steps": 15132,
      "stress_balance": -23400
    },
    {
      "date": "2026-07-11",
      "sleep_score": 58,
      "sleep_hrs": 3.29,
      "sleep_efficiency": 83,
      "hrv_avg": 82.0,
      "readiness_score": 67,
      "hrv_balance": 88,
      "resting_hr": 45,
      "activity_score": 94,
      "steps": 10411,
      "stress_balance": -23400
    },
    {
      "date": "2026-07-12",
      "sleep_score": 67,
      "sleep_hrs": 7.66,
      "sleep_efficiency": 82,
      "hrv_avg": 83.0,
      "readiness_score": 73,
      "hrv_balance": 88,
      "resting_hr": 46,
      "activity_score": 94,
      "steps": 33957,
      "stress_balance": -12600
    },
    {
      "date": "2026-07-13",
      "sleep_score": 69,
      "sleep_hrs": 6.52,
      "sleep_efficiency": 80,
      "hrv_avg": 89.0,
      "readiness_score": 60,
      "hrv_balance": 86,
      "resting_hr": 38,
      "activity_score": 89,
      "steps": 18214,
      "stress_balance": -9000
    },
    {
      "date": "2026-07-14",
      "sleep_score": 76,
      "sleep_hrs": 7.79,
      "sleep_efficiency": 91,
      "hrv_avg": 95.0,
      "readiness_score": 74,
      "hrv_balance": 85,
      "resting_hr": 65,
      "activity_score": 78,
      "steps": 11242,
      "stress_balance": -10800
    },
    {
      "date": "2026-07-15",
      "sleep_score": 63,
      "sleep_hrs": 7.18,
      "sleep_efficiency": 83,
      "hrv_avg": 85.0,
      "readiness_score": 66,
      "hrv_balance": 79,
      "resting_hr": 100,
      "activity_score": 80,
      "steps": 5896,
      "stress_balance": -11700
    },
    {
      "date": "2026-07-16",
      "sleep_score": 74,
      "sleep_hrs": 5.64,
      "sleep_efficiency": 90,
      "hrv_avg": 90.0,
      "readiness_score": 76,
      "hrv_balance": 81,
      "resting_hr": 83,
      "activity_score": 98,
      "steps": 8564,
      "stress_balance": -14400
    },
    {
      "date": "2026-07-17",
      "sleep_score": 69,
      "sleep_hrs": 7.58,
      "sleep_efficiency": 78,
      "hrv_avg": 94.0,
      "readiness_score": 74,
      "hrv_balance": 81,
      "resting_hr": 58,
      "activity_score": 96,
      "steps": 10709,
      "stress_balance": -9900
    },
    {
      "date": "2026-07-18",
      "sleep_score": 68,
      "sleep_hrs": 6.78,
      "sleep_efficiency": 84,
      "hrv_avg": 96.0,
      "readiness_score": 73,
      "hrv_balance": 80,
      "resting_hr": 76,
      "activity_score": 99,
      "steps": 19564,
      "stress_balance": -12600
    },
    {
      "date": "2026-07-19",
      "sleep_score": 70,
      "sleep_hrs": 8.12,
      "sleep_efficiency": 86,
      "hrv_avg": 93.0,
      "readiness_score": 72,
      "hrv_balance": 80,
      "resting_hr": 76,
      "activity_score": 95,
      "steps": 11357,
      "stress_balance": -5400
    },
    {
      "date": "2026-07-20",
      "sleep_score": 61,
      "sleep_hrs": 4.65,
      "sleep_efficiency": 84,
      "hrv_avg": 90.0,
      "readiness_score": 62,
      "hrv_balance": 81,
      "resting_hr": 50,
      "activity_score": 88,
      "steps": 4838,
      "stress_balance": -2700
    },
    {
      "date": "2026-07-21",
      "sleep_score": 71,
      "sleep_hrs": 8.29,
      "sleep_efficiency": 86,
      "hrv_avg": 87.0,
      "readiness_score": 82,
      "hrv_balance": 80,
      "resting_hr": 85,
      "activity_score": 97,
      "steps": 12498,
      "stress_balance": -4500
    },
    {
      "date": "2026-07-22",
      "sleep_score": 61,
      "sleep_hrs": 6.93,
      "sleep_efficiency": 80,
      "hrv_avg": 74.0,
      "readiness_score": 64,
      "hrv_balance": 75,
      "resting_hr": 43,
      "activity_score": 96,
      "steps": 10296,
      "stress_balance": -10800
    },
    {
      "date": "2026-07-23",
      "sleep_score": 76,
      "sleep_hrs": 7.02,
      "sleep_efficiency": 81,
      "hrv_avg": 110.0,
      "readiness_score": 78,
      "hrv_balance": 86,
      "resting_hr": 78,
      "activity_score": 99,
      "steps": 9537,
      "stress_balance": -4500
    },
    {
      "date": "2026-07-24",
      "sleep_score": 56,
      "sleep_hrs": 4.32,
      "sleep_efficiency": 88,
      "hrv_avg": 104.0,
      "readiness_score": 59,
      "hrv_balance": 78,
      "resting_hr": 35,
      "activity_score": 96,
      "steps": 27247,
      "stress_balance": -13500
    },
    {
      "date": "2026-07-25",
      "sleep_score": 63,
      "sleep_hrs": 7.03,
      "sleep_efficiency": 86,
      "hrv_avg": 104.0,
      "readiness_score": 75,
      "hrv_balance": 88,
      "resting_hr": 70,
      "activity_score": 100,
      "steps": 22369,
      "stress_balance": -20700
    },
    {
      "date": "2026-07-26",
      "sleep_score": 74,
      "sleep_hrs": 7.77,
      "sleep_efficiency": 81,
      "hrv_avg": 104.0,
      "readiness_score": 77,
      "hrv_balance": 86,
      "resting_hr": 80,
      "activity_score": 99,
      "steps": 23438,
      "stress_balance": 900
    },
    {
      "date": "2026-07-27",
      "sleep_score": 74,
      "sleep_hrs": 6.97,
      "sleep_efficiency": 87,
      "hrv_avg": 99.0,
      "readiness_score": 72,
      "hrv_balance": 87,
      "resting_hr": 63,
      "activity_score": 94,
      "steps": 11329,
      "stress_balance": -14400
    },
    {
      "date": "2026-07-28",
      "sleep_score": 69,
      "sleep_hrs": 6.54,
      "sleep_efficiency": 85,
      "hrv_avg": 80.0,
      "readiness_score": 65,
      "hrv_balance": 85,
      "resting_hr": 38,
      "activity_score": 93,
      "steps": 14149,
      "stress_balance": -18900
    },
    {
      "date": "2026-07-29",
      "sleep_score": 59,
      "sleep_hrs": 5.61,
      "sleep_efficiency": 86,
      "hrv_avg": 109.0,
      "readiness_score": 67,
      "hrv_balance": 90,
      "resting_hr": 48,
      "activity_score": 88,
      "steps": 15831,
      "stress_balance": -9900
    },
    {
      "date": "2026-07-30",
      "sleep_score": 65,
      "sleep_hrs": 6.13,
      "sleep_efficiency": 86,
      "hrv_avg": 101.0,
      "readiness_score": 69,
      "hrv_balance": 87,
      "resting_hr": 66,
      "activity_score": 84,
      "steps": 5371,
      "stress_balance": -19800
    },
    {
      "date": "2026-07-31",
      "sleep_score": 68,
      "sleep_hrs": 6.49,
      "sleep_efficiency": 88,
      "hrv_avg": 98.0,
      "readiness_score": 75,
      "hrv_balance": 87,
      "resting_hr": 76,
      "activity_score": 99,
      "steps": 6743,
      "stress_balance": -900
    },
    {
      "date": "2026-08-01",
      "sleep_score": 74,
      "sleep_hrs": 6.67,
      "sleep_efficiency": 88,
      "hrv_avg": 106.0,
      "readiness_score": 80,
      "hrv_balance": 89,
      "resting_hr": 76,
      "activity_score": 100,
      "steps": 12539,
      "stress_balance": -14400
    },
    {
      "date": "2026-08-02",
      "sleep_score": 51,
      "sleep_hrs": 5.46,
      "sleep_efficiency": 75,
      "hrv_avg": 40.0,
      "readiness_score": 49,
      "hrv_balance": 63,
      "resting_hr": 1,
      "activity_score": 100,
      "steps": 18392,
      "stress_balance": -11700
    },
    {
      "date": "2026-08-03",
      "sleep_score": 53,
      "sleep_hrs": 4.81,
      "sleep_efficiency": 76,
      "hrv_avg": 29.0,
      "readiness_score": 47,
      "hrv_balance": 90,
      "resting_hr": 1,
      "activity_score": 98,
      "steps": 6940,
      "stress_balance": 2700
    },
    {
      "date": "2026-08-04",
      "sleep_score": 76,
      "sleep_hrs": 6.72,
      "sleep_efficiency": 94,
      "hrv_avg": 105.0,
      "readiness_score": 82,
      "hrv_balance": 78,
      "resting_hr": 100,
      "activity_score": 100,
      "steps": 15839,
      "stress_balance": -9000
    },
    {
      "date": "2026-08-05",
      "sleep_score": 68,
      "sleep_hrs": 6.52,
      "sleep_efficiency": 88,
      "hrv_avg": 96.0,
      "readiness_score": 59,
      "hrv_balance": 33,
      "resting_hr": 69,
      "activity_score": 100,
      "steps": 12319,
      "stress_balance": 0
    },
    {
      "date": "2026-08-06",
      "sleep_score": 92,
      "sleep_hrs": 10.38,
      "sleep_efficiency": 90,
      "hrv_avg": 89.0,
      "readiness_score": 77,
      "hrv_balance": 40,
      "resting_hr": 70,
      "activity_score": 99,
      "steps": 11066,
      "stress_balance": -9000
    },
    {
      "date": "2026-08-07",
      "sleep_score": 61,
      "sleep_hrs": 6.23,
      "sleep_efficiency": 83,
      "hrv_avg": 93.0,
      "readiness_score": 56,
      "hrv_balance": 47,
      "resting_hr": 29,
      "activity_score": 96,
      "steps": 4765,
      "stress_balance": -1800
    },
    {
      "date": "2026-08-08",
      "sleep_score": 64,
      "sleep_hrs": 7.78,
      "sleep_efficiency": 57,
      "hrv_avg": 82.0,
      "readiness_score": 65,
      "hrv_balance": 47,
      "resting_hr": 73,
      "activity_score": 94,
      "steps": 18712,
      "stress_balance": -7200
    },
    {
      "date": "2026-08-09",
      "sleep_score": 86,
      "sleep_hrs": 8.48,
      "sleep_efficiency": 87,
      "hrv_avg": 69.0,
      "readiness_score": 71,
      "hrv_balance": 49,
      "resting_hr": 38,
      "activity_score": 90,
      "steps": 19421,
      "stress_balance": -5400
    },
    {
      "date": "2026-08-10",
      "sleep_score": 59,
      "sleep_hrs": 6.05,
      "sleep_efficiency": 87,
      "hrv_avg": 82.0,
      "readiness_score": 65,
      "hrv_balance": 59,
      "resting_hr": 99,
      "activity_score": 85,
      "steps": 10992,
      "stress_balance": 3600
    },
    {
      "date": "2026-08-11",
      "sleep_score": 68,
      "sleep_hrs": 6.6,
      "sleep_efficiency": 82,
      "hrv_avg": 101.0,
      "readiness_score": 75,
      "hrv_balance": 62,
      "resting_hr": 74,
      "activity_score": 98,
      "steps": 9392,
      "stress_balance": 6300
    },
    {
      "date": "2026-08-12",
      "sleep_score": 73,
      "sleep_hrs": 7.87,
      "sleep_efficiency": 87,
      "hrv_avg": 93.0,
      "readiness_score": 79,
      "hrv_balance": 59,
      "resting_hr": 91,
      "activity_score": 98,
      "steps": 4144,
      "stress_balance": 1800
    },
    {
      "date": "2026-08-13",
      "sleep_score": 69,
      "sleep_hrs": 6.99,
      "sleep_efficiency": 86,
      "hrv_avg": 79.0,
      "readiness_score": 74,
      "hrv_balance": 60,
      "resting_hr": 82,
      "activity_score": 98,
      "steps": 9366,
      "stress_balance": -4500
    },
    {
      "date": "2026-08-14",
      "sleep_score": 67,
      "sleep_hrs": 6.82,
      "sleep_efficiency": 82,
      "hrv_avg": 83.0,
      "readiness_score": 72,
      "hrv_balance": 68,
      "resting_hr": 65,
      "activity_score": 95,
      "steps": 5870,
      "stress_balance": 7200
    },
    {
      "date": "2026-08-15",
      "sleep_score": 82,
      "sleep_hrs": 8.86,
      "sleep_efficiency": 87,
      "hrv_avg": 83.0,
      "readiness_score": 86,
      "hrv_balance": 67,
      "resting_hr": 83,
      "activity_score": 100,
      "steps": 20620,
      "stress_balance": 2700
    },
    {
      "date": "2026-08-16",
      "sleep_score": 53,
      "sleep_hrs": 5.75,
      "sleep_efficiency": 81,
      "hrv_avg": 75.0,
      "readiness_score": 66,
      "hrv_balance": 66,
      "resting_hr": 83,
      "activity_score": 99,
      "steps": 26828,
      "stress_balance": -6300
    },
    {
      "date": "2026-08-17",
      "sleep_score": 79,
      "sleep_hrs": 7.05,
      "sleep_efficiency": 85,
      "hrv_avg": 90.0,
      "readiness_score": 83,
      "hrv_balance": 74,
      "resting_hr": 100,
      "activity_score": 92,
      "steps": 5513,
      "stress_balance": 21600
    },
    {
      "date": "2026-08-18",
      "sleep_score": 76,
      "sleep_hrs": 6.92,
      "sleep_efficiency": 84,
      "hrv_avg": 103.0,
      "readiness_score": 84,
      "hrv_balance": 74,
      "resting_hr": 100,
      "activity_score": 92,
      "steps": 12440,
      "stress_balance": 7200
    },
    {
      "date": "2026-08-19",
      "sleep_score": 78,
      "sleep_hrs": 7.66,
      "sleep_efficiency": 85,
      "hrv_avg": 96.0,
      "readiness_score": 81,
      "hrv_balance": 73,
      "resting_hr": 91,
      "activity_score": 92,
      "steps": 8261,
      "stress_balance": 12600
    },
    {
      "date": "2026-08-20",
      "sleep_score": 78,
      "sleep_hrs": 6.52,
      "sleep_efficiency": 87,
      "hrv_avg": 84.0,
      "readiness_score": 86,
      "hrv_balance": 74,
      "resting_hr": 99,
      "activity_score": 97,
      "steps": 7142,
      "stress_balance": 0
    },
    {
      "date": "2026-08-21",
      "sleep_score": 77,
      "sleep_hrs": 7.91,
      "sleep_efficiency": 92,
      "hrv_avg": 93.0,
      "readiness_score": 82,
      "hrv_balance": 82,
      "resting_hr": 99,
      "activity_score": 96,
      "steps": 12432,
      "stress_balance": 11700
    },
    {
      "date": "2026-08-22",
      "sleep_score": 67,
      "sleep_hrs": 5.3,
      "sleep_efficiency": 92,
      "hrv_avg": 101.0,
      "readiness_score": 79,
      "hrv_balance": 83,
      "resting_hr": 96,
      "activity_score": 95,
      "steps": 11989,
      "stress_balance": 6300
    },
    {
      "date": "2026-08-23",
      "sleep_score": 71,
      "sleep_hrs": 6.96,
      "sleep_efficiency": 86,
      "hrv_avg": 97.0,
      "readiness_score": 81,
      "hrv_balance": 83,
      "resting_hr": 98,
      "activity_score": 93,
      "steps": 20526,
      "stress_balance": 2700
    },
    {
      "date": "2026-08-24",
      "sleep_score": 58,
      "sleep_hrs": 7.08,
      "sleep_efficiency": 74,
      "hrv_avg": 90.0,
      "readiness_score": 77,
      "hrv_balance": 85,
      "resting_hr": 100,
      "activity_score": 90,
      "steps": 4680,
      "stress_balance": 9000
    },
    {
      "date": "2026-08-25",
      "sleep_score": 76,
      "sleep_hrs": 7.65,
      "sleep_efficiency": 91,
      "hrv_avg": 105.0,
      "readiness_score": 83,
      "hrv_balance": 88,
      "resting_hr": 100,
      "activity_score": 88,
      "steps": 4083,
      "stress_balance": 6300
    },
    {
      "date": "2026-08-26",
      "sleep_score": 75,
      "sleep_hrs": 7.79,
      "sleep_efficiency": 84,
      "hrv_avg": 92.0,
      "readiness_score": 87,
      "hrv_balance": 85,
      "resting_hr": 100,
      "activity_score": 95,
      "steps": 3086,
      "stress_balance": 3600
    },
    {
      "date": "2026-08-27",
      "sleep_score": 79,
      "sleep_hrs": 6.77,
      "sleep_efficiency": 86,
      "hrv_avg": 92.0,
      "readiness_score": 90,
      "hrv_balance": 87,
      "resting_hr": 100,
      "activity_score": 99,
      "steps": 10322,
      "stress_balance": -15300
    },
    {
      "date": "2026-08-28",
      "sleep_score": 67,
      "sleep_hrs": 7.09,
      "sleep_efficiency": 86,
      "hrv_avg": 70.0,
      "readiness_score": 71,
      "hrv_balance": 82,
      "resting_hr": 52,
      "activity_score": 96,
      "steps": 5990,
      "stress_balance": -4500
    },
    {
      "date": "2026-08-29",
      "sleep_score": 78,
      "sleep_hrs": 7.46,
      "sleep_efficiency": 91,
      "hrv_avg": 99.0,
      "readiness_score": 91,
      "hrv_balance": 88,
      "resting_hr": 100,
      "activity_score": 97,
      "steps": 9896,
      "stress_balance": -8100
    },
    {
      "date": "2026-08-30",
      "sleep_score": 71,
      "sleep_hrs": 6.31,
      "sleep_efficiency": 86,
      "hrv_avg": 86.0,
      "readiness_score": 82,
      "hrv_balance": 80,
      "resting_hr": 86,
      "activity_score": 94,
      "steps": 5648,
      "stress_balance": -6300
    },
    {
      "date": "2026-08-31",
      "sleep_score": 26,
      "sleep_hrs": null,
      "sleep_efficiency": null,
      "hrv_avg": null,
      "readiness_score": 57,
      "hrv_balance": 86,
      "resting_hr": 61,
      "activity_score": 93,
      "steps": 6626,
      "stress_balance": -3600
    },
    {
      "date": "2026-09-01",
      "sleep_score": 80,
      "sleep_hrs": 8.72,
      "sleep_efficiency": 87,
      "hrv_avg": 77.0,
      "readiness_score": 83,
      "hrv_balance": 76,
      "resting_hr": 100,
      "activity_score": 99,
      "steps": 34571,
      "stress_balance": -900
    },
    {
      "date": "2026-09-02",
      "sleep_score": 83,
      "sleep_hrs": 8.98,
      "sleep_efficiency": 83,
      "hrv_avg": 103.0,
      "readiness_score": 81,
      "hrv_balance": 87,
      "resting_hr": 98,
      "activity_score": 97,
      "steps": 30750,
      "stress_balance": 2700
    },
    {
      "date": "2026-09-03",
      "sleep_score": 71,
      "sleep_hrs": 6.53,
      "sleep_efficiency": 84,
      "hrv_avg": 132.0,
      "readiness_score": 78,
      "hrv_balance": 88,
      "resting_hr": 81,
      "activity_score": 96,
      "steps": 22845,
      "stress_balance": 900
    },
    {
      "date": "2026-09-04",
      "sleep_score": 67,
      "sleep_hrs": 5.4,
      "sleep_efficiency": 93,
      "hrv_avg": 111.0,
      "readiness_score": 72,
      "hrv_balance": 87,
      "resting_hr": 86,
      "activity_score": 96,
      "steps": 20833,
      "stress_balance": -9000
    },
    {
      "date": "2026-09-05",
      "sleep_score": 77,
      "sleep_hrs": 7.72,
      "sleep_efficiency": 93,
      "hrv_avg": 113.0,
      "readiness_score": 85,
      "hrv_balance": 91,
      "resting_hr": 95,
      "activity_score": 94,
      "steps": 16942,
      "stress_balance": -7200
    },
    {
      "date": "2026-09-06",
      "sleep_score": 63,
      "sleep_hrs": 6.78,
      "sleep_efficiency": 85,
      "hrv_avg": 104.0,
      "readiness_score": 78,
      "hrv_balance": 91,
      "resting_hr": 91,
      "activity_score": 96,
      "steps": 11428,
      "stress_balance": -2700
    },
    {
      "date": "2026-09-07",
      "sleep_score": 59,
      "sleep_hrs": 6.33,
      "sleep_efficiency": 85,
      "hrv_avg": 101.0,
      "readiness_score": 76,
      "hrv_balance": 92,
      "resting_hr": 100,
      "activity_score": 100,
      "steps": 33529,
      "stress_balance": -17100
    },
    {
      "date": "2026-09-08",
      "sleep_score": 54,
      "sleep_hrs": 5.02,
      "sleep_efficiency": 85,
      "hrv_avg": 95.0,
      "readiness_score": 61,
      "hrv_balance": 92,
      "resting_hr": 80,
      "activity_score": 100,
      "steps": 28503,
      "stress_balance": -11700
    },
    {
      "date": "2026-09-09",
      "sleep_score": 57,
      "sleep_hrs": 6.84,
      "sleep_efficiency": 82,
      "hrv_avg": 103.0,
      "readiness_score": 76,
      "hrv_balance": 93,
      "resting_hr": 100,
      "activity_score": 99,
      "steps": 31748,
      "stress_balance": -6300
    },
    {
      "date": "2026-09-10",
      "sleep_score": 68,
      "sleep_hrs": 6.47,
      "sleep_efficiency": 91,
      "hrv_avg": 122.0,
      "readiness_score": 77,
      "hrv_balance": 94,
      "resting_hr": 89,
      "activity_score": 97,
      "steps": 33418,
      "stress_balance": -18000
    },
    {
      "date": "2026-09-11",
      "sleep_score": 58,
      "sleep_hrs": 5.89,
      "sleep_efficiency": 85,
      "hrv_avg": 114.0,
      "readiness_score": 69,
      "hrv_balance": 92,
      "resting_hr": 100,
      "activity_score": 93,
      "steps": 26077,
      "stress_balance": -7200
    },
    {
      "date": "2026-09-12",
      "sleep_score": 64,
      "sleep_hrs": 6.89,
      "sleep_efficiency": 88,
      "hrv_avg": 117.0,
      "readiness_score": 77,
      "hrv_balance": 94,
      "resting_hr": 99,
      "activity_score": 91,
      "steps": 22913,
      "stress_balance": -14400
    },
    {
      "date": "2026-09-13",
      "sleep_score": 61,
      "sleep_hrs": 5.83,
      "sleep_efficiency": 85,
      "hrv_avg": 118.0,
      "readiness_score": 72,
      "hrv_balance": 95,
      "resting_hr": 99,
      "activity_score": 82,
      "steps": 11004,
      "stress_balance": 9000
    },
    {
      "date": "2026-09-14",
      "sleep_score": 83,
      "sleep_hrs": 9.95,
      "sleep_efficiency": 87,
      "hrv_avg": 97.0,
      "readiness_score": 86,
      "hrv_balance": 93,
      "resting_hr": 83,
      "activity_score": 98,
      "steps": 13447,
      "stress_balance": -10800
    },
    {
      "date": "2026-09-15",
      "sleep_score": 90,
      "sleep_hrs": 9.57,
      "sleep_efficiency": 89,
      "hrv_avg": 106.0,
      "readiness_score": 83,
      "hrv_balance": 96,
      "resting_hr": 100,
      "activity_score": 99,
      "steps": 15438,
      "stress_balance": 0
    },
    {
      "date": "2026-09-16",
      "sleep_score": 76,
      "sleep_hrs": 8.69,
      "sleep_efficiency": 91,
      "hrv_avg": 107.0,
      "readiness_score": 86,
      "hrv_balance": 94,
      "resting_hr": 100,
      "activity_score": 95,
      "steps": 10125,
      "stress_balance": -12600
    },
    {
      "date": "2026-09-17",
      "sleep_score": 73,
      "sleep_hrs": 6.75,
      "sleep_efficiency": 92,
      "hrv_avg": 90.0,
      "readiness_score": 78,
      "hrv_balance": 91,
      "resting_hr": 83,
      "activity_score": 99,
      "steps": 7793,
      "stress_balance": -14400
    },
    {
      "date": "2026-09-18",
      "sleep_score": 82,
      "sleep_hrs": 7.31,
      "sleep_efficiency": 90,
      "hrv_avg": 82.0,
      "readiness_score": 81,
      "hrv_balance": 90,
      "resting_hr": 75,
      "activity_score": 96,
      "steps": 8583,
      "stress_balance": -9900
    },
    {
      "date": "2026-09-19",
      "sleep_score": 75,
      "sleep_hrs": 7.83,
      "sleep_efficiency": 88,
      "hrv_avg": 93.0,
      "readiness_score": 86,
      "hrv_balance": 90,
      "resting_hr": 83,
      "activity_score": 100,
      "steps": 22172,
      "stress_balance": -37800
    },
    {
      "date": "2026-09-20",
      "sleep_score": 58,
      "sleep_hrs": 5.98,
      "sleep_efficiency": 84,
      "hrv_avg": 67.0,
      "readiness_score": 55,
      "hrv_balance": 79,
      "resting_hr": 15,
      "activity_score": 98,
      "steps": 6206,
      "stress_balance": -9900
    },
    {
      "date": "2026-09-21",
      "sleep_score": 72,
      "sleep_hrs": 6.33,
      "sleep_efficiency": 88,
      "hrv_avg": 98.0,
      "readiness_score": 75,
      "hrv_balance": 87,
      "resting_hr": 67,
      "activity_score": 98,
      "steps": 4858,
      "stress_balance": -19800
    },
    {
      "date": "2026-09-22",
      "sleep_score": 66,
      "sleep_hrs": 6.98,
      "sleep_efficiency": 83,
      "hrv_avg": 92.0,
      "readiness_score": 76,
      "hrv_balance": 75,
      "resting_hr": 94,
      "activity_score": 95,
      "steps": 16027,
      "stress_balance": -22500
    },
    {
      "date": "2026-09-23",
      "sleep_score": 66,
      "sleep_hrs": 6.33,
      "sleep_efficiency": 82,
      "hrv_avg": 90.0,
      "readiness_score": 68,
      "hrv_balance": 75,
      "resting_hr": 34,
      "activity_score": 99,
      "steps": 7640,
      "stress_balance": -15300
    },
    {
      "date": "2026-09-24",
      "sleep_score": 72,
      "sleep_hrs": 7.27,
      "sleep_efficiency": 86,
      "hrv_avg": 105.0,
      "readiness_score": 75,
      "hrv_balance": 80,
      "resting_hr": 69,
      "activity_score": 96,
      "steps": 9898,
      "stress_balance": -18000
    },
    {
      "date": "2026-09-25",
      "sleep_score": 66,
      "sleep_hrs": 5.85,
      "sleep_efficiency": 91,
      "hrv_avg": 99.0,
      "readiness_score": 70,
      "hrv_balance": 76,
      "resting_hr": 70,
      "activity_score": 92,
      "steps": 15240,
      "stress_balance": -24300
    },
    {
      "date": "2026-09-26",
      "sleep_score": 66,
      "sleep_hrs": 6.16,
      "sleep_efficiency": 86,
      "hrv_avg": 58.0,
      "readiness_score": 58,
      "hrv_balance": 63,
      "resting_hr": 29,
      "activity_score": 92,
      "steps": 26373,
      "stress_balance": -14400
    },
    {
      "date": "2026-09-27",
      "sleep_score": 53,
      "sleep_hrs": 5.74,
      "sleep_efficiency": 75,
      "hrv_avg": 83.0,
      "readiness_score": 62,
      "hrv_balance": 79,
      "resting_hr": 64,
      "activity_score": 91,
      "steps": 20360,
      "stress_balance": -24300
    },
    {
      "date": "2026-09-28",
      "sleep_score": 64,
      "sleep_hrs": 6.81,
      "sleep_efficiency": 85,
      "hrv_avg": 91.0,
      "readiness_score": 65,
      "hrv_balance": 68,
      "resting_hr": 56,
      "activity_score": 76,
      "steps": 8705,
      "stress_balance": -15300
    },
    {
      "date": "2026-09-29",
      "sleep_score": 52,
      "sleep_hrs": 5.3,
      "sleep_efficiency": 80,
      "hrv_avg": 95.0,
      "readiness_score": 57,
      "hrv_balance": 67,
      "resting_hr": 83,
      "activity_score": 74,
      "steps": 12514,
      "stress_balance": -23400
    },
    {
      "date": "2026-09-30",
      "sleep_score": 65,
      "sleep_hrs": 6.22,
      "sleep_efficiency": 85,
      "hrv_avg": 94.0,
      "readiness_score": 65,
      "hrv_balance": 68,
      "resting_hr": 66,
      "activity_score": 72,
      "steps": 19547,
      "stress_balance": -9000
    },
    {
      "date": "2026-10-01",
      "sleep_score": 65,
      "sleep_hrs": 6.96,
      "sleep_efficiency": 85,
      "hrv_avg": 84.0,
      "readiness_score": 70,
      "hrv_balance": 67,
      "resting_hr": 84,
      "activity_score": 74,
      "steps": 10783,
      "stress_balance": -5400
    },
    {
      "date": "2026-10-02",
      "sleep_score": 78,
      "sleep_hrs": 8.54,
      "sleep_efficiency": 88,
      "hrv_avg": 93.0,
      "readiness_score": 79,
      "hrv_balance": 74,
      "resting_hr": 93,
      "activity_score": 73,
      "steps": 13710,
      "stress_balance": -1800
    },
    {
      "date": "2026-10-03",
      "sleep_score": 82,
      "sleep_hrs": 8.13,
      "sleep_efficiency": 88,
      "hrv_avg": 105.0,
      "readiness_score": 84,
      "hrv_balance": 76,
      "resting_hr": 100,
      "activity_score": 83,
      "steps": 10188,
      "stress_balance": 3600
    },
    {
      "date": "2026-10-04",
      "sleep_score": 90,
      "sleep_hrs": 8.32,
      "sleep_efficiency": 93,
      "hrv_avg": 106.0,
      "readiness_score": 88,
      "hrv_balance": 79,
      "resting_hr": 99,
      "activity_score": 97,
      "steps": 9647,
      "stress_balance": 22500
    },
    {
      "date": "2026-10-05",
      "sleep_score": 85,
      "sleep_hrs": 8.06,
      "sleep_efficiency": 89,
      "hrv_avg": 108.0,
      "readiness_score": 87,
      "hrv_balance": 84,
      "resting_hr": 86,
      "activity_score": 96,
      "steps": 11663,
      "stress_balance": 19800
    },
    {
      "date": "2026-10-06",
      "sleep_score": 82,
      "sleep_hrs": 7.36,
      "sleep_efficiency": 88,
      "hrv_avg": 109.0,
      "readiness_score": 90,
      "hrv_balance": 86,
      "resting_hr": 100,
      "activity_score": 97,
      "steps": 18020,
      "stress_balance": 5400
    },
    {
      "date": "2026-10-07",
      "sleep_score": 84,
      "sleep_hrs": 7.4,
      "sleep_efficiency": 90,
      "hrv_avg": 103.0,
      "readiness_score": 89,
      "hrv_balance": 87,
      "resting_hr": 90,
      "activity_score": 98,
      "steps": 17570,
      "stress_balance": 9900
    },
    {
      "date": "2026-10-08",
      "sleep_score": 66,
      "sleep_hrs": 6.32,
      "sleep_efficiency": 82,
      "hrv_avg": 79.0,
      "readiness_score": 79,
      "hrv_balance": 85,
      "resting_hr": 81,
      "activity_score": 96,
      "steps": 9729,
      "stress_balance": 19800
    },
    {
      "date": "2026-10-09",
      "sleep_score": 79,
      "sleep_hrs": 6.5,
      "sleep_efficiency": 90,
      "hrv_avg": 92.0,
      "readiness_score": 88,
      "hrv_balance": 88,
      "resting_hr": 100,
      "activity_score": 96,
      "steps": 14543,
      "stress_balance": -3600
    },
    {
      "date": "2026-10-10",
      "sleep_score": 82,
      "sleep_hrs": 7.17,
      "sleep_efficiency": 93,
      "hrv_avg": 98.0,
      "readiness_score": 86,
      "hrv_balance": 87,
      "resting_hr": 97,
      "activity_score": 96,
      "steps": 18592,
      "stress_balance": 4500
    },
    {
      "date": "2026-10-11",
      "sleep_score": 60,
      "sleep_hrs": 6.24,
      "sleep_efficiency": 88,
      "hrv_avg": 83.0,
      "readiness_score": 67,
      "hrv_balance": 83,
      "resting_hr": 46,
      "activity_score": 97,
      "steps": 5185,
      "stress_balance": 18900
    },
    {
      "date": "2026-10-12",
      "sleep_score": 73,
      "sleep_hrs": 6.98,
      "sleep_efficiency": 92,
      "hrv_avg": 95.0,
      "readiness_score": 84,
      "hrv_balance": 86,
      "resting_hr": 90,
      "activity_score": 95,
      "steps": 5158,
      "stress_balance": -3600
    },
    {
      "date": "2026-10-13",
      "sleep_score": 65,
      "sleep_hrs": 6.73,
      "sleep_efficiency": 87,
      "hrv_avg": 82.0,
      "readiness_score": 76,
      "hrv_balance": 78,
      "resting_hr": 73,
      "activity_score": 98,
      "steps": 14264,
      "stress_balance": -16200
    },
    {
      "date": "2026-10-14",
      "sleep_score": 71,
      "sleep_hrs": 6.8,
      "sleep_efficiency": 87,
      "hrv_avg": 96.0,
      "readiness_score": 77,
      "hrv_balance": 84,
      "resting_hr": 73,
      "activity_score": 98,
      "steps": 4114,
      "stress_balance": -13500
    },
    {
      "date": "2026-10-15",
      "sleep_score": 69,
      "sleep_hrs": 6.56,
      "sleep_efficiency": 87,
      "hrv_avg": 95.0,
      "readiness_score": 75,
      "hrv_balance": 80,
      "resting_hr": 90,
      "activity_score": 98,
      "steps": 10195,
      "stress_balance": -21600
    },
    {
      "date": "2026-10-16",
      "sleep_score": 69,
      "sleep_hrs": null,
      "sleep_efficiency": null,
      "hrv_avg": null,
      "readiness_score": 63,
      "hrv_balance": 74,
      "resting_hr": 30,
      "activity_score": null,
      "steps": null,
      "stress_balance": -1800
    }
  ],
  "nutrition_trend": [],
  "race_predictions": {
    "weeks": [
      "7/13",
      "7/20",
      "8/10",
      "8/17"
    ],
    "week_starts": [
      "2026-07-13",
      "2026-07-20",
      "2026-08-10",
      "2026-08-17"
    ],
    "pred_5k_sec": [
      1409,
      1554,
      1454,
      1315
    ],
    "pred_hm_sec": [
      6481,
      7152,
      6690,
      6043
    ],
    "target_5k_sec": 1110,
    "target_hm_sec": 5100
  },
  "training_readiness": {
    "date": "2026-10-16",
    "signals": {
      "readiness": 63,
      "hrv_balance": 74,
      "avg_hrv": null,
      "hrv_trend": "stable",
      "sleep_deficit_nights": 0,
      "consecutive_days": 6,
      "hi_session_last_48h": true,
      "push_last_24h": true,
      "pull_last_24h": false
    },
    "flags": [
      "readiness_low",
      "consecutive_load"
    ],
    "recommendation": {
      "verdict": "train_light",
      "modality": "strength",
      "intensity": "deload",
      "reasons": [
        "Readiness 63 \u2014 train light only",
        "6 consecutive training days \u2014 consider reducing volume",
        "High-intensity cardio in last 48 hrs \u2014 no quality run/HYROX today",
        "Push session yesterday \u2014 avoid Push today (48 hr recovery)"
      ]
    },
    "oura_last_3": [
      {
        "date": "2026-10-13",
        "readiness_score": 76,
        "hrv_balance": 78,
        "avg_hrv": 82.0,
        "sleep_hrs": 6.73
      },
      {
        "date": "2026-10-14",
        "readiness_score": 77,
        "hrv_balance": 84,
        "avg_hrv": 96.0,
        "sleep_hrs": 6.8
      },
      {
        "date": "2026-10-15",
        "readiness_score": 75,
        "hrv_balance": 80,
        "avg_hrv": 95.0,
        "sleep_hrs": 6.56
      },
      {
        "date": "2026-10-16",
        "readiness_score": 63,
        "hrv_balance": 74,
        "avg_hrv": null,
        "sleep_hrs": null
      }
    ],
    "sessions_last_3": [
      {
        "date": "2026-10-10",
        "title": "W3 - Pull A",
        "type": "pull_a",
        "duration_min": 62,
        "fatigue": null
      },
      {
        "date": "2026-10-11",
        "title": "W3- Push B",
        "type": "push_b",
        "duration_min": 72,
        "fatigue": null
      },
      {
        "date": "2026-10-12",
        "title": "W3 - Pull B",
        "type": "pull_b",
        "duration_min": 48,
        "fatigue": null
      },
      {
        "date": "2026-10-13",
        "title": "W4 - Push A",
        "type": "push_a",
        "duration_min": 81,
        "fatigue": null
      },
      {
        "date": "2026-10-14",
        "title": "Quick pull day",
        "type": "pull_a",
        "duration_min": 57,
        "fatigue": null
      },
      {
        "date": "2026-10-15",
        "title": "HIIT",
        "type": "hyrox_class",
        "duration_min": 40,
        "fatigue": null
      },
      {
        "date": "2026-10-15",
        "title": "Running",
        "type": "zone2_run",
        "duration_min": 1,
        "fatigue": null
      },
      {
        "date": "2026-10-15",
        "title": "W4 - Push B",
        "type": "push_b",
        "duration_min": 89,
        "fatigue": null
      }
    ]
  },
  "race_targets": {}
}