SportsDataIO Help Center Game Lifecycle: Opening, In Progress, and Closing
Note that where the word "game" is used, it is also applicable to other names like "fight" for MMA, "race" for NASCAR, "match" for tennis, and so on. Any exceptions are dealt with separately.
Game Opening
We open games the moment they begin. The second a game begins, we set our 'HasStarted' flag to True. Once this is set, it is not un-set: that is, when the game ends, because it did start, the HasStarted flag will never bet set to False.
Game In-Progress
Once a game has started, it is in progress. The IsInProgress flag will be set to True and will remain true as long as the game is taking place.
For the duration of the game, IsInProgress will be set to True. This remains True even during timeouts, half time, etc. This also remains true in the case of a Suspension, such as a rain delay - the game is still alive and remains In-Progress.
Only if a game is Canceled, Postponed, or Forfeited, would we mark a game that has started but not finished as no longer In-Progress.
Game Finishing
The moment a game ends, the In-Progress flag is unchecked and instead the IsOver flag is checked to true.
The IsOver flag almost always corresponds to the natural end of a game - the end of the fourth quarter (or overtime) in football, the final whistle in soccer, the win of the last required set in tennis, the last required innings in baseball and so on.
In the case in which a game faces an unusual early end, such as a severe injury or freak weather occurrence, the IsOver flag will not be used. Instead the Canceled flag should be consulted. This, along with the text-based Status field, will tell you how the event concluded even if the game did not formally finish.
Game 'Closed' Status
A very important distinction is how we Close games. Closure and Finishing are not the same thing. A game will Finish the moment the action finishes. However, we then run a final check of data integrity to help improve the accuracy of settlement and resulting, particularly for controversial or complex plays. This normally takes a few minutes after the game is Finished.
Note that games that do not Finish cannot, by definition, be Closed. For example, an NFL game that is Canceled during the second quarter will never be Closed for that reason.
It is highly recommended to wait for IsClosed to be set to True before treating the stats and events of the game as authoritative.
Important Note: NFL Active/Played Exceptions
There is one very important exception to the Closed status, and that is NFL snap counts.
Snap counts are updated the morning after the game in question to ensure accuracy and accordance with official League statistics.
In certain cases, a player's 'Played' and 'Active' status may change when the snap counts are created. For example, if a player took part in just a few snaps and recorded absolutely no statistics, we would not confirm that he had Played until the snap counts are loaded.
For more detailed information on update frequencies and timings please see the dedicated article here.
Important Note: Stat Corrections
Leagues or stat providers may correct a stat in the days after a game. For example, a particularly hard-to-judge rebound may be attributed to a different player, or a tackle may be assigned jointly instead of singly.
Each league has its own timings, but they are generally on a 5-7 day deadline after the game ends for a stat to be officially corrected.
For this reason, even after IsClosed is set to true, you may choose to call finished games on an irregular basis - such as every six hours - for up to 7 days after a game to ensure you catch any late stat correction.
While these are rare, they do occur multiple times a season in most leagues.