Game Status Workflow
Every NFL game travels through a lifecycle of statuses, and the game status field is the signal that tells your integration which feed to read and how often. Status appears in every schedule feed and every game feed, so you can branch on it wherever you already are.
A game's initial status and schedule information come from the Season Schedule, Current Season Schedule, or Current Week Schedule feeds. The Season Schedule below is shortened to one Week 1 game, showing where status rides on each game entry:
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" charset="UTF-8" href="/xslt/football/schedule-v7.0.xsl"?>
<!-- Generation started @ 2026-09-01 09:13:49 +0000 -->
<season xmlns="http://feed.elasticstats.com/schema/football/schedule-v7.0.xsd" id="c0655d00-17f9-11f1-92c4-398db1c54270" year="2026" type="REG" name="REG">
<week id="869b9d8d-8fcf-47b4-b567-f69d0baa1615" sequence="1" title="1">
<game id="2bf1ca8d-11d6-4c00-b2e4-28971764e444" status="scheduled" scheduled="2026-09-10T00:20:00+00:00" entry_mode="LDE" sr_id="sr:match:71515752" game_type="regular" conference_game="false">
<!-- ... omitted for brevity -->
</game>
<!-- ... omitted for brevity -->
</week>
<!-- ... omitted for brevity -->
</season>
<!-- Generation ended @ 2026-09-01 09:13:49 +0000 -->{
"id": "c0655d00-17f9-11f1-92c4-398db1c54270",
"year": 2026,
"type": "REG",
"name": "REG",
"weeks": [
{
"id": "869b9d8d-8fcf-47b4-b567-f69d0baa1615",
"sequence": 1,
"title": "1",
"games": [
{
"id": "2bf1ca8d-11d6-4c00-b2e4-28971764e444",
"status": "scheduled",
"scheduled": "2026-09-10T00:20:00+00:00",
"entry_mode": "LDE",
"sr_id": "sr:match:71515752",
"game_type": "regular",
"conference_game": false
}
]
}
]
}Coverage
Every NFL game is covered at the highest level, full coverage, so the type of game never needs to factor into your data retrieval logic. Coverage tiers never factor into the workflow on this page; NFL Fundamentals covers the coverage model.
Game Status Definitions
Below are the valid game statuses you can expect to see in the NFL API. Reference these definitions for precise detail on what each game state signifies.
scheduled– The game is scheduled to occur.created– Game data (rosters, officials, etc) are being pre-loaded in preparation for the game.inprogress– The game is in progress.halftime– The game is currently at halftime.complete– The game is over, but stat validation is not complete.closed– The game is over and the stats have been validated.cancelled– The game has been cancelled. No makeup game will be played as a result.postponed– The game has been postponed, to be made up at another day and time. Once the makeup game is announced, a new game and ID will be created and scheduled on the announced makeup date. You should request the Schedule feed(s) regularly to identify the re-scheduled makeup game(s).delayed– The scheduled game, or a game that was in progress, is now delayed for some reason.suspended– The game has been suspended and will be rescheduled in the future, continuing where they left off. The game ID will remain the same.flex-schedule– The game is currently scheduled to occur on a specific date and time, however, it will more than likely be moved to a different time for broadcast purposes.time-tbd– The game has been scheduled, but a time has yet to be announced.
How a Game Progresses
The cards below follow a game along each path it can take, with context around every status change. Most games run the standard path from scheduled to closed; the remaining cards cover the placeholder, reschedule, interruption, and cancellation paths that branch from it.
1. The standard path: scheduled to closed
scheduled to closedA typical NFL game moves from scheduled through created, inprogress, halftime, and complete before settling at closed.
2. Placeholder times: time-tbd and flex-schedule
time-tbd and flex-scheduleA time-tbd or flex-schedule game carries a placeholder status until its date and time are fixed. Once the game reaches scheduled it follows the standard path in step 1.
3. Reschedules: postponed
postponedA postponed game keeps its original entry, and the makeup game arrives as a new game with a new ID. Once the new game is created in scheduled status, it follows the standard path in step 1.
4. Interruptions: suspended
suspendedA game in progress can be suspended and resumed later under the same game ID. Once a suspended game moves back to inprogress it follows the standard path in step 1.
5. Called off: cancelled
cancelledA cancelled game remains in cancelled status, and no makeup game is played. Game 7c0c0abf-f566-4a1f-a482-b74a991e1663 is an example.
Game State Samples
Click the links below for sample data of Game feeds by game state.
SimulationsUse our Simulations to view each of these game states and test your integration.
Where Status Drives Behavior
- Scores in schedules: scores populate in the schedule feeds when a game reaches
complete; before that, read live scores from the game feeds.closedmarks the stats as validated. - Stat validation: at
completethe score is correct while the remaining statistics enter post-game verification, often awaiting finalization from the league, which typically takes about one hour.closedmeans all stats are validated: player and team statistics, player participation, game attendance and duration, and referees. Adjustments can still land afterclosed, so follow Monitoring Data Changes; subjective statistics are typically available by 7:00pm ET on the following Tuesday. - Player game statuses: rosters, officials, and game data pre-load at
created, when the Game Roster populates. Games move tocreatedon the final injury report release (for example, Sunday for a Monday game); inactive players are entered 90 minutes before each game, and player participation lands one hour after the game completes. - Reschedules:
postponedproduces a makeup game under a new ID, and the postponed and rescheduled game IDs are not linked within the API, so request the schedule feeds regularly to identify makeup games;suspendedresumes under the same ID;cancelledis terminal with no makeup game. - Kickoff timing:
time-tbdandflex-schedulegames firm up intoscheduledonce a date and time are announced; keep re-pulling schedules to catch the change.inprogressis set once the coin toss completes, typically just before kickoff, and the game feeds can reachinprogressbefore the schedule feeds, whose status updates on a timer, so poll the game feeds for realtime updates.
Weekly Data Entry
This section provides important NFL data update timings for schedules, statistics, rankings, depth charts, and more.
See below for a daily breakdown of data updates for the NFL API.
Sunday
- Pregame transactions (Before Kickoff)
- Inactive players entered (90 minutes prior to each game)
- Player participation (1 hour after completion of the game)
- Games stats validated and moved to
closedstatus (1 hour after completion of the game) - Depth charts for Monday night game (1am ET)
- Update rankings (1am ET)
- Seasonal stats validation (all day)
- Transactions (All Day)*
Monday
- Inactive players entered (90 minutes prior to each game)
- Player participation (1 hour after completion of the game)
- Games stats validated and moved to
closedstatus (1 hour after completion of the game) - Injury updates for Thursday night game (11pm ET)
- Update rankings (1am ET)
- TV broadcast info updated for upcoming games (End of Day)
- Seasonal stats validation (all day)
- Transactions (All Day)*
Tuesday
- Injury updates for Thursday night game (11pm ET)
- Seasonal stats validation (all day)
- Transactions (All Day)*
Wednesday
- Injury report for Thursday night game (9pm ET)
- Thursday night game moved to
createdstatus (9pm ET) - Injury updates for Sunday games (11pm ET)
- Weekly stats changes (Evening)
- Depth charts for Thursday night game (1am ET)
- Seasonal stats validation (all day)
- Transactions (All Day)*
Thursday
- Inactive players entered (90 minutes prior to each game)
- Player participation (1 hour after completion of the game)
- Games stats validated and moved to
closedstatus (1 hour after completion of the game) - Injury updates for Sunday and Monday games (11pm ET)
- Update rankings (1am ET)
- Seasonal stat validation (All Day)
- Transactions (All Day)*
Friday
- Injury report for Sunday games (9pm ET)
- Sunday games moved to
createdstatus (9pm ET) - Injury updates for Monday night game (11pm ET)
- Depth charts for Sunday games (1am ET)
- Seasonal stat validation (All Day)
- Transactions (All Day)*
Saturday
- Injury report for Monday night game (9pm ET)
- Monday night game moved to
createdstatus (9pm ET) - Seasonal stats validation (all day)
- Transactions (All Day)*
* We monitor and update transactions throughout the day, using a combination of official and reliable sources.
Off Season
- Major trades and free agent signings are handled when deemed official by the league
- After the draft weekend, all team rosters will be updated by the end of the week
Important Dates
- The NFL schedule typically becomes available in May. It will be present in the API within two hours after it is announced.
Best Practices
- Branch on
status, not on the presence of scores: ascheduledentry with no scores is normal, and scores arriving in the schedule feeds is a side effect ofcomplete - Only
closedandcancelledare terminal; every other status can still change, and a game can step back fromcompletetoinprogresswhile its post-game review is under way. Statistics can still adjust afterclosed, so keep Monitoring Data Changes in the loop - During a game window, drive polling from the Tracking Live Games workflow, and wind down once the game is
closed - Request the schedule feeds regularly: makeup games arrive under new IDs, and
time-tbdandflex-schedulegames resolve toscheduledonce their times are fixed - Exercise every branch of your status logic against the Game State Samples and Simulations above before the season starts
- Per-status polling cadences come from Update Frequencies
Updated 2 days ago
What’s Next
For a practical application of game lifecycle knowledge, explore the live game updates integration scenarios.
