Bowl season, like everything in this world that's good and pure, has come to an end. Over the last month, we have watched 39 games between 78 teams, and we remember every single thing about each of them. OK, maybe I only remember, and even my memory is a bit foggy on a few of them.

That tends to happen when you watch so many games, and believe me, dear reader, I watched all 39 of them. I'm the same person that ranked all 39 of the games before they were even played, so you know I was going to pay attention. Let's face it: I love bowls too much not to watch them all.

To be blunt, this was not the greatest bowl season overall. Of the 39 that were played, only 15 finished as one-score games, and even that total is misleading. Some were one-score games that were really two-score games featuring a late touchdown that did nothing to change the outcome.

On the flip side, there were 14 games that were decided by at least three scores (17+ points). The average margin of victory in our 39 bowl games was 14.7 points per game, which does not speak to a high level of competition from game to game.

So which games were the best, and which stunk the most? Well, a wise man once told me that if I'm going to rank bowl games before they're played, I have to rank them afterward, too.

39. Independence Bowl (pregame rank 27) -- Louisiana Tech 14, Miami 0: In last year's rankings, the Cheez-It Bowl finished No. 1. Now, it was not a pretty football game. It was ugly, but there was a beauty to that ugliness that made the game unique and fun in a way that epitomized what bowl season should be about. As I watched the Independence Bowl, I saw numerous tweets from people comparing it to last year's Cheez-It Bowl. I have never wanted to reach through a computer screen and slap people so badly. There was nothing fun about this game. It was like driving through Indiana for three hours. There was nothing to see, and it felt like it lasted six hours. The Canes have now lost three straight bowl games, scoring just 3 combined points in their last two (49-3).

38. Birmingham Bowl (22) -- Cincinnati 38, Boston College 6: What's better than a 32-point blowout that never even pretended to be interesting? How about a 32-point blowout that also featured a weather delay? Seriously, there were reports that Boston College didn't want to continue the game following the delay, and though BC denied those reports, the way it played on the field afterward confirmed them.

37. Bahamas Bowl (30) -- Buffalo 31, Charlotte 9: Our first bowl game of the season was one of the bigger duds as well. Buffalo ran all over the 49ers, and it was already 24-0 before Charlotte cracked the scoring column late in the third quarter. Just an absolute dud, though it was the first bowl win in program history for Buffalo.

36. Las Vegas Bowl (11) -- Washington 38, Boise State 7: We all knew going in that the focus would be on Chris Petersen coaching his final game against his former team. The problem was that the game was a blowout, and there was absolutely nothing else to talk about except Petersen. I can't imagine being in Las Vegas and sitting in the stands watching this entire game. I'd have been gone at halftime. Boise State has won just one bowl game since 2016.

35. New Mexico Bowl (24) -- San Diego State 48, Central Michigan 11: Speaking of things that happen in Las Vegas, I have to be honest, I don't remember a lot of this game. I know I watched it because I remember an overall sense of boredom, but I don't remember a lot of what happened. A glance at the box score reminds me that San Diego State wide receiver Jesse Matthews finished with 111 receiving yards and two touchdowns on only three receptions! That's nuts! Though it was SDSU's first bowl win since 2016, coach Rocky Long may not be long for the Aztecs.

34. Military Bowl (21) -- North Carolina 55, Temple 13: This game got off to a somewhat slow start, but once the Tar Heels hit the gas, it was over quick. North Carolina QB Sam Howell showed everyone why the Heels will be the team everybody talks themselves into being a threat to Clemson next year. They won't be, but they might be good. Also, note to self: Never bet on a Rod Carey team in a bowl game because Rod Carey teams don't seem to care about winning bowl games (0-7 all-time).

33. Alamo Bowl (9) -- Texas 38, Utah 10: I had such high hopes for this game, but Utah followed up its dud in the Pac-12 Championship Game with a bigger one in San Antonio. The Utes owe us all an apology for it because now Texas is going to start 2020 ranked at No. 15 in the preseason AP Top 25 even though it has no business being ranked that high. The Longhorns have actually won three straight bowl games, which is part of the reason for those boosted preseason projections.

32. Camping World Bowl (8) -- Notre Dame 33, Iowa State 9: Another game I had high hopes for that turned out to be a complete mismatch. Maybe I should have seen it coming, but all the advanced metrics -- not only mine -- swore that Iowa State was a better team than its 7-5 record indicated. Well, maybe it was, but after losing to Notre Dame by 24, it'll have to settle for being the best 7-6 team in the country. Of course, while the game stunk overall, it did feature one awesome stiff-arm.

31. Armed Forces Bowl (32) -- Tulane 30, Southern Miss 13: There were aspects of this game that were good. Tulane had to come back from a 13-point deficit to win the game. The problem is that it was 13-0 Southern Miss within minutes, and then the Eagles didn't do anything for the rest of the game. So it wasn't an exciting comeback, it was just, "Tulane scores 30 points and wins in a rout." It did mark the second 7-6 season and bowl game win for Willie Fritz, though.

30. New Orleans Bowl (15) -- Appalachian State 31, UAB 17: This was a slightly more exciting version of the Armed Forces Bowl. UAB jumped out to a 14-0 lead and then stopped doing anything, allowing Appalachian State to score 31 points and get the win. The only excitement was the spread (-16.5), as it was possible the Mountaineers would not only pull off a big comeback but cover a large spread while doing so in the process. They didn't. UAB still covered. I'm not sure how much solace the Blazers took in that.

29. Arizona Bowl (34) -- Wyoming 38, Georgia State 17: The Arizona Bowl was a surprise in that I thought it would be a much lower-scoring affair. It wasn't. Wyoming nearly pushed past the total from Las Vegas on its own. The problem is that the outcome was never in doubt late. Georgia State opened by taking a 7-0 lead, but it was 24-10 Wyoming by halftime, and 38-17 at the end of the third. Then both teams ran clock and went home. In any other bowl season, it may have been a bottom-five bowl. This year it cracked the top 30.

28. Citrus Bowl (5) -- Alabama 35, Michigan 16: When the game started with an 85-yard touchdown to Jerry Jeudy on Alabama's first snap, your initial reaction was, "Oh, here we go, an Alabama blowout." But then Michigan did the most unexpected thing: It not only came back but had a 16-14 lead on Alabama at halftime. The Wolverines raised our expectations! Something crazy could happen here! Jim Harbaugh might get his signature win! The Alabama dynasty might genuinely be over! And then the second half started. Michigan never scored again. The most exciting thing about the second half was Alabama scoring with 26 seconds left, sparking a debate over what's classy and what is not, which wasn't even fun because Alabama wasn't running the score up. It was running basic plays, and Michigan couldn't stop it. Michigan has now lost four straight bowl games under Harbaugh, including three in a row to different SEC teams (Alabama, Florida, South Carolina). The last two have been by a combined 76-31 to the Tide and Gators.

27. Holiday Bowl (12) -- Iowa 49, USC 24: This is a game that had a lot of promise while it was being played. Both Iowa and USC were trading touchdowns for the first quarter and a half, but then USC QB Kedon Slovis was knocked out of the game. From that point on, it was all Iowa. It was 21-14 Iowa before the injury, and it was 28-10 Iowa afterward. Still, it was a fantastic game for Iowa's Ihmir Smith-Marsette, who scored touchdowns on a kick return, a run and a reception. He could have thrown for a touchdown as well but overthrew his receiver in the end zone. Total showcase game for Smith-Marsette.

26. Gasparilla Bowl (20) -- UCF 48, Marshall 25: Of all the bowl games named after a pirate, this was the worst. It was also the best, but either way, it wasn't great. UCF had a 31-7 lead in the third quarter before Marshall finally found a groove and started putting points on the board, but there was never a doubt who was going to win. Still, this game is ranked this high because of the variety of ways both teams scored. Three of the first four touchdowns scored in the game were defensive touchdowns. Also, including the defensive scores, three of the nine touchdowns in this game covered at least 70 yards. It wasn't close, but it had exciting moments.

25. Boca Raton Bowl (14) -- FAU 52, SMU 28: I knew this game was going to feature a lot of points -- only three bowls were higher scoring -- but I thought the final tallies would be closer. I also thought SMU would end up with more of them. It was close for nearly the entire first half, but after the Owls took a 21-14 lead with a minute left before halftime, SMU gave the ball right back to FAU. The Owls scored again before halftime to make it 28-14, and that was the closest it would be for the rest of the game. The only interesting thing to do in the second half was to stare at FAU QB Chris Robison's arm sleeve and wonder what the hell he was thinking. FAU looks to be just fine, at least from a talent perspective, with Lane Kiffin off to Ole Miss.

24. Redbox Bowl (33) -- Cal 35, Illinois 20: Another game that had promise early but failed to live up to it in the long run. Both Illinois and Cal were going back and forth for most of the first half, and when Illinois hit a field goal just before halftime to make it a 21-13 game, it looked like the second half might provide some excitement. It did ... only for Cal fans. Cal scored the only touchdown of the third quarter to make it 28-13 and then scored early in the fourth quarter to make it 35-13. Illinois scored a cosmetic touchdown a few minutes late to make things look better, but there was no drama in the final 30 minutes.

23. Lendingtree Bowl (26) -- Louisiana 27, Miami (OH) 17: They did not save the best bowl game for last; instead, they saved one of the averager bowls for last. Yes, I'm just making up words now. I've gone mad with power. This game wasn't exciting until the last few minutes. The RedHawks had a chance to cut it to a three-point game late, but their receiver was literally tackled by his shirt tail. It was the strongest shirt in the history of shirts, as it just would not tear, and he was tackled at the one-yard line. A few plays later, it was fourth-and-goal at the 1, and instead of taking the field goal they needed, Miami decided to go for it. The snap then never left the ground and went skidding past the quarterback for a 15-yard loss and a turnover on downs.

22. Sugar Bowl (4) -- Georgia 26, Baylor 14: In last year's Sugar Bowl, we heard all about how Georgia hadn't shown up and didn't care about the game following its loss to Texas. While watching this year's Sugar Bowl, it was obvious Georgia showed up, but we were all left wondering why we did. I mean, maybe if Baylor had a live bear mascot to go after Uga on the sideline, it would have been more exciting. No such luck. Also, while it was only a 14-point margin in the end, Baylor QB Charlie Brewer got knocked out of the game after cutting the lead to 26-14 late in the third. Once he was gone, the game was over, and neither team scored again.

21. Cheez-It Bowl (19) - Air Force 31, Washington State 21: Our defending champion failed to live up to the hype this year. It's not that the Cheez-It Bowl was bad, but I don't know if it finishes this highly in most bowl seasons. Washington State cut it to 24-21 early in the fourth quarter, but Air Force responded with a 10-play touchdown drive that took six minutes off the clock. A 10-point deficit against an option team with only 4 minutes left might as well be a 20-point deficit. Particularly with the way Washington State's defense performed against the run. The Falcons rushed for 371 yards on 69 carries, averaging a nice 5.4 yards per. Also, the Falcons had the ball for more than 43 minutes. Even if the final score was close, it never felt that way.

20. Cure Bowl (38) -- Liberty 23, Georgia Southern 16: This is a perfect example of final scores being misleading. If you didn't watch the game, you see that Liberty won by seven and think it couldn't have been that boring. But if you watched the game, you know differently. You'd know that Liberty had a 23-7 lead in the third quarter, and then you watched Georgia Southern put together three field goal drives to cut that lead to 23-16. You'd also know that the final field goal came with 1:44 left in the game. Nothing about this game was exciting.

19. Potato Bowl (39) -- Ohio 30, Nevada 21: Another classic example of a game not being as close as the final score indicates. Ohio was up 30-9 after three quarters, and Nevada scored two meaningless fourth-quarter touchdowns to make it seem closer. The only thing this game gave us worth remembering is the Bobcats dumping a Gatorade cooler full of french fries on Frank Solich afterward. That alone put this game in the top 20.

18. Sun Bowl (23) -- Arizona State 20, Florida State 14: This was a game of ebbs and flows. Florida State's offense was hopeless for most of the game, turning the ball over six times, but Arizona State couldn't take advantage. Its offense was just as lifeless and had to settle for three field goals in the first half to take a 9-0 lead. Then Florida State "exploded" for 14 points in the third quarter, including a 91-yard touchdown pass to Tamorrion Terry. Then the Noles started turning the ball over again, the Sun Devils scored 10 points in the fourth quarter to take the lead back, and neither team scored over the final 10 minutes of the game. In the end, all I'm going to remember from this game is feeling bad for Florida State QB James Blackman, who threw four interceptions and fumbled late to seal the win for Arizona State and put Herm Edwards at 15-11 through two seasons.

17. Peach Bowl (2) -- LSU 63, Oklahoma 28: This is one of those times where, if I were basing it solely on the drama of the game involved, this would have been ranked much lower. I mean, LSU jumped out to a 7-0 lead before you could blink, but Oklahoma responded to tie the game, and it looked like we might have a classic on our hands. Then LSU scored four more touchdowns in a 13-minute (game time) span, and it was over. Still, given the importance of this game, and the incredible display from QB Joe Burrow (493 yards passing, eight total touchdowns) and the LSU offense (692 total yards), I couldn't rank it too low. I couldn't rate it that high, either, because it was a 35-point margin at the end of the day. Only two games featured bigger final margins than this one.

16. First Responders Bowl (25) -- Western Kentucky 23, Western Michigan 20: This game was close, and it ended on a field goal as time expired. There was a ridiculous set of circumstances to set it up as well. Western Kentucky attempted a Hail Mary in the final seconds, and it fell incomplete. Unfortunately for Western Michigan, a review showed that the Broncos had too many players on the field. That moved the ball up 5 yards and allowed the Hilltoppers a chance to kick a 52-yard field goal. Kicker Corey Munson drilled that baby for the game-winner. The final few plays made up for what had been a mostly dull game, but while the ending was crazy, it wasn't enough to rank this game any higher than this. Which, honestly, should be enough for the First Responders Bowl. Hell, just being able to get the game in this year should be enough for the First Responders Bowl.

15. Music City Bowl (31) -- Louisville 38, Mississippi State 28: Mississippi State initially led this game 14-0, but then Louisville exploded like the orbital bone of a quarterback being punched by a linebacker on his own team, scoring 31 straight to put it away. Mississippi State scored a couple of fourth-quarter touchdowns to make it look better. It wasn't enough, however, as Mississippi State fired coach Joe Moorhead after the game and is now in the middle of its second coaching search in three seasons. First bowl win since 2016 for Louisville, which had a very nice bounce-back 8-5 season in Year 1 under Scott Satterfield.

14. Camellia Bowl (37) -- Arkansas State 34, FIU 26: I would wager that this was one of the least-viewed bowl games of the season, but it wasn't that bad! It wasn't all that great, either, but it was a one-point game for most of the fourth quarter. The Red Wolves then went 80 yards in 90 seconds late in the game to make it 34-26, and FIU couldn't counter punch. Honestly, being close in the final quarter this year was enough to get you ranked this high. At least FIU beat Miami.

13. Texas Bowl (18) - Texas A&M 24, Oklahoma State 21: A close game, but not one with a lot of excitement. Oklahoma State jumped out to a 14-0 lead after the first quarter, and the Aggies slowly took control of the game from there. Texas A&M scored 24 unanswered before Oklahoma State got a touchdown with 64 seconds left to cut it to three and make things look more exciting than they were. The Aggies may not be great yet under Jimbo FIsher (17-9 overall), but they're 2-0 in the postseason.

12. Pinstripe Bowl (29) - Michigan State 27, Wake Forest 21: The Pinstripe Bowl had an exciting start but fizzled at the end. Both Wake Forest and Michigan State were going back and forth in the first half, and Wake had a 21-20 lead at halftime. Then the second half opened with a 10-play Michigan State touchdown drive to make it 27-21, and neither team scored again. Now, in some ways, a six-point game for the final 25 minutes could lead to exciting moments, but Wake Forest never even threatened to score again. Michigan State even fumbled twice and missed a field goal to keep hope alive, but Wake's five second-half possessions featured a total of 31 plays, 86 yards and no points.

11. Orange Bowl (13) -- Florida 36, Virginia 28: Shout out to Virginia for making this game a whole helluva lot closer than I anticipated it would be. The problem was it was not as close as the score suggests. The Cavaliers scored a touchdown with 38 seconds left to cut it to 36-28 but couldn't recover the ensuing onside kick to add real drama. Florida also outgained Virginia 549 yards to 375, which is somewhat of a surprise because I seem to remember Florida RB Lamical Perine rushing for more than 549 yards on his own. Perine's three rushing touchdowns were an Orange Bowl record, and he won the game's MVP honor.

10. Cotton Bowl (6) -- Penn State 53, Memphis 39: This was not a game for anybody who appreciates defense. Penn State and Memphis combined for 1,071 yards of offense, 92 points, 10 touchdowns, and 10,328 missed tackles. OK, the last stat isn't official, but there were a lot of missed tackles, all right? All in all, not including the end of each half, there were 26 possessions in this game, and 16 ended with one team getting points out of them. What was unfortunate was that there wasn't a whole lot of drama at the end. Memphis got a field goal early in the fourth to cut Penn State's lead to 45-39, but the Nittany Lions responded with a 75-yard touchdown drive that took 5.5 minutes off the clock to push the lead back to two scores with 6:31 left. Memphis threw a pick on its next possession, and the Nittany Lions bled the clock from there. Still, overall it was a fun game with a lot of big plays.

9. Liberty Bowl (10) -- Navy 20, Kansas State 17: A close game! A game that involved Navy going 70 yards in 13 plays to set up the game-winning field goal with two seconds left. Honestly, given the number of boring games I'd sat through before this one, this all made the game seem exciting at the time. Now that some time has passed, it was more an interesting game than an exciting one, but interesting is enough to reach this high. The Midshipmen bounced back from an uncharacteristic 3-10 campaign to go 11-2 and pick up their fifth bowl win in six tries dating back to 2013.

8. Outback Bowl (7) - Minnesota 31, Auburn 24: Alabama and Michigan were playing at the same time as this game on New Year's Day, and most people thought that would be the bigger game. Well, based on these rankings, you know that wasn't the case. Not only was this a close game that featured a surprising result -- Auburn was favored by seven -- but it was genuinely exciting. Neither team ever led by more than a touchdown. Still, there was an overall lack of scoring in the second half that killed some of the excitement, though nothing could stop Minnesota's Tyler Johnson.

7. Quick Lane Bowl (35) -- Pitt 34, Eastern Michigan 30: Finally, a game that featured a team not only coming back from an early deficit but doing so late. Eastern Michigan jumped out to a 10-0 lead in the first quarter, and Pitt fought back to make it 20-17 at halftime. The game was tied 20-20 after three quarters, and then the Panthers and Eagles went back-and-forth in the final 15 minutes. EMU took the lead, Pitt tied it. EMU kicked a field goal with 6 minutes left to get back in the lead, and then Pitt put together a 10-play, 91-yard drive that took only 1:56 off the clock to score on a 25-yard touchdown with 47 seconds left to win the game.

6. Frisco Bowl (36) -- Kent State 51, Utah State 41: As you can see by where I had this game ranked before the bowls, I was not expecting this, but this was a legitimately fun game! The teams combined for 92 points, 39 of which came in the fourth quarter. Also, while Kent State won by 10 points, there was plenty of question about which team would win because the Flashes scored with two minutes left to extend the lead to 51-41 with 1:56 left. This was like one long sugar rush.

5. Fiesta Bowl (1) -- Clemson 29, Ohio State 23: This game had a little bit of everything. Not only was it a College Football Playoff semifinal between two of the best teams in the country, but it had big plays, drama and reasons for everyone to be angry at the officials. I mean, if we're honest with ourselves, we all take a little joy out of being mad at refs. It's part of what makes sports fun. I only wish that there wasn't controversy in a game with so much on the line, but we can't have everything, can we? Still, even without the controversy, this was a great game that gave us all numerous reminders of how much better these two teams are than nearly everybody else. Unfortunately for Ohio State, it is 0-2 in CFP games since winning the national title following the 2014 season.

4. Hawaii Bowl (28) -- Hawaii 38, BYU 34: The Hawaii Bowl was basically the Fiesta Bowl without the quality or the high stakes. There were controversial decisions from the refs, some missed calls, and a whole lot of points. The second half slowed down a bit, but QB Cole McDonald and the Warriors put together a four-play, 86-yard touchdown drive in the final minutes to take a 38-34 lead. BYU had over 500 yards of offense, turned the ball over three times (Hawaii didn't have any turnovers), and still only lost by four points. An all-around ridiculous game on Christmas Eve that Santa Claus is probably ticked off he missed.

3. Gator Bowl (17) -- Tennessee 23, Indiana 22: If you'd have asked me in the first half of the Gator Bowl if it was destined to be a top-five bowl in 2019 (2020, technically) I'd have assumed you were still drunk from New Year's Eve. It was a 6-3 game at halftime, but the second half went nuts. Indiana scored 16 points in the third quarter to take a 19-9 lead after three and then got another field goal early in the fourth to extend it to 22-9. That was the score with 5 minutes left, but then Tennessee managed to score two touchdowns within 30 seconds of game time thanks to a successful onside kick to steal the game. In a bowl season desperate for late drama, this game not only had it but sprung it on us out of nowhere.

2. Rose Bowl (3) -- Oregon 28, Wisconsin 27: What a run it has been for the Rose Bowl lately. The last four games have been decided by a total of 15 points with one of them going to overtime. This year's didn't need more than 60 minutes, but it featured one tie and six lead changes. The largest lead either team had was seven points, and it lasted all of 12 seconds because Wisconsin responded to Oregon's opening touchdown with a kick return to tie the game right back up at 7-7. A beautiful setting, a close, exciting game, and one unexpected performance from QB Justin Herbert, who rushed for three touchdowns, including a 30-yard game-winner in the fourth quarter.

1. Belk Bowl (16) -- Kentucky 37, Virginia Tech 30: Our lone walk-off winner. Well, it was almost a walk-off winner. This was a rare occasion where a team not only scored the game-winning touchdown in the final seconds but tacked on another score with a fumble return as time expired to rub it in (and simultaneously break the heart of anybody holding a ticket that has "Under 46" written on it). Lynn Bowden ran the ball down defenses throats all season long despite the fact every defense he faced knew it was exactly what he was going to do, but then he busted out the 13-yard touchdown pass to Josh Ali with 15 seconds left to win the game and catapult the Belk Bowl to No. 1 in our 2019-20 Bowl Season Rankings. This in the last Belk Bowl for the foreseeable future.