{
  "schemaVersion": "1.0.0",
  "status": "published_historical_baseline_not_current_projection",
  "updatedAt": "2026-08-31",
  "tool": {
    "name": "Expected Touchdown Lab",
    "path": "/tools/expected-touchdowns",
    "access": "free",
    "execution": "browser_only",
    "storesInputs": false,
    "sendsInputsToServer": false
  },
  "source": {
    "studyId": "FDL-001",
    "runId": "2026-08-30-touchdown-regression-v1",
    "runMode": "Deterministic / offline launch review",
    "publicStudyHref": "/research/touchdown-regression",
    "manifestHref": "/research-artifacts/2026-08-30-touchdown-regression-v1/manifest.json",
    "modelParametersHref": "/research-artifacts/2026-08-30-touchdown-regression-v1/model-parameters.json",
    "modelParametersSha256": "ebd6cd8d2895c7dd8d54ff9de388a9f23b7b25d9f1890eae8ab015e3f57ab96c",
    "dataSnapshotThrough": 2024,
    "modelTestSeason": 2024,
    "trainingSeasons": [
      2014,
      2023
    ]
  },
  "model": {
    "type": "ridge-regularized linear expected-touchdown model",
    "minimumTargets": 40,
    "ridgePenalty": 5,
    "trainingRows": 1336,
    "lowerClip": 0,
    "intercept": 0.3300727039560032,
    "coefficients": {
      "receiving_air_yards": 0.0012567720911518016,
      "receiving_first_downs": 0.11273694074870454,
      "receiving_yards": 0.001959056279426151,
      "receptions": 0.01192982186437476,
      "targets": -0.033259010988513416
    },
    "formula": "max(0, intercept + sum(feature_value × coefficient))"
  },
  "validation": {
    "tolerance": 1e-12,
    "cases": [
      {
        "label": "Brian Thomas · 2024 historical validation row",
        "inputs": {
          "receiving_air_yards": 1542,
          "receiving_first_downs": 53,
          "receiving_yards": 1282,
          "receptions": 87,
          "targets": 133
        },
        "artifactExpectedTouchdowns": 7.369029319146067,
        "calculatorExpectedTouchdowns": 7.369029319146067,
        "absoluteDifference": 0
      },
      {
        "label": "Ladd McConkey · 2024 historical validation row",
        "inputs": {
          "receiving_air_yards": 1114,
          "receiving_first_downs": 52,
          "receiving_yards": 1149,
          "receptions": 82,
          "targets": 112
        },
        "artifactExpectedTouchdowns": 7.096629559657621,
        "calculatorExpectedTouchdowns": 7.096629559657622,
        "absoluteDifference": 8.881784197001252e-16
      },
      {
        "label": "Rome Odunze · 2024 historical validation row",
        "inputs": {
          "receiving_air_yards": 1398,
          "receiving_first_downs": 37,
          "receiving_yards": 734,
          "receptions": 54,
          "targets": 101
        },
        "artifactExpectedTouchdowns": 4.981304475023466,
        "calculatorExpectedTouchdowns": 4.9813044750234665,
        "absoluteDifference": 8.881784197001252e-16
      }
    ],
    "allPass": true
  },
  "honestUse": {
    "centralInstruction": "Use touchdown-over-expected only as a weak historical tiebreaker after preserving opportunity and updating the current team, quarterback, health, and market context.",
    "limitations": [
      "This is the published 2024 walk-forward baseline trained on 2014–2023 seasons, not a 2026 player projection.",
      "Inputs below 40 targets are outside the study population.",
      "The five opportunity features are correlated; individual coefficients are not causal effects and should not be interpreted in isolation.",
      "The model omits route-level, red-zone, quarterback, team-environment, health, and betting-market information.",
      "Next-season validation conditions on players returning to at least 40 targets, creating survivor bias.",
      "Expected touchdowns were modestly better than raw touchdowns as a population baseline; both forecasts still missed by more than two touchdowns on average."
    ]
  }
}
