Michigan State declined an opportunity to play in a bowl, an appropriate ending to an otherwise forgettable season. This season was always going to be a nightmare, so the fact that the Spartans embarrassed Michigan in the Big House may be grounds for raising a banner in East Lansing.

At 2-5 Michigan State won 2 more games than it probably should have, but the foundation is there for a return to prominence with Mel Tucker and some of the players coming to the program from the transfer portal. The 2020 season couldn’t end fast enough. Here’s how the team graded out:

Coaching: C

Look, the deck has been stacked against Tucker since the get-go, and the fact that Michigan State won 2 of its 3 most-important games of the year is an achievement in itself. Tucker instilled a competitive culture that no matter what a player did in 2019, if they weren’t consistently putting in the effort in games and at practice this season, they weren’t going to play.

Some of the actual football decisions relating to the depth chart didn’t always seem prudent, but again that points back to things the public wasn’t privy to about a player’s attitude. Scottie Hazelton’s 4-2-5 defense didn’t see like a fit for the Big Ten, but as the season went on, players became more comfortable in it, and it will likely only continue to improve as the Spartans recruit and aren’t left trying to place Mark Dantonio’s square pegs into round holes.

Quarterback: D-

Yikes. Michigan State’s quarterbacks were maybe only better than whatever Rutgers was going with on a given weekend. It made sense that Rocky Lombardi was the Game 1 starter, but the Spartans stuck with him for far too long as he continued to hand out interceptions like free candy and battled nagging injuries. Payton Thorne played decent in Michigan State’s final 6 quarters of the season. He had a higher floor than Lombardi but also a lower ceiling.

Thorne seemed like at least a competent place-holder moving forward as Michigan State waits for Hampton Fay to develop, but the transfer portal acquisition of Temple’s Anthony Russo should provide some excitement for next season.

Running game: D

Elijah Collins was seemingly the only sure-thing about this offense entering the season, and he finished as the Spartans’ 3rd-leading running back with 90 yards on 41 carries. The team may have found something in freshman Jordon Simmons, who closed the season out with 72 yards against Penn State. Simmons finished as Michigan State’s leading rusher despite carrying the ball 9 fewer times than Connor Heyward.

As a whole, the Spartans finished 124th of 127 teams with an average of 2.68 yards per carry and only averaged more rushing yards per game in the Big Ten than Purdue.

Receivers: B

If not consistent, Michigan State’s receivers were certainly exciting. The Spartans were never far from a 50-yard touchdown from Jayden Reed or Jalen Nailor. And who can forget the Michigan game, when it looked like freshman Ricky White was going to win the Biletnikoff Award. But outside of the occasional home run, there was never really a steady stream of production from the wideouts.

A lot of that may fall on Michigan State’s erratic QB play and the fact that defenses didn’t have to worry about the Spartans running the ball, because Reed and Nailor have the talent to be one of the better pass-catching tandems in the league. Hopefully a better quarterback will use those two in better fashion.

Offensive line: C

Not great, not bad. Was the lack of a run game more an issue of running back talent or ineffective blocking? It was a bit of both. The Spartans finished 10th in the Big Ten allowing 2.29 sacks a game. The line is a fairly young group, so as it gained more experience the run game opened up a bit. Most of the starters will be returning, so this unit should improve next year.

Passing defense: C-

Only Indiana passed for over 300 yards on the Spartans. Schematically, this was supposed to be the strength of Hazelton’s defense, but the run defense actually ranked a little higher. The pass defense incrementally improved for that Indiana, Northwestern and Ohio State stretch but took a big step backward in the final game of the year against Penn State.

Run defense: C-

Statistically, it’s hard to have a good run defense when more often than not team’s are running the ball down your throat in the second half with a huge lead, but even with that being the case, the Spartans’ run stoppers actually finished the season near the middle of the conference. Michigan State was gashed for 322 yards by the Buckeyes, only held 1 opponent to fewer than 100 yards rushing and allowed 3 more rushing touchdowns than any team in the Big Ten.

Overall GPA: 1.75

Many wouldn’t have been surprised if the Spartans finished the year winless, so it could have been worse. The good news is that this is rock bottom for the program and it should only be an upwards trajectory for the next few seasons. Michigan State may have to use the transfer portal a little more than other teams in the Big Ten, but Tucker has a belief from the players who decided to stick around.