{
  "research_audit": {
    "temporal_validation": {
      "name": "observed-versus-forecast boundary",
      "passed": true,
      "details": "Postgame observations support historical research only and cannot enter a pregame projection feature."
    },
    "baseline_checks": [
      {
        "name": "registered contrast",
        "passed": true,
        "details": "observed rain vs explicitly rain-free"
      },
      {
        "name": "adjusted and unadjusted estimates",
        "passed": true,
        "details": "Every outcome preserves group means plus adjusted and unadjusted differences."
      }
    ],
    "uncertainty": {
      "name": "bootstrap and robust intervals",
      "passed": true,
      "details": "Every outcome reports a bootstrap comparison and an HC3 robust adjusted interval."
    },
    "missingness": {
      "input_rows": 2127,
      "analyzed_rows": 1237,
      "excluded_rows": 890,
      "missing_by_field": {
        "outside_registered_contrast_or_incomplete": 890
      },
      "reconciled": true
    },
    "sensitivity_checks": [
      {
        "name": "multiplicity correction",
        "passed": true,
        "details": "Holm-adjusted p-values cover the preregistered outcome family."
      },
      {
        "name": "per-outcome denominator accounting",
        "passed": true,
        "details": "Each outcome records its own condition, control, and undefined-game counts; field-goal accuracy is undefined when neither team attempted a field goal."
      },
      {
        "name": "deterministic bootstrap",
        "passed": true,
        "details": "Each outcome bootstrap uses a SHA-256-derived seed label and two complete analysis executions produced the same result hash."
      },
      {
        "name": "station agreement",
        "passed": true,
        "details": "Primary and secondary stations exceed the registered rain agreement floor."
      }
    ],
    "leakage_checks": [
      {
        "name": "prediction boundary",
        "passed": true,
        "details": "The article cannot describe observed postgame weather as a forecast input."
      }
    ],
    "withholding_checks": [
      {
        "name": "study sample gate",
        "passed": true,
        "details": "181 condition and 1237 comparable games cleared the registered floors."
      },
      {
        "name": "evidence bundle gates",
        "passed": true,
        "details": "Rights, coverage, station agreement, and reproducibility gates passed."
      },
      {
        "name": "association scope",
        "passed": true,
        "details": "The study is limited to association and does not claim causality."
      }
    ]
  },
  "study": "NFL Passing and Play Calling in Rain vs. Dry Games",
  "study_id": "weather-rain-playcalling",
  "data_through": 2024,
  "population": "NFL regular-season games",
  "estimand": "Observed association for observed rain vs explicitly rain-free, with adjusted and unadjusted game-level comparisons.",
  "sample": {
    "condition_games": 181,
    "control_games": 1056,
    "comparable_games": 1237,
    "minimum_complete_games": 750,
    "minimum_condition_games": 100,
    "outcome_denominators": {
      "primary:neutral_dropback_rate": {
        "condition_games": 181,
        "control_games": 1056,
        "total_games": 1237,
        "not_defined_in_comparable_games": 0
      },
      "primary:average_depth_of_target": {
        "condition_games": 181,
        "control_games": 1056,
        "total_games": 1237,
        "not_defined_in_comparable_games": 0
      },
      "primary:completion_rate": {
        "condition_games": 181,
        "control_games": 1056,
        "total_games": 1237,
        "not_defined_in_comparable_games": 0
      },
      "primary:turnover_rate": {
        "condition_games": 181,
        "control_games": 1056,
        "total_games": 1237,
        "not_defined_in_comparable_games": 0
      }
    }
  },
  "contrast": "observed rain vs explicitly rain-free",
  "effects": [
    {
      "study_id": "weather-rain-playcalling",
      "publication_decision": "eligible",
      "contrast_id": "primary",
      "contrast": "observed rain vs explicitly rain-free",
      "condition_label": "Observed rain",
      "control_label": "Explicitly rain-free",
      "contrast_comparable_games": 1237,
      "outcome": "neutral_dropback_rate",
      "label": "Neutral early-down dropback rate",
      "units": "share",
      "condition_games": 181,
      "control_games": 1056,
      "condition_estimate": 0.522769908457581,
      "control_estimate": 0.5402713324946399,
      "unadjusted_difference": -0.0175014240370589,
      "bootstrap_ci_95_lower": -0.0324416322537283,
      "bootstrap_ci_95_upper": -0.0031095380201307,
      "bootstrap_p_value": 0.018,
      "p_value": 0.0323441561898877,
      "adjusted_difference": -0.0162866801041751,
      "robust_standard_error": 0.0076101312138947,
      "adjusted_ci_95_lower": -0.0312025372834088,
      "adjusted_ci_95_upper": -0.0013708229249415,
      "controls": "week and season fixed effects; wind speed mps and air temp c",
      "holm_adjusted_p": 0.0970324685696632
    },
    {
      "study_id": "weather-rain-playcalling",
      "publication_decision": "eligible",
      "contrast_id": "primary",
      "contrast": "observed rain vs explicitly rain-free",
      "condition_label": "Observed rain",
      "control_label": "Explicitly rain-free",
      "contrast_comparable_games": 1237,
      "outcome": "average_depth_of_target",
      "label": "Average target depth",
      "units": "yards",
      "condition_games": 181,
      "control_games": 1056,
      "condition_estimate": 7.320388130161931,
      "control_estimate": 7.317531579752744,
      "unadjusted_difference": 0.002856550409187,
      "bootstrap_ci_95_lower": -0.2004984341912498,
      "bootstrap_ci_95_upper": 0.2067517063732056,
      "bootstrap_p_value": 0.9955,
      "p_value": 0.726949358208121,
      "adjusted_difference": 0.0374170118460516,
      "robust_standard_error": 0.1071548300876952,
      "adjusted_ci_95_lower": -0.172606455125831,
      "adjusted_ci_95_upper": 0.2474404788179343,
      "controls": "week and season fixed effects; wind speed mps and air temp c",
      "holm_adjusted_p": 1.0
    },
    {
      "study_id": "weather-rain-playcalling",
      "publication_decision": "eligible",
      "contrast_id": "primary",
      "contrast": "observed rain vs explicitly rain-free",
      "condition_label": "Observed rain",
      "control_label": "Explicitly rain-free",
      "contrast_comparable_games": 1237,
      "outcome": "completion_rate",
      "label": "Completion rate",
      "units": "share",
      "condition_games": 181,
      "control_games": 1056,
      "condition_estimate": 0.5824427156218933,
      "control_estimate": 0.599828971185195,
      "unadjusted_difference": -0.0173862555633016,
      "bootstrap_ci_95_lower": -0.0278740567858651,
      "bootstrap_ci_95_upper": -0.0071386879000311,
      "bootstrap_p_value": 0.0005,
      "p_value": 0.0036676398580616,
      "adjusted_difference": -0.015411133017401,
      "robust_standard_error": 0.0053042755876511,
      "adjusted_ci_95_lower": -0.0258075131691972,
      "adjusted_ci_95_upper": -0.0050147528656048,
      "controls": "week and season fixed effects; wind speed mps and air temp c",
      "holm_adjusted_p": 0.0146705594322464
    },
    {
      "study_id": "weather-rain-playcalling",
      "publication_decision": "eligible",
      "contrast_id": "primary",
      "contrast": "observed rain vs explicitly rain-free",
      "condition_label": "Observed rain",
      "control_label": "Explicitly rain-free",
      "contrast_comparable_games": 1237,
      "outcome": "turnover_rate",
      "label": "Turnover rate",
      "units": "turnovers-per-play",
      "condition_games": 181,
      "control_games": 1056,
      "condition_estimate": 0.0204030184467882,
      "control_estimate": 0.0207203524473463,
      "unadjusted_difference": -0.000317334000558,
      "bootstrap_ci_95_lower": -0.0023328498301931,
      "bootstrap_ci_95_upper": 0.0017080589602486,
      "bootstrap_p_value": 0.7475,
      "p_value": 0.6587276652551834,
      "adjusted_difference": -0.0004656865147695,
      "robust_standard_error": 0.0010543754286189,
      "adjusted_ci_95_lower": -0.0025322623548627,
      "adjusted_ci_95_upper": 0.0016008893253235,
      "controls": "week and season fixed effects; wind speed mps and air temp c",
      "holm_adjusted_p": 1.0
    }
  ],
  "source_lag": {
    "available_through": "2024",
    "handling": "Weather-dependent studies stop at the latest available season; the next refresh retries automatically.",
    "requested_through": "2025",
    "source_key": "noaa-global-hourly"
  },
  "source_applicability": {
    "football_data_through": 2025,
    "observed_weather_data_through": 2024,
    "observed_weather_role": "defines the registered rain contrast"
  },
  "reproducibility": {
    "first_sha256": "8f950d771f821ecb7114fc4d3871cd7a7cf30f72fceb4746d84e657220127856",
    "matched": true,
    "second_sha256": "8f950d771f821ecb7114fc4d3871cd7a7cf30f72fceb4746d84e657220127856",
    "bootstrap_repetitions": 4000,
    "bootstrap_seed_policy": "NumPy PCG64 seeded separately for each outcome from the unsigned integer encoded by the first eight bytes of SHA-256(study_id:outcome).",
    "seed_labels": [
      "weather-rain-playcalling:primary:neutral_dropback_rate",
      "weather-rain-playcalling:primary:average_depth_of_target",
      "weather-rain-playcalling:primary:completion_rate",
      "weather-rain-playcalling:primary:turnover_rate"
    ]
  }
}
