PAIRED PRECIPITATION EXPOSURE FOR TWO RESERVE SLOTS
Influence IQ reproducibility package

REPRODUCE OFFLINE

Extract the ZIP. With Python 3.10 or newer, run:

  python3 analyze.py

On Windows, the equivalent command is usually:

  py -3 analyze.py

No network connection, account, API key or third-party Python package is needed.
The program verifies included file hashes, rebuilds every result, and checks the
408-row CSV byte for byte plus the coverage, input audit and fixed numerical
screen. Exit code 0 means these checks passed; a failure exits with code 2.
It can be invoked by absolute path from another working directory.

To keep newly recomputed files in a directory that does not already exist:

  python3 analyze.py --output reproduced

The output contains all-strata.csv, results.json, coverage.json, input-audit.json
and numerical-screen.json. The verification command uses a temporary directory
and removes it automatically. The script neither downloads nor updates inputs.

WHAT IS INCLUDED

- all-strata.csv: all 408 fixed station/threshold/variant/stratum rows, including
  small bases and zero contrasts. This is the complete numerical download.
- protocol.json: the scientific design and prospective gates extracted from
  the protocol frozen before the empirical calculation. Administrative history
  was omitted; scientific rules were not changed.
- analyze.py: portable analysis and verifier. Its scientific functions are
  unchanged from the frozen runner; the public loader accepts compact extracts.
- inputs/: six lossless precipitation CSV extracts and six original HOMR JSON
  responses, with every field of each included source record retained.
- input-audit.json: per-station missing PRCP dates, excluded observations and
  reasons, flag frequencies, and ignored MDPR/DAPR counts.
- coverage.json: all station-year and pooled-season coverage checks.
- numerical-screen.json: the fixed prospective numerical screen. The field
  editorialStatus describes the original calculation stage; a numerical pass
  does not itself establish editorial usefulness or publication approval.
- sources.json: exact source URLs, retrieval time, original download hashes,
  extract hashes, file sizes, and the extraction rule.
- SOURCES.txt: dataset and methods citations, use terms, and technical sources.
- planning-template-<language>.txt and worked-example-<language>.txt: a blank
  brief and an explicitly fictional planning example in each of ten languages.
  They are not measured event outcomes. Suffixes are en (English), es (Spanish),
  fr (French), de (German), nl (Dutch), id (Indonesian), ms (Malay), tl (Tagalog),
  th (Thai) and ja (Japanese). Technical records and reproduction instructions
  are in English. All versions refer to the same six U.S. airport records;
  translation does not turn them into weather estimates for another country.
- manifest.json: hashes and sizes of every other archive file. This verifies
  byte consistency; it is not an external digital signature.

SOURCE AND EXTRACTION BOUNDARY

The six original NOAA by-station gzip downloads cover their full station
histories and all reported elements. Each was hash-verified and parsed before
extraction. This package retains unchanged source lines for PRCP, MDPR and DAPR
dated 2016-01-01 through 2025-12-31 inclusive, in original order. The final seven
days remain available as backup observations. No record is removed because of
its amount, flags or eligibility, and no missing date is filled. No trace is
rewritten. All eight native CSV fields and original line endings are retained.
The CSV extracts have no header, following NOAA's by-station format:

  ID,YYYYMMDD,ELEMENT,DATA VALUE,M-FLAG,Q-FLAG,S-FLAG,OBS-TIME

PRCP uses tenths of millimetres. For example, a DATA VALUE of 10 is 1.0 mm.
The source missing-value token is -9999. A trace flag denotes precipitation
below a measurable amount, not proof of zero precipitation. The original HOMR
responses are included unchanged, with all returned schedules and history.

The original gzip files are not included because unrelated years and elements
are unnecessary to reproduce this analysis. Original download hashes and
extract hashes are deliberately separate in sources.json. The compact package
can reproduce every reported cell, coverage check and exclusion. It cannot
repeat full-file shape checks on omitted source elements or dates. A future
download from the same NOAA URL may have different bytes; do not silently
substitute it for this snapshot. A daily GHCN release number was not pinned.

METHOD AND CSV GUIDE

The six stations are JFK (USW00094789), Los Angeles International (USW00023174),
Atlanta Hartsfield-Jackson (USW00013874), Chicago O'Hare (USW00094846), Miami
International (USW00012839) and Seattle-Tacoma (USW00024233). They are purposeful
examples, not a representative sample of cities or outdoor productions.

Observation dates run from 2016-01-01 through 2025-12-31. Anchors end on
2025-12-24 so t+1 and t+7 stay inside that frame. Eligible PRCP records require
a valid nonnegative integer, a blank quality flag, measurement flag blank or
T, source flag W or 1, explicit observation time 2400 and a matching HOMR daily
PRECIP schedule. The full rules, consistency stops and coverage gates are in
protocol.json. The F6/ASOS daily total uses local standard time. It is not an
event-hour rainfall record; do not shift the dates for daylight saving time.

threshold_tenths_mm is 10 for the primary 1 mm analysis and 50 for the fixed
5 mm sensitivity. Each threshold has its own qualifying wet-anchor cohort.
The two backup options use the same complete t/t+1/t+7 triplets and wet anchors.

  n00: neither backup reaches the threshold
  n10: only the next-day observation reaches it
  n01: only the seven-day observation reaches it
  n11: both backup observations reach it

wet_N = n00+n10+n01+n11. next_day_percent = 100*(n10+n11)/N and
seven_day_percent = 100*(n01+n11)/N. difference_pp = 100*(n10-n01)/N.
Positive values mean more next-day threshold-reaching observations in this
finite record. The exact reduced fractions are included beside decimal values;
their denominators may differ from N after reduction.

incomplete_M counts incomplete or ineligible triplets in the same anchor
universe, including unknown anchor days. nonwet_complete counts complete
triplets whose anchor is below the threshold. Thus possible_anchors equals
incomplete_M + nonwet_complete + wet_N for qualified stations.

The conservative missing-record bounds are 100*(A-M)/(N+M) and
100*(A+M)/(N+M), where A=n10-n01. They let every excluded anchor be wet with
an adverse or favorable backup pair. They are not statistical confidence
intervals and do not cover measurement error or future conditions.

variant=all_anchors is the main frame. same_season first removes anchors whose
t and t+7 fall in different meteorological seasons, then applies completeness.
stratum_kind distinguishes overall, season, year and the two fixed five-year
halves. Season/year/half membership is determined by t. DJF is December,
January and February; the other seasons are MAM, JJA and SON. All combinations
are retained: 6 stations x 2 thresholds x 2 variants x 17 strata = 408 rows.
small_base is true for a season with N<50 or a year with N<20. Counts remain
visible. Consecutive wet anchors and overlapping triplets are retained, so
these are not independent storms or independent statistical trials.

INTERPRETATION

This is a finite-history description, not a forecast, an optimal-date rule or
a cancellation-probability estimate. PRCP includes liquid-equivalent frozen
precipitation. Below threshold does not mean dry, safe or suitable. Airport
full-day observations do not establish venue conditions, filming-hour weather,
attendance, revenue or postponement costs. The series are not homogenized for
all station/reporting changes. Seasonal, yearly and threshold variation must
remain visible. Planning-template costs and availability are reader inputs;
the worked example is fictional. NOAA does not endorse this analysis.
