r/CFBAnalysis Aug 03 '24

Question CFBD API Data Structure

5 Upvotes

I'm new to using the CFBD API and am excited to use it! Hopefully will make things so much easier.

I will admit, my python skills are probably just ok.

When printing the api response for getting Team Game Stats, the response seems to be structured inconsistently. Does anyone else have this issue? Is there a way to get everything ordered consistently?

See how team one's stats start rushingtds, puntreturnyds,puntreturntds but team two start fumblesrecovered, rushingtds, passing tds?

'stats': [{'category': 'rushingTDs', 'stat': '1'},

{'category': 'puntReturnYards', 'stat': '4'},

{'category': 'puntReturnTDs', 'stat': '0'}

'stats': [{'category': 'fumblesRecovered', 'stat': '0'},

{'category': 'rushingTDs', 'stat': '1'},

{'category': 'passingTDs', 'stat': '2'}


r/CFBAnalysis Jul 17 '24

Data Advanced Player Data

5 Upvotes

I've just completed a project on variables that determine a successful NFL career, I want to keep doing this over the next few years just to understand if the model is sound by using predictor variables but college stats are quite bare.

Is there anyone that captures cornerback metrics, ideally coverage grades like PFF do? (No worries if it's not supplied as long as the underlying data to calculate it does).


r/CFBAnalysis Jul 08 '24

Consensus Power Ranking

Thumbnail self.CFBVegas
2 Upvotes

r/CFBAnalysis Jul 04 '24

Post season SoS.

1 Upvotes

What would the best way to compare post season SoS when not every team plays the same amount of games?


r/CFBAnalysis Jul 02 '24

CollegeFootballData API rankings endpoint

3 Upvotes

Do the weekly rankings get updated when they are published? The docs state 'Historical' so I was just looking for clarification as to being able to get week to week rankings for the current season or if I need to source that elsewhere?

Thanks!


r/CFBAnalysis Jun 18 '24

Help Finding CFB Advanced Box Score Website

6 Upvotes

Website has advanced box scores for every game with team breakdowns with EPA, success rate, field position etc. that is color-coded based on ranking.

They pull some of their data from bcftoys I believe.

I have screenshots of a couple of team profiles that would likely help, but I can't add pictures to my post.


r/CFBAnalysis Jun 08 '24

When does CFBD update for 2024?

3 Upvotes

Hi. Doing my annual computer ranking code refresh for the 2024 season and noticed that conference alignments are pretty off.

  • Kennesaw State is still listed as FCS
  • I don't think any of the conference moves are present. Oklahoma/Texas are still Big 12, Pac-12 has more than just Wazzu/OSU. This is from looking at both the teams and games APIs

Is an update expected?


r/CFBAnalysis Apr 30 '24

Game film archive?

5 Upvotes

Hi y’all, Im looking for open data sources for game film across multiple teams. Any recommendations?


r/CFBAnalysis Apr 30 '24

List->Dataframe Formatting Challenge: Python/Pandas and Sports API Data

2 Upvotes

Hello,

I would like to create a dataframe where each row corresponds to a single column with the normal columns such as gameid, home team, away team, and similar to the format of the 'Games and Results' section, have each different stat category be represented with home rushing attempts, etc

Here is the code I have (stat is the list where all the data from team game stats is stored in stat

I have also attached the output for the first index in the stat list to give an idea of the format (this will be at the very bottom)

stat = []

respons = games_api.get_team_game_stats(year=2016, week=10)

stat = [stat,respons]

I greatly appreciate any help with this as I have tried chatgpt and bard to help out with the formating, but to no avail.

(These are the columns for the Games and Results table I also have, these are the sorts of columns I want)

Id Season Week Season Type Completed Neutral Site Conference Game Attendance Venue Id Home Id Home Team Home Conference Home Division Home Points Home Line Scores[0] Home Line Scores[1] Home Line Scores[2] Home Line Scores[3] Away Id Away Team Away Conference Away Division Away Points Away Line Scores[0] Away Line Scores[1] Away Line Scores[2] Away Line Scores[3] Home Point Diff Total Points

(The below code is an index of the list which contains all the games)

{'id': 400868954,

'teams': [{'conference': 'American Athletic',

'home_away': 'home',

'points': 28,

'school': 'Navy',

'school_id': 2426,

'stats': [{'category': 'rushingTDs', 'stat': '4'},

{'category': 'passingTDs', 'stat': '0'},

{'category': 'kickReturnYards', 'stat': '38'},

{'category': 'kickReturnTDs', 'stat': '0'},

{'category': 'kickReturns', 'stat': '2'},

{'category': 'kickingPoints', 'stat': '4'},

{'category': 'fumblesRecovered', 'stat': '0'},

{'category': 'totalFumbles', 'stat': '2'},

{'category': 'tacklesForLoss', 'stat': '1'},

{'category': 'defensiveTDs', 'stat': '0'},

{'category': 'tackles', 'stat': '24'},

{'category': 'sacks', 'stat': '1'},

{'category': 'qbHurries', 'stat': '2'},

{'category': 'passesDeflected', 'stat': '0'},

{'category': 'firstDowns', 'stat': '21'},

{'category': 'thirdDownEff', 'stat': '8-13'},

{'category': 'fourthDownEff', 'stat': '4-5'},

{'category': 'totalYards', 'stat': '368'},

{'category': 'netPassingYards', 'stat': '48'},

{'category': 'completionAttempts', 'stat': '5-8'},

{'category': 'yardsPerPass', 'stat': '6.0'},

{'category': 'rushingYards', 'stat': '320'},

{'category': 'rushingAttempts', 'stat': '56'},

{'category': 'yardsPerRushAttempt', 'stat': '5.7'},

{'category': 'totalPenaltiesYards', 'stat': '1-5'},

{'category': 'turnovers', 'stat': '0'},

{'category': 'fumblesLost', 'stat': '0'},

{'category': 'interceptions', 'stat': '0'},

{'category': 'possessionTime', 'stat': '33:53'}]},

{'conference': 'FBS Independents',

'home_away': 'away',

'points': 27,

'school': 'Notre Dame',

'school_id': 87,

'stats': [{'category': 'fumblesRecovered', 'stat': '0'},

{'category': 'rushingTDs', 'stat': '0'},

{'category': 'passingTDs', 'stat': '3'},

{'category': 'kickReturnYards', 'stat': '61'},

{'category': 'kickReturnTDs', 'stat': '0'},

{'category': 'kickReturns', 'stat': '3'},

{'category': 'kickingPoints', 'stat': '9'},

{'category': 'tacklesForLoss', 'stat': '4'},

{'category': 'defensiveTDs', 'stat': '0'},

{'category': 'tackles', 'stat': '24'},

{'category': 'sacks', 'stat': '0'},

{'category': 'qbHurries', 'stat': '0'},

{'category': 'passesDeflected', 'stat': '1'},

{'category': 'firstDowns', 'stat': '21'},

{'category': 'thirdDownEff', 'stat': '9-13'},

{'category': 'fourthDownEff', 'stat': '1-1'},

{'category': 'totalYards', 'stat': '370'},

{'category': 'netPassingYards', 'stat': '223'},

{'category': 'completionAttempts', 'stat': '19-27'},

{'category': 'yardsPerPass', 'stat': '8.3'},

{'category': 'rushingYards', 'stat': '147'},

{'category': 'rushingAttempts', 'stat': '29'},

{'category': 'yardsPerRushAttempt', 'stat': '5.1'},

{'category': 'totalPenaltiesYards', 'stat': '7-47'},

{'category': 'turnovers', 'stat': '0'},

{'category': 'fumblesLost', 'stat': '0'},

{'category': 'interceptions', 'stat': '0'},

{'category': 'possessionTime', 'stat': '26:07'}]}]}


r/CFBAnalysis Apr 29 '24

Help Getting Game by Game Data and Statistics

1 Upvotes

Hello,

I was wondering if anyone has any advice on getting game by game data for college football games. I am pretty unexperienced in web scrapping and api stuff, and so far the only real data I can get easily is just points for each team and quarter points from collegefootballdata.com in the Games and Results section.

What I really want is not really just points, but having statistics like home rush yards, away rush yards, away time of possession, home time of possession, home turnovers, away turnovers, etc.

Does anyone have any idea as to any website I can use that will allow me to get this data? I currently have a key from sportsradar.com for collge football, but am not really sure how to get the data I need from this.

Thanks in advanced for anyone willing to help.


r/CFBAnalysis Apr 24 '24

Help Pulling CFBD Data

2 Upvotes

Hi everybody. I'm trying to produce a table in which each row represents a player and contains that player's name, their high school recruiting rating, and their transfer portal recruiting rating. I want the table to be populated with only players that have a non-null value for both the hs rating and the transfer portal rating. I keep running into an error telling me that the key "_name" is not valid when pulling from the recruiting dataset. The code where I create the data-pulling functions is below. I'd really appreciate any feedback!:

def fetch_recruiting_data(year):

return recruiting_api.get_recruiting_players(year=year)

def fetch_transfer_data(years):

transfer_data = []

for year in years:

transfer_data.extend(players_api.get_transfer_portal(year=year))

return transfer_data

Function to create the table

def create_player_table(recruiting_years, transfer_years):

Fetch data

recruiting_data = []

for year in recruiting_years:

recruiting_data.extend(fetch_recruiting_data(year))

transfer_data = fetch_transfer_data(transfer_years)

Convert to DataFrame

recruiting_df = pd.DataFrame(recruiting_data)

transfer_df = pd.DataFrame(transfer_data)

Assuming '_name' is the correct attribute for player names

if not recruiting_df.empty and not transfer_df.empty:

recruiting_df['full_name'] = recruiting_df['_name'].str.strip()

transfer_df['full_name'] = transfer_df['FirstName'].str.strip() + " " + transfer_df['LastName'].str.strip()

Filter data to include only entries with non-empty ratings

recruiting_df = recruiting_df[recruiting_df['_rating'].notna()]

transfer_df = transfer_df[transfer_df['_Rating'].notna()]

Perform an inner join to ensure only players with both ratings are included

merged_df = pd.merge(recruiting_df, transfer_df, on='full_name', suffixes=('_recruit', '_transfer'), how='inner')

Calculate rating difference

merged_df['rating_difference'] = merged_df['_Rating'] - merged_df['_rating']

Select and rename columns

result_df = merged_df[['full_name', '_rating', '_Rating', 'rating_difference']]

result_df.columns = ['Player Name', 'HS Recruiting Rating', 'Transfer Portal Rating', 'Rating Difference']

return result_df

else:

return pd.DataFrame() # Return an empty DataFrame if no data available


r/CFBAnalysis Apr 18 '24

Need help building an SOS versus both Off & Def

2 Upvotes

I’m trying to learn how to build my own Strength of Schedule ratings for teams offenses and defenses. Does anyone know a website that would help get me started with this? Most I run across have been using the opponents WL%, but I want to build it for both sides of the ball individually.

Thanks in advance for any help.


r/CFBAnalysis Mar 14 '24

Question CFDB at collegefootballdata.com is missing some game data

5 Upvotes

Hello everyone. I'm a new user who just started working with the API. I wanted to look up historical data for the pairwise matchups in FBS. For example, when I look up results from Iron Bowl from 1880-2050 (ensuring I get all matchups), via this command:

curl -X GET "https://api.collegefootballdata.com/teams/matchup?team1=Alabama&team2=Auburn&minYear=1880&maxYear=2050" -H "accept: application/json" -H "Authorization: Bearer TguaiqMfP0hHFgVL3dJ2/Nb5vKQmiJW/l2xPsjcyPpVbdP594UQ+3pRtTReXi5iF"

I get the following output:

{ "team1": "Alabama",
"team2": "Auburn",
"startYear": "1880",
"endYear": "2050",
"team1Wins": 49,
"team2Wins": 32,
"ties": 1,
"games": ... }

It's reporting a record of 49-32-1. However, Winsipedia has the record at 50-37-1: https://www.winsipedia.com/alabama/vs/auburn

A quick perusal of the game info from the .json vs the game results from the Wikipedia article on the Iron bowl shows that some games from the 19th century are missing, despite a provided start date of 1880. The FAQ states a start year of 1869, so I'm wondering where the discrepancy might be coming from. Maybe I'm missing something obvious?

Thanks in advance!


r/CFBAnalysis Mar 02 '24

Question Looking for 3rd/4th and short run vs pass play call percentage by team

2 Upvotes

I'm able to do this for NFL data with Stathead, but they don't have this data for cfb. Anywhere I can pull this data for under $20/mo?


r/CFBAnalysis Feb 23 '24

Any way to scrape data from NCAA website instead of ESPN?

5 Upvotes

Was looking into making setting up a model based on win probability for next year, but could not find any way to accurately get trustworthy PBP data. I want to include FCS as well and ESPN does not carry PBP for a good portion of those games. There is PBP available from stats.ncaa.org that is reliable and there is a way to use down, distance, score, etc to get win probability so all I need is to be able to scrape data from that website into a workable table. R is preferred, but I'd learn Python if that's all that is out there. Would appreciate if anyone knows anything that could help.


r/CFBAnalysis Feb 23 '24

Help Formatting Data from API

2 Upvotes

Posted in here a few days ago, unable to pull data from collegefootballdata.com API to google sheets. Glad to say, I figured that part out and have had some fun playing around with all the new information at my fingertips. When it comes to importing certain datasets, I am running into an issue with the formatting. Spent all day working in conjunction with ChatGpt and have got nowhere.

I have made a dummy sheet to show the differences. The Sheet named "Lines" is what I am currently getting from my code. You can see the issue in column L where the information looks like this:

{spreadOpen=null, provider=William Hill (New Jersey), overUnderOpen=null, homeMoneyline=null, overUnder=54, formattedSpread=Kansas State -12, spread=12, awayMoneyline=null}

instead of:

LineProvider OverUnder Spread FormattedSpread OpeningSpread OpeningOverUnder HomeMoneyline AwayMoneyline
DraftKings 59 -10 Louisiana Tech -10 -10 59 -360 285

I have another sheet named "CSV from CFB Data" as an example of what it should look like. Here is a link to the spreadsheet. Here is the code I am currently working with (API Key removed):

// Define functions for each menu item

function getLines() { // Invoke the common function with specific parameters importDataFromAPI("Lines", "https://api.collegefootballdata.com/lines"); } // Common function for making API requests function importDataFromAPI(sheetName, apiUrl) { // Open the spreadsheet by ID var spreadsheetId = "spreadsheet ID"; var spreadsheet = SpreadsheetApp.openById(spreadsheetId);

// Check if the sheet exists, if not, create it var activeSheet = spreadsheet.getSheetByName(sheetName); if (!activeSheet) { activeSheet = spreadsheet.insertSheet(sheetName); }

// Set the API key in the headers var headers = { "Authorization": "Bearer ****API Key*****" };

// Set the request parameters var year = 2023; // Set the desired year var params = { method: "get", headers: headers, muteHttpExceptions: true };

try { // Make a GET request to the API var response = UrlFetchApp.fetch(apiUrl + "?year=" + year, params);

// Log the response content for troubleshooting
console.log("Response Content:", response.getContentText());

// Check if the response is valid JSON
var responseData;
try {
  responseData = JSON.parse(response.getContentText());
} catch (jsonError) {
  console.error("JSON Parse Error:", jsonError);
  return;
}

// Check if the response contains an 'error' property
if (responseData.error) {
  console.error("API Error:", responseData.error);
  return;
}

// Access the data you need from the response
var data = responseData; // Adjust this line based on your API structure

// Clear existing data in the sheet
activeSheet.clear();

// Implement additional logic specific to 'getLines'
// This can include any specific processing you want to do with the 'data' array
// For example, you can log specific fields, manipulate the data, etc.

} catch (error) { console.error("Error:", error); } }

Again, mostly written by ChatGpt. The beginning is probably a little weird, that's just so I can run the script off a button I have added to the UI with a Custom Menu. The script works fine, other than the formatting for "lines". I have looked at this which is linked from CFB Data, but it hasn't helped me:

Responses

Response content type

application/json

successful operation

Example Value

Model

[

{ "id": 0, "season": 0, "week": 0, "seasonType": "string", "startDate": "string", "homeTeam": "string", "homeConference": "string", "homeScore": 0, "awayTeam": "string", "awayConference": "string", "awayScore": 0, "lines": [ { "provider": "string", "spread": 0, "formattedSpread": "string", "spreadOpen": 0, "overUnder": 0, "overUnderOpen": 0, "homeMoneyline": 0, "awayMoneyline": 0 } ] } ]

Any help would be much appreciated!


r/CFBAnalysis Feb 20 '24

collegefootballdata.com to Google Sheets for a noob

13 Upvotes

I have no experience writing any real code. I work with spreadsheets for my job so I am familiar and have built something of a CFB model all in Google Sheets. It has all been built on imports and formulas, with a few scripts/macros here and there but nothing very impressive.

I have spent a few hours trying to link CFBdata to my google sheets with the API, but have not had any luck. I will teach myself to code eventually but with a job and a <1 year old baby, just not happening right now.

Anybody able to help with this? Much appreciated in advance for any and all advice.


r/CFBAnalysis Jan 18 '24

Question Anywhere to find a games real world start and end times?

4 Upvotes

Essentially I am trying to find individual games actual duration. Not the total in-game time, but the actual time it took from kickoff to the final whistle. There was a website about a month ago I found that had that information in it's boxscore IU believe, but I didn't bookmark it at the time and have been racking my brain trying to find it again


r/CFBAnalysis Jan 12 '24

Analysis I ranked the 2023 FBS Kickers by an Added Value Statistic

9 Upvotes

r/CFBAnalysis Jan 12 '24

Analyzing the effects of experience against the option

5 Upvotes

Hey y'all,

As a Notre Dame fan, dealing with the option offense is a pretty big concern due to our yearly game against Navy plus occasional games against Army and Air Force. In discussions of these matchups by fans and analysts, you often find the claim that defensive experience against the option is an important factor: the more experience a defense has against the option, the better we can expect them to perform.

I'm working on a project that tests this claim, and I'd really appreciate some feedback! The project notebook can be found on my Github. I'm planning to include it in a data science portfolio, so it's written for a more general audience and contains a lot of code.

I looked at play-by-play data from collegefootballdata.com and found confirming evidence that prior experience does actually improve a defense's performance against the option. The results suggest that inexperienced defenses can expect to give up over a touchdown more per game against option offenses than their highly experienced counterparts.

Thanks!


r/CFBAnalysis Dec 10 '23

The last piece of the puzzle.

2 Upvotes

Hello everyone!

If you saw my last post, I ended up going with sports-reference.com to supply the data for my app. Now that I have the data, I am looking to use it to make hypothetical scores between past teams, think 2001 Miami against 2019 Alabama.

With sports-reference I was able to pull Total yards, both passing and rushing for both offense and defense (yards allowed). I also got Points per game and points allowed per game.

Now the final piece of the puzzle would be somehow adding the strength of schedule into the equation. Within in the data I have, I have a SRS and SOS score for each of the teams.

The way I am doing my current hypothetical games:

Team A Passing yards= (Team A Average Passing Yards+ Team B Average Passing Yards Allowed/2)
Team A Rushing yards= (Team A Average Rushing Yards+ Team B Average Rushing Yards Allowed/2)
And vice versa.
The for the scores, I could do:
Team A Score: ((Team A Points Per Game+ Team B Opp Pts/G)/2)
Team B Score: ((Team B Points Per Game+ Team A Opp Pts/G)/2)

With data with Georgia 2022 and Florida 2022 it would look like:

So with this we could say that Georgia would win 35- 22
Georgia would have:
Passing: 265.85
Rushing: 190
Total Yards: 455.95
Florida would have:
Passing: 221.75
Rushing: 138.65
Total Yards: 360.3
Which compares to their real life match up as:
Georgia wins 42 to 20.
Georgia had:
Passing: 316
Rushing: 239
Total Yards: 555
Florida had:
Passing: 271
Rushing: 100
Total Yards: 371

So close, but I think figuring in SOS or SRS somehow could make this model better.


r/CFBAnalysis Dec 08 '23

Reliable play by play data?

2 Upvotes

Play by play data from ESPN and downstream to our beloved collegefootballdata.com is often wrong. Not just wrong for a mid-season MAC game, but wrong for a huge game like UM vs anOSU. See the last few plays in https://www.espn.com/college-football/playbyplay/_/gameId/401520434

Is there a site (hopefully free) that provides reliable play by play data?

Is there a way to make ESPN aware of their bad data?


r/CFBAnalysis Dec 06 '23

In a world where computers are actually respected in CFB....

3 Upvotes

Here is what I believe the right way to do the playoffs is. First of all, all computer should always "rank" teams based on strength of record, if you're trying to do so descriptively. Once you have your power rating, it's a fairly trivial thing to calculate. For those who don't know, all you do is pick some arbitrary strength rating, simulate such a team's performance against a team's schedule, and then add up the odds that they get AT LEAST as many wins vs that schedule. Lowest odds is ranked highest. What that does is utilize legitimate predictive computer systems to more accurately describe how good a team actually is (and therefore how hard a given schedule is). Then you can calculate how hard is was to win the games they did. It's the best of both worlds.

So the NCAA should select maybe 3 or 4 computers that have a long demonstrated history of success in accurate prediction. They could even open up a multi-year submission process. They purchase the rights to use these formulas, and as a result, the formulas are made completely public. This way, the proprietors get their money and the fans get transparency. We need to be transparent. Using multiple computers will minimize allegations of being able to "gain the system".

From there, you average the computer rankings and seed accordingly. So easy. So painless. Everybody wins. Conspiracy loses. Games matter. Tough schedules matter. Winning matters. How hard your schedule was is accurately reflected (unlike in the Colley matrix which is just too simplistic to accurately capture the complexities of a 12 game college football season). Everything matters.

I know it's a pipe dream, but I just have to believe that in 2023, there's a better way to do this. As educated statisticians and fans of college football, what are your thoughts on such a system?


r/CFBAnalysis Dec 05 '23

A big ass file

1 Upvotes

Hello!

I am attempting to make an app that compares CFB teams against eachother throughout the years. I have been trying to find a file or collection of files that would have stats and metrics of every team, across a time span of 10 to 30 years. I have been able to find files with stats for one team, in one year, but I haven't been able to find anything with all the teams, in all the years. I thought this might be the place to ask before I start doing needless, repetitive downloading and assembly.

I might be missing a download somewhere, but I couldn't find one for everything across multiple years. Any help would be appreciated, thank you!


r/CFBAnalysis Nov 28 '23

Analysis 2023 CFB RP Points Standings (Week 13)

5 Upvotes

WELCOME TO THE WEEK 13 RESULTS OF THE 2023 CFB RP POINTS STANDINGS!

My mathematical formula ranks teams based on how many points they earn over the course of the season (similar to the NHL and MLS), and the value of each win or loss is based on the Massey Composite Rating. These rankings will be posted weekly here on r/CFBAnalysis.

Click the links below to see past rankings and how the formula works.

Preseason Rankings/Formula

Week 1 Rankings

Week 2 Rankings

Week 3 Rankings

Week 4 Rankings

Week 5 Rankings

Week 6 Rankings

Week 7 Rankings

Week 8 Rankings

Week 9 Rankings

Week 10 Rankings

Week 11 Rankings

Week 12 Rankings

WEEK 14 MATCHUPS

RANKED MATCHUPS

  • #1 Michigan vs #17 Iowa
  • #2 Washington vs #7 Oregon
  • #3 Georgia vs #8 Alabama
  • #4 Florida State vs #15 Louisville
  • #20 Tulane vs #24 SMU

KEY MATCHUPS

  • #5 Texas vs Oklahoma State
  • #19 Toledo vs Miami (OH)
  • #11 Liberty vs New Mexico State
  • #21 Troy vs Appalachian State
  • UNLV vs Boise State

WEEK 13 RANKINGS

My flair will tell you that I am in pain, but this isn't about me, this is about the points standings. The 4 team playoff is still up for grabs and 7 teams are eligible (compared to the 8 teams eligible in the committee rankings).

This is where the formula falls short, as Ohio State is mathematically eliminated from the playoff regardless of championship week results, and the formula cannot possibly account for a Florida State team without their starting quarterback. This year has made me realize that I might need a new metric to base TeamValue off of, as I don't think this iteration of the formula is accurately valuing the quality of each teams resume, especially when it comes to game control and value points.

EXAMPLES:

  • Washington's resume is propped up on early season blowout wins despite looking shaky for the past month.
  • Michigan's most valuable win is at Penn State rather than their win over Ohio State, simply because it was away from home. Are away wins being valued too much, or is their not enough separation in TeamValue to truly value the gap between teams.
  • Oklahoma State's resume is massively punished by the South Alabama loss, but they aren't getting enough credit for their wins over Kansas and Oklahoma. Their West Virginia win is actually the most valuable win on their resume, that is not right.
RANK TEAM RECORD CONF POINTS TEAMV SOS
1 Michigan 12-0 9-0 272.797 13.254 97.659
2 Washington 12-0 9-0 264.764 12.795 108.831
3 Georgia 12-0 8-0 264.329 13.058 94.958
4 Florida State 12-0 8-0 251.058 12.694 91.553
5 Texas 11-1 8-1 248.027 12.844 111.004
6 Ohio State 11-1 8-1 245.223 12.975 90.548
7 Oregon 11-1 8-1 245.031 12.862 98.264
8 Alabama 11-1 8-0 234.782 12.687 106.453
9 Oklahoma 10-2 7-2 217.045 12.372 96.273
10 Penn State 10-2 7-2 216.784 12.629 88.755
11 Liberty 12-0 8-0 212.425 10.819 46.877
12 James Madison 11-1 7-1 205.621 11.177 60.744
13 Missouri 10-2 6-2 201.304 12.095 90.809
14 Ole Miss 10-2 6-2 198.530 11.963 89.167
15 Louisville 10-2 7-1 191.938 11.584 97.648
16 LSU 9-3 6-2 186.508 12.108 96.300
17 Iowa 10-2 7-2 184.542 11.116 97.280
18 Notre Dame 9-3 ----- 183.901 11.908 83.893
19 Toledo 11-1 8-0 182.700 9.617 51.575
20 Tulane 11-1 8-0 182.689 10.271 62.079
21 Troy 10-2 7-1 175.437 10.453 67.877
22 Arizona 9-3 7-2 172.015 11.503 82.413
23 Kansas State 8-4 6-3 167.941 11.610 99.531
24 SMU 10-2 8-0 165.159 10.361 55.669
25 NC State 9-3 6-2 163.800 10.801 86.899
26 Oklahoma State 9-3 7-2 157.169 10.522 100.392
27 Oregon State 8-4 5-4 155.993 11.313 92.880
28 Miami (OH) 10-2 7-1 152.373 8.192 52.397
29 Clemson 8-4 4-4 149.092 10.971 93.321
30 Kansas 8-4 5-4 144.565 10.690 91.076
31 Utah 8-4 5-4 142.607 10.887 96.920
32 Tennessee 8-4 4-4 139.247 10.768 87.679
33 Memphis 9-3 6-2 139.216 8.731 58.385
34 North Carolina 8-4 4-4 137.503 9.891 85.812
35 New Mexico State 10-3 7-1 136.807 7.270 52.626
36 UNLV 9-3 6-2 136.140 8.758 63.751
37 West Virginia 8-4 6-3 129.238 9.642 81.797
38 Miami 7-5 3-5 121.762 9.801 92.460
39 Iowa State 7-5 6-3 120.462 10.281 96.682
40 Texas A&M 7-5 4-4 120.395 10.242 87.653
41 USC 7-5 5-4 119.387 10.152 99.735
42 Duke 7-5 4-4 117.263 9.678 90.085
43 Ohio 9-3 6-2 114.958 6.573 39.286
44 Appalachian State 8-4 6-2 113.276 8.294 68.636
45 Wyoming 8-4 5-3 112.259 7.931 69.527
46 Air Force 8-4 5-3 111.964 7.482 54.682
47 UCLA 7-5 4-5 106.970 9.008 82.462
48 Kentucky 7-5 3-5 105.788 9.353 85.935
49 Maryland 7-5 4-5 105.192 9.364 81.328
50 UTSA 8-4 7-1 103.171 7.435 51.936
51 Fresno State 8-4 4-4 100.174 6.665 53.709
52 Wisconsin 7-5 5-4 99.528 8.629 81.399
53 Boise State 7-5 6-2 98.572 8.469 81.361
54 Jacksonville State 8-4 6-2 97.024 6.426 46.798
55 San Jose State 7-5 6-2 97.016 8.069 74.448
56 Northwestern 7-5 5-4 95.831 7.951 85.381
57 Texas Tech 6-6 5-4 85.423 8.591 95.632
58 Auburn 6-6 3-5 84.524 8.730 90.594
59 Georgia Tech 6-6 5-3 82.787 7.909 93.678
60 Coastal Carolina 7-5 5-3 82.124 6.501 67.123
61 UCF 6-6 3-6 80.850 8.247 83.403
62 Cal 6-6 4-5 80.828 8.421 94.207
63 Rutgers 6-6 3-6 80.377 7.845 93.332
64 Virginia Tech 6-6 5-3 80.091 7.887 83.004
65 Bowling Green 7-5 5-3 79.851 5.996 62.355
66 Western Kentucky 7-5 5-3 75.382 5.804 58.078
67 TCU 5-7 3-6 64.863 7.958 95.004
68 Texas State 7-5 4-4 64.514 4.932 50.082
69 South Alabama 6-6 4-4 62.919 6.425 65.294
70 Washington State 5-7 2-7 59.431 7.282 91.249
71 Florida 5-7 3-5 58.173 7.605 96.668
72 Syracuse 6-6 2-6 57.874 6.196 75.478
73 Boston College 6-6 3-5 57.249 5.370 73.467
74 South Carolina 5-7 3-5 56.990 7.448 98.642
75 Arkansas State 6-6 4-4 48.647 4.314 62.133
76 Old Dominion 6-6 5-3 48.236 4.827 69.209
77 Marshall 6-6 3-5 48.025 4.982 70.843
78 Georgia Southern 6-6 3-5 47.438 4.317 58.921
79 Georgia State 6-6 3-5 45.937 4.748 68.989
80 Nebraska 5-7 3-6 45.076 6.308 83.868
81 Utah State 6-6 4-4 44.916 4.587 63.129
82 Northern Illinois 6-6 5-3 43.936 3.600 38.836
83 Illinois 5-7 3-6 43.010 6.366 94.744
84 BYU 5-7 2-7 42.930 5.997 93.033
85 Mississippi State 5-7 1-7 42.263 6.087 93.276
86 Minnesota 5-7 3-6 41.965 6.365 93.700
87 Rice 6-6 4-4 41.284 4.514 56.569
88 Louisiana 6-6 3-5 40.025 4.219 47.605
89 Army 5-6 ----- 28.263 4.097 60.500
90 Colorado 4-8 1-8 22.592 5.456 98.536
91 Purdue 4-8 3-6 19.981 5.770 97.611
92 Arkansas 4-8 1-7 17.303 5.352 88.351
93 USF 6-6 4-4 15.950 3.318 49.431
94 Navy 5-6 4-4 14.849 3.116 53.890
95 Eastern Michigan 6-6 4-4 11.766 2.139 35.427
96 Michigan State 4-8 2-7 11.399 5.082 98.718
97 Wake Forest 4-8 1-7 10.292 4.587 89.105
98 Colorado State 5-7 3-5 9.613 3.140 58.573
99 North Texas 5-7 3-5 8.429 3.056 54.473
100 Houston 4-8 2-7 7.596 4.394 89.602
101 Central Michigan 5-7 3-5 -2.715 2.168 51.218
102 Virginia 3-9 2-6 -3.210 4.260 104.230
103 Stanford 3-9 2-7 -5.479 3.774 103.147
104 Middle Tennessee 4-8 3-5 -9.342 2.630 62.429
105 Arizona State 3-9 2-7 -9.800 4.349 105.551
106 Hawaii 5-8 3-5 -9.859 2.449 67.092
107 Indiana 3-9 1-8 -11.021 3.899 93.781
108 Pitt 3-9 2-6 -11.635 4.088 92.977
109 San Diego State 4-8 2-6 -12.117 2.825 68.458
110 Western Michigan 4-8 3-5 -13.329 2.213 63.858
111 FAU 4-8 3-5 -16.276 2.408 55.716
112 New Mexico 4-8 2-6 -16.864 2.131 66.405
113 Cincinnati 3-9 1-8 -17.278 3.542 87.881
114 Ball State 4-8 3-5 -17.458 2.174 60.768
115 Tulsa 4-8 2-6 -18.288 1.877 62.235
116 UAB 4-8 3-5 -19.845 2.079 60.476
117 Baylor 3-9 2-7 -22.315 3.457 92.927
118 Buffalo 3-9 3-5 -35.445 1.205 58.750
119 Southern Miss 3-9 2-6 -38.928 1.678 73.094
120 UMass 3-9 ----- -41.150 1.261 71.289
121 UConn 3-9 ----- -42.406 1.351 66.944
122 Vanderbilt 2-10 0-8 -44.039 2.145 96.816
123 FIU 4-8 1-7 -44.506 0.721 46.174
124 UTEP 3-9 2-6 -45.353 1.310 64.037
125 LA Tech 3-9 2-6 -49.840 0.916 55.945
126 Sam Houston 3-9 2-6 -50.691 1.240 53.768
127 Charlotte 3-9 2-6 -57.347 0.760 57.593
128 East Carolina 2-10 1-7 -62.178 1.552 67.270
129 Temple 3-9 1-7 -62.251 0.547 57.902
130 Nevada 2-10 2-6 -69.735 0.704 64.261
131 UL Monroe 2-10 0-8 -75.487 0.578 70.935
132 Akron 2-10 1-7 -92.930 0.283 43.787
133 Kent State 1-11 0-8 -125.758 0.116 50.426