Early in 2024 NFL season, there’s still not much we know for sure. It is important to remember that there is still more than 75% of the year left to play. But we can still take stock of what we’ve seen so far and try to figure out who’s doing things that work on both sides of the ball.
That is why we are here today. We want to take a look at the best offensive and defensive play-calling duos in the league. We do “play-calling duos” rather than coordinators because, well, so many head coaches call the plays on their side of the ball these days; and if we did not include them, we would really narrow the field of available options.
We decided to divide the top 10 into three groups, and the teams in each group are listed alphabetically.
Shanahan-McVay tree offenses (with defensive questions)
- 49ers: HC Kyle Shanahan (OC Chris Foerster), DC Nick Sorensen
- Packers: HC Matt LaFleur (OC Adam Stenavich), DC Jeff Hafley
- Rams: HC Sean McVay (OC Mike LaFleur), DC Chris Shula
These teams have picked their coaching staffs over the past several years — especially San Francisco and L.A. But Shanahan, LaFleur and McVay are three of the best offensive play callers in the NFLso good that they would be on this list almost no matter who their teams had as the defensive coordinator. Each of these three teams has new defensive coordinators this season, and they are off to varying degrees of good starts.
San Francisco has generally done well with developing defensive coordinators in-house (Robert Saleh, DeMeco Ryans), while McVay’s options on that side of the ball have also worked out pretty well. (Wade Phillips, Brandon Staley, Raheem Morris.) LaFleur has yet to get really right on defense, and we’ll see how things go with Hafley for the rest of the year. (The early season numbers are somewhat bolstered by having played Will Levis.)
Good both ways
- Bills: OC Joe Brady, HC Sean McDermott (DC Bobby Babich)
- Ravens: OC Todd Monken, DC Zachary Orr
- Seahawks: OC Ryan Grubb, HC Mike Macdonald (DC Aden Durde)
- Texans: OC Bobby Slowik, HC DeMeco Ryans (DC Matt Burke)
- Vikings: HC Kevin O’Connell (OC Wes Phillips), DC Brian Flores
We know a little more about the other sideline coaches for this group than the previous one — even with Seahawks OC Ryan Grubb and Ravens DC Zachary Orr in their first seasons in these roles. (At least at the NFL level.)
Brady’s impact on Buffalo’s offense has been strong, and we’ve always known McDermott is an elite defensive mind. His ability to get the current group playing at a high level despite being without five starters from last year’s group (and three expected starters for this year) is pretty incredible. Monken almost immediately got the Ravens offense kicked into high gear upon arriving last season, spurring Lamar Jackson’s second MVP season. Things look supercharged this year with Derrick Henry added to the mix. Orr’s squad uncharacteristically struggled in a come-from-behind loss to the Raiders in Week 2, but completely throttled the Cowboys and Bills in two games later. Baltimore always finds the right answers on that side of the ball.
It’s WILD to see Seattle running a modernized offense after years of essentially operating in the 1990s under the recent Pete Carroll offensive coordinators. Grubb is only in his first NFL season; but we see what he did at the University of Washington, so we know this can work. And Macdonald is one of the best and most creative defensive minds in the NFL. Before his defense had to play without several starters against Detroit on Monday night, it looked amazing.
Slowik will be the next Shanahan-McVay tree guy to get a head coaching opportunity. The work he did with CJ Stroud last season, in a terrible environment given the revolving door offensive line, was spectacular. He knows how to plan easy answers for his quarterback, and Stroud can do the rest based on his ability and IQ. And now that the Texans have improved their personnel, we can really see Ryans scheme come into full focus. He is great.
O’Connell is another Shanahan-McVay guy, and good lord is he good at it. Look what he’s getting out of Sam Darnold now! And he got good offensive results with Josh Dobbs and Nick Mullens last year. Flores’ defense is bats–t nuts. The man is a threat. I feel bad for whoever has to play against him. It must be hell.
The two best duos
The Chiefs are the best of the best until further notice. Reid is the best offensive coach of his generation, basically the equivalent of Bill Belichick on his side of the ball. I’m not sure there are any coaches who have done more to push an offense over the past two decades than Reid. Spagnuolo was outplayed during his time as a head coach, but he was a truly amazing defensive coordinator, like the Wade Phillips of his generation. He always gets his group to play at a high level by the end of the season, and with a better staff at hand last year, had one of the best units in the league.
There’s a reason Johnson has been arguably the most sought-after name on the market in each of the last two offseasons. He constantly puts his players in position to succeed; he sequences play better than almost anyone; and he is willing to do what works until his opponent proves that it can stop it. Glenn has been more up-and-down, but that, again, is mostly based on personnel. Whenever he had the defensive backs to step up the aggression up front, his unit performed quite well. We’re seeing some of that early this season, and it should continue if they can stay healthy in the back end.
require.config({“baseUrl”:”https://sportsfly.cbsistatic.com/fly-0790/bundles/sportsmediajs/js-build”,”config”:{“version”:{“fly/components/accordion”:”1.0″,”fly/components/alert”:”1.0″,”fly/components/base”:”1.0″,”fly/components/carousel”:”1.0″,”fly/components/dropdown”:”1.0″,”fly/components/fixate”:”1.0″,”fly/components/form-validate”:”1.0″,”fly/components/image-gallery”:”1.0″,”fly/components/iframe-messenger”:”1.0″,”fly/components/load-more”:”1.0″,”fly/components/load-more-article”:”1.0″,”fly/components/load-more-scroll”:”1.0″,”fly/components/loading”:”1.0″,”fly/components/modal”:”1.0″,”fly/components/modal-iframe”:”1.0″,”fly/components/network-bar”:”1.0″,”fly/components/poll”:”1.0″,”fly/components/search-player”:”1.0″,”fly/components/social-button”:”1.0″,”fly/components/social-counts”:”1.0″,”fly/components/social-links”:”1.0″,”fly/components/tabs”:”1.0″,”fly/components/video”:”1.0″,”fly/libs/easy-xdm”:”2.4.17.1″,”fly/libs/jquery.cookie”:”1.2″,”fly/libs/jquery.throttle-debounce”:”1.1″,”fly/libs/jquery.widget”:”1.9.2″,”fly/libs/omniture.s-code”:”1.0″,”fly/utils/jquery-mobile-init”:”1.0″,”fly/libs/jquery.mobile”:”1.3.2″,”fly/libs/backbone”:”1.0.0″,”fly/libs/underscore”:”1.5.1″,”fly/libs/jquery.easing”:”1.3″,”fly/managers/ad”:”2.0″,”fly/managers/components”:”1.0″,”fly/managers/cookie”:”1.0″,”fly/managers/debug”:”1.0″,”fly/managers/geo”:”1.0″,”fly/managers/gpt”:”4.3″,”fly/managers/history”:”2.0″,”fly/managers/madison”:”1.0″,”fly/managers/social-authentication”:”1.0″,”fly/utils/data-prefix”:”1.0″,”fly/utils/data-selector”:”1.0″,”fly/utils/function-natives”:”1.0″,”fly/utils/guid”:”1.0″,”fly/utils/log”:”1.0″,”fly/utils/object-helper”:”1.0″,”fly/utils/string-helper”:”1.0″,”fly/utils/string-vars”:”1.0″,”fly/utils/url-helper”:”1.0″,”libs/jshashtable”:”2.1″,”libs/select2″:”3.5.1″,”libs/jsonp”:”2.4.0″,”libs/jquery/mobile”:”1.4.5″,”libs/modernizr.custom”:”2.6.2″,”libs/velocity”:”1.2.2″,”libs/dataTables”:”1.10.6″,”libs/dataTables.fixedColumns”:”3.0.4″,”libs/dataTables.fixedHeader”:”2.1.2″,”libs/dateformat”:”1.0.3″,”libs/waypoints/infinite”:”3.1.1″,”libs/waypoints/inview”:”3.1.1″,”libs/waypoints/jquery.waypoints”:”3.1.1″,”libs/waypoints/sticky”:”3.1.1″,”libs/jquery/dotdotdot”:”1.6.1″,”libs/jquery/flexslider”:”2.1″,”libs/jquery/lazyload”:”1.9.3″,”libs/jquery/maskedinput”:”1.3.1″,”libs/jquery/marquee”:”1.3.1″,”libs/jquery/numberformatter”:”1.2.3″,”libs/jquery/placeholder”:”0.2.4″,”libs/jquery/scrollbar”:”0.1.6″,”libs/jquery/tablesorter”:”2.0.5″,”libs/jquery/touchswipe”:”1.6.18″,”libs/jquery/ui/jquery.ui.core”:”1.11.4″,”libs/jquery/ui/jquery.ui.draggable”:”1.11.4″,”libs/jquery/ui/jquery.ui.mouse”:”1.11.4″,”libs/jquery/ui/jquery.ui.position”:”1.11.4″,”libs/jquery/ui/jquery.ui.slider”:”1.11.4″,”libs/jquery/ui/jquery.ui.sortable”:”1.11.4″,”libs/jquery/ui/jquery.ui.touch-punch”:”0.2.3″,”libs/jquery/ui/jquery.ui.autocomplete”:”1.11.4″,”libs/jquery/ui/jquery.ui.accordion”:”1.11.4″,”libs/jquery/ui/jquery.ui.tabs”:”1.11.4″,”libs/jquery/ui/jquery.ui.menu”:”1.11.4″,”libs/jquery/ui/jquery.ui.dialog”:”1.11.4″,”libs/jquery/ui/jquery.ui.resizable”:”1.11.4″,”libs/jquery/ui/jquery.ui.button”:”1.11.4″,”libs/jquery/ui/jquery.ui.tooltip”:”1.11.4″,”libs/jquery/ui/jquery.ui.effects”:”1.11.4″,”libs/jquery/ui/jquery.ui.datepicker”:”1.11.4″}},”shim”:{“liveconnection/managers/connection”:{“deps”:[“liveconnection/libs/sockjs-0.3.4″]},”liveconnection/libs/sockjs-0.3.4”:{“exports”:”SockJS”},”libs/setValueFromArray”:{“exports”:”set”},”libs/getValueFromArray”:{“exports”:”get”},”fly/libs/jquery.mobile-1.3.2″:[“version!fly/utils/jquery-mobile-init”],”libs/backbone.marionette”:{“deps”:[“jquery”,”version!fly/libs/underscore”,”version!fly/libs/backbone”],”exports”:”Marionette”},”fly/libs/underscore-1.5.1″:{“exports”:”_”},”fly/libs/backbone-1.0.0″:{“deps”:[“version!fly/libs/underscore”,”jquery”],”exports”:”Backbone”},”libs/jquery/ui/jquery.ui.tabs-1.11.4″:[“jquery”,”version!libs/jquery/ui/jquery.ui.core”,”version!fly/libs/jquery.widget”],”libs/jquery/flexslider-2.1″:[“jquery”],”libs/dataTables.fixedColumns-3.0.4″:[“jquery”,”version!libs/dataTables”],”libs/dataTables.fixedHeader-2.1.2″:[“jquery”,”version!libs/dataTables”],”https://sports.cbsimg.net/js/CBSi/app/VideoPlayer/AdobePass-min.js”:[“https://sports.cbsimg.net/js/CBSi/util/Utils-min.js”]},”map”:{“*”:{“adobe-pass”:”https://sports.cbsimg.net/js/CBSi/app/VideoPlayer/AdobePass-min.js”,”facebook”:”https://connect.facebook.net/en_US/sdk.js”,”facebook-debug”:”https://connect.facebook.net/en_US/all/debug.js”,”google”:”https://apis.google.com/js/plusone.js”,”google-csa”:”https://www.google.com/adsense/search/async-ads.js”,”google-javascript-api”:”https://www.google.com/jsapi”,”google-client-api”:”https://accounts.google.com/gsi/client”,”gpt”:”https://securepubads.g.doubleclick.net/tag/js/gpt.js”,”hlsjs”:”https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.0.7/hls.js”,”recaptcha”:”https://www.google.com/recaptcha/api.js?onload=loadRecaptcha&render=explicit”,”recaptcha_ajax”:”https://www.google.com/recaptcha/api/js/recaptcha_ajax.js”,”supreme-golf”:”https://sgapps-staging.supremegolf.com/search/assets/js/bundle.js”,”taboola”:”https://cdn.taboola.com/libtrc/cbsinteractive-cbssports/loader.js”,”twitter”:”https://platform.twitter.com/widgets.js”,”video-avia”:”https://vidtech.cbsinteractive.com/avia-js/2.12.0/player/avia.min.js”,”video-avia-ui”:”https://vidtech.cbsinteractive.com/avia-js/2.12.0/plugins/ui/avia.ui.min.js”,”video-avia-gam”:”https://vidtech.cbsinteractive.com/avia-js/2.12.0/plugins/gam/avia.gam.min.js”,”video-avia-hls”:”https://vidtech.cbsinteractive.com/avia-js/2.12.0/plugins/hls/avia.hls.min.js”,”video-avia-playlist”:”https://vidtech.cbsinteractive.com/avia-js/2.12.0/plugins/playlist/avia.playlist.min.js”,”video-ima3″:”https://imasdk.googleapis.com/js/sdkloader/ima3.js”,”video-ima3-dai”:”https://imasdk.googleapis.com/js/sdkloader/ima3_dai.js”,”video-utils”:”https://sports.cbsimg.net/js/CBSi/util/Utils-min.js”,”video-vast-tracking”:”https://vidtech.cbsinteractive.com/sb55/vast-js/vtg-vast-client.js”}},”waitSeconds”:300});