{
  "version": 1,
  "title": "Beaver research calendar",
  "timezone": "America/New_York",
  "season": 2026,
  "generatedAt": "2026-10-11T17:31:13.716Z",
  "policy": {
    "version": 1,
    "inactiveLeadMinutes": 90,
    "startLeadMinutes": 85,
    "finalCheckLeadMinutes": 55,
    "liveLeadMinutes": 30,
    "groupMinutes": 30,
    "postgameCheckMinutes": 255
  },
  "sources": [
    {
      "url": "https://github.com/nflverse/nflverse-data/releases/download/schedules/games.csv",
      "retrievedAt": "2026-10-11T17:31:13.716Z",
      "responseSha256": "c19dc0b8e5b9628edc5c29199c46d564e4b5bf093d71e5f2407844b47b9c6958",
      "accessMethod": "published-data-release",
      "license": "CC-BY-4.0",
      "rightsUrl": "https://github.com/nflverse/nflverse-data/blob/main/LICENSE.md",
      "attribution": "Lee Sharpe and nflverse contributors. Selected games and derived research windows by League It To Beaver.",
      "permissionReview": "Repository data license and documented schedule release reviewed. Third-party upstream collection rights are not independently established."
    }
  ],
  "waiverStatus": "League settings confirmed: Tuesday and Wednesday waivers process at 03:00 Eastern. Thursday–Saturday process at 03:00, then free agents. Sunday and Monday are locked. Full post-waiver reviews cover Tuesday and Wednesday; other passes check later roster changes. Processing completion must be verified.",
  "dfsStatus": "These passes gather shared NFL inputs. Contest picks require the actual DFS slate, scoring, salary rules, and lock policy. Separate DFS windows are not armed.",
  "unknownGames": [],
  "windows": [
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-prepare-2026-10-07",
      "kind": "prepare",
      "week": 5,
      "title": "First-game research",
      "startsAt": "2026-10-07T22:00:00.000Z",
      "liveBy": "2026-10-07T23:30:00.000Z",
      "locksAt": null,
      "gameIds": [
        "2026_05_TB_DAL",
        "2026_05_PHI_JAX",
        "2026_05_CHI_GB",
        "2026_05_CIN_MIA",
        "2026_05_LV_NE",
        "2026_05_MIN_NO",
        "2026_05_CLE_NYJ",
        "2026_05_IND_PIT",
        "2026_05_HOU_TEN",
        "2026_05_NYG_WAS",
        "2026_05_DEN_LAC",
        "2026_05_DET_ARI",
        "2026_05_SF_SEA",
        "2026_05_BAL_ATL",
        "2026_05_BUF_LA"
      ],
      "reason": "Review usage, coaching, injury reports, and waiver candidates before the short final-news pass. Reserve 90 minutes for research, checks, correction, and publication."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-pregame-2026_05_TB_DAL",
      "kind": "pregame",
      "week": 5,
      "title": "TB / DAL final-news check",
      "startsAt": "2026-10-08T22:50:00.000Z",
      "finalCheckAt": "2026-10-08T23:20:00.000Z",
      "liveBy": "2026-10-08T23:45:00.000Z",
      "locksAt": "2026-10-09T00:15:00.000Z",
      "gameIds": [
        "2026_05_TB_DAL"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-postgame-2026_05_TB_DAL",
      "kind": "postgame",
      "week": 5,
      "title": "TB / DAL postgame review",
      "startsAt": "2026-10-09T04:30:00.000Z",
      "liveBy": null,
      "locksAt": null,
      "gameIds": [
        "2026_05_TB_DAL"
      ],
      "requiresFinal": true,
      "reason": "This is a final-status check window, not an assumed ending time. If any game is live, suspended, or delayed, defer 15 minutes. Keep scores provisional until the frozen outcome provider confirms final data."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-prepare-2026-10-10",
      "kind": "prepare",
      "week": 5,
      "title": "Main-slate research",
      "startsAt": "2026-10-10T22:00:00.000Z",
      "liveBy": "2026-10-10T23:30:00.000Z",
      "locksAt": null,
      "gameIds": [
        "2026_05_TB_DAL",
        "2026_05_PHI_JAX",
        "2026_05_CHI_GB",
        "2026_05_CIN_MIA",
        "2026_05_LV_NE",
        "2026_05_MIN_NO",
        "2026_05_CLE_NYJ",
        "2026_05_IND_PIT",
        "2026_05_HOU_TEN",
        "2026_05_NYG_WAS",
        "2026_05_DEN_LAC",
        "2026_05_DET_ARI",
        "2026_05_SF_SEA",
        "2026_05_BAL_ATL",
        "2026_05_BUF_LA"
      ],
      "reason": "Review usage, coaching, injury reports, and waiver candidates before the short final-news pass. Reserve 90 minutes for research, checks, correction, and publication."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-pregame-2026_05_PHI_JAX",
      "kind": "pregame",
      "week": 5,
      "title": "International game check",
      "startsAt": "2026-10-11T12:05:00.000Z",
      "finalCheckAt": "2026-10-11T12:35:00.000Z",
      "liveBy": "2026-10-11T13:00:00.000Z",
      "locksAt": "2026-10-11T13:30:00.000Z",
      "gameIds": [
        "2026_05_PHI_JAX"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-pregame-2026_05_CHI_GB-2026_05_CIN_MIA-2026_05_CLE_NYJ-2026_05_HOU_TEN-2026_05_IND_PIT-2026_05_LV_NE-2026_05_MIN_NO-2026_05_NYG_WAS",
      "kind": "pregame",
      "week": 5,
      "title": "Main-slate final-news check",
      "startsAt": "2026-10-11T15:35:00.000Z",
      "finalCheckAt": "2026-10-11T16:05:00.000Z",
      "liveBy": "2026-10-11T16:30:00.000Z",
      "locksAt": "2026-10-11T17:00:00.000Z",
      "gameIds": [
        "2026_05_CHI_GB",
        "2026_05_CIN_MIA",
        "2026_05_LV_NE",
        "2026_05_MIN_NO",
        "2026_05_CLE_NYJ",
        "2026_05_IND_PIT",
        "2026_05_HOU_TEN",
        "2026_05_NYG_WAS"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-postgame-2026_05_PHI_JAX",
      "kind": "postgame",
      "week": 5,
      "title": "PHI / JAX postgame review",
      "startsAt": "2026-10-11T17:45:00.000Z",
      "liveBy": null,
      "locksAt": null,
      "gameIds": [
        "2026_05_PHI_JAX"
      ],
      "requiresFinal": true,
      "reason": "This is a final-status check window, not an assumed ending time. If any game is live, suspended, or delayed, defer 15 minutes. Keep scores provisional until the frozen outcome provider confirms final data."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-pregame-2026_05_DEN_LAC-2026_05_DET_ARI-2026_05_SF_SEA",
      "kind": "pregame",
      "week": 5,
      "title": "DEN / LAC / DET / ARI / SF / SEA final-news check",
      "startsAt": "2026-10-11T18:40:00.000Z",
      "finalCheckAt": "2026-10-11T19:10:00.000Z",
      "liveBy": "2026-10-11T19:35:00.000Z",
      "locksAt": "2026-10-11T20:05:00.000Z",
      "gameIds": [
        "2026_05_DEN_LAC",
        "2026_05_DET_ARI",
        "2026_05_SF_SEA"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-pregame-2026_05_BAL_ATL",
      "kind": "pregame",
      "week": 5,
      "title": "BAL / ATL final-news check",
      "startsAt": "2026-10-11T22:55:00.000Z",
      "finalCheckAt": "2026-10-11T23:25:00.000Z",
      "liveBy": "2026-10-11T23:50:00.000Z",
      "locksAt": "2026-10-12T00:20:00.000Z",
      "gameIds": [
        "2026_05_BAL_ATL"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-postgame-2026_05_BAL_ATL",
      "kind": "postgame",
      "week": 5,
      "title": "BAL / ATL postgame review",
      "startsAt": "2026-10-12T04:35:00.000Z",
      "liveBy": null,
      "locksAt": null,
      "gameIds": [
        "2026_05_BAL_ATL"
      ],
      "requiresFinal": true,
      "reason": "This is a final-status check window, not an assumed ending time. If any game is live, suspended, or delayed, defer 15 minutes. Keep scores provisional until the frozen outcome provider confirms final data."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-pre-waivers-2026-10-13",
      "kind": "pre-waiver",
      "week": 5,
      "title": "First waiver claim research",
      "startsAt": "2026-10-12T22:00:00.000Z",
      "liveBy": "2026-10-12T23:30:00.000Z",
      "locksAt": null,
      "gameIds": [],
      "reason": "Publish Monday evening before Tuesday 03:00 Eastern claims process. Include Sunday evidence and label unfinished Monday-game outcomes provisional. Tuesday morning’s recap informs Wednesday claims. Do not wait until Tuesday 06:00 to publish the first claim research."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-pregame-2026_05_BUF_LA",
      "kind": "pregame",
      "week": 5,
      "title": "BUF / LAR final-news check",
      "startsAt": "2026-10-12T22:50:00.000Z",
      "finalCheckAt": "2026-10-12T23:20:00.000Z",
      "liveBy": "2026-10-12T23:45:00.000Z",
      "locksAt": "2026-10-13T00:15:00.000Z",
      "gameIds": [
        "2026_05_BUF_LA"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-postgame-2026_05_BUF_LA",
      "kind": "postgame",
      "week": 5,
      "title": "BUF / LAR postgame review",
      "startsAt": "2026-10-13T04:30:00.000Z",
      "liveBy": null,
      "locksAt": null,
      "gameIds": [
        "2026_05_BUF_LA"
      ],
      "requiresFinal": true,
      "reason": "This is a final-status check window, not an assumed ending time. If any game is live, suspended, or delayed, defer 15 minutes. Keep scores provisional until the frozen outcome provider confirms final data."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-waivers-2026-10-13",
      "kind": "post-waiver",
      "week": 5,
      "title": "Post-waiver roster and needs review",
      "startsAt": "2026-10-13T07:45:00.000Z",
      "liveBy": "2026-10-13T08:45:00.000Z",
      "locksAt": null,
      "gameIds": [],
      "requiresWaiverCompletion": true,
      "reason": "Start 45 minutes after the confirmed 03:00 Eastern Tuesday or Wednesday processing time. Verify completed transactions and refresh rosters. A configured clear time alone does not prove processing completed."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w5-recap",
      "kind": "recap",
      "week": 5,
      "title": "Week 5 recap and waiver research",
      "startsAt": "2026-10-13T10:00:00.000Z",
      "liveBy": "2026-10-13T11:30:00.000Z",
      "locksAt": null,
      "gameIds": [
        "2026_05_TB_DAL",
        "2026_05_PHI_JAX",
        "2026_05_CHI_GB",
        "2026_05_CIN_MIA",
        "2026_05_LV_NE",
        "2026_05_MIN_NO",
        "2026_05_CLE_NYJ",
        "2026_05_IND_PIT",
        "2026_05_HOU_TEN",
        "2026_05_NYG_WAS",
        "2026_05_DEN_LAC",
        "2026_05_DET_ARI",
        "2026_05_SF_SEA",
        "2026_05_BAL_ATL",
        "2026_05_BUF_LA"
      ],
      "requiresFinal": true,
      "reason": "The morning after the last scheduled game. Confirm all games have ended before a complete recap. Evaluate predictions under their frozen settlement rules. Publish waiver research and generate the next schedule."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-waivers-2026-10-14",
      "kind": "post-waiver",
      "week": 5,
      "title": "Post-waiver roster and needs review",
      "startsAt": "2026-10-14T07:45:00.000Z",
      "liveBy": "2026-10-14T08:45:00.000Z",
      "locksAt": null,
      "gameIds": [],
      "requiresWaiverCompletion": true,
      "reason": "Start 45 minutes after the confirmed 03:00 Eastern Tuesday or Wednesday processing time. Verify completed transactions and refresh rosters. A configured clear time alone does not prove processing completed."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-prepare-2026-10-14",
      "kind": "prepare",
      "week": 6,
      "title": "First-game research",
      "startsAt": "2026-10-14T22:00:00.000Z",
      "liveBy": "2026-10-14T23:30:00.000Z",
      "locksAt": null,
      "gameIds": [
        "2026_06_SEA_DEN",
        "2026_06_HOU_JAX",
        "2026_06_CHI_ATL",
        "2026_06_BAL_CLE",
        "2026_06_TEN_IND",
        "2026_06_NYJ_NE",
        "2026_06_NO_NYG",
        "2026_06_CAR_PHI",
        "2026_06_PIT_TB",
        "2026_06_ARI_LA",
        "2026_06_LAC_KC",
        "2026_06_BUF_LV",
        "2026_06_DAL_GB",
        "2026_06_WAS_SF"
      ],
      "reason": "Review usage, coaching, injury reports, and waiver candidates before the short final-news pass. Reserve 90 minutes for research, checks, correction, and publication."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-pregame-2026_06_SEA_DEN",
      "kind": "pregame",
      "week": 6,
      "title": "SEA / DEN final-news check",
      "startsAt": "2026-10-15T22:50:00.000Z",
      "finalCheckAt": "2026-10-15T23:20:00.000Z",
      "liveBy": "2026-10-15T23:45:00.000Z",
      "locksAt": "2026-10-16T00:15:00.000Z",
      "gameIds": [
        "2026_06_SEA_DEN"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-postgame-2026_06_SEA_DEN",
      "kind": "postgame",
      "week": 6,
      "title": "SEA / DEN postgame review",
      "startsAt": "2026-10-16T04:30:00.000Z",
      "liveBy": null,
      "locksAt": null,
      "gameIds": [
        "2026_06_SEA_DEN"
      ],
      "requiresFinal": true,
      "reason": "This is a final-status check window, not an assumed ending time. If any game is live, suspended, or delayed, defer 15 minutes. Keep scores provisional until the frozen outcome provider confirms final data."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-prepare-2026-10-17",
      "kind": "prepare",
      "week": 6,
      "title": "Main-slate research",
      "startsAt": "2026-10-17T22:00:00.000Z",
      "liveBy": "2026-10-17T23:30:00.000Z",
      "locksAt": null,
      "gameIds": [
        "2026_06_SEA_DEN",
        "2026_06_HOU_JAX",
        "2026_06_CHI_ATL",
        "2026_06_BAL_CLE",
        "2026_06_TEN_IND",
        "2026_06_NYJ_NE",
        "2026_06_NO_NYG",
        "2026_06_CAR_PHI",
        "2026_06_PIT_TB",
        "2026_06_ARI_LA",
        "2026_06_LAC_KC",
        "2026_06_BUF_LV",
        "2026_06_DAL_GB",
        "2026_06_WAS_SF"
      ],
      "reason": "Review usage, coaching, injury reports, and waiver candidates before the short final-news pass. Reserve 90 minutes for research, checks, correction, and publication."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-pregame-2026_06_HOU_JAX",
      "kind": "pregame",
      "week": 6,
      "title": "International game check",
      "startsAt": "2026-10-18T12:05:00.000Z",
      "finalCheckAt": "2026-10-18T12:35:00.000Z",
      "liveBy": "2026-10-18T13:00:00.000Z",
      "locksAt": "2026-10-18T13:30:00.000Z",
      "gameIds": [
        "2026_06_HOU_JAX"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-pregame-2026_06_BAL_CLE-2026_06_CAR_PHI-2026_06_CHI_ATL-2026_06_NO_NYG-2026_06_NYJ_NE-2026_06_PIT_TB-2026_06_TEN_IND",
      "kind": "pregame",
      "week": 6,
      "title": "Main-slate final-news check",
      "startsAt": "2026-10-18T15:35:00.000Z",
      "finalCheckAt": "2026-10-18T16:05:00.000Z",
      "liveBy": "2026-10-18T16:30:00.000Z",
      "locksAt": "2026-10-18T17:00:00.000Z",
      "gameIds": [
        "2026_06_CHI_ATL",
        "2026_06_BAL_CLE",
        "2026_06_TEN_IND",
        "2026_06_NYJ_NE",
        "2026_06_NO_NYG",
        "2026_06_CAR_PHI",
        "2026_06_PIT_TB"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-postgame-2026_06_HOU_JAX",
      "kind": "postgame",
      "week": 6,
      "title": "HOU / JAX postgame review",
      "startsAt": "2026-10-18T17:45:00.000Z",
      "liveBy": null,
      "locksAt": null,
      "gameIds": [
        "2026_06_HOU_JAX"
      ],
      "requiresFinal": true,
      "reason": "This is a final-status check window, not an assumed ending time. If any game is live, suspended, or delayed, defer 15 minutes. Keep scores provisional until the frozen outcome provider confirms final data."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-pregame-2026_06_ARI_LA-2026_06_BUF_LV-2026_06_LAC_KC",
      "kind": "pregame",
      "week": 6,
      "title": "ARI / LAR / LAC / KC / BUF / LV final-news check",
      "startsAt": "2026-10-18T18:40:00.000Z",
      "finalCheckAt": "2026-10-18T19:10:00.000Z",
      "liveBy": "2026-10-18T19:35:00.000Z",
      "locksAt": "2026-10-18T20:05:00.000Z",
      "gameIds": [
        "2026_06_ARI_LA",
        "2026_06_LAC_KC",
        "2026_06_BUF_LV"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-pregame-2026_06_DAL_GB",
      "kind": "pregame",
      "week": 6,
      "title": "DAL / GB final-news check",
      "startsAt": "2026-10-18T22:55:00.000Z",
      "finalCheckAt": "2026-10-18T23:25:00.000Z",
      "liveBy": "2026-10-18T23:50:00.000Z",
      "locksAt": "2026-10-19T00:20:00.000Z",
      "gameIds": [
        "2026_06_DAL_GB"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-postgame-2026_06_DAL_GB",
      "kind": "postgame",
      "week": 6,
      "title": "DAL / GB postgame review",
      "startsAt": "2026-10-19T04:35:00.000Z",
      "liveBy": null,
      "locksAt": null,
      "gameIds": [
        "2026_06_DAL_GB"
      ],
      "requiresFinal": true,
      "reason": "This is a final-status check window, not an assumed ending time. If any game is live, suspended, or delayed, defer 15 minutes. Keep scores provisional until the frozen outcome provider confirms final data."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-pre-waivers-2026-10-20",
      "kind": "pre-waiver",
      "week": 6,
      "title": "First waiver claim research",
      "startsAt": "2026-10-19T22:00:00.000Z",
      "liveBy": "2026-10-19T23:30:00.000Z",
      "locksAt": null,
      "gameIds": [],
      "reason": "Publish Monday evening before Tuesday 03:00 Eastern claims process. Include Sunday evidence and label unfinished Monday-game outcomes provisional. Tuesday morning’s recap informs Wednesday claims. Do not wait until Tuesday 06:00 to publish the first claim research."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-pregame-2026_06_WAS_SF",
      "kind": "pregame",
      "week": 6,
      "title": "WAS / SF final-news check",
      "startsAt": "2026-10-19T22:50:00.000Z",
      "finalCheckAt": "2026-10-19T23:20:00.000Z",
      "liveBy": "2026-10-19T23:45:00.000Z",
      "locksAt": "2026-10-20T00:15:00.000Z",
      "gameIds": [
        "2026_06_WAS_SF"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-postgame-2026_06_WAS_SF",
      "kind": "postgame",
      "week": 6,
      "title": "WAS / SF postgame review",
      "startsAt": "2026-10-20T04:30:00.000Z",
      "liveBy": null,
      "locksAt": null,
      "gameIds": [
        "2026_06_WAS_SF"
      ],
      "requiresFinal": true,
      "reason": "This is a final-status check window, not an assumed ending time. If any game is live, suspended, or delayed, defer 15 minutes. Keep scores provisional until the frozen outcome provider confirms final data."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-waivers-2026-10-20",
      "kind": "post-waiver",
      "week": 6,
      "title": "Post-waiver roster and needs review",
      "startsAt": "2026-10-20T07:45:00.000Z",
      "liveBy": "2026-10-20T08:45:00.000Z",
      "locksAt": null,
      "gameIds": [],
      "requiresWaiverCompletion": true,
      "reason": "Start 45 minutes after the confirmed 03:00 Eastern Tuesday or Wednesday processing time. Verify completed transactions and refresh rosters. A configured clear time alone does not prove processing completed."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w6-recap",
      "kind": "recap",
      "week": 6,
      "title": "Week 6 recap and waiver research",
      "startsAt": "2026-10-20T10:00:00.000Z",
      "liveBy": "2026-10-20T11:30:00.000Z",
      "locksAt": null,
      "gameIds": [
        "2026_06_SEA_DEN",
        "2026_06_HOU_JAX",
        "2026_06_CHI_ATL",
        "2026_06_BAL_CLE",
        "2026_06_TEN_IND",
        "2026_06_NYJ_NE",
        "2026_06_NO_NYG",
        "2026_06_CAR_PHI",
        "2026_06_PIT_TB",
        "2026_06_ARI_LA",
        "2026_06_LAC_KC",
        "2026_06_BUF_LV",
        "2026_06_DAL_GB",
        "2026_06_WAS_SF"
      ],
      "requiresFinal": true,
      "reason": "The morning after the last scheduled game. Confirm all games have ended before a complete recap. Evaluate predictions under their frozen settlement rules. Publish waiver research and generate the next schedule."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-waivers-2026-10-21",
      "kind": "post-waiver",
      "week": 6,
      "title": "Post-waiver roster and needs review",
      "startsAt": "2026-10-21T07:45:00.000Z",
      "liveBy": "2026-10-21T08:45:00.000Z",
      "locksAt": null,
      "gameIds": [],
      "requiresWaiverCompletion": true,
      "reason": "Start 45 minutes after the confirmed 03:00 Eastern Tuesday or Wednesday processing time. Verify completed transactions and refresh rosters. A configured clear time alone does not prove processing completed."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-prepare-2026-10-21",
      "kind": "prepare",
      "week": 7,
      "title": "First-game research",
      "startsAt": "2026-10-21T22:00:00.000Z",
      "liveBy": "2026-10-21T23:30:00.000Z",
      "locksAt": null,
      "gameIds": [
        "2026_07_NE_CHI",
        "2026_07_PIT_NO",
        "2026_07_SF_ATL",
        "2026_07_CIN_BAL",
        "2026_07_TB_CAR",
        "2026_07_NYG_HOU",
        "2026_07_IND_MIN",
        "2026_07_MIA_NYJ",
        "2026_07_CLE_TEN",
        "2026_07_DEN_ARI",
        "2026_07_GB_DET",
        "2026_07_LA_LV",
        "2026_07_KC_SEA",
        "2026_07_DAL_PHI"
      ],
      "reason": "Review usage, coaching, injury reports, and waiver candidates before the short final-news pass. Reserve 90 minutes for research, checks, correction, and publication."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-pregame-2026_07_NE_CHI",
      "kind": "pregame",
      "week": 7,
      "title": "NE / CHI final-news check",
      "startsAt": "2026-10-22T22:50:00.000Z",
      "finalCheckAt": "2026-10-22T23:20:00.000Z",
      "liveBy": "2026-10-22T23:45:00.000Z",
      "locksAt": "2026-10-23T00:15:00.000Z",
      "gameIds": [
        "2026_07_NE_CHI"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-postgame-2026_07_NE_CHI",
      "kind": "postgame",
      "week": 7,
      "title": "NE / CHI postgame review",
      "startsAt": "2026-10-23T04:30:00.000Z",
      "liveBy": null,
      "locksAt": null,
      "gameIds": [
        "2026_07_NE_CHI"
      ],
      "requiresFinal": true,
      "reason": "This is a final-status check window, not an assumed ending time. If any game is live, suspended, or delayed, defer 15 minutes. Keep scores provisional until the frozen outcome provider confirms final data."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-prepare-2026-10-24",
      "kind": "prepare",
      "week": 7,
      "title": "Main-slate research",
      "startsAt": "2026-10-24T22:00:00.000Z",
      "liveBy": "2026-10-24T23:30:00.000Z",
      "locksAt": null,
      "gameIds": [
        "2026_07_NE_CHI",
        "2026_07_PIT_NO",
        "2026_07_SF_ATL",
        "2026_07_CIN_BAL",
        "2026_07_TB_CAR",
        "2026_07_NYG_HOU",
        "2026_07_IND_MIN",
        "2026_07_MIA_NYJ",
        "2026_07_CLE_TEN",
        "2026_07_DEN_ARI",
        "2026_07_GB_DET",
        "2026_07_LA_LV",
        "2026_07_KC_SEA",
        "2026_07_DAL_PHI"
      ],
      "reason": "Review usage, coaching, injury reports, and waiver candidates before the short final-news pass. Reserve 90 minutes for research, checks, correction, and publication."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-pregame-2026_07_PIT_NO",
      "kind": "pregame",
      "week": 7,
      "title": "International game check",
      "startsAt": "2026-10-25T12:05:00.000Z",
      "finalCheckAt": "2026-10-25T12:35:00.000Z",
      "liveBy": "2026-10-25T13:00:00.000Z",
      "locksAt": "2026-10-25T13:30:00.000Z",
      "gameIds": [
        "2026_07_PIT_NO"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-pregame-2026_07_CIN_BAL-2026_07_CLE_TEN-2026_07_IND_MIN-2026_07_MIA_NYJ-2026_07_NYG_HOU-2026_07_SF_ATL-2026_07_TB_CAR",
      "kind": "pregame",
      "week": 7,
      "title": "Main-slate final-news check",
      "startsAt": "2026-10-25T15:35:00.000Z",
      "finalCheckAt": "2026-10-25T16:05:00.000Z",
      "liveBy": "2026-10-25T16:30:00.000Z",
      "locksAt": "2026-10-25T17:00:00.000Z",
      "gameIds": [
        "2026_07_SF_ATL",
        "2026_07_CIN_BAL",
        "2026_07_TB_CAR",
        "2026_07_NYG_HOU",
        "2026_07_IND_MIN",
        "2026_07_MIA_NYJ",
        "2026_07_CLE_TEN"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-postgame-2026_07_PIT_NO",
      "kind": "postgame",
      "week": 7,
      "title": "PIT / NO postgame review",
      "startsAt": "2026-10-25T17:45:00.000Z",
      "liveBy": null,
      "locksAt": null,
      "gameIds": [
        "2026_07_PIT_NO"
      ],
      "requiresFinal": true,
      "reason": "This is a final-status check window, not an assumed ending time. If any game is live, suspended, or delayed, defer 15 minutes. Keep scores provisional until the frozen outcome provider confirms final data."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-pregame-2026_07_DEN_ARI-2026_07_GB_DET-2026_07_LA_LV",
      "kind": "pregame",
      "week": 7,
      "title": "DEN / ARI / GB / DET / LAR / LV final-news check",
      "startsAt": "2026-10-25T18:40:00.000Z",
      "finalCheckAt": "2026-10-25T19:10:00.000Z",
      "liveBy": "2026-10-25T19:35:00.000Z",
      "locksAt": "2026-10-25T20:05:00.000Z",
      "gameIds": [
        "2026_07_DEN_ARI",
        "2026_07_GB_DET",
        "2026_07_LA_LV"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-pregame-2026_07_KC_SEA",
      "kind": "pregame",
      "week": 7,
      "title": "KC / SEA final-news check",
      "startsAt": "2026-10-25T22:55:00.000Z",
      "finalCheckAt": "2026-10-25T23:25:00.000Z",
      "liveBy": "2026-10-25T23:50:00.000Z",
      "locksAt": "2026-10-26T00:20:00.000Z",
      "gameIds": [
        "2026_07_KC_SEA"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-postgame-2026_07_KC_SEA",
      "kind": "postgame",
      "week": 7,
      "title": "KC / SEA postgame review",
      "startsAt": "2026-10-26T04:35:00.000Z",
      "liveBy": null,
      "locksAt": null,
      "gameIds": [
        "2026_07_KC_SEA"
      ],
      "requiresFinal": true,
      "reason": "This is a final-status check window, not an assumed ending time. If any game is live, suspended, or delayed, defer 15 minutes. Keep scores provisional until the frozen outcome provider confirms final data."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-pre-waivers-2026-10-27",
      "kind": "pre-waiver",
      "week": 7,
      "title": "First waiver claim research",
      "startsAt": "2026-10-26T22:00:00.000Z",
      "liveBy": "2026-10-26T23:30:00.000Z",
      "locksAt": null,
      "gameIds": [],
      "reason": "Publish Monday evening before Tuesday 03:00 Eastern claims process. Include Sunday evidence and label unfinished Monday-game outcomes provisional. Tuesday morning’s recap informs Wednesday claims. Do not wait until Tuesday 06:00 to publish the first claim research."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-pregame-2026_07_DAL_PHI",
      "kind": "pregame",
      "week": 7,
      "title": "DAL / PHI final-news check",
      "startsAt": "2026-10-26T22:50:00.000Z",
      "finalCheckAt": "2026-10-26T23:20:00.000Z",
      "liveBy": "2026-10-26T23:45:00.000Z",
      "locksAt": "2026-10-27T00:15:00.000Z",
      "gameIds": [
        "2026_07_DAL_PHI"
      ],
      "reason": "Official inactives usually arrive about 90 minutes before each kickoff. Start after the first list, check later lists in this wave, then check late changes. Publish 30 minutes before the first game. Keep started games fixed. The 55-minute window includes checks and one correction cycle."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-postgame-2026_07_DAL_PHI",
      "kind": "postgame",
      "week": 7,
      "title": "DAL / PHI postgame review",
      "startsAt": "2026-10-27T04:30:00.000Z",
      "liveBy": null,
      "locksAt": null,
      "gameIds": [
        "2026_07_DAL_PHI"
      ],
      "requiresFinal": true,
      "reason": "This is a final-status check window, not an assumed ending time. If any game is live, suspended, or delayed, defer 15 minutes. Keep scores provisional until the frozen outcome provider confirms final data."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-waivers-2026-10-27",
      "kind": "post-waiver",
      "week": 7,
      "title": "Post-waiver roster and needs review",
      "startsAt": "2026-10-27T07:45:00.000Z",
      "liveBy": "2026-10-27T08:45:00.000Z",
      "locksAt": null,
      "gameIds": [],
      "requiresWaiverCompletion": true,
      "reason": "Start 45 minutes after the confirmed 03:00 Eastern Tuesday or Wednesday processing time. Verify completed transactions and refresh rosters. A configured clear time alone does not prove processing completed."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-w7-recap",
      "kind": "recap",
      "week": 7,
      "title": "Week 7 recap and waiver research",
      "startsAt": "2026-10-27T10:00:00.000Z",
      "liveBy": "2026-10-27T11:30:00.000Z",
      "locksAt": null,
      "gameIds": [
        "2026_07_NE_CHI",
        "2026_07_PIT_NO",
        "2026_07_SF_ATL",
        "2026_07_CIN_BAL",
        "2026_07_TB_CAR",
        "2026_07_NYG_HOU",
        "2026_07_IND_MIN",
        "2026_07_MIA_NYJ",
        "2026_07_CLE_TEN",
        "2026_07_DEN_ARI",
        "2026_07_GB_DET",
        "2026_07_LA_LV",
        "2026_07_KC_SEA",
        "2026_07_DAL_PHI"
      ],
      "requiresFinal": true,
      "reason": "The morning after the last scheduled game. Confirm all games have ended before a complete recap. Evaluate predictions under their frozen settlement rules. Publish waiver research and generate the next schedule."
    },
    {
      "status": "planned",
      "audience": "league",
      "id": "2026-waivers-2026-10-28",
      "kind": "post-waiver",
      "week": 7,
      "title": "Post-waiver roster and needs review",
      "startsAt": "2026-10-28T07:45:00.000Z",
      "liveBy": "2026-10-28T08:45:00.000Z",
      "locksAt": null,
      "gameIds": [],
      "requiresWaiverCompletion": true,
      "reason": "Start 45 minutes after the confirmed 03:00 Eastern Tuesday or Wednesday processing time. Verify completed transactions and refresh rosters. A configured clear time alone does not prove processing completed."
    }
  ],
  "activatedAt": "2026-10-11T17:19:41.956Z"
}
