A sports season is made up of stories, stories that deal with victory and stories that deal with loss. What were you doing when Kansas beat Texas, snapping a 78 year long winning streak? While these stories are easy to see for loyal fans, they can also be exposed through data. We can identify the exact moment when an injury hurt your star quarterback, ruining the season. We know which teams had a fluke game that ruined their playoff chances.

These small multiples were created to sift through data from the 2016 season and tell mini-stories about the offensive seasons of all 128 FBS teams and how they bloomed. You can sort by various metrics, scroll and compare teams by their passing and rushing yardage (hover to view details), and click on each game to visit the associated ESPN page for further research.

One story of the season was Miami (OH) becoming the first team to become bowl-eligible after starting 0-6. Their success can be attributed mainly to the activation of Quarterback Gus Ragland, who took over after previous QBs Billy Bahl and Noah Wezensky were injured and struggled, respectively. Unfortunately Miami (OH) narrowly fell to Mississippi State in the St. Petersburg Bowl on a blocked field goal attempt.


Data was sourced from sports-reference and ESPN, processed using Python and Pandas, and visualized using d3.js. This interactive was built at H2O.ai, a machine-learning startup transforming businesses. You can reach the author @JayMahabal or by emailing jay@h2o.ai.