{
  "engineVersion": 2,
  "documentedOn": "2026-10-16",
  "dataMode": "historical-starting-state-with-simulated-outcomes",
  "historicalPack": "2022-v1",
  "historicalScenarios": 31,
  "uniqueHistoricalPlayers": 512,
  "historicalData": "/data/historical-2022.json",
  "playerStatsAffectOdds": false,
  "personnelData": "/data/personnel-2022.json",
  "personnelAffectsOdds": false,
  "eligibleFirstReads": [
    "X",
    "Y",
    "Z",
    "TE",
    "RB"
  ],
  "importedHistoricalPlays": 31,
  "realPlayerRatingsUsed": false,
  "globalRankingsAvailable": false,
  "playParameters": [
    {
      "id": "slants",
      "name": "Quick slants",
      "group": "Pass",
      "tag": "QUICK GAME",
      "yards": [
        5,
        12
      ],
      "chance": 0.83,
      "risk": 0.025,
      "time": 7,
      "route": "slant",
      "desc": "Quick release. Find the gap underneath."
    },
    {
      "id": "out",
      "name": "Sideline out",
      "group": "Pass",
      "tag": "CLOCK SAVER",
      "yards": [
        7,
        15
      ],
      "chance": 0.72,
      "risk": 0.035,
      "time": 8,
      "route": "out",
      "desc": "Work the boundary. Get out. Stop the clock.",
      "sideline": 0.9
    },
    {
      "id": "vertical",
      "name": "Four verticals",
      "group": "Pass",
      "tag": "DEEP SHOT",
      "yards": [
        19,
        37
      ],
      "chance": 0.47,
      "risk": 0.09,
      "time": 12,
      "route": "go",
      "desc": "Stretch the safeties. Big reward, bigger risk."
    },
    {
      "id": "dive",
      "name": "Inside zone",
      "group": "Run",
      "tag": "MOVE THE CHAINS",
      "yards": [
        2,
        8
      ],
      "chance": 0.94,
      "risk": 0.015,
      "time": 8,
      "route": "inside",
      "desc": "Trust your line. Attack the interior."
    },
    {
      "id": "sweep",
      "name": "Outside sweep",
      "group": "Run",
      "tag": "FIND THE EDGE",
      "yards": [
        1,
        12
      ],
      "chance": 0.8,
      "risk": 0.025,
      "time": 9,
      "route": "sweep",
      "desc": "Race to the edge and turn upfield.",
      "sideline": 0.5
    },
    {
      "id": "draw",
      "name": "Shotgun draw",
      "group": "Run",
      "tag": "BEAT THE RUSH",
      "yards": [
        3,
        11
      ],
      "chance": 0.87,
      "risk": 0.02,
      "time": 9,
      "route": "inside",
      "desc": "Show pass. Let the rush come to you."
    },
    {
      "id": "bubble",
      "name": "Bubble read",
      "group": "RPO",
      "tag": "READ & REACT",
      "yards": [
        4,
        13
      ],
      "chance": 0.79,
      "risk": 0.03,
      "time": 8,
      "route": "out",
      "desc": "Read the outside linebacker. Take the space.",
      "sideline": 0.55
    },
    {
      "id": "option",
      "name": "Speed option",
      "group": "RPO",
      "tag": "TWO-WAY THREAT",
      "yards": [
        3,
        14
      ],
      "chance": 0.76,
      "risk": 0.04,
      "time": 9,
      "route": "sweep",
      "desc": "Make the edge defender choose."
    },
    {
      "id": "read",
      "name": "Zone read",
      "group": "RPO",
      "tag": "KEEP THEM GUESSING",
      "yards": [
        3,
        10
      ],
      "chance": 0.85,
      "risk": 0.025,
      "time": 8,
      "route": "inside",
      "desc": "Hand it off or let the quarterback keep it."
    },
    {
      "id": "action",
      "name": "Play-action post",
      "group": "Trick",
      "tag": "SELL THE FAKE",
      "yards": [
        13,
        27
      ],
      "chance": 0.6,
      "risk": 0.055,
      "time": 11,
      "route": "post",
      "desc": "Draw the linebackers in. Go over the top."
    },
    {
      "id": "reverse",
      "name": "Double reverse",
      "group": "Trick",
      "tag": "CHANGE DIRECTION",
      "yards": [
        4,
        22
      ],
      "chance": 0.64,
      "risk": 0.06,
      "time": 12,
      "route": "sweep",
      "desc": "Use their pursuit against them."
    },
    {
      "id": "flea",
      "name": "Flea flicker",
      "group": "Trick",
      "tag": "ALL OR NOTHING",
      "yards": [
        22,
        42
      ],
      "chance": 0.39,
      "risk": 0.11,
      "time": 14,
      "route": "go",
      "desc": "One fake. One deep shot. Make it count."
    }
  ],
  "defensiveMatchups": [
    {
      "id": "zone",
      "name": "Cover 2 zone",
      "tip": "Two safeties deep. The underneath routes have room.",
      "good": [
        "slants",
        "dive",
        "read"
      ],
      "bad": [
        "vertical",
        "flea"
      ]
    },
    {
      "id": "blitz",
      "name": "Pressure blitz",
      "tip": "Extra rushers are coming. A quick release beats pressure.",
      "good": [
        "slants",
        "bubble",
        "draw"
      ],
      "bad": [
        "action",
        "flea",
        "vertical"
      ]
    },
    {
      "id": "man",
      "name": "Man coverage",
      "tip": "Defenders are matched up. Create separation at the sideline.",
      "good": [
        "out",
        "sweep",
        "option"
      ],
      "bad": [
        "bubble"
      ]
    },
    {
      "id": "box",
      "name": "Stacked box",
      "tip": "They are crowding the line. Look beyond the linebackers.",
      "good": [
        "action",
        "vertical",
        "out"
      ],
      "bad": [
        "dive",
        "draw",
        "read"
      ]
    },
    {
      "id": "prevent",
      "name": "Prevent deep",
      "tip": "They are protecting the end zone. Take the easy yards.",
      "good": [
        "slants",
        "bubble",
        "sweep"
      ],
      "bad": [
        "vertical",
        "flea"
      ]
    }
  ],
  "points": {
    "perPositiveYard": 10,
    "favorableCallWithoutTurnover": 30,
    "otherCallWithoutTurnover": 10,
    "win": 500,
    "perSecondRemainingOnWin": 5,
    "perUnusedTimeoutOnWin": 30
  },
  "sources": [
    {
      "title": "NFL Football Operations: 2026 NFL Rulebook",
      "url": "https://operations.nfl.com/rules-officiating/2026-nfl-rulebook",
      "role": "Football rules reference; not a gameplay data feed"
    },
    {
      "title": "nflreadr: Load Play By Play",
      "url": "https://nflreadr.nflverse.com/reference/load_pbp.html",
      "role": "Imported 2022 data; see the historical pack for source files and hashes"
    },
    {
      "title": "nflverse-data",
      "url": "https://github.com/nflverse/nflverse-data",
      "role": "Repository distributing the imported release files",
      "licenseReference": "https://github.com/nflverse/nflverse-data/blob/main/LICENSE.md"
    },
    {
      "title": "nflreadr: Participation Data",
      "url": "https://nflreadr.nflverse.com/reference/load_participation.html",
      "role": "Imported 2022 data; see the historical pack for source files and hashes",
      "attribution": "NFL NextGenStats via nflverse (2022 and earlier); FTN Data via nflverse (2023 onward)",
      "documentedLicense": "CC BY-SA 4.0"
    }
  ]
}
