Quarters and the Two-High Match Family: Cover 4, Cover 6, Palms

Two safeties who are deep defenders and run stoppers at the same time, the corner rules that make it work, the half-and-half and trap versions, and why the NFL turned to it after 2018.

Show the Python (shared drawing helpers for this chapter)
import os
import logging

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.patches import RegularPolygon, FancyArrowPatch, Patch
from matplotlib.lines import Line2D

from gridiron import Play, offense, defense, routes as r, show_animation, style, draw_marker
from gridiron.play import MARKER_R

logging.getLogger("matplotlib.font_manager").setLevel(logging.ERROR)
style.apply()
PDF = os.environ.get("RTG_FORMAT", "").lower() in ("pdf", "typst", "print")
FIELD_W = 160 / 3


# ---------------------------------------------------------------- alignments used all chapter
def pro_2x2():
    """11 personnel, shotgun 2x2 with the tight end attached: X (on the line) and H (slot, off the
    ball) to the left; Y in-line on the right and Z wide right, off the ball. Seven on the line:
    five linemen, X and Y. On the right #1 is Z and #2 is Y; on the left #1 is X and #2 is H."""
    out = []
    for p in offense("gun_2x2"):
        if p.key == "Y":
            p = p.moved(d=-0.7, w=4.8)
        elif p.key == "Z":
            p = p.moved(d=-1.5, w=15.0)
        out.append(p)
    return out


def spread_2x2():
    """11 personnel 2x2 with the tight end detached as the right slot (gridiron's gun_2x2)."""
    return offense("gun_2x2")


QUARTERS = {"LCB": (7.5, -15.6), "RCB": (7.5, 15.6), "FS": (9.5, -6.5), "SS": (9.5, 6.5),
            "NB": (4.8, -6.2), "MIKE": (4.8, 1.6), "WILL": (4.8, -2.4)}


def quarters_vs(off, moves=None, sde_9=True):
    """Nickel (4-2-5) quarters shell: corners 7-8 yards off with a slight outside shade; safeties
    9-10 yards deep, a few yards inside a slot or over/just outside an attached tight end
    (shallower and narrower than Cover 2 safeties); the nickel ($) at an apex over the left slot;
    the Mike and Will in the box. sde_9 puts the strong-side end outside an attached tight end
    (a 9 technique) so he can set the edge."""
    m = dict(QUARTERS)
    m.update(moves or {})
    out = []
    for p in defense("nickel", "two_high", off):
        if p.key in m:
            p = p.moved(d=m[p.key][0], w=m[p.key][1])
        if p.key == "SDE" and sde_9:
            p = p.moved(w=5.9)
        if p.pos == "CB":
            p = p.moved(label="CB")
        out.append(p)
    return out


def protect(p, rushers=("SDE", "SDT", "WDT", "WDE")):
    """Five linemen set, four rushers engage them: enough to show it is a pass, no more."""
    for k in ("LT", "LG", "C", "RG", "RT"):
        p.block(k, pts=[(-1.2, 0.0)])
    for k in rushers:
        p.rush(k, pts=[(-1.6, 0.0)], speed=2.0)


def no_numbers(ax):
    """Remove the painted yard-line numbers (they sit where wide receivers and safeties stand)."""
    for t in list(ax.texts):
        if t.get_alpha() == 0.55:
            t.remove()


def ruler(fld, play, widths=False, fs=6.5):
    """Depth labels (yards past the line of scrimmage) down the left edge of the field window;
    widths=True also marks the hash marks and the painted numbers along the bottom edge.
    Drawn on the Field's axes: gridiron has no ruler."""
    ax = fld.ax
    x_left = FIELD_W - fld.y1 + 0.35
    for d in range(5, 41, 5):
        y = play.los + d
        if fld.x0 + 0.8 <= y <= fld.x1 - 0.8:
            ax.text(x_left, y, f"{d}" + (" yd" if d == 5 else ""), fontsize=fs, color=style.INK_2,
                    ha="left", va="center", zorder=12,
                    bbox=dict(boxstyle="round,pad=0.12", fc=style.SURFACE, ec="none", alpha=0.85))
    if widths:
        y = fld.x0 + 0.9
        for yb, txt in ((23.58, "hash"), (FIELD_W - 23.58, "hash"), (13.0, "numbers"), (FIELD_W - 13.0, "numbers")):
            if fld.y0 + 2.5 <= yb <= fld.y1 - 2.5:
                ax.text(FIELD_W - yb, y, txt, fontsize=fs, color=style.INK_2, ha="center", va="center",
                        zorder=12, style="italic",
                        bbox=dict(boxstyle="round,pad=0.12", fc=style.SURFACE, ec="none", alpha=0.85))


def say(fld, play, text, at, fs=7.0, color=None, ha="center", weight="normal"):
    """A small boxed on-field label at (d, w), sized independently of Play.note."""
    x, y = fld.xy(*play.to_abs(*at))
    fld.ax.text(float(x), float(y), text, fontsize=fs, color=color or style.INK, ha=ha, va="center",
                zorder=12, fontweight=weight,
                bbox=dict(boxstyle="round,pad=0.2", fc=style.SURFACE, ec=style.BASELINE, lw=0.5))


def clip(fld):
    """Crop the axes to the drawn field window, so players outside a zoomed window don't
    stretch the picture past the turf. (gridiron draws every player; this trims the view.)"""
    fld.ax.set_xlim(FIELD_W - fld.y1, FIELD_W - fld.y0)
    fld.ax.set_ylim(fld.x0, fld.x1)
    for a in list(fld.ax.texts) + list(fld.ax.patches) + list(fld.ax.lines):
        a.set_clip_on(True)
    return fld


# ---------------------------------------------------------------- frame strips (print version of an animation)
def ghost_marker(ax, x, y, label, ppy, color=style.DEFENSE):
    """A hollow, dashed defender: where he stood at the snap."""
    ax.add_patch(RegularPolygon((x, y), 4, radius=MARKER_R * 1.25, orientation=np.pi / 4,
                                facecolor="none", edgecolor=color, lw=1.2, ls=(0, (2, 1.2)), zorder=6))
    if label:
        ax.text(x, y, label, ha="center", va="center", color=color, fontweight="bold", zorder=6,
                fontsize=max(4.0, min(8.5, ppy * 0.75)))


def snapshot(play, t, ax=None, ghosts=(), lateral=(-21, 21), window=(-8.5, 19.5), notes=(), show_ruler=False):
    """Everyone where he is at time t, with faint trails since the snap and dashed outlines
    (`ghosts`) where the chosen defenders stood at the snap."""
    pos = {k: play.position(k, t) for k in play.players}
    moved = [pl.moved(d=float(pos[k][0]), w=float(pos[k][1])) for k, pl in play.players.items()]
    q = Play([m for m in moved if m.side == "off"], [m for m in moved if m.side == "def"],
             los=play.los, ball_y=play.ball_y, to_go=play.to_go)
    q.highlights = dict(play.highlights)
    for n in notes:
        q.note(*n)
    fld = clip(q.draw(ax=ax, lateral=lateral, window=window, title=False))
    ax, ppy = fld.ax, fld.pts_per_yard()
    no_numbers(ax)
    if show_ruler:
        ruler(fld, play, fs=5.5)
    P = lambda d, w: fld.xy(*play.to_abs(d, w))  # noqa: E731
    for k, pl in play.players.items():
        if pl.side == "off" and pl.pos not in ("WR", "TE", "RB"):
            continue
        pts = np.array([play.position(k, tt) for tt in np.linspace(0, t, 30)])
        if np.ptp(pts[:, 0]) + np.ptp(pts[:, 1]) < 0.3:
            continue
        xs, ys = P(pts[:, 0], pts[:, 1])
        if pl.side == "off":
            ax.plot(xs, ys, color=style.OFFENSE, lw=1.0, alpha=0.45, zorder=3)
        else:
            ax.plot(xs, ys, color=style.DEFENSE, lw=1.3, ls=(0, (3, 2)), zorder=3)
    if t > 0.05:
        for k in ghosts:
            x0, y0 = P(*play.position(k, 0.0))
            ghost_marker(ax, float(x0), float(y0), play.players[k].label, ppy)
    bx, by = P(*play.ball_position(t))
    bd = np.array(play.ball_position(t))
    in_flight = any(k == "pass" and t > tr and np.hypot(*(bd - np.array(play.position(to, t)))) > 1.2
                    for k, to, tr in play.ball_events)
    if not in_flight:                             # tuck a held ball beside its holder so his letter stays readable
        bx, by = float(bx) + 1.0, float(by) + 0.35
    for kind, _, t_rel in play.ball_events:
        if kind == "pass" and t > t_rel:          # a thrown ball: draw its flight so far
            sx, sy = P(*play.ball_position(t_rel))
            ax.add_patch(FancyArrowPatch((float(sx), float(sy)), (float(bx), float(by)), arrowstyle="-|>",
                                         mutation_scale=8, color=style.BALL, lw=1.4, ls=(0, (2, 1.5)), zorder=9))
    draw_marker(ax, float(bx), float(by), "ball", "", ppy)
    return fld


def strip(play, times, labels, ghosts=(), lateral=(-21, 21), window=(-8.5, 19.5), notes_at=None,
          width_in=6.5, ncols=2):
    """Panels at chosen moments of one play, ghosts kept on every post-snap panel."""
    n = len(times)
    nrows = int(np.ceil(n / ncols))
    pw = width_in / ncols
    h = nrows * (pw * (window[1] - window[0]) / abs(lateral[1] - lateral[0]) + 0.32)
    fig, axes = plt.subplots(nrows, ncols, figsize=(width_in, h), squeeze=False)
    for ax in axes.flat[n:]:
        ax.axis("off")
    for i, (ax, t, lab) in enumerate(zip(axes.flat, times, labels)):
        snapshot(play, t, ax=ax, ghosts=ghosts, lateral=lateral, window=window,
                 notes=(notes_at or {}).get(i, ()), show_ruler=(i == 0))
        ax.set_title(lab, fontsize=8.5, color=style.INK, loc="left")
    fig.tight_layout(h_pad=0.6, w_pad=0.4)
    h = [Patch(facecolor="none", edgecolor=style.DEFENSE, lw=1.2, ls=(0, (2, 1.2)),
               label="Dashed outline: where he stood at the snap"),
         Line2D([], [], color=style.DEFENSE, lw=1.3, ls=(0, (3, 2)), label="Defender's path"),
         Line2D([], [], color=style.OFFENSE, lw=1.0, alpha=0.6, label="Offensive player's path")]
    fig.legend(handles=h, loc="upper center", bbox_to_anchor=(0.5, 0.0), ncol=3, fontsize=7.2, frameon=False)
    return fig

Second-and-8 near midfield. The offense comes out with three wide receivers and a tight end, two receivers on each side. Before the snap the broadcast’s high camera shows both safeties standing only about 9 or 10 yards deep, one over each slot receiver, and both cornerbacks backed off 7 or 8 yards. It looks soft. The offense hands the ball off on an inside run, and the first defender to hit the running back, four yards downfield, is one of those safeties, arriving at full speed from a spot that looked like pass coverage. Two plays later the offense fakes the same run and throws deep, and the same safety is running stride for stride with the tight end up the seam. How can one player be a deep pass defender and a run stopper on the same snap? And why did NFL defenses, which spent the 2010s crowding an eighth man into the box, spend the next six years taking him back out? The answer is a coverage with a misleading name: quarters.

You’ll be able to…

NoteYou’ll need

This is a level 4 chapter. One line each on what it builds on:

  • Shells and the box (A First Look at Defense): a two-high shell has two safeties deep, one on each side of the middle; one-high has one in the deep middle. The box is the area near the ball where the run is defended; a light box has no more defenders in it than the offense has blockers. A defender at an apex stands halfway between the last man in the box and a slot receiver, so he can play either.
  • Formations (Spread Formations): 2x2 is two receivers on each side; 3x1 (trips) is three to one side. Receivers are numbered from the sideline in on each side: #1 is the widest, then #2, then #3.
  • Zones and matching (Coverage Fundamentals): the deep field splits into thirds, halves or deep quarters (about 13 yards wide each). The flat is the short area near the sideline, the curl the area between the numbers and the hash, the hook the area inside it. Pattern matching is zone coverage whose defenders pick up receivers man-to-man by rule once the routes declare. A press corner lines up within a yard of his receiver; an off corner, 5 to 10 yards away.
  • Cover 2 (Cover 2 and Tampa 2): two safeties each guard a deep half and the hard corner squats in the flat.
  • Run fits (Run Fits and Box Math): the force defender turns a run back inside; the alley player fills the lane between the force and the box; the plus-one is the one more run defender than the offense has blockers. Defenders read blockers’ “hats”: a blocker firing out low means run, one popping up tall to protect means pass.
  • Routes and play-action (Passing Fundamentals, Play-Action, Boots and Screens): a seam runs straight upfield between the hash and the numbers; an out breaks flat toward the sideline; a slant breaks sharply inside after a step or two; a dig breaks flat inside at 10 to 15 yards; a wheel starts toward the flat and turns up the sideline. Four verticals sends four receivers deep; a flood puts three receivers at three depths on one side. Play-action fakes a run before a pass; on a bootleg the quarterback fakes one way and rolls out the other.
  • Who’s who: on offense X is the receiver on the line, Z the receiver off it, Y the tight end, U a second tight end and H the third receiver, usually in the slot. In a nickel defense the Mike and Will are the two linebackers and the nickel back is the fifth defensive back; a base 4-3 adds a third linebacker, the Sam.

Reading the diagrams: offense is blue circles (Q quarterback, R running back, C center). Defense is outlined squares: E and T defensive ends and tackles, M the Mike, W the Will, S the Sam, $ the nickel back, CB a cornerback, FS and SS the free and strong safety. A green ring marks the players to watch. The faint lines across the field are 5 yards apart from the line of scrimmage (the blue line), and the small numbers on the left edge give the depth; the short ticks are the hash marks. Solid arrows are offensive routes, dashed orange arrows defenders’ movements, the dotted brown arrow a pass. In the Predict-the-play figures the orange line is the line to gain, where the first down is.

Quarters in one picture: four deep, but not really

Start with the name, because it misleads almost everyone. Quarters, also called Cover 4, is a two-high coverage in which four defenders, the two cornerbacks and the two safeties, each start with a deep quarter of the field, a lane about 13 yards wide (hence the “4” in the numbering system). If that were the whole story, quarters would be a passive coverage: four defenders guarding deep grass, three underneath, plenty thrown in front of them. But each of those four deep defenders has a rule that tells him whom to cover once the receivers start running, and two of those rules point the safeties forward, not back. Here are the alignment and the rules against the NFL’s most common formation, a 2x2 set with the tight end attached.

Show the Python
off = pro_2x2()
p = Play(off, quarters_vs(off), los=35, to_go=None)
for w in (-19.0, -6.5, 6.5, 19.0):
    p.zone((18.0, w), (7.0, 12.2), "deep ¼")
for key, txt in (("X", "#1"), ("H", "#2"), ("Y", "#2"), ("Z", "#1")):
    p.note(txt, at=(p.players[key].d - 3.2, p.players[key].w))
p.highlight("FS", "SS", "LCB", "RCB")
fld = p.draw(lateral="full", window=(-7.5, 22.5))
no_numbers(fld.ax)
ruler(fld, p, widths=True)
say(fld, p, "CB: MOD on #1\n(man if he goes deep)", (12.0, -18.3), fs=6.6)
say(fld, p, "CB: MOD on #1", (11.5, 20.5), fs=6.6)
say(fld, p, "FS: read #2", (12.6, -7.0), fs=6.6)
say(fld, p, "SS: read #2", (12.6, 7.0), fs=6.6)
say(fld, p, "$: wall #2,\nthen the flat", (2.6, -11.0), fs=6.6)
say(fld, p, "W: run, then hook", (7.0, -4.6), fs=6.3)
say(fld, p, "M: run, then Y's flat", (7.0, 5.4), fs=6.3)
say(fld, p, "E: edge,\njams Y", (-2.5, 9.6), fs=6.3)
plt.show()
Figure 37.1: Quarters against a 2x2 formation (11 personnel, tight end attached on the right). The shaded ovals are the four deep quarters each defender starts with, but the labels are what matter: each defender’s rule. The corners (CB) play MOD on the outside receiver, #1: man-to-man if he runs deep. The safeties (FS, SS) read the inside receiver on their side, #2: H on the left, the tight end Y on the right. On the slot side the nickel ($) at the apex walls off #2 and then takes the flat. The tight end’s side has no apex defender, so the Mike plays the run first and then becomes the first man to the flat if Y releases outside; the Will plays the run, then the hook. The end outside Y sets the edge and can jam him. Notice how shallow the safeties are, about 9 or 10 yards, and how narrow: the free safety a few yards inside the slot, the strong safety just outside the tight end. Cover 2 safeties stand at 12 to 14 yards and wider.

Go around the picture one position at a time.

  • The corners line up 7 or 8 yards off the outside receiver (#1), square or with a slight outside shade, eyes on him. Their rule, MOD, gets its own section below. The short version: if #1 runs deep, the corner has him man-to-man; if #1 runs a short route, the corner lets him go and drops into his deep quarter.
  • The safeties are the heart of the coverage. They line up 8 to 10 yards deep (some teams 10 to 12): a few yards inside a slot receiver, or over or just outside an attached tight end, who is already inside the box. That’s much shallower and narrower than a Cover 2 safety, who has to reach the sideline and so stands at 12 to 14 yards, outside the hash. The quarters safety doesn’t have a sideline to reach. His real job is to read the inside receiver.
  • The apex defender, here the nickel back on the slot side, stands between the tackle and the slot, 4 or 5 yards deep. Against a pass his first job is to wall #2: get in the slot receiver’s path from the inside and keep him from running freely up the seam, so the safety behind has time to read him. Then he takes the first receiver who comes to the flat, the running back included.
  • The linebackers read run first. Against a pass they drop to the hook zones and take the running back if he runs up the middle. On the tight end’s side there is no apex defender, so the strong-side linebacker (here the Mike) is the first man to the flat if the tight end releases outside.
  • The front rushes four. The end outside the tight end is the edge (contain) player against runs to his side, and he can jam the tight end on his way out.

Now count the defenders against the two receivers on one side. On the slot side: the corner, the safety, the apex defender and, a step inside, a linebacker. On the tight end’s side: the corner, the safety, the Mike and the end. Four players against two receivers, with the back as a possible third. Coaches like to say quarters is really “four over two” on each side, not four deep, and that everyone deep is also, depending on what the receivers do, a man defender or a run defender. That is what makes quarters a pattern-matching coverage, and the purest one in common use.

NoteMadden vs. real life

In a video game’s play menu, “Cover 4” usually draws four blue deep zones and three short ones, and the defenders drop to them like spot-drop zone players. If the real coverage worked that way it would be a prevent defense (the soft, everyone-deep look teams use to protect a late lead, covered in Clock and Game Management): four defenders guarding grass 15 yards deep while the offense completes everything underneath. Real quarters is a read coverage. The deep quarters are starting points; the receivers’ first steps decide who covers whom, and the two safeties spend the first second of every snap deciding whether they are deep defenders at all. If you remember one thing from this chapter, make it this: quarters safeties play the inside receiver, not a zone.

ImportantWhy it exists

What it solves. A defense wants two things that normally conflict: two safeties deep, so the offense can’t hit an explosive pass over the top, and an extra run defender, so it can’t run the ball down its throat. Quarters gets both from the same two players. Standing at 9 or 10 yards instead of 13, a safety is close enough to the line to fit a run in time and deep enough to carry a receiver up the seam.

What it gives up. The shallow, inside-leaning safeties are reading, and anything that makes them read wrong hurts: a run fake, a receiver whose release looks like a block, a route that starts one way and ends another. With only three defenders underneath, the short outside throws (the quick out, the hitch, the flat) belong to the offense unless a corner or an apex defender takes them away. Quarters trades a few easy short completions for no deep ones, and asks its safeties to be right.

The read safety: one key, three answers

The quarters safety is the clearest example of a read safety: a safety whose job is decided after the snap by a single key receiver, usually #2 on his side. Coaches teach it as three answers to one question, what did #2 do?

Show the Python
def read_panel(ax, branch):
    off = pro_2x2()
    p = Play(off, quarters_vs(off), los=35, to_go=None)
    p.highlight("SS")
    if branch == "vert":
        p.route("Y", r.seam(18)); p.route("Z", r.go(18))
        p.drop("SS", (19.0, 5.2), speed=5.0); p.drop("RCB", (19.5, 16.3), speed=5.0)
        p.drop("MIKE", (8.0, 3.5))
        title, txt, at = "#2 goes vertical: carry him", "SS: man on #2", (11.5, 9.6)
    elif branch == "out":
        p.route("Y", r.flat(2.0, 7.0)); p.route("Z", r.dig(12, 8))
        p.drop("SS", (8.4, 11.0), speed=5.0); p.drop("RCB", (14.5, 15.0), speed=3.5)
        p.drop("MIKE", (3.2, 10.0), speed=4.5)     # first man to the flat on the tight end's side
        title, txt, at = "#2 goes out: help on #1", "SS: bracket #1\ninside", (16.5, 7.0)
    else:
        p.block("Y", "SDE")
        p.block("RT", "MIKE"); p.block("RG", "SDT"); p.block("C", "WDT")
        p.run("RB", [(1.5, 1.6), (5.2, 3.8)], speed=6.0); p.handoff("RB", 0.6)   # aimed at the C gap
        p.drop("SS", (5.6, 5.8), speed=5.5); p.drop("RCB", (9.5, 15.4), speed=1.0)
        title, txt, at = "#2 blocks: run, fill the alley", "SS: alley\nplayer", (15.5, 6.5)
    fld = clip(p.draw(ax=ax, lateral=(-3.5, 21.5), window=(-6.5, 22.5), title=False))
    no_numbers(ax)
    say(fld, p, "#2", (-3.2, 4.8), fs=6.5)
    say(fld, p, "#1", (-4.0, 15.0), fs=6.5)
    if branch == "out":
        say(fld, p, "M: first man\nto the flat", (5.8, 7.0), fs=6.0)
    say(fld, p, txt, at, fs=6.6, color=style.DEFENSE_DARK, weight="bold")
    ax.set_title(title, fontsize=8.2, loc="left", color=style.INK)


fig, axes = plt.subplots(1, 3, figsize=(6.6, 4.3))
for ax, b in zip(axes, ("vert", "out", "run")):
    read_panel(ax, b)
fig.tight_layout(w_pad=0.5)
plt.show()
Figure 37.2: The strong safety’s three answers to one key, the tight end Y (#2), on the offense’s right. Left: Y releases straight up the seam, so the safety (ringed) turns and covers him like a man defender, while the corner goes deep with Z. Middle: Y releases to the flat, so the safety has no #2 to cover; he works to the outside receiver (#1) and sits inside him, taking away Z’s in-breaking route (here a dig) while the corner stays over the top: a bracket. The Mike, the first man to the flat on the tight end’s side, runs to Y. Right: Y fires out low to base-block the end outside him, a block that says run, so the safety comes downhill to fill the alley outside the tight end and becomes the defense’s extra run defender. Same alignment, three jobs; the receiver chose.
  1. #2 goes vertical: carry him. If the inside receiver runs up the seam, the safety covers him, man-to-man, as deep as he goes. With the corner on #1, every vertical route on that side has a defender on top of it.
  2. #2 goes short or out: help on #1. If #2 runs to the flat or breaks off a short route, the safety has nobody to cover, so he turns to the outside receiver and sits inside him. Now #1 has the corner outside and over the top and the safety inside: a bracket, two defenders on one receiver. The dig and the post, the routes that hurt quarters corners most because they break away from the corner’s outside position, run straight into the safety. (If #2 runs inside, across the field, many systems tell the safety to pass him to the linebackers and look for work: #1 breaking in, or a crossing route coming from the other side.)
  3. #2 blocks: it’s a run, so fill. If #2 is a tight end who blocks, or a slot receiver who steps up to block the apex defender, and the linemen in front of the safety fire out low, the safety reads run and comes downhill. In the language of Run Fits and Box Math, he becomes the alley player: he fills the lane between the edge and the box, inside-out, and he is the defense’s plus-one.

What counts as “vertical”? Most staffs draw the line where the corner’s rule does, at about 5 yards. A #2 who breaks out or in before that is short; a #2 still pushing upfield past it is vertical, and the safety stays on top of him until he breaks. If he then curls or digs at 10 or 12 yards, the safety sits over it with a hook defender underneath. Exact depths vary by staff.

Why does one receiver make such a good key? Because #2’s release tells the safety, almost instantly, both run-or-pass and where the danger is. A receiver who blocks is the strongest run signal there is; one who releases vertical is the danger; one who runs to the flat isn’t a deep threat, so the deep threat must be the outside man. Good safeties check it against the linemen in front of them: low hats confirm the run, but a #2 who “blocks” while the linemen pop up tall to pass-protect is selling a fake, a chip before a release or a play-action block. That check takes a beat, and it is the read’s weak spot, as the bootleg section will show.

That also explains where the safety stands. He has to be shallow enough to fill the alley before the running back gets through it, and deep enough to turn and run with a tight end up the seam without being beaten over the top. Nine or ten yards is the compromise. TCU’s Gary Patterson, one of the coaches who made quarters famous in college football, taught his safeties not to backpedal at the snap at all but to shuffle flat-footed and read, because a safety rocking backward can’t come forward in time.1 Watch one quarters safety for a whole game on the All-22 film (the high, wide camera coaches use) and you’ll be surprised how rarely he ends the play deep.

Four verticals: the stress test quarters was built for

The best way to see why match rules matter is the play that broke spot-drop zones in the 1980s and 1990s: four verticals, four receivers running straight up the field. Against spot-drop Cover 3, four vertical routes meet three deep defenders, and one of them has to guard two receivers (Cover 3 shows the seam opening). Against quarters, the rules simply add up.

Show the Python
off = spread_2x2()
p = Play(off, quarters_vs(off, {"NB": (4.8, 6.2), "WILL": (4.8, -6.2), "MIKE": (4.8, 0.0)}), los=35, to_go=None)
p.route("X", r.go(22)); p.route("Z", r.go(22)); p.route("H", r.seam(21)); p.route("Y", r.seam(21))
p.dropback(2.5)
protect(p)
p.drop("LCB", (22.5, -14.6), speed=5.5); p.drop("RCB", (22.5, 14.6), speed=5.5)
p.drop("FS", (21.0, -8.0), speed=5.5); p.drop("SS", (21.0, 8.0), speed=5.5)
p.drop("WILL", (8.0, -9.0)); p.drop("NB", (8.0, 9.0)); p.drop("MIKE", (7.0, 0.0))
p.highlight("LCB", "RCB", "FS", "SS")
fld = p.draw(lateral="full", window=(-8.5, 25.0))
no_numbers(fld.ax)
ruler(fld, p)
say(fld, p, "corners: #1 deep", (13.5, -21.0), fs=6.6)
say(fld, p, "safeties: #2 deep", (13.0, 0.0), fs=6.6)
say(fld, p, "$, W: wall,\nthen sink", (14.0, 12.0), fs=6.4)
plt.show()
Figure 37.3: Four verticals against quarters from a spread 2x2 (the tight end flexed out as the right slot). Each corner (CB) takes #1 deep, man-to-man, because #1 went vertical; each safety (FS, SS) takes #2 deep, because #2 went vertical. The apex defenders (W on the left, $ on the right) wall the slots for a step or two, then sink under the outside receivers. Four vertical routes, four deep defenders, each on top of a receiver.

Notice what the defense didn’t need: a decision. Nobody had to choose between two receivers; the rules assigned one defender to each. That doesn’t make four verticals hopeless. Every deep defender is now man-to-man with nobody in the deep middle, so a great outside receiver against a corner (a fade, a back-shoulder throw) can still win, and the running back checking down against three underneath defenders is the offense’s release valve. Offenses also built concepts aimed straight at the safety’s read: dagger (a deep dig behind a clearing seam) and scissors (a post by #1 crossing a corner route by #2), both in Dropback Concepts, and the weaknesses section below adds three more.

The corner’s rule: MOD and MEG

The safety’s rule only works if the corner’s rule fits with it. Quarters teams use two, and the names come from the playbook vocabulary that spread out of Nick Saban’s defenses (more on that history below).

MOD, short for man only deep, is the standard quarters corner rule. The corner covers #1 man-to-man if #1 runs a deep route. If #1 breaks his route off short, about 5 yards or less (a hitch, a quick out, a slant, a shallow cross), the corner doesn’t chase him. He passes him to the underneath defenders and drops into his deep quarter, looking for the next threat to come into it. “Deep” here means anything past that 5-yard line, so a 12-yard dig or a curl counts: the corner stays on it. That is nearly word for word the rule Cameron Soran decoded from Saban’s playbooks, which also give the other two clauses of the same call. The safety: take all of #2 vertical; if #2 isn’t vertical, bracket #1. The apex defender: take the first man to the flat, rerouting #2 first if he starts vertical.2

MEG, short for man everywhere he goes, is the other rule. The corner covers #1 on every route, short or deep, no exceptions. You met MEG in Cover 3 as the backside corner’s rule in a trips check; it shows up wherever a defense needs one corner to take care of his man alone so that the defenders around him can do something else.

Show the Python
def modmeg_panel(ax, kind):
    off = spread_2x2()
    mv = {"NB": (4.8, -6.4)}
    if kind == "MEG":
        mv["LCB"] = (1.0, -14.1)                     # MEG from press, inside shade on X
    p = Play(off, quarters_vs(off, mv), los=35, to_go=None)
    p.route("X", r.slant(2, 6)); p.route("H", r.path((10, 0), (18, 5.5)))
    if kind == "MOD":
        p.highlight("LCB", "FS")
        p.drop("LCB", (15.5, -15.6), speed=4.0)
        p.drop("FS", (16.5, -13.2), speed=5.0)
        p.drop("NB", (5.0, -10.0)); p.drop("WILL", (6.5, -4.0))
        title = "MOD: #1 breaks short, so the corner zones off"
        lab = [("slant: left to\nthe underneath\ndefenders", (9.0, -21.0)),
               ("corner route:\nCB and FS\nboth on it", (20.5, -12.5))]
    else:
        p.highlight("LCB", "NB")
        p.drop("LCB", (3.8, -12.3), speed=5.0); p.drop("LCB", (6.6, -10.6), speed=5.0)
        p.drop("FS", (16.5, -14.5), speed=5.0)
        p.drop("NB", (10.0, -12.0), speed=5.0); p.drop("WILL", (6.0, -4.5))
        title = "MEG: the corner goes wherever #1 goes"
        lab = [("CB alone\non the slant", (9.0, -21.0)),
               ("$ freed: sinks\nunder the corner\nroute; FS over it", (20.5, -11.5))]
    fld = clip(p.draw(ax=ax, lateral=(-25.0, 3.5), window=(-6.5, 24.0), title=False))
    no_numbers(ax)
    for txt, at in lab:
        say(fld, p, txt, at, fs=6.6)
    say(fld, p, "#1", (-3.0, -15.0), fs=6.5); say(fld, p, "#2", (-3.8, -9.0), fs=6.5)
    ax.set_title(title, fontsize=8.0, loc="left", color=style.INK)


fig, axes = plt.subplots(1, 2, figsize=(6.6, 4.2))
for ax, k in zip(axes, ("MOD", "MEG")):
    modmeg_panel(ax, k)
fig.tight_layout(w_pad=0.8)
plt.show()
Figure 37.4: MOD and MEG against the same two routes, offense’s left side: X (#1) runs a quick slant, H (#2) a corner route toward the sideline. Left, MOD: X broke inside at 2 yards, so the corner (CB, ringed) lets him go to the underneath defenders (the nickel, $, drives on the slant) and drops into his deep quarter, right where H’s corner route is heading. The free safety (FS, ringed) carries H because H went vertical. Two defenders on the corner route, and the slant left to the defender in front of it. Right, MEG, played here from press: the corner stays with X on the slant by himself, with no inside help (the cost). In exchange the nickel (ringed) isn’t needed on the slant, so he is free to sink under H’s corner route while the free safety stays over it (the benefit). Both rules double one route; they differ in who is left alone.

The trade is clear in the two panels.

  • MOD keeps the corner deep and gives the defense extra help on the dangerous routes. Short routes by #1 are left to the defenders already in front of them (the apex defender, the linebackers), who can rally and tackle for a short gain. The corner, freed from the short route, becomes a second defender on whatever goes deep on his side, often #2 breaking outside, as here. The cost: the short throw to #1 is there if the underneath defenders are slow to it, and a receiver who fakes short and goes deep (a stop-and-go, a slant-and-go) can catch a MOD corner who passed him off too early.
  • MEG locks the corner on his man and frees someone else. In the figure the freed player is the nickel; in the trips checks of Disguise, Rotation, and Split-Field Coverage it is a whole safety, who leaves his side to help elsewhere. The cost: the corner is on an island with no inside help, and every route that breaks away from him, especially a slant or a dig against an off corner, is his problem alone. MEG needs a corner the defense trusts.

A defense picks between them by situation and by personnel. A team with one great corner might play him MEG on the opponent’s best receiver and MOD on the other side. Against a lone receiver in a trips formation, MEG on the backside corner is the standard way to free the backside safety. And in the red zone MEG becomes more common, because MOD’s escape hatch is gone: with the end line 10 or 15 yards away there is no deep quarter to retreat into, so the short routes are the dangerous ones, and a corner who passes them off has nothing left to guard.

NoteGo deeper: rules that agree with each other

The rules fit together like a contract. MOD says “I’ll let #1 go if he’s short”; the apex and hook defenders say “we’ll take what comes short, outside and inside”; the safety says “if #2 isn’t vertical, I’ll bracket #1,” covering the one thing MOD gives up deep. Change one clause, from MOD to MEG for example, and every other clause shifts with it. That is why match defenses talk so much before the snap.

Quarters against the run: the safeties fit from depth

Now the part of quarters that made it a run defense. Look back at the alignment: four defensive linemen and two linebackers in the box, six defenders, against five offensive linemen and a tight end, six blockers. By the box count of A First Look at Defense that is a light box: every run defender can be blocked and nobody is left over. A defense playing one-high would usually have walked its strong safety down to make it seven against six.

Quarters gets its seventh (and sometimes eighth) run defender from 9 or 10 yards away: when #2 blocks and the linemen fire out low, the safety comes downhill into the alley. College coaches with a 4-3 front call it a “nine-man front,” seven defenders near the line plus two safeties who arrive when the play is a run.

Show the Python
def run_play():
    off = pro_2x2()
    p = Play(off, quarters_vs(off), los=35, to_go=None)
    # inside zone right: the line steps right; Y base-blocks the end; the center and right tackle climb
    p.block("LT", "WDE"); p.block("LG", "WDT"); p.block("RG", "SDT"); p.block("Y", "SDE")
    p.block("C", "WILL", speed=2.6); p.block("RT", "MIKE", speed=2.6)
    p.run("RB", [(-4.6, 0.2), (-1.0, 2.6), (2.0, 4.6), (4.0, 6.5)], delay=0.25, speed=6.2, absolute=True)
    p.handoff("RB", 0.6)
    p.route("X", [(2.0, 0.0)], speed=3.0); p.route("Z", [(2.5, 0.0)], speed=3.0)   # stalk blocks
    p.route("H", r.seam(18))                                                     # H releases
    for k, to in (("WDE", (1.2, -4.6)), ("WDT", (1.3, -1.6)), ("SDT", (1.3, 2.0)), ("SDE", (1.4, 6.2))):
        p.path(k, [to], absolute=True, speed=1.0)
    p.path("MIKE", [(3.6, 2.6)], absolute=True, speed=2.0); p.path("WILL", [(3.8, 0.4)], absolute=True, speed=2.0)
    p.drop("SS", (5.2, 7.6), speed=4.6, delay=0.45)      # reads Y's low block: run, so fill the alley
    p.drop("FS", (16.0, -8.8), speed=5.0, delay=0.2)     # reads H's release: pass, so stay with him
    p.drop("RCB", (5.5, 13.6), speed=2.2, delay=0.4)     # Z blocks him: the corner comes up outside-in
    p.drop("LCB", (9.0, -15.4), speed=2.0); p.drop("NB", (6.0, -8.0), speed=2.0)
    p.highlight("SS", "FS")
    return p


run_c4 = run_play()
RUN_T = [0.0, 0.5, 1.3, 2.1]
if PDF:
    strip(run_c4, RUN_T, ["Snap · six in the box against six blockers", "+0.5 s · Y blocks low: the SS reads run",
                          "+1.3 s · SS fills the alley; FS stays on H", "+2.1 s · the SS meets the back"],
          ghosts=("SS", "FS"), lateral=(-20, 20), window=(-8.0, 18.5),
          notes_at={0: [("6 v 6", (-3.4, -6.5))], 2: [("H released:\nFS stays deep", (13.0, -14.0))],
                    3: [("alley", (8.0, 11.5))]})
    plt.show()
else:
    show_animation(run_c4, times=RUN_T)
Figure 37.5: Quarters against inside zone, frame by frame (simulated). Snap: six defenders in the box against six blockers, with both safeties (ringed) 9 to 10 yards deep. +0.5 s: the tight end Y (the strong safety’s #2) fires out low to block the end, and the line steps right: run. +1.3 s: the strong safety (SS) is already coming downhill into the alley outside the tight end, while the free safety (FS), whose #2 (H) released up the field, stays with him: H took the FS out of the run fit. +2.1 s: the ball carrier (R, with the brown ball beside him) bends the run outside and the SS meets him three or four yards downfield. The dashed outlines show where the safeties stood at the snap. The run went toward Y, so losing the FS cost the defense nothing here; the text explains why the offense would rather run the other way.

Three things in that play are worth slowing down for.

The trigger is a read, not a call. The strong safety didn’t know before the snap that this would be a run. He found out from Y’s block in the first half-second, and he went. That is the difference between quarters and the rotation of Disguise, Rotation, and Split-Field Coverage, where a safety is told before the snap to come down at the snap, read or no read. The called rotation arrives sooner, and it is wrong whenever the guess is wrong. The read arrives later, and an honest pass never pulls it forward, because #2 running a route is a pass read. Its weak spot is the dishonest run look, a play-action fake and a #2 who pretends to block, which is exactly what the bootleg flood below attacks.

He meets the back past the line of scrimmage. From 9 or 10 yards the safety is a beat later than a linebacker at 4 or 5, so he typically makes the play three to five yards downfield, roughly the bargain Run Fits and Box Math describes for the two-high light box: give up a four-yard run, never a forty-yard pass.

The other safety went with his receiver. The free safety’s #2, H, released up the field, a pass read, so the free safety stayed with him and was out of the run fit. Here that cost the defense nothing, because the run went toward Y and the safety who filled was the play-side one. Now flip it: run the same play to the left, toward H. H releases, the free safety (now the play-side safety) goes with him, and the only safety left to fill is the strong safety, on the backside, arriving late through traffic. That is the offense’s main weapon against quarters’ run defense, and it costs the offense little, one fewer blocker on the perimeter (the nickel is left unblocked, so the back has to beat him). Offenses with a good slot receiver run the ball away from the tight end for exactly this reason, and RPOs go one step further by letting the quarterback read that safety and throw to the receiver if he comes down anyway.

Had H blocked instead, the free safety still wouldn’t have raced to the ball. With the run going away from him he is the cutback player, filling late and inside-out in case the back reverses course, and the first defender who has to see a bootleg or a reverse coming back his way. Outside the safeties, the end sets the edge on the tight end’s side and the corner comes up once Z blocks him; on the slot side the nickel is both the force player and the first man to the flat, the overhang defender job (the defender outside the box, over the slot). Names vary by staff; the geometry, an outside defender who forces and a safety who fills inside him, doesn’t.

ImportantWhy it exists: run support from the secondary

What it solves. Most of the time a defense that wants an extra run defender has to show him: a safety walked down to 7 or 8 yards before the snap, which tells the offense to throw. Quarters hides the extra defender inside a two-high picture and lets the offense’s own blocking call him into the fit. Every running play is met by six defenders in the box plus one or two who arrive late from depth, and every pass that looks like a pass is met by two safeties who never left.

What it gives up. Time and certainty. The safety arrives after the back has crossed the line, so quarters gives up more yards per run than an eight-man box, and he must tackle in space with nobody behind him. And anything that disguises the read attacks the coverage at its heart.

Cover 6: quarters on one side, Cover 2 on the other

Quarters works beautifully when each side of the formation has two receivers. Formations don’t always cooperate. Against trips, one side has three receivers and the other a lone receiver, and on the lone receiver’s side there is no #2 at all: a read-#2 safety has nothing to read. The most common fix is to split the field. Cover 6 plays quarters on one half of the field and Cover 2 on the other, which is why coaches also call it quarter-quarter-half (the corner and safety each take a quarter on one side; one safety takes the whole half on the other). The number is dialect, not law: in Vic Fangio’s system the split-field family is Cover 6 and Cover 8, and his Cover 8 flips the halves, putting the Cover 2 half toward the passing strength (Coverage Fundamentals has the dialect notes).

Disguise, Rotation, and Split-Field Coverage shows Cover 6 in its most common NFL use, against a 2x2 set split by field position (quarters to the wide side, Cover 2 to the short side). Here it is against a 3x1 trips set, one of the formations that calls for it, with the split made by formation: quarters to the three receivers, Cover 2 to the lone receiver.

Show the Python
off = offense("gun_trips")
mv = {"RCB": (7.5, 17.6), "SS": (9.5, 8.6), "NB": (4.6, 7.5), "MIKE": (4.8, 2.4), "WILL": (4.8, -2.2),
      "LCB": (5.5, -16.2), "FS": (12.5, -7.0)}
p = Play(off, quarters_vs(off, mv), los=35, to_go=None)
p.zone((18.0, -13.0), (8.0, 25.0), "deep ½")
p.zone((18.0, 6.5), (7.0, 12.0), "¼"); p.zone((18.0, 19.0), (7.0, 12.0), "¼")
p.zone((3.8, -20.0), (4.0, 8.0), "flat")
p.highlight("LCB", "RCB", "FS", "SS")
fld = p.draw(lateral="full", window=(-7.5, 25.5))
no_numbers(fld.ax)
ruler(fld, p, widths=True)
(x0, y0), (x1, y1) = fld.xy(*p.to_abs(-6.5, 0.0)), fld.xy(*p.to_abs(24.5, 0.0))
fld.ax.plot([x0, x1], [y0, y1], color=style.INK_2, lw=1.0, ls=(0, (6, 4)), zorder=2)
say(fld, p, "COVER 2 HALF", (23.6, -6.5), fs=7.5, weight="bold")
say(fld, p, "QUARTERS", (23.6, 5.0), fs=7.5, weight="bold")
for txt, key in (("#1", "Z"), ("#2", "H"), ("#3", "Y")):
    q = p.players[key]
    say(fld, p, txt, (q.d - 2.6, q.w), fs=6.6)
say(fld, p, "CB: squat,\nthe flat", (8.6, -20.6), fs=6.4)
say(fld, p, "FS: deep half\nover X", (15.2, -7.0), fs=6.4)
say(fld, p, "W: curl/hook", (7.4, -4.6), fs=6.4)
say(fld, p, "CB: MOD on #1", (11.0, 20.6), fs=6.4)
say(fld, p, "SS: read #2", (12.3, 9.4), fs=6.4)
say(fld, p, "$: wall #2", (2.7, 10.8), fs=6.4)
say(fld, p, "M: carry #3\nif vertical", (7.6, 3.2), fs=6.4)
plt.show()
Figure 37.6: Cover 6 against 3x1 (trips right, the tight end Y attached as #3). The dashed line splits the two halves. Right, toward the three receivers, quarters: the corner plays MOD on #1 (Z), the strong safety reads #2 (H), the nickel ($) walls #2 from the apex, and the Mike carries #3 (Y) if he runs up the middle. Left, toward the lone receiver X, Cover 2: the corner squats 5 yards off with outside leverage to take the flat and short outside throws, the Will takes the curl and hook, and the free safety (FS) stands deeper and wider, 12 to 13 yards deep a few yards outside the hash, to take the whole deep half over X. Before the snap the halves already disagree: one shallow corner and one deep, one deep wide safety and one shallow inside one. That asymmetry is the Cover 6 tell.

Why put Cover 2 on the lone receiver? Look at what the two defenders on that side are doing to X. The squat corner sits in front of him, taking away the quick out, the hitch and the flat; the half-field safety sits over the top of him, taking away the go route. X is bracketed under and over by two defenders, which is more help than most single receivers ever see. That matters because offenses put their best receiver alone on the backside of trips precisely to get him a one-on-one matchup. Cover 6 says no.

The cost is on the trips side, where four defenders (corner, safety, nickel and Mike) handle three receivers who can all run deep. Nobody is uncovered: the corner has #1, the safety #2 and the Mike #3 if he runs up the middle. The problem is the matchup. If #2 and #3 both go vertical, the safety takes #2 and the Mike is left running down the seam with a tight end or a slot receiver, a race most linebackers lose. That is the trips problem in its purest form, and two-high defenses carry other answers to it, such as poach (the backside safety leaves the lone receiver to his corner and comes across to help on #3), which Disguise, Rotation, and Split-Field Coverage covers in detail. Cover 6 is the simplest answer: give the lone receiver to two defenders, and trust four on three.

Cover 6 is also how Cover 2 survived: too easy to attack as a whole defense (Cover 2 and Tampa 2), it still earns its keep as half of one, aimed at the short side or a lone receiver. By NFL Next Gen Stats’ count, Cover 6 was 9.2% of coverages in 2025.3 After the snap the corners give it away, one squatting and one bailing; the Watch-for-it box at the end has the full sequence.

Palms: the corner who traps the out

Quarters has one obvious soft spot: the flat, in the first second after the snap. The apex defender’s rule makes him the owner of the flat, but he starts inside #2, walling him off the seam, 4 or 5 yards from where a quick out breaks. On a throw that comes out in about a second he can’t widen in time. The corner is 8 yards deep playing #1, and the safety is reading #2 from 9. So a quick throw to #2 breaking toward the sideline lands in front of everyone. Offenses learned to throw it all day: the slot receiver’s quick out, the “now” throw to the flat (a cousin of the now screen), the out by the slot in a smash-type concept.

Palms is the answer. The same coverage goes by 2-read and, because of what the corner does, trap coverage. Different staffs use different names and slightly different rules, but the core is one adjustment on one side of the field: the corner reads #2 instead of #1.

  • If #2 breaks out quickly (inside the first 5 yards or so), the corner leaves #1 and jumps #2’s out or flat route. He was 6 or 7 yards deep, square or a little outside #1, with his eyes turned in to #2, so he comes forward and outside-in onto the throw instead of chasing it. That is the trap.
  • The safety, seeing #2 go out, takes #1 deep: he’s now the deep defender over the outside receiver whom the corner just left. In Saban’s version the safety’s rule reads: take #1 vertical if #2 is out in the first 5 yards; otherwise, take all of #2 vertical, and if #2 isn’t vertical, bracket #1.4
  • If #2 goes vertical, the safety carries #2 and the corner plays #1 man to man, in most versions without the MOD release, so a short route by #1 runs into a corner who is already shallow and squeezing.
Show the Python
def palms_play():
    off = spread_2x2()
    p = Play(off, quarters_vs(off, {"LCB": (6.3, -15.9)}), los=35, to_go=None)
    p.route("H", r.out(5.5, 6)); p.route("X", r.path((3, 0.6), (24, 1.4)))
    p.route("Y", r.seam(16)); p.route("Z", r.hitch(6))
    p.route("RB", r.flat(1.5, 5), side=1)
    p.dropback(2.5); p.pass_to("H", t=1.05)
    protect(p)
    p.drop("LCB", (6.6, -15.8), speed=1.0)                                    # sits and reads #2
    p.path("LCB", [(4.4, -15.0)], absolute=True, speed=4.6, delay=0.45)      # #2 out: drive on it, outside-in
    p.drop("FS", (19.0, -14.6), speed=6.0, delay=0.25)                        # #2 out: take #1 vertical
    p.drop("NB", (5.6, -8.4), speed=3.0); p.drop("NB", (4.4, -11.6), speed=3.5)   # walls H inside, late to widen
    p.drop("WILL", (8.0, -4.0)); p.drop("MIKE", (6.5, 4.0))
    p.drop("SS", (15.0, 6.5)); p.drop("RCB", (8.5, 15.6), speed=2.0)
    p.highlight("LCB", "FS")
    return p


palms = palms_play()
PALMS_T = [0.0, 0.6, 1.4, 2.0]
h6, x6 = palms.position("H", 0.6), palms.position("X", 0.6)
if PDF:
    strip(palms, PALMS_T, ["Snap · it looks like quarters", "+0.6 s · #2 breaks out; CB reads him",
                           "+1.4 s · CB drives on it; FS takes X", "+2.0 s · thrown into the CB"],
          ghosts=("LCB", "FS"), lateral=(-25, 11.5), window=(-9.0, 23.0),
          notes_at={1: [("#2", (float(h6[0]) - 2.6, float(h6[1]))), ("#1", (float(x6[0]) - 2.8, float(x6[1])))],
                    2: [("$ walled H inside:\ntoo late to widen", (-5.4, -10.0))]})
    plt.show()
else:
    show_animation(palms, times=PALMS_T)
Figure 37.7: Palms on the offense’s left, frame by frame (simulated). Snap: the picture is quarters, except that the corner (CB, ringed) is a yard or so shallower than usual, square to slightly outside X, with his eyes turned in to H, the #2 receiver. +0.6 s: H breaks to the sideline on a quick out at 4 yards; the corner’s eyes are on him, and the free safety (FS, ringed) sees it too. +1.4 s: the corner has left X and is driving forward, outside-in, onto the out; the free safety has turned and is taking X deep. The nickel ($), who walled H from the inside, is still yards away from the flat. +2.0 s: the quarterback, who saw an off corner before the snap and thought the out would be open, has thrown it, and the ball arrives with the corner already in the throwing lane. The dashed outlines show where the corner and safety stood at the snap.

Watch the timing. The out route is a rhythm throw: the quarterback decides before the snap, takes his drop and lets it go as #2 breaks, about a second after the snap. He threw it because the corner looked like a quarters corner, off and playing the outside receiver. Why would he fall for it if there is a tell? Because the tell is a yard of depth and a turn of the head, often disguised until the snap, and a rhythm throw is decided before the snap: the quarterback isn’t re-reading the corner as he lets it go. A Palms corner’s eyes were on #2 from the start, and he started forward the moment #2 broke. Against a throw that travels 15 or more yards across the field, a defender coming downhill onto the route gets to the catch point first. That’s how quick outs become interceptions returned the other way.

Palms also cleans up two routes that trouble Cover 2. Against smash (a hitch by #1, a corner route by #2), #2’s corner route starts vertical, so the safety carries it, and the hitch runs into the corner, who is manned up on #1 and sitting on it. Against a slot’s flat route paired with a curl by #1, the corner jumps the flat and the safety, who no longer has a vertical #2, drives on the curl from inside.

ImportantWhy it exists: taking away the throw quarters gives up

What it solves. Quarters concedes quick outside throws to #2. Palms puts a defender on them without adding one: the corner, who would have been 8 yards deep over a #1 who isn’t going deep, trades jobs with the safety, who would have had nothing to do once #2 went to the flat.

What it gives up. The trap is a guess about the route, and good offenses bait it. A #2 who breaks out and then turns up the sideline (an out-and-up, or a wheel) runs right past the jumping corner, and the safety is busy with #1. A #1 who runs a double move against a safety coming from inside can win too. And the corner who reads #2 is, for a moment, not watching #1 at all, so a fast #1 on a quick slant inside him can be open in the first second. Defenses mix Palms with plain quarters for exactly this reason: a corner who always traps gets beaten by the play designed for him.

How do you spot it? Before the snap, barely: the Palms corner is often a yard or two shallower than the other corner, with his shoulders and eyes turned in toward the slot. After the snap it’s unmistakable: the corner comes forward toward #2 while the safety on that side runs outward and deep over #1, and the two cross like a pair of scissors. Palms is usually played to one side, often the short side of the field or a 2x2 side, while the other half plays its own call, which makes it another piece of the split-field toolbox.

Who decides: calls, checks and motion

Three coverages that look alike before the snap raise an obvious question: how do eleven defenders know which one they’re in? Usually in two layers. The sideline sends in a call for the family, and the players on each side check within it once they see the formation. The corner and safety on a 2x2 side might play quarters or Palms depending on the receivers’ splits; a 3x1 set might turn the call into Cover 6 or a trips check such as poach. A safety or the Mike makes the strength call, by shout and hand signal, so both halves agree where the split is.

Motion tests all of that, because motion changes who is #2. Receivers are recounted from the sideline after every move. If H motions from the left slot across to the right, the free safety’s side suddenly has one receiver and no #2 to read, and the right side has three. The defense has a second or two to re-declare: the strength flips, the free safety becomes a lone-receiver-side player (a Cover 2 half, or a poach player watching #3), and the apex defender usually slides over with the motion, a bump that keeps everyone in his zone. Get the re-declaration wrong and two defenders take the same receiver while the new #2 runs free. That is a big reason offenses motion so much against split-field defenses (Disguise, Rotation, and Split-Field Coverage has the offense’s side, Motion and Shifts as Weapons the defense’s answers).

Why two-high match took over the NFL, 2018 to 2025

None of this was new in 2018. What changed is how much NFL defenses used it. NFL Next Gen Stats (the league’s tracking-data arm) measures how often defenses play a split-safety (two-high) coverage after the snap: 32.9% of dropbacks in 2018, 37.8% in 2021, 40.4% in 2024 and 42.0% in 2025, the highest since its tracking began. Quarters was the biggest single piece: Cover 4 alone was 17.2% of 2025 coverages by Next Gen Stats’ count, against a 2018–2024 average of 13.9%, with Cover 2 at 13.9% and Cover 6 at 9.2%.5

You can rebuild the trend yourself from the free nflverse data, which carries a coverage label on each charted play. The labels come from charting: people watching film of every play and tagging it, here with the coverage they think the defense played. Coverage is tagged essentially only on passing plays (dropbacks, plays where the quarterback drops back to pass), because on a run nobody can tell what the coverage would have become. That human judgment is the caveat.

Show the Python
from gridiron.data import nfl

part = nfl().load_participation(list(range(2018, 2026))).to_pandas()
cv = part[part["defense_coverage_type"].notna()].copy()
gid = cv["nflverse_game_id"].str.split("_", expand=True)          # e.g. 2024_02_SF_MIN
cv["season"], cv["week"] = gid[0].astype(int), gid[1].astype(int)
cv = cv[cv["week"] <= np.where(cv["season"] <= 2020, 17, 18)]    # regular season only
cv = cv[~cv["defense_coverage_type"].isin(["BLOWN", "COMBO", "PREVENT"])]
share = pd.crosstab(cv["season"], cv["defense_coverage_type"], normalize="index") * 100
two = share[["COVER_2", "2_MAN", "COVER_4", "COVER_6"]].sum(axis=1)
NGS = {2018: 32.9, 2021: 37.8, 2024: 40.4, 2025: 42.0}            # published, NFL.com (see notes)

fig, axes = plt.subplots(2, 1, figsize=(6.5, 5.4), sharex=True, gridspec_kw={"height_ratios": [1.15, 1]})
ax = axes[0]
ax.plot(two.index, two.values, marker="o", ms=4.5, color=style.SERIES[0], label="nflverse charting labels")
ax.scatter(list(NGS), list(NGS.values()), s=46, facecolor="white", edgecolor=style.SERIES[1], lw=1.6,
           zorder=3, label="NFL Next Gen Stats (published)")
for yr, v in two.items():
    ax.text(yr, v + (-2.0 if yr == 2024 else 1.0), f"{v:.0f}", ha="center", fontsize=7, color=style.SERIES[0])
ax.set_ylim(28, 47)
ax.set_ylabel("Two-high, % of dropbacks", fontsize=8.5)
ax.legend(loc="upper left", fontsize=7.5)
ax.set_title("Two-high coverage after the snap, 2018–2025 regular seasons", fontsize=10)
ax = axes[1]
for col, lab, c in (("COVER_2", "Cover 2", style.MUTED), ("COVER_4", "Quarters (Cover 4)", style.SERIES[2]),
                    ("COVER_6", "Cover 6", style.SERIES[3])):
    ax.plot(share.index, share[col], marker="o", ms=4, color=c, lw=1.8, label=lab + " (nflverse)")
ngs25 = {"Cover 4": 17.2, "Cover 2": 13.9, "Cover 6": 9.2}
ax.scatter([2025] * 3, list(ngs25.values()), s=40, facecolor="white", edgecolor=style.SERIES[1], lw=1.5,
           zorder=3, label="NGS 2025 (published)")
for lab, v in ngs25.items():
    ax.text(2025.17, v, f"{lab} {v}", fontsize=7, color=style.INK_2, va="center")
ax.legend(loc="upper left", fontsize=7.0, ncol=1)
ax.set_ylim(0, 31)
ax.set_ylabel("% of dropbacks", fontsize=8.5)
ax.set_xlim(2017.6, 2026.4)
ax.set_xticks(range(2018, 2026))
for a in axes:
    a.axvline(2022.5, color=style.INK_2, lw=1.0, ls=(0, (4, 3)))
axes[0].text(2022.58, 46.2, "source break:\nNGS charting → FTN charting", fontsize=7, color=style.INK_2, va="top")
fig.tight_layout(h_pad=0.8)
plt.show()
Figure 37.8: Top: share of charted regular-season dropbacks played as a two-high coverage after the snap (Cover 2, 2-Man, quarters or Cover 6), 2018–2025. Blue: the nflverse charting labels; orange rings: the figures NFL Next Gen Stats published. Both rise from about a third of dropbacks to over 40%. Bottom: the components, from the same labels. Here the source break matters: the coverage labels come from NGS charting through 2022 and from FTN Data charting from 2023 (dashed line), and the two charters sort two-high snaps differently. FTN calls far more of them Cover 2 and far fewer quarters than NGS did, and Next Gen Stats’ own counts for 2025 (orange rings at right) put quarters at 17.2%, against 10.0% in the FTN labels. Read each side of the line on its own: before it, quarters and Cover 6 climb steadily; after it, the total is consistent but the split between Cover 2 and quarters is a charting choice, not a trend.

The top panel is the trend, and the two sources agree on it: about a third of dropbacks in 2018, over 40% by 2022 and again in 2025, with a dip in 2024 that only the nflverse labels show.6 The bottom panel is a lesson in reading charting data. Through 2022 the components climb together; after the switch from NGS to FTN charting, quarters appears to collapse while Cover 2 soars. Nothing like that happened on the field. Two groups of charters drew the line between “two safeties guarding halves” and “two safeties reading #2” in different places, and NGS’s own 2025 counts, shown as rings, disagree with the FTN labels by close to a factor of two in both directions. Both are honest. Quarters and Cover 2 look alike before the snap and for a beat after it, and the difference is in rules a charter has to infer. Palms is the extreme case: on one snap it plays like quarters, on the next like a corner squatting in the flat, so where it lands depends on who is charting. Use the total, which is robust, and be careful with the split. (The nflverse data has the same kind of break in its man/zone labels, which is why Man Coverage doesn’t chart a man-coverage trend across 2022–2025.)

Why the rise? No single cause, but five reasons show up again and again in coaches’ and analysts’ explanations, and they reinforce each other.

  1. Explosive passes became the thing to stop. The plays that decide games are the long completions (Expected Points and Success Rate shows why a 40-yard pass is worth so much more than a 4-yard run), and by the late 2010s passing was more efficient than ever. The 2018 season was the loudest version: Patrick Mahomes threw 50 touchdown passes in his first year as a starter, and the Rams beat his Chiefs 54–51 on a Monday night in November.7 Two deep safeties are the most direct protection against the explosive pass, and quarters keeps two deep without giving up the run.
  2. Match rules answered the spread passing game. Offenses built on putting two receivers in one zone defender’s area ran into zones that followed the receivers.
  3. The extra run defender could come from depth. A defense that played one-high with an eighth man in the box was guessing run every snap, and run-pass options punished that guess (RPOs). Quarters’ read safeties are harder to put in conflict before the snap, because their run job is decided by the play itself.
  4. Two-high pictures disguise everything. From a two-high shell a defense can play quarters, Cover 6, Palms, Cover 2 or 2-Man, or rotate into a one-high coverage at the snap. The more of those it plays, the less the quarterback learns before the snap (Disguise, Rotation, and Split-Field Coverage).
  5. Coaching trees and a college pipeline. Coaches who learned split-field quarters in college (more below) reached NFL staffs, and one tree in particular spread it: that of Vic Fangio, whose two-high defenses in Chicago (as coordinator) and Denver (as head coach, 2019–2021) became the model. His story is a case study: Fangio’s Two-High Revolution and Macdonald’s Answer.

There is a sixth condition that isn’t a cause so much as a price of admission: a four-man rush that can win. A light box and two deep safeties work only if four rushers can pressure the quarterback without help, because nobody else is coming. Quarters teams can blitz, usually with an apex defender or a linebacker, but every extra rusher comes out of the four-over-two, so much of their pressure is still four rushers chosen in a surprising way, a simulated pressure. The defenses that lived in two-high were also the ones with dominant interior rushers, a pattern you’ll see in the film room.

And offenses answered. If quarters invites the run against a light box, run it; if it reads #2, make #2 a blocker. The 2024 and 2025 seasons brought more two- and three-tight-end personnel and more snaps under center, the subject of The Modern Era.

A short history: from Cleveland to East Lansing and Iowa City

Four defenders deep is an old idea; prevent defenses have used it for decades. Quarters as a read coverage whose safeties fit the run is mostly a product of 1990s and 2000s college football, with one important root in the NFL.

That root is Cleveland. Nick Saban was Bill Belichick’s defensive coordinator with the Browns from 1991 to 1994, and the pattern-matching rules the two developed there, first for Cover 3 and then for the quarters family, went with Saban to Michigan State as head coach in 1995 and later to LSU and Alabama.8 Saban’s vocabulary is the one this chapter has been using (MOD, MEG, Palms), plus “Cover 7” for his quarters-based split-field family (Disguise, Rotation, and Split-Field Coverage) and “Rip” and “Liz” in his match Cover 3 (Cover 3). One set of match rules, several coverages: that’s the Saban-Belichick inheritance. Like most who-invented-it stories, this one has rivals; other staffs were building match rules at the same time, and the coverage numbers themselves meant different things in different buildings.

Michigan State kept the quarters thread alive after Saban left. Under head coach Mark Dantonio, who had coached Saban’s secondary in East Lansing, and defensive coordinator Pat Narduzzi (2007–2014), the Spartans’ 4-3 quarters became one of the most studied defenses in the country (the film room has its best season). Narduzzi came to Cover 4 the hard way: in 2002, as a Northern Illinois assistant, he watched Miami (Ohio)’s Ben Roethlisberger throw for 525 yards against his defense’s two-deep look, and when he became Miami’s defensive coordinator the next year, by his own telling at a 2014 clinic, his answer was Cover 4.9

Iowa is the other long-running reference point. Norm Parker installed his 4-3 defense when Kirk Ferentz took over the program at the end of the 1990s, and Phil Parker (no relation), the defensive coordinator since 2012, kept it: a front that holds up against the run while the safeties play split-field quarters behind it, year after year.10 TCU’s Gary Patterson built a 4-2-5 (four linemen, two linebackers, five defensive backs) around the same idea. When NFL defenses went looking for a two-high answer to the spread offenses of the late 2010s, this is where the coaching knowledge was.

Where quarters breaks

The holes of quarters follow directly from its rules. An offensive coordinator facing a quarters team starts with three of them.

Light-box runs

You’ve already seen the first, in the run-fit section: six in the box against six blockers, with the safeties arriving late, and an offense that releases #2 or reads the safety with an RPO to take one of them away. The other lever is simpler: add a blocker. Two-tight-end and fullback sets make #2 a blocker who can block the safety, or put a seventh blocker against a six-man box so the box is outnumbered before anyone arrives from depth; the heavier personnel of 2024 and 2025 was partly this. The defense’s counters are a front that holds its gaps without help (which is why two-high defenses prize big interior linemen), safeties who tackle in space, and a willingness to give up four-yard runs. Run Fits and Box Math has the data on what runs against light boxes actually gain.

The bootleg flood

Play-action attacks any coverage whose defenders read the run. Quarters is special because its deep defenders read the run.

Show the Python
def boot_play():
    off = [q.moved(w=8.5) if q.key == "Z" else q for q in offense("ace")]   # Z in a tight split
    dfn = defense("4-3_over", "two_high", off)
    mv = {"LCB": (7.5, -16.4), "RCB": (7.5, 9.3), "FS": (9.5, -6.0), "SS": (9.5, 5.5), "WILL": (4.5, -4.2)}
    dfn = [q.moved(d=mv[q.key][0], w=mv[q.key][1]) if q.key in mv else q for q in dfn]
    dfn = [q.moved(label="CB") if q.pos == "CB" else q for q in dfn]
    p = Play(off, dfn, los=35, to_go=None)
    for k in ("LT", "LG", "C", "RG", "RT"):
        p.block(k, pts=[(0.6, 1.4)])
    p.block("Y", pts=[(0.5, 0.8)])
    p.path("RB", [(-4.5, 2.6), (-2.0, 5.0)], absolute=True, speed=5.5)                # the run fake
    p.path("QB", [(-3.2, 1.0), (-6.0, -2.5), (-6.5, -6.5)], absolute=True, speed=5.0)   # fake, then boot left
    p.route("X", r.go(24))
    p.route("U", [(0.6, 0.6), (0.7, 0.9), (1.8, 2.6), (3.5, 8.0)], speed=6.0)   # sells the block, then the flat
    p.route("Z", r.path((4, -1.5), (12, -13), (13.5, -21)))             # deep over, across the field
    p.pass_to("Z", t=2.9)
    p.drop("FS", (6.0, -5.0), speed=3.5)              # U's block says run: he steps up...
    p.drop("SS", (6.5, 4.8), speed=3.5)               # ...and so does the SS, keyed on Y
    p.drop("LCB", (21.0, -16.4), speed=5.5)           # MOD: X went deep, so he goes too
    p.drop("RCB", (11.0, 7.0), speed=4.6); p.drop("RCB", (13.6, -5.0), speed=4.6)   # trails Z across
    p.drop("WILL", (3.4, -3.8), speed=3.0); p.drop("WILL", (3.6, -9.6), speed=4.0)
    p.drop("MIKE", (3.0, 2.6), speed=3.0); p.drop("SAM", (3.0, 7.4), speed=3.0)
    p.highlight("FS", "Z")
    return p


boot = boot_play()
fld = clip(boot.draw(lateral=(-25, 14), window=(-9.5, 24.5), title=False))
no_numbers(fld.ax)
ruler(fld, boot)
say(fld, boot, "FS: U's fake block says run,\nso he steps up; the over\nroute lands behind him", (18.4, 0.5), fs=6.3)
say(fld, boot, "CB: MOD, carries X", (22.6, -14.6), fs=6.3)
say(fld, boot, "deep", (16.0, -18.4), fs=6.0, color=style.OFFENSE)
say(fld, boot, "~12 yd", (15.4, -12.4), fs=6.0, color=style.OFFENSE)
say(fld, boot, "flat", (4.8, -12.6), fs=6.0, color=style.OFFENSE)
say(fld, boot, "U: fakes a\nblock, then\nleaks out", (-4.0, -10.8), fs=6.0)
say(fld, boot, "trailing CB", (14.6, -2.2), fs=6.0)
plt.show()
Figure 37.9: A bootleg flood against quarters. The offense is in 12 personnel (two tight ends, U on the left and Y on the right; Z in a tight split), so the defense is in its base 4-3, with a Sam linebacker (S) next to the strong safety (SS). The offense fakes an outside zone run to the right and the quarterback rolls left. Three receivers flood the left side at three depths (the blue tags): X runs deep and the corner (MOD) carries him; U fakes a block for a beat, then leaks out to the flat; Z runs a deep over route from the far side and is caught at about 12 yards. The free safety (ringed) reads U, his #2, and U’s fake block says run, so he steps up. The over route lands behind him and in front of the corner, with the corner from the other side trailing. The strong safety, keyed on Y’s block, stepped up too.

Walk through it from the defense’s side. The corner saw #1 go deep and went with him: correct, MOD. The Will stepped up on the fake, then chased U to the flat: correct. The free safety read #2, saw a block and came forward: correct by his rule, and wrong, because U’s block was a fake. An honest pass never fools a quarters safety; a pass dressed as a run can, because for a beat the fake and the real thing look the same. The over route, coming from the other side of the field, entered the space between the corner (deep with X) and the safety (up for the run) where nobody’s rule put a defender: three receivers at three depths on one side, against defenders whose first read sent them the wrong way. The fake has to hold one more defender. On a bootleg the end on the side the quarterback rolls to is usually left unblocked, so the quarterback is running toward a free rusher who must bite on the run fake too.

It isn’t that play-action is magic against quarters in particular. In the nflverse charting for 2023–2025, play-action raised the average result of a dropback against quarters by about as much as it did against Cover 3 or Cover 1.11 The point is which play-action. A run fake that pulls the safeties forward, paired with a deep crosser from the far side, attacks the exact gap between quarters’ corner rule and its safety rule. The defense’s counter is discipline in the read (safeties taught to key through the blocker to the linemen and the quarterback, not just #2’s first step) and calls that tell the safety on the bootleg side to stay deep no matter what, at the cost of the run fit.

The running back’s wheel

The third weakness hides in the rule for the apex defender: take the first man to the flat.

Show the Python
off = [q.moved(w=2.3) if q.key == "RB" else q for q in spread_2x2()]   # back offset to the QB's right
p = Play(off, quarters_vs(off, {"NB": (4.8, 6.2), "WILL": (4.8, -2.4), "MIKE": (4.8, 1.6)}), los=35, to_go=None)
p.zone((19.0, 20.5), (8.0, 9.0), "empty")
p.route("Z", r.dig(12, 12)); p.route("Y", r.slant(2, 6))
p.route("RB", [(-3.8, 8.0), (-1.2, 12.6), (2.0, 17.6), (8.0, 20.2), (20.0, 20.8)], absolute=True, speed=7.5)
p.dropback(2.5); p.pass_to("RB", t=2.2)
protect(p)
p.drop("RCB", (10.6, 14.6), speed=5.0); p.drop("RCB", (11.8, 10.2), speed=5.0)   # MOD: #1 went deep, stay on him
p.drop("SS", (13.6, 7.6), speed=4.0)                                          # #2 not vertical: bracket #1
p.drop("MIKE", (5.6, 4.0), speed=4.0); p.drop("WILL", (6.5, -2.0))
p.drop("NB", (5.4, 8.0), speed=3.0); p.drop("NB", (2.5, 12.5), speed=5.0)     # first man to the flat...
p.drop("NB", (4.0, 16.8), speed=5.0); p.drop("NB", (10.6, 19.0), speed=5.0)                                         # ...then chasing up the sideline
p.highlight("NB", "RB")
fld = clip(p.draw(lateral=(-5, 26.6), window=(-8.5, 25.0), title=False))
no_numbers(fld.ax)
ruler(fld, p)
say(fld, p, "SS: #2 not vertical,\nso bracket #1's dig", (16.8, 7.0), fs=6.3)
say(fld, p, "CB: dig > 5 yd,\nMOD stays on #1", (6.6, 10.6), fs=6.3)
say(fld, p, "$: first man to the flat,\nnow chasing from behind", (-5.0, 18.4), fs=6.3)
plt.show()
Figure 37.10: The running back’s wheel against quarters, offense’s right side. Z (#1) runs a dig, past 5 yards, so it counts as deep and the corner (MOD) stays on him and follows him inside. Y (#2) runs a quick slant inside, so the strong safety, with no vertical #2, works inside and over the top to bracket Z’s dig, and the Mike takes the slant. The running back (R, ringed, aligned to the quarterback’s right) releases to the flat; the nickel ($, ringed) takes him as the first man to the flat, and then the back turns up the sideline. The ball is caught about 15 yards downfield with the nickel chasing from behind and the deep outside quarter empty: the corner and the safety both went inside with the routes in front of them.

Each rule is reasonable on its own. Together, the routes in front of the corner and the safety pulled both of them inside, and the back’s route started as a flat route (the apex defender’s) and became a deep route down the sideline (nobody’s). The defender left with him is a nickel back or a linebacker, chasing a running back from behind, with an empty deep quarter in front of them. The wheel is the classic match-coverage beater because it changes category in the middle of the play: short when the rules assign it, deep when it’s caught.

Defenses answer by teaching the apex player to “carry” a flat route that turns up, and by telling the corner, when #1 goes inside, to look for something coming outside behind him; each answer loosens something else. The offense’s side of all this, the full menu of concepts aimed at quarters’ rules, is the job of Concepts Versus Coverages.

Film room

NoteFilm room: Rams 2020 — the two-high shell and its quarters share

Brandon Staley’s one season as the Rams’ defensive coordinator is usually told as a story about disguise (Disguise, Rotation, and Split-Field Coverage tells it that way). Underneath the disguise was a lot of plain quarters. In the nflverse charting for the 2020 regular season, the Rams played quarters or Cover 6 on 36.1% of charted dropbacks, third-most in the league behind San Francisco and Chicago, against a league rate of 20.4%. Their single most common coverage after the snap was still Cover 3 (41.8%), much of it rotated down from a two-high look; quarters and Cover 6 were the next biggest pieces.12 Staley had come from Fangio’s staffs in Chicago and Denver, and the Rams had the two players a quarters defense most wants: Aaron Donald, an interior pass rusher who could win with four, and Jalen Ramsey, a cornerback who could play outside or in the slot.13

What to notice: on a Rams early down from 2020, check the safeties’ depth before the snap. They are often at 10 yards or less, over the slot or the tight end, not at 13 on the hashes. Then watch the first step of the safety on the tight end’s side. On runs he comes downhill into the alley; on passes with the tight end releasing, he turns and runs with him. Expect rotation on many snaps too: a safety who spins into the deep middle at the snap isn’t a contradiction, just the Cover 3 half of the menu.

NoteFilm room: Broncos 2022 — Ejiro Evero and the trusted corner

Ejiro Evero, a safeties and secondary coach on the Rams’ staff through 2021, became Denver’s defensive coordinator in 2022. The Broncos went 5–12, but the defense finished seventh in the NFL in total defense (320 yards a game) and tied for third in net yards per pass attempt (5.6).14 In the nflverse charting the 2022 Broncos played quarters or Cover 6 on 33.3% of dropbacks, sixth in the league (the league rate was 24.8%), though, as with the Rams, Cover 3 was their most common single coverage (46.8%). Their second-year cornerback Patrick Surtain II was named first-team All-Pro.15 Evero has run Carolina’s defense since 2023 and returns as its coordinator in 2026.

What to notice: this is the place to watch the corner rules. A corner the defense trusts alone lets it play MEG on one side and lean its safety toward the other, or bracket the other side’s best receiver in Cover 6. On a 2022 Broncos passing down, find Surtain first, then the safety on his side. If the safety drifts away from him at the snap, Surtain is likely on an island by design.

NoteFilm room: Michigan State 2013 — Narduzzi’s quarters

The college reference point. Michigan State’s 2013 defense, coordinated by Pat Narduzzi, led the nation in total defense through the regular season (248.2 yards a game) and ranked third in scoring defense (11.3 points a game), and Narduzzi won the Broyles Award as the top assistant in college football.16 Cornerback Darqueze Dennard won the Thorpe Award as the nation’s best defensive back, the first Spartan to win it.17 The defense was a 4-3 with quarters behind it: two safeties at 8 to 10 yards reading #2 and fitting the run, and corners who played their receivers aggressively, so aggressively that Narduzzi admitted his quarters “can look like man a lot of the time.”18

What to notice: on 2013 Michigan State film, count the run defenders one second after the snap of a running play: seven start near the line, and there are often nine once both safeties arrive. On passes, watch the corners press and carry receivers deep: MOD from press, which is why it looks like man.

TipWatch for it on Sunday: two-high, now what?

When the defense shows two deep safeties, don’t stop at “two-high.” Use the next three looks. On the broadcast angle the safeties are usually in the frame before the snap and the wide corners often aren’t, so read the safeties live and save the corners for the replay.

  • Before the snap: depth and width. Safeties at 12 to 14 yards, outside the hashes: think Cover 2 or a half-field player. Safeties at 8 to 10 yards over the slot or the tight end: think quarters. One deep and wide, one shallow and inside: think Cover 6, with the half on the deep safety’s side. Then the corners, if you can see them: both off 7 or 8 yards, eyes on their receivers, suggests quarters; one squatting at 5 with outside leverage suggests a Cover 2 half; one a yard or two shallower than the other, with his shoulders turned in to the slot, suggests Palms.
  • At the snap: the safeties’ first steps. Watch one safety for one second. Backpedal or turn and run for the sideline: a half-field player (Cover 2, or the Cover 2 side of Cover 6). Downhill toward the line: a quarters safety reading run, or a called rotation (the other safety will tell you which: if he runs to the middle, it’s a rotation to one-high). Flat-footed, then with #2 up the seam: quarters, carrying #2.
  • One second later: the corners. Both bailing with eyes on the quarterback: quarters. Both squatting: Cover 2. One of each: Cover 6. A corner coming forward toward the slot’s out route while the safety on that side runs deep and wide over the outside receiver: Palms.
  • Then watch the ball. On runs, find the first defender to the ball. If it’s a safety arriving three to five yards downfield, you’ve just watched quarters’ run fit. On passes, note whether the completion was short and outside (what quarters concedes) or deep (what it exists to stop).

Predict the play

TipPredict the play 1: the shallow safeties
Show the Python
off = pro_2x2()
pr1 = Play(off, quarters_vs(off, {"FS": (9.0, -7.0), "SS": (9.0, 6.6)}), los=40, to_go=12)
pr1.highlight("FS", "SS")
fld = pr1.draw(lateral="full", window=(-7.5, 16.5))
no_numbers(fld.ax)
ruler(fld, pr1, widths=True)
plt.show()
Figure 37.11: Second-and-12 from the offense’s 40. 11 personnel, 2x2, tight end attached on the right. The two safeties are ringed. Read their depth from the numbers on the left and their width from the hash marks along the bottom, then look at the corners and count the box.

What coverage family is this most likely to be, and if you were calling plays, which run and which pass would you like against it on second-and-12?

Quarters, or something that will look like it for a beat. Two safeties at 9 yards, inside the slot on the left and just outside the tight end on the right, are reading safeties, not half-field players: a Cover 2 safety would be at 12 to 14 and outside the hash, because he has to reach the sideline. Off corners on both sides fit quarters’ MOD rule. Six defenders in the box against six blockers is the quarters light box. (A defense can still rotate out of this at the snap, as Disguise, Rotation, and Split-Field Coverage shows.)

The situation matters. On second-and-12 the defense is happy to give up a four-yard run or a five-yard out and play third-and-long. The offense wants a chunk, so attack the safety’s read rather than take what quarters concedes.

The run: run away from the tight end, toward the slot side, with H releasing up the field so the free safety has to go with him; or call an RPO that reads that safety.

The pass: play-action with a deep crosser (the safeties step up on the run fake), or scissors, which makes the safety and corner cross. The quick out by #2 is there unless the corner is playing Palms, but it only gets you to third-and-7. Four verticals is the one call this defense was built for.

TipPredict the play 2: the halves disagree
Show the Python
off = offense("gun_trips")
mv = {"RCB": (7.5, 17.6), "SS": (9.5, 8.6), "NB": (4.6, 7.5), "MIKE": (4.8, 2.4), "WILL": (4.8, -2.2),
      "LCB": (5.0, -16.3), "FS": (13.0, -7.0)}
pr2 = Play(off, quarters_vs(off, mv), los=45, to_go=11)
pr2.highlight("LCB", "FS", "RCB")
fld = pr2.draw(lateral="full", window=(-7.5, 17.5))
no_numbers(fld.ax)
ruler(fld, pr2, widths=True)
plt.show()
Figure 37.12: Third-and-11. Trips to the offense’s right (Z, H and the attached tight end Y), X alone on the left. Two-high. Compare the two halves of the defense: the three ringed defenders are the ones to read, using the depth numbers and the hash marks.

What is the coverage likely to be? The offense’s best receiver is X. Should the quarterback throw to him?

Most likely Cover 6, with the Cover 2 half on X. The left side is a Cover 2 picture: a squat corner (5 yards, outside leverage, ready to take the flat and the quick out) and a deep safety, 13 yards and outside the hash, who can reach the sideline over the top. The right side is a quarters picture: an off corner and a shallower safety inside #2. Two halves, two coverages.

Probably not to X. Cover 6 is built to deny exactly the one-on-one the offense wanted: X has a corner underneath and a safety over the top. On third-and-11 a hitch or quick out is short of the sticks and runs into the squat corner; a go route runs into the half-field safety. The one window is the Cover 2 hole shot, the sideline between them 18 to 22 yards deep, and it needs a perfect throw.

Throw to the trips side instead, where four defenders cover three receivers and the routes can get past 11 yards. The pressure point is #3: send the tight end straight up the middle with H up the seam beside him. The strong safety takes H, and the Mike is left running down the field with the tight end.

TipPredict the play 3: third-and-2, the quick out is called
Show the Python
off = spread_2x2()
pr3 = Play(off, quarters_vs(off, {"LCB": (6.3, -15.9)}), los=30, to_go=2)
pr3.route("H", r.out(5.5, 6)); pr3.route("X", r.go(14))
pr3.highlight("LCB", "RCB")
fld = pr3.draw(lateral="full", window=(-7.5, 17.0))
no_numbers(fld.ax)
ruler(fld, pr3, widths=True)
say(fld, pr3, "#1", (-4.0, -15.0), fs=6.6); say(fld, pr3, "#2", (-4.8, -9.0), fs=6.6)
plt.show()
Figure 37.13: Third-and-2 from the offense’s 30. The play call: H (#2) runs a quick out at 4 yards, the classic conversion throw, and X (#1) runs a go route to clear the corner out (both routes drawn). The defense shows two-high. Compare the two ringed corners: the right one is square to Z, eyes on him; the left one’s shoulders are turned in toward H. Check their depths too.

The quarterback sees an off corner and thinks the quick out to H is free. What is the danger, and what would you call the next time you see this corner?

The danger is Palms: the trap. The left corner is a yard or so shallower than the right one, square to X but turned in toward the slot: he is reading #2. When H breaks out, the corner leaves X and drives forward, outside-in, onto the out, and the free safety, seeing #2 go out, takes X deep. X’s go route was supposed to clear the corner away; instead it runs into the safety. The situation is part of the tell: on third-and-2 the quick out to #2 is the obvious conversion throw, which is exactly when a defense calls the trap. Best case for the offense, an incompletion and a punt; worst case, an interception returned the other way.

Next time, bait the trap. Call an out-and-up for H (or a wheel): the same first 4 yards, then up the sideline behind the jumping corner, with the safety busy with X. Or attack the moment the corner looks inside: a quick slant by X, breaking inside a corner whose eyes are on H. The deeper lesson is the trade every match rule makes. Palms takes away the quick out, and in doing so tells you which route will beat it.

Takeaways

  • Quarters is a read coverage, not four deep zones. Corners and safeties start with deep quarters, but the receivers’ releases decide who covers whom: the corner takes #1 deep (MOD), the safety reads #2. It is the purest pattern-matching coverage in common use.
  • The read safety is the whole design. One key, #2, gives three answers: carry him if he goes vertical, bracket #1 if he goes out or short, fill the alley if he blocks. Standing 8 to 10 yards deep lets one player be a deep defender and a run defender on the same snap.
  • MOD and MEG are a trade between help and freedom. MOD lets short routes go to the underneath defenders and doubles the deep ones; MEG locks a trusted corner on his man and frees a teammate for another job.
  • Cover 6 and Palms fix quarters’ soft spots without adding a player. Cover 6 puts a Cover 2 half on the lone receiver (under-over on him) and quarters on the trips side; Palms swaps the corner and safety so the corner can trap #2’s quick out.
  • Two-high match spread because it stops explosive passes without surrendering the run, answers spread passing concepts, and disguises well. Split-safety coverage rose from 32.9% of dropbacks in 2018 to 42.0% in 2025 by NGS’s count; the charting data agree on the total but split it differently across the 2022/2023 source break.
  • Its holes follow from its rules: light-box runs when receivers take the safeties away, the bootleg flood that turns the safeties’ run read against them, and the wheel that changes from a flat route to a deep one after the rules have assigned it.

Connections

Builds on: Coverage Fundamentals (deep quarters, pattern matching and the numbering dialects), Cover 3 (match rules and MEG in Cover 3), Cover 2 and Tampa 2 (the half-field safety and squat corner that Cover 6 borrows), and Run Fits and Box Math (the alley player, the plus-one and the light box).

Sets up: Disguise, Rotation, and Split-Field Coverage (rotation at the snap, the trips checks and Saban’s Cover 7); Concepts Versus Coverages, the offense’s menu against quarters; The College Laboratory, where split-field quarters grew up against the spread; The Modern Era, on the two-high wave and the offenses’ heavy-personnel answer; and Tendencies, PROE and Charting, which works with the coverage labels charted above.

Case study: Fangio’s Two-High Revolution and Macdonald’s Answer follows the two-high family through the NFL’s most influential two-high coordinator and the defense built to beat the offenses that adapted to it.

NoteGo deeper
  • Cody Alexander, Match Quarters: A Modern Guidebook to Split-Field Coverages, and his MatchQuarters newsletter: the most thorough public treatment of quarters, Cover 6 and Palms from a coach’s point of view.
  • Cameron Soran, “The Complete Guide to Nick Saban Coverages at Alabama,” Throw Deep Publishing (2021): MOD, MEG, Palms, Stubbie and Cover 7, rule by rule.
  • Chris B. Brown, The Art of Smart Football (2015) and his Grantland piece on Gary Patterson’s TCU defense: the best short introductions to why quarters took over college football.
  • X&O Labs’ clinic-style reports on two-high coverage structures, and Pat Narduzzi’s Cover 4 clinic talks, for the run-fit side.

  1. Chris B. Brown, “Hard Knocks: Playing Defense With TCU’s Gary Patterson,” Grantland (Sept. 1, 2015): https://grantland.com/features/hard-knocks-playing-defense-with-tcus-gary-patterson/ (“Other teams have their safeties backpedal, but we sit there and flat-foot shuffle,” Patterson at a 2015 clinic).↩︎

  2. Cameron Soran, “The Complete Guide to Nick Saban Coverages at Alabama,” Throw Deep Publishing (Feb. 24, 2021): https://throwdeeppublishing.com/blogs/news/nick-saban-s-alabama-pass-coverages . MOD: “The corner will be man-to-man on all #1 except when #1 breaks at 5 yards or less (e.g., shallow cross, 5 yard hitch). If #1 breaks at 5 yards or less, zone to deep quarter.” Safety: “Take all of #2 vertical. If #2 is not vertical, then bracket #1.” Apex: “Take the first man to the flat… If #2 begins to go vertical, always reroute #2.” MEG: “Man Everywhere he Goes… the corner will man up on #1 for everything (no exceptions).” In Saban’s version the MOD corner begins in press; most quarters teams play it from off alignments.↩︎

  3. James Reber, NFL Next Gen Stats, “The coverage that turned the Seahawks into Super Bowl winners and is taking the NFL by storm,” NFL.com (2026): https://www.nfl.com/news/the-coverage-that-turned-the-seahawks-into-super-bowl-winners-and-is-taking-the-nfl-by-storm (2025 coverage rates: Cover 4 17.2%, Cover 2 13.9%, Cover 6 9.2%).↩︎

  4. Soran’s guide, cited in full in the note on MOD and MEG: Palms, strong safety: “Take #1 vertical if #2 is out in first 5 yards. Otherwise, take all of #2 vertical. If #2 is not vertical, then bracket #1.” The names vary by staff. “Palms,” “2-read” and “2 Trap” are the common ones; Alex Kirby, “2 Read Coverage: One Coverage that Solves a TON of Problems,” Throw Deep Publishing (June 8, 2021): https://throwdeeppublishing.com/blogs/news/one-coverage-that-solves-a-ton-of-problems , notes that Dave Aranda’s playbook calls it “Nail,” and some playbooks use “Palms” for a broader family. Corner alignment and the man-on-#1 rule when #2 is vertical follow common 2-read teaching; details differ by staff.↩︎

  5. Same NFL.com Next Gen Stats article as the note on Cover 6 (split-safety rate 32.9% in 2018, 37.8% in 2021, 40.4% in 2024, 42.0% in 2025; every defense above 30% in 2025). The 2018–2024 Cover 4 average of 13.9% comes from the same Next Gen Stats analysis. A different series from TruMedia/538, measured on early downs only (26.8% in 2019 to 34.6% in 2024), circulates widely and should not be mixed with this one.↩︎

  6. Course calculation from nflverse load_participation(), 2018–2025 regular seasons (Weeks 1–17 through 2020, 1–18 from 2021), rows with a charted defense_coverage_type, excluding BLOWN, COMBO and PREVENT; two-high = COVER_2 + 2_MAN + COVER_4 + COVER_6 (COVER_9, which appears only from 2023, is counted as neither). Labels come from NGS for 2016–2022 and from FTN for 2023–2025, with different label sets, and none exist for 2016–2017. Small differences from other published nflverse calculations come from the filters.↩︎

  7. “2018 Kansas City Chiefs–Los Angeles Rams game,” Wikipedia: https://en.wikipedia.org/wiki/2018_Kansas_City_Chiefs%E2%80%93Los_Angeles_Rams_game (Rams 54, Chiefs 51 on ESPN’s Monday Night Football, Nov. 19, 2018, at the Los Angeles Memorial Coliseum). Mahomes: CBS Sports, “2018 NFL MVP: Patrick Mahomes beats out Drew Brees for top award at NFL Honors” (Feb. 2019): https://www.cbssports.com/nfl/news/2018-nfl-mvp-patrick-mahomes-beats-out-drew-brees-for-top-award-at-nfl-honors/ (5,097 yards and 50 touchdown passes, the second player after Peyton Manning with 5,000 and 50).↩︎

  8. Saban’s pattern-matching Cover 3 “prior to his association with Belichick with the Browns in the early 1990s simply did not exist,” in Cameron Soran’s guide (cited in the note on MOD and MEG), which also treats Cover 7 as “a form of quarters coverage” and explains Rip/Liz as “the safety’s declaration… of which side he is coming down.” Dates: Kyle Jones, “Film Study: Nick Saban’s Influence on Mark Dantonio and Ohio State’s 2002 National Title Run Is Undeniable,” Eleven Warriors (Mar. 23, 2020): https://elevenwarriors.com/ohio-state-football/film-study/2020/03/112969/film-study-nick-sabans-influence-on-mark-dantonio-and-ohio-states-2002-national-title-run-is-undeniable (Saban was Cleveland’s defensive coordinator from 1991 to 1994, left for Michigan State in 1995 and hired Dantonio to coach the secondary).↩︎

  9. Zach Barnett, “How Ben Roethlisberger and Urban Meyer shaped Pat Narduzzi’s defensive philosophy,” FootballScoop (June 25, 2014): https://footballscoop.com/news/how-ben-roethlisberger-and-urban-meyer-shaped-pat-narduzzi-s-defensive-philosophy (Narduzzi was coaching linebackers at Northern Illinois in 2002; Roethlisberger went “41-of-61 passes for 525 yards with four touchdowns against three interceptions” in Northern Illinois’s 48–41 win on Oct. 12, 2002; at Miami the next season, with Roethlisberger now on his own side, Narduzzi “hit Roethlisberger with a Cover 4,” as he told an 80-minute Cover 4 talk at the Angelo Football Clinic).↩︎

  10. Phil Parker was named Iowa’s defensive coordinator in February 2012, succeeding Norm Parker, who had run the defense since Kirk Ferentz’s arrival: BTN.com staff, “Ferentz names Phil Parker DC, rearranges staff” (Feb. 7, 2012): https://btn.com/2012/02/07/ferentz-names-phil-parker-dc-rearranges-staff . On the scheme: Cody Alexander, “Fitting The Run With The Iowa Hawkeyes,” MatchQuarters (June 13, 2024): https://www.matchquarters.com/p/fitting-the-run-iowa-hawkeyes-phil-parker-4-3 (“Phil Parker & Co. have taken the air out of their opponents’ run games utilizing their Under 4-3 Quarters defense”). Norm Parker joined Ferentz’s first staff before the 1999 season and was defensive coordinator through 2011: Hawkeye Sports, “Former Football Assistant Norm Parker Passes on Monday” (Jan. 13, 2014): https://hawkeyesports.com/news/2014/01/13/former-football-assistant-norm-parker-passes-on-monday .↩︎

  11. Course calculation from nflverse play-by-play (regular-season dropbacks with EPA), joined to load_participation() coverage labels and FTN charting’s is_play_action, 2023–2025: average EPA per dropback without and with play-action was 0.02 and 0.13 against COVER_4 (n = 4,835 and 888), 0.02 and 0.16 against COVER_3, and 0.01 and 0.13 against COVER_1. Play-action helps the offense against nearly every coverage by a similar margin.↩︎

  12. Course calculation from nflverse load_participation() (NGS charting) joined to play-by-play defteam, 2020 regular season, dropbacks with a charted coverage (BLOWN and PREVENT excluded): Rams 41.8% COVER_3, 20.6% COVER_4, 15.5% COVER_6 and 15.0% COVER_1 (n = 548); 49ers 40.1% and Bears 37.3% quarters-plus-Cover 6; league 20.4%. The labels are post-snap; on the Rams’ habit of “showing opposing quarterbacks one coverage before rotating into a different look right after,” see Kaelen Jones, The Ringer (Jan. 13, 2021), cited in full in the note on Staley.↩︎

  13. Kaelen Jones, “The Rams Defense Has L.A. on the Cusp of Another Deep Playoff Run,” The Ringer (Jan. 13, 2021): https://theringer.com/2021/01/13/nfl/rams-defense-los-angeles-brandon-staley-aaron-donald-jalen-ramsey (Staley’s years on Fangio’s staffs in Chicago and Denver; Ramsey used outside and as the nickel or “star”; “much lighter boxes”).↩︎

  14. Carolina Panthers, “Five things to know about new defensive coordinator Ejiro Evero” (Feb. 5, 2023): https://www.panthers.com/news/five-things-to-know-about-new-defensive-coordinator-ejiro-evero (2022 Broncos “seventh” in total defense at 320 yards a game and “third-best in net yards per passing attempt (5.6 – tied with Kansas City)”; five years with the Rams coaching safeties and the secondary, and their 2021 defensive passing game coordinator). Record: “2022 Denver Broncos season,” Wikipedia: https://en.wikipedia.org/wiki/2022_Denver_Broncos_season (5–12; head coach Nathaniel Hackett fired after a 4–11 start). 2026: Panthers.com, “With all 10 head coaching vacancies filled, Ejiro Evero set to return as defensive coordinator” (Feb. 1, 2026): https://www.panthers.com/news/with-all-10-head-coaching-vacancies-filled-ejiro-evero-set-to-return-defensive-coordinator .↩︎

  15. Denver Broncos, “Pat Surtain II named an AP first-team All-Pro; Justin Simmons selected to second team” (Jan. 2023): https://www.denverbroncos.com/news/pat-surtain-ii-named-an-ap-first-team-all-pro-justin-simmons-selected-to-second- . Coverage shares: course calculation as in the note on the 2020 Rams, 2022 season: Broncos 46.8% COVER_3, 15.6% COVER_4 and 17.7% COVER_6 (n = 603), sixth in the league in quarters-plus-Cover 6; league 24.8%; the Jets led at 45.5%.↩︎

  16. Associated Press, “Michigan State’s Narduzzi wins Broyles Award,” Arkansas Democrat-Gazette (Dec. 10, 2013): https://www.arkansasonline.com/news/2013/dec/10/michigan-states-narduzzi-wins-broyles-award/ (“Michigan State leads the nation this season in total defense and third the nation in scoring defense, holding opponents to 248.2 yards and 11.3 points per game”; Narduzzi had been MSU’s defensive coordinator since 2007). Final 2013 national rankings after the bowl games may differ slightly. Narduzzi left to become Pittsburgh’s head coach in December 2014: Michigan State Athletics, “Pat Narduzzi Named Head Football Coach at Pittsburgh” (Dec. 26, 2014): https://msuspartans.com/news/2014/12/26/Pat_Narduzzi_Named_Head_Football_Coach_at_Pittsburgh .↩︎

  17. Michigan State Athletics, “Darqueze Dennard Wins Jim Thorpe Award” (Dec. 12, 2013): https://msuspartans.com/news/2013/12/12/Darqueze_Dennard_Wins_Jim_Thorpe_Award .↩︎

  18. FootballScoop account of Narduzzi’s 2014 clinic talk, cited in full in the note on Roethlisberger: “Narduzzi admitted his coverage can look like man a lot of the time.”↩︎