Skip to contents

nflseedR (development version)

  • Added new function nfl_regular_season() which computes regular season matchups based on previous season standings and NFL regular season rules. (#64)
  • Changed home field elo point adjustment in nflseedR_compute_results() from 20 points to 45 points, which reflects roughly 1.8 actual points in home field advantage. (#65)
  • nfl_simulations(), nfl_standings(), and nflseedR_compute_results() are significantly faster thanks to efficiency optimization. (#66)
  • nfl_simulations() gains the argument return_games. Set it to FALSE to drop the tables games and game_summary from the output and save a lot of memory if you only need standings.
  • nfl_simulations() starts faster and sends much less data to parallel workers, so small simulations no longer spend most of their time preparing chunks and parallel plans scale better. It also checks team abbreviations and playoff_seeds before it starts simulating.
  • nfl_standings() computes standings with a new C++ engine. It is 18 to 46 times faster than before and no longer aborts with “Entered infinite loop in draft tiebreaking procedure” when many teams are tied for draft picks. Ties decided by coin toss use R’s random number generator differently, so results with a given set.seed() differ from previous versions.
  • nfl_standings() follows the NFL tiebreaking rules more closely: only one team advances per tiebreaking step in division ties, the remaining teams restart at the first step; conference and draft ties use common games only if the tied teams have at least four common opponents; draft ties go on to combined points ranking and net points after strength of victory and respect tiebreaker_depth; two separately tied groups in one division are no longer mixed in the combined points ranking step.
  • nfl_standings() ranks teams with the same win percentage by net wins (wins minus losses) while teams have played a different number of games, like the official NFL standings during the season (e.g. 2-0 ahead of 1-0, 0-0 in division games ahead of 0-1). After the final regular season week, only win percentages count.
  • nfl_standings() always returns the *_tie_broken_by columns of the requested ranks and no longer returns a stray tied_for column with tiebreaker_depth = "RANDOM".
  • nfl_standings() ignores playoff_seeds if ranks = "DRAFT" because draft ranks need all conference ranks.
  • nfl_standings() returns NA division, conference and draft ranks for a season until every team has played a game.
  • nfl_standings() errors on team abbreviations other than the 32 current ones (e.g. "STL", "SD", "OAK", "LAR"). Use nflreadr::clean_team_abbrs() to convert old abbreviations.
  • nfl_standings() errors if tiebreaker_depth = "POINTS" but games has no scores.

nflseedR 2.0.2

CRAN release: 2025-11-16

  • Changed css styling of images in package documentation by CRAN request. (#61)

nflseedR 2.0.1

CRAN release: 2025-08-18

nflseedR 2.0.0

CRAN release: 2025-03-24

This is a major release that introduces a new generation of high efficient standings and simulation code

New Features

Bug Fixes and Minor Improvements

  • nfl_standings() now supports tiebreaker_depth = "POINTS" which breaks ties using combined point ranks and point differentials. This means that all tiebreakers except net touchdowns are now implemented. (#47)
  • Fixed a bug in nfl_standings() where the tie breaking procedure didn’t restart correctly after some teams were eliminated while some others remained tied. (#47)
  • The summary method summary.nflseedR_simulation() explicitly sets the columns width of the logo column because those columns are hidden in some unclear scenarios.
  • The summary method summary.nflseedR_simulation() now requires gt version v0.9.0 or higher to avoid warnings about deprecated arguments.
  • Fixed error in simulate_nfl() where it crashes because the “fake schedule” isn’t a tibble. (#43)
  • The function load_sharpe_games has been deprecated. It was replaced a fairly long time ago by nflreadr::load_schedules(). (#47)
  • nflseedR now requires R 4.1 to allow the package to use R’s native pipe |> operator. This follows the Tidyverse R version support rules. (#48)

nflseedR 1.2.0

CRAN release: 2023-01-05

  • simulate_nfl() gained the new argument sim_include to allow more access to what is actually being simulated. This makes it possible skip playoff simulation or the (possibly heavy) computation of draft order. (#34)
  • The summary method summary.nflseedR_simulation() now hides columns where all values are NA. This is useful if simulate_nfl() skips the postseason or draft order. The method also re-formats the number of simulations in the subtitle, e.g. from “10000” to “10k” (this requires scales >= 1.2.0, but it is a good idea to update scales anyways). (#35)
  • simulate_nfl() now uses data.table to combine simulation rounds data. This is a significant performance improvement. The returned list "sim_params" now includes the package version of nflseedR (for debugging) and the current system time when the simulation was finished. (#36)
  • Lots of internal improvements to reduce package dependencies and messaging. (#36)
  • The summary method summary.nflseedR_simulation() now uses fmt_pct_special() to format probability strings to avoid the impression of overconfidence by rounding to integer percentages. (#37)

nflseedR 1.1.0

CRAN release: 2022-07-07

  • Added the data frame game_summary to the output of simulate_nfl() which aggregates matchups across all simulated seasons (#24)
  • Updated the description of some variables in load_sharpe_games() (#24)
  • The output of simulate_nfl() is now of class nflseedR_simulation which allows the implementation of a summary() method that computes a gt() table of the simulation summary data frame. (#26)
  • The standings data frame calculated by compute_division_ranks() now outputs losses and ties as well. (#27)

nflseedR 1.0.2

CRAN release: 2021-04-10

nflseedR 1.0.1

CRAN release: 2021-03-31

  • Added support for a fake schedule for simulating the upcoming season before the NFL has released the official schedule.

  • updated the documentation of the function load_sharpe_games() with the new columns away_qb_id, home_qb_id, away_qb_name and home_qb_name.

nflseedR 1.0.0

  • Initial release.