cfbfastR (@cfbfastr) header
cfbfastR (@cfbfastr) profile picture

Successor of @cfbscrapR. Member of the @sportsdataverse. Community-driven. Live stats website (@gameonpaper): https://teapaw.org/t.co/TkVMks0cSZ

GitHub, The Internet
Joined June 2020
Photo by cfbfastR (@cfbfastr)Photo by cfbfastR (@cfbfastr)Photo by cfbfastR (@cfbfastr)Photo by cfbfastR (@cfbfastr)
Four calls end to end: load a schedule with @cfbfastr, map it, compute standings, seed the field. Three articles and the full reference: 📖 cfbseedR.sportsdataverse.org Thanks to Lee Sharpe and Sebastian Carl — the design is theirs, and @nflseedR is worth your time.
1
5
2
11
3,374
Or just run the season. 138 FBS teams, 761 games, 51 of them played. cfb_simulations() splits the run into chunks and dispatches them through future, so a parallel plan spreads it across your cores. summary() returns a gt table grouped by conference.
1
3
10
769
Which lets you ask what a rule change is actually worth. Take 10,000 simulated 2026 seasons and seed the same ones twice, once under each policy. 10 teams helped, 12 hurt. Miami gains 14 points of playoff probability purely from the ACC's guaranteed bid.
2
2
5
511
It's adapted from nflseedR (@nflseedR) by Lee Sharpe (@LeeSharpeNFL) and Sebastian Carl (@mrcaseb). Same architecture — standings, then conference ranks, then seeds; a week-by-week simulation with a pluggable results generator — rebuilt in college football's semantics.
1
4
12
1,168
Big time addition to the CFB family of R packages in the @sportsdataverse!
🏈 cfbseedR is on CRAN. An R package to simulate college football seasons: standings, conference champions, and a seeded 12-team Playoff field — using each conference's own published tiebreaker procedure. Pairs with @cfbfastr. install.packages("cfbseedR") Built by @SaiemGilani cfbseedr.sportsdataverse.org…
2
3
857
🏈 cfbfastR 3.0.0 is on CRAN — the biggest release in the package's history, and it lands for Week 1. • ESPN college football layer: 8 → 73 wrappers (players, teams, games, pbp, FPI, QBR, recruiting, futures) a Fox Sports layer (fox_cfb_*) • Rebuilt modular play-by-play EPA/WPA engine — cfbd_pbp_data_v2() and espn_cfb_pbp_v2() run one shared engine w/ penalty resolution, player ids, and output tiers • 48 new full-season data loaders covering every published release dataset: 27 ESPN datasets (2004 ), ratings/talent/recruiting/crosswalks, and 10 stats.ncaa.org datasets — including FCS play-by-play • 15 new CFBD endpoints (playoffs, coaches, ratings, player success), situational params everywhere, betting ATS records, per-game havoc • httr2 HTTP layer, native pipe throughout, session caching for ESPN catalogs Nothing deprecated — your old code keeps working, with three pbp sources to choose from (classic 2014 , ESPN 2004 , NCAA incl. FCS 2013 ). install.packages("cfbfastR") 📖 cfbfastR.sportsdataverse.org Every one of those loaders has a twin in sportsdataverse-py reading the same published files — the R and Python loader surfaces were built to mirror each other. One caveat on the EPA/WPA models if you build play-by-play yourself this weekend — next post. 👇
10
24
4
196
22,344
🏈 A good-news/bad-news note for anyone computing CFB EPA/WPA themselves this weekend. Worth two minutes before today's kickoffs. The good news. On GitHub, cfbfastR's expected points and win probability models now load from the shared cfb_model_artifacts bundle — literally the same artifact sportsdataverse-py scores with. R and Python finally return the same EPA for the same play, and one retrain updates both. That branch also adds: • cp / cpoe — completion probability and completion % over expected • vegas_wp — spread-aware win probability alongside the naive wp • xpass / pass_oe — expected pass rate and pass rate over expected • fourth-down and two-point decision surfaces, and create_qbr() • a fix for the failure that made epa_wpa = TRUE unusable for 2006–2013 The bad news, and it's mine to own. I rushed the CRAN submission and the updated models and parser work didn't make it in. So the CRAN build still computes the previous model generation. If you compile play-by-play yourself right now with the CRAN functions, your EPA/WPA won't match the numbers the loaders and sportsdataverse-py are producing. What to do the next couple weekends: ✅ Use the loaders. load_cfb_pbp() and load_espn_cfb_pbp() read published data that already carries (or will soon in load_cfb_pbp()'s case) the updated models, columns and outputs. This is the short path and it's the one I'd take. ⚠️ Hold off on compiling play-by-play from scratch until the next CRAN release — unless you specifically want the older model. 🛠️ Or take everything now: remotes::install_github("sportsdataverse/cfbfastR") The GitHub build is now numbered 3.0.0.9000, so packageVersion("cfbfastR") tells you which one you're on — until today both reported 3.0.0 while returning different EPA/WPA. All of it goes into the next CRAN submission. Sorry for the split — and enjoy Week 1. 🏈 📖 cfbfastR.sportsdataverse.org… And if you'd rather just watch the numbers than compute them — next post. 👇
3
5
1
27
2,442
Full game stats for Florida State vs Alabama can be found at Game On Paper (@gameonpaper): gameonpaper.com/cfb/game/401…
Final Florida State 31 Alabama 17
2
3
10
3,057
It's back! The annual Ohio State Sports Analytics Conference will be March 28 - March 29. Join us for two days of insights from 14 expert speakers, SSI's student research fair and an action-packed Hackathon. Interested? Visit this link: go.osu.edu/osu_sportsanalyti…
11
3
35
34,192
🚀 New Article Alert: Bayesian NFL Win Probability Model in Python 🏈📊 Curious about predicting NFL win probabilities using Bayesian modeling in Python? Our latest Substack article by Matt Rosinski dives into implementing a Bayesian Hierarchical Model with PyMC! 🔍 What You'll Learn: * How to transition from Stan to PyMC * Pros & cons of scaling continuous variables * How to visualize Bayesian models with ArviZ * Predicting NFL win probabilities across different scenarios * Why PyMC? * Seamless integration with Python libraries * Advanced sampling algorithms * Accessible and flexible for data scientists Don’t miss out on this detailed, step-by-step guide (ALL code is provided) to building and interpreting win probability models with PyMC! 🔥 📖 Read (and subscribe) the full article now: athlyticz.substack.com/p/imp… #DataScience #BayesianModeling #Python #NFL #PyMC #sports #data
4
8
2,212
This is no scam, we are the folks behind Game On Paper! We're finally getting this account off the ground just in time for Week 1. More to come!
5
15
7
59
45,954
Georgia Tech had a 99.1% postgame win expectancy according to @cfbfastr More dominant than the final score reflects, which shouldn't be surprising after watching the game
2
15
2,003
#NFLDraft changing in #Miami as ‘FIVE’ Hurricanes are projected in the first-round next year. Are Mario Cristobal and the #Canes coaching staff improving player development and overall talent in Coral Gables? For more, visit 🔗: lifwnetwork.com/insights/spo… 💻 @LifeWalletSport
3
37
5,357
One of my favorite graphs. The 2024 NFL Draft first round as high school recruits. The lone unranked player was Jared Verse, who went from unranked at Albany to a first round talent at FSU #NFLDraft #CFB
2
14
29
5,106
Last graph before the festivities begin, this is every first round QB since 2016 and their consensus big board ranking vs. actual draft pick ranking. Ordered from biggest value (Lamar Jackson) to biggest reach (Daniel Jones) #NFLDraft #CFB
1
5
1
10
6,123
If you're interested in developing your own models but don't know where to start, the first thing you need to know is where to find data. That can come from any number of sources, like the sports-reference sites, or official league pages. If you can download a .csv file, you can start to fiddle with data. Or it can come through extensive, robust packages you can access using Python or, even better, R. (@sportsdataverse maintains a great list of what's available.) We've got an ongoing Intro to Data Science series to help get you started and learning the basics of how to acquire and analyze data, both in Excel or in R.
2
10
3
106
49,122
FYI, the original Ko-Fi link in the episode notes has an issue, we've updated it, and if your episode already downloaded, the link is ko-fi.com/sportsdataverse
2
3
1,504