A stinker had to come sometime. The Buffalo Bills weren't going to make it through the season with a report card every week that's good enough to make the dean's list.
So after Monday night's 34-31 loss to the Tennessee Titans, we grade the good, the bad and the ugly.
All things considered, Josh Allen may have played his best game, going 35-for-47 with 353 yards and three TDs. He was picked once when his arm was hit as he threw.
He spread the ball to nine targets and rarely was off target, However, he did fail to spot an open receiver in the end zone while scrambling on first down, then missed Stefon Diggs badly in the end zone two plays later, forcing the Bills to settle for a field goal.
On Buffalo's last offensive play, a quarterback sneak from the Tennessee 3-yard line on fourth-and-inches, Allen lost his footing on a sneak but likely wouldn't have made it anyway because of the penetration of Tennessee's defensive line.
Running back: C+
Devin Singletary (five carries, 27 yards) once again ran hard — and without losing the ball. Zack Moss (nine carries, 26 yards) wasn't as effective.
But we're talking small sample sizes here. For a team that hands the ball to its backs as infrequently as the Bills, they should be more than satisfied with the production they've been getting.
Another observation: When there were openings, both backs hit the holes quickly.
For those who think the Bills have to have upgrades at this position, we here at Bills Central strongly disagree.
Tight end: B
Dawson Knox is developing into quite the hero. On this night, after breaking his hand, he stayed in to do his part on a gadget play and complete a two-point conversion pass to Allen. At the time, it looked like the play might be the difference in the game.
Alas, Knox didn't play another snap after that, and that could have limited their options when stopped on fourth down near the Tennessee goal line in the closing seconds.
But Tommy Sweeney caught his first career touchdown pass.
Wide receiver: B-
Emmanuel Sanders (five catches, 91 yards) giveth and Emmanuel Sanders (holding penalty that took 5-yard TD run by Knox off the board) taketh away.
Stefon Diggs (nine catches, 89 yards, one TD) and Cole Beasley (seven catches, 88 yards, one TD) were outstanding. And Gabriel Davis caught both his targets.
Offensive line: C
There were times, as coach Sean McDermott pointed out Tuesday, when Allen had all kinds of time to throw. There also were times when he did not, which was the main reason the Bills finished with 31 points instead of 40-plus.
The running game also had trouble getting going because of too much penetration by the Titans' defensive line.
Defensive line: D
When the Bills can turn opponents one-dimensional by getting out to big leads and forcing them to abandon or reduce their reliance on the running game, their pass rush can be overpowering.
When they have to account for the run the whole time, well, we saw what happened in this game: No sacks and just two hits on quarterback Ryan Tannehill despite the Titans losing top offensive lineman Taylor Lewan to a concussion in the second quarter.
Plus, they had too many breakdowns against the run, even though 76 of Derrick Henry's 143 rushing yards came on one play.
Matt Milano was able to return from an injury and play every snap, but he wasn't as effective as he normally is.
Tremaine Edmunds led the team with 10 tackles and was able to match up physically with Henry when their paths met.
This group had a tough time because of a poor pass rush and the ability of Henry to reach the second level too many times.
Safety Micah Hyde saw his interception streak end at three games, but fellow safety Jordan Poyer had one.
The only pass that went over their heads was one that hit Hyde on the top of his head, bouncing off his helmet and into the hands of Julio Jones for a 48-yard gain, leading to a field goal.
Special teams: D-
It doesn't matter that kicker Tyler Bass was once again perfect on his field-goal attempts, including one from 52 yards.
When a linebacker like Andre Smith, who plays special teams exclusively, commits an unnecessary holding penalty that brings back a 101-yard kick return for a touchdown, it's a lousy day, especially when that would have catapulted the Bills back into the lead late in the game.
They finished with no points on the ensuing possession when Allen was stopped near the goal line in the closing seconds.
Although we would have kicked the field goal at the end of regulation and taken our chances in overtime, we also can't kill head coach Sean McDermott for trusting his offense, which played much better than the defense throughout in this contest.
Besides, these guys are human too, and that part had to be taken into account on a night when offensive coordinator Brian Daboll found out on the flight to the game that his grandfather had died. This was three weeks after his grandmother passed away. And he was especially close to them because they raised him.
Bottom line was that they had a game plan that, if not for two egregious penalties, would have given them at least 11 more points in a game they lost by three.