All but one of the 15 NFL games on the Week 4 slate are in the books. Let’s hand out some grades…

Dallas 26, Detroit 24

Cowboys, Grade: A-

The team we saw on Sunday looked more like 2016 Cowboys than the 2017 version of the team. Dak Prescott was efficient, and Ezekiel Elliott was dominant behind an equally impressive performance by the offensive line. The defense playing well without Sean Lee on the field was also a good sign.

Lions, Grade: C+

The Lions offense just never got into a rhythm, due in large part to bad pass blocking. Detroit was still able to put up plenty of points thanks to a few big plays. It felt like the Lions had to make a fantastic effort for every completion. The defensive front was just overpowered by Dallas in the run game.

Tennessee 26, Philadelphia 23 (OT)

Titans, Grade: B-

Maybe the Titans deserve a higher grade for knocking off the defending Super Bowl champs, but this wasn’t a complete performance. Marcus Mariota was a different quarterback in the second half after a rough start. He didn’t get a lot of help from the run game, which continues to disappoint. The defensive front continues to be the rock of the team, but the secondary has to play better than it did against the Eagles. Tennessee really hasn’t put together a complete performance and still sits at 3-1.

Eagles, Grade: C+

The good news: Carson Wentz looked sharp in his second start. The bad news: The rest of the team was quite sloppy. The pass rush played well, but the defense, as a whole, missed too many tackles. The secondary (particularly Jalen Mills) were thoroughly outplayed by an underwhelming Titans receiving corps. The Eagles receivers dropped a bunch of passes. And the offensive line hasn’t looked as dominant as it was a season ago. That continued in Tennessee on Sunday.

Houston 37, Indianapolis 34 (OT)

Texans, Grade: B+

Watching a healthy J.J. Watt and Jadeveon Clowney wreak havoc on the Colts line was a joy to watch. Watching the secondary struggle to keep up with a receiving corps missing T.Y. Hilton for part of the game? Not so much. The Texans injured stars, including Deshaun Watson, looked fantastic on Sunday, and the team finally won a game, so no need to dwell on the negatives. Thank you, Frank Reich.

Colts, Grade: B

It’s easy to look at the score and pin this loss on the defense, but would be unfair to a unit that continues to play well. The offense gifted Houston half of those points with turnovers. On the other side of the ball, Andrew Luck looks like the Luck of old. If I were a Colts fan, I’d be encouraged by this tough loss, and excited to have a coach willing to take the chance Reich took in OT.

Seattle 23, Arizona 20

Seahawks, Grade: B-

Sure, the Seahawks won, but they needed Phil Dawson to miss two field goals and the Cardinals receivers to forget how to catch the football to eek out a win against what may be the worst team in the league. And with Earl Thomas going down for the season — and possibly ending his career as a Seahawks with a middle finger raised — this one has to feel like a loss. The passing game still looks like a jumbled mess, but at least the running game showed life.

Cardinals, Grade: B-

The Cardinals have now dropped two games they could have easily won, but fans in Arizona should be waking up happy on Monday morning. It looks like they have a franchise quarterback. It wasn’t on primetime, so nobody saw it, but Josh Rosen’s first NFL start was easily more impressive than Baker Mayfield’s and Sam Darnold’s debuts. The stats don’t look great because the Cardinals dropped at least five impressive throws downfield.

Chicago 48, Tampa Bay 10

Bears, Grade: A+

Mitch Trubisky finally took advantage of all the open receivers Matt Nagy has been scheming up and the result was a historic day for the Bears offense. Chicago’s defense, which has gotten better every week, turned in its best performance. Trubisky isn’t going to throw six touchdowns every week, but as long as he executes (and Nagy continues to out-scheme defensive coordinators) the Bears will be tough to beat.

Buccaneers, Grade: F

The Bucs may have stood a better chance had Dirk Koetter read FTW. Unfortunately, he stuck with Ryan Fitzpatrick a week too long and it cost his team any chance of competing with the Bears. Fitz was inaccurate and just overwhelmed by Chicago’s pass rush. On the other hand, the offense wasn’t putting up 48 points no matter who was behind center. Tampa Bay’s defense looks like the worst in the league.

Green Bay 22, Buffalo 0

Packers, Grade: A-

We won’t judge the offense as harshly as Aaron Rodgers did after the game. The Packers probably should have scored more than 22 points, but the offense was still able to move the ball and Rodgers was far more mobile than he had been in Week 3. It was the Bills, but Green Bay’s defense deserves praise for a comprehensive performance.

Bills, Grade: F

Josh Allen and the Bills crashed back down to earth. The defense “only” surrendered 22 points, but the Packers’ play-calling, which was questioned by Rodgers after the game, had more to do with that than Buffalo’s defense. And Josh Allen looked more like the quarterback we expected to see last week in Minnesota: Inaccurate and panicked in the pocket.

Jacksonville 31, New York Jets 12

Jaguars, Grade: A

When Blake Bortles is accurate, as he was on Sunday, the Jaguars are the best team in the league. It helps when the opposing defense can’t get a pass rush, but Bortles deserves credit for being patient and hitting the open man. The Jaguars defense just continued its domination of the league.

Jets, Grade: D-

We did not give the Jets a failing grade, but we will give their game plan, on both sides of the ball, an F. Offensively, they asked too much of Sam Darnold, who played well despite a few questionable decisions. Defensively, New York made things easier on Bortles by allowing him to hit the throws he’s most comfortable making. Basically the opposite of what the Titans did in Week 3.

New Orleans 33, New York Giants 18

Saints, Grade: A-

Maybe the Saints defense isn’t a lost cause. It played its best game of the season on Sunday, finally cleaning up mistakes on the backend and not giving up big gains. And Drew Brees may be the best quarterback in the league right now. He’s certainly playing like it.

Giants, Grade: D

Did the Saints defense play well, or did the Giants just fail to take advantage of what has been a vulnerable New Orleans secondary? It’s difficult to make that judgment based on the TV film, but New York’s approach in the passing game was extremely conservative. At one point, Odell Beckham had 17 yards on FIVE catches? How is that possible? The silver lining: The Giants defense continues to play decent football. It was doing a good job against the Saints offense until the fourth quarter.

New England 38, Miami 7

Patriots, Grade: A

Stop declaring the Patriots dead in September. It will always end up looking silly. How have we not learned this lesson yet? Anyway, Tom Brady and the offense predictably broke out against an overachieving Dolphins defense. More importantly, it looks like Bill Belichick will be able to cobble a decent defense out of the spare parts he’s working with on that side of the ball. That’s all the Patriots need with Brady getting his safety blanket, Julian Edelman, back from suspension next week.

Dolphins, Grade: F

Just a complete failure on both sides of the ball. That Brock Osweiler entered the game with 10 minutes remaining tells you everything you need to know about the offensive performance. The defense finally went up against a team that wasn’t dead set on establishing the run — though the Patriots did enjoy success on the ground — and Miami’s secondary was exposed.

Cincinnati 37, Atlanta 36

Bengals, Grade: B+

Cincinnati didn’t turn in the best defensive performance, but Atlanta is going to put points on everyone this season. And the Bengals did come up with a handful of timely sacks. It’s hard to draw any conclusion based on the offense’s performance — the Falcons defense is a little short-handed if you haven’t heard — but Andy Dalton looks good, which, in the past, has led to a playoff berth.

Falcons, Grade: B

Steve Sarkisian seems to have figured things out just in time for the Falcons defense to implode! Great timing. Injuries have wrecked what could have been a Super Bowl contender. The losses of Keanu Neal, Deion Jones and Ricardo Allen were felt against a Bengals offense that did whatever it pleased in Atlanta. On the bright side, Calvin Ridley looks awfully good.

Los Angeles 29, San Francisco 49ers 27

Chargers, Grade: B+

The Chargers offense continues to play well, but it’s time to start worrying about the defense, which appears to be a little too reliant on Joey Bosa’s pass rushing skills. Breakdowns in the secondary and unreliable special teams play continue to cost this team with Super Bowl aspirations.

49ers, Grade: B-

C.J. Beathard isn’t Jimmy G, but he looks competent enough to run Kyle Shanahan’s brilliant scheme and keep the 49ers competitive. The defense remains a work in progress but it will be better than it looked against the Chargers.

Oakland 45, Cleveland 42 (OT)

Raiders, Grade: C+

The defense continues to struggle, and Derek Carr has missed too many throws, but Jon Gruden has proven the NFL has not passed him by. He continues to draw up good plays that his players have had trouble executing. Had the Raiders been sharper, they may have scored 50 points on Sunday.

Browns, Grade: C+

Baker Mayfield played like a rookie, turning the ball over four times (though at least one of them was clearly not his fault) and keeping the Raiders in a game they probably should have lost. I’m not too concerned with the defense giving up so many points. Oakland had a ton of possessions and the turnovers put Cleveland’s defense in tough spots.

Baltimore 26, Steelers 14

Ravens, Grade: A

Are the Ravens the best team in the AFC? That’s a serious question. They sure looked like it in Pittsburgh. Joe Flacco is playing the best football of his career. The running game looks solid behind a good offensive line. The defense has lived up to its lofty expectations and just shut down what may be the league’s most talented offense on the road. Outside of the first half in Cincinnati on a Thursday night, Baltimore has been dominant.

Steelers, Grade: D+

Pittsburgh might be the worst team in the AFC North. It’s certainly the least balanced. The Steelers defense allowed the Ravens offense to move up and down the field on Sunday night, and the offense, which has carried so much of the load over the last half-decade, doesn’t look capable of keeping up week in and week out. It has to be perfect for the Steelers to have a chance to win; it was far from perfect against Baltimore.

Los Angeles 38, Minnesota 31

Rams, Grade: A

The Rams are the best team in football. The offense ran through the Vikings vaunted defense as if it wasn’t there. The defense gave up a lot of points but it was also missing Aqib Talib and Marcus Peters was not 100%. If Sean McVay’s team plays anywhere close to its best, it’s unbeatable.

Vikings, Grade: B+

There’s no shame in losing to the NFL’s best team on the road just four days after playing a game. Minnesota’s last two defensive performances are certainly troubling, but Mike Zimmer will figure things out. The offense bounced back nicely after whatever that performance was against the Bills.