On a horribly rainy day, the Bills found a way to be even more miserable than the conditions. They managed just 10 first downs and 153 total yards, were 2 of 15 on third down, and averaged just 2.5 yards per play.
"Overall, I thought we could have been better in a number of positions," coach Sean McDermott said. "I've got to look at the tape, to be honest with you, to get a better feel and making sure we were in the right spots before I give you a better read-out."
The tape won't show anything different from what everyone saw: the worst offensive performance in the NFL in Week 1.
And yet that has not moved McDermott to make a change at quarterback, at least as of Monday afternoon. Asked directly who would start Sunday's home opener against the Los Angeles Chargers, McDermott said he was still deciding whether it would be Nathan Peterman or Josh Allen.
"Still going to evaluate where we are, dotting the i's, crossing the t's," he said. "When you look at the tape, I've been through it a couple times already, we all have to do our job better. You can go around the team, in all three phases we didn't play well enough to win the football game."
Peterman was the clear winner of the quarterback competition from OTAs through preseason, but it was proved once again just how meaningless all of that offseason stuff is when it comes to a regular-season game day.
Peterman was the star of the preseason as he completed 80 percent of his passes, but against a Baltimore defense that was actually trying to scheme and stop him, he completed 5 of 18 passes for 24 yards, threw two interceptions, was sacked three times, and posted a QB rating of 0.0. Yes, 0.0.
"We've got to do a lot of things better, starting with me," Peterman said. "A lot of plays I wish I could have back, obviously, but that's football and it's about going back tomorrow, tonight and this whole week is moving on but learning. Taking a hard look at yourself, learning from these mistakes and then moving on and trying to go win another game."
He may not get that chance because while McDermott didn't say anything Monday, it's possible that he turns to Allen against the Chargers, if for no other reason than Peterman threw five interceptions against these same Los Angeles team last November in his first NFL start.
To clarify, Allen wasn't all that much better than Peterman in Baltimore, but there's a caveat: He came into the game with the Bills trailing 40-0, facing a Ravens defense that didn't have to worry at all about the Bills running the ball. Allen drove the Bills to their only score of the game, a field goal by Stephen Hauschka, and he also had a touchdown pass that was dropped by wide receiver Kelvin Benjamin.
Allen finished 6 of 15 for 74 yards. Like Peterman, he absorbed three sacks and was flushed out of the puck on numerous occasions, leading to his 26 rushing yards on five scrambles.
It may not matter who plays quarterback for the Bills, though, given their struggles along the offensive line and in the receiving corps.
The line was a major concern going into the game, and nothing has changed. It allowed six sacks and was flagged for six penalties.
"We were backed up and obviously penalties didn't help us at all," center Ryan Groy said. "A lot of penalties. We were behind the sticks quite a bit and you can't do that. It's tough ... we get behind the chains and they're bringing a lot of stuff at you."
Of course, part of the problem up front is that the receivers and tight ends could not get open. The quarterbacks dropped back a total of 39 times and rare was the occasion when they could stand in the pocket, go through the progression, and deliver a strike to a receiver who had beaten his coverage. It was a problem all of 2017, and nothing has changed.
"The timing was off," Benjamin said. "I mean, everything was off. Weather was crazy. I guess it just wasn't meant to be."
-- QB Nathan Peterman suffered through another dismal start as he posted a passer rating of 0.0, the worst mark possible in the complicated formula, against the Ravens on Sunday. He was replaced by Josh Allen early in the second half.
-- QB Josh Allen looked like a rookie when he replaced Nathan Peterman in the third quarter on Sunday. He wound up completing 6 of 15 passes for 74 yards and was sacked three times, though he should have had a TD pass in the third quarter, but it was dropped by Kelvin Benjamin.
-- CB Taron Johnson suffered a shoulder injury in the second quarter Sunday and did not return to the game. His status for this week against the Chargers is unknown. He was replaced at the nickel spot by safety Rafael Bush.
-- WR Zay Jones played 94 percent of the snaps and caught three passes for 26 yards on Sunday against the Ravens. He played 13 more snaps than No. 1 WR Kelvin Benjamin.
-- LB Tremaine Edmunds had a quite a game in his NFL debut. He played all 80 snaps on defense and was in on seven tackles and had a sack, a pass breakup, and a forced fumble.
-- LB Matt Milano had a solid game with seven tackles, including two for loss, and a fumble recovery on Sunday against the Ravens.
-- DE Jerry Hughes led the defensive line rotation with 53 percent of the snaps played Sunday, but he wasn't all that productive as he had two tackles and one QB hit, on which he missed an easy sack on Joe Flacco.
-- CB Vontae Davis was inactive for Sunday's game and apparently has lost his starting job to Phillip Gaines, though Gaines did not play well and a move back could be forthcoming.