Active Roster Period Rules
2026-05-11
Active Roster Period Rules
A player only earns points for your team on dates they were on your active roster. Every active/reserve move starts or ends an ActiveRosterPeriod — the scoring engine matches each NHL game against those periods to decide whether the stats count.
This article is a reference for how active-roster periods work — useful when you are trying to figure out why a specific game did or did not count for your team.
Active vs reserve
Every player linked to your team carries a TeamPlayer.status of either active or reserve.
- Active — the player is part of your active roster. Games played on active days earn points for your team.
- Reserve — the player is on your bench. Games played on reserve days do not earn points for your team, even though they still count toward the player's NHL stats.
You move players between statuses from the Roster page. Each move is logged as a RosterChange and updates the corresponding ActiveRosterPeriod record.
What an ActiveRosterPeriod is
An ActiveRosterPeriod is a record with a playerId, a teamId, a startDate, and an endDate. It represents a continuous window during which a player was active for your team.
- When you move a player from reserve to active, a new period opens with
startDate = todayandendDate = null(meaning "still active"). - When you move a player from active to reserve, the current period closes by setting
endDate = today. - If the same player goes back to active later, a new period opens with a fresh
startDate— a player can have multiple periods on the same team across a season.
How the scoring engine uses periods
When the points engine evaluates a player, it walks every NHL game and asks one question: does this game's date fall inside any of this player's active-roster periods for this team?
- Yes — every stat from that game is multiplied by the per-stat point values from your league's scoring config, and the result is added to your team total.
- No — the game is skipped. The stats still exist on the player's record, but they do not contribute to your team.
This check is inclusive on both ends: a game played on the same date as your startDate counts, and so does a game played on the same date as your endDate.
Points already earned stay with your team
Moving a player to reserve does not remove the points they already earned for you. Those points are baked into your settled totals and stay locked in. Reserve only affects new games from that day forward.
Trade-day boundaries
When a player is traded between teams, the existing ActiveRosterPeriod on the sending team closes on the trade date, and a new period opens on the receiving team on the same date. Points earned before the trade stay with the sending team; points earned after stay with the receiving team. There is no double-counting.
Best Ball leagues
If your league runs Best Ball mode, active-roster periods are not used — every game a player plays counts toward the team total, and the top-X players per position score. See your league settings to find out which mode applies.
If a game looks like it should have counted but did not, check the player's roster history on the Roster Changes page. The most common reason is that the player was on reserve when the game was played.