# HomeRiskIQ temperature tide and groundwater methods

## Reproducing the results

Run `python3 scripts/reproduce.py` from this package after extraction. The script resolves every path relative to itself, reads only public frozen government inputs, verifies all entries in `public/source_manifest.json` with SHA256, and rewrites the CSVs and `derived/claims.json`. It requires Python 3 standard library only. Optional `python3 scripts/charts.py` regenerates PNG and SVG charts with matplotlib. Neither script requests network access or reads contact or audit files. Do not confuse `scripts/fetch.py` with the offline reproduction: it downloads live files and belongs to the private acquisition record, not the public reproduction path.

`public/source_manifest.json` records the actual request URLs, UTC retrieval times, response bytes and SHA256 of raw inputs and schema/context files. Paths resolve from this package root. Files are a snapshot retrieved October 31, 2026, not immutable agency releases. GHCN stations and long daily records can be revised later; NOAA tide products and USGS approved observations can also be revised. The USGS v0 requests redirected to v1; the frozen response self-links identify the v1 endpoint. No later revision is silently merged into this freeze.

## Phoenix temperature index

**Question and selection.** How much of one station's 2025 calculated cooling-degree-day total accrued outside June through August? Phoenix was selected for a hot-weather home-energy explainer, not as a winner of a screened national ranking. No other temperature station was screened. Geography is station USW00023183, named PHOENIX AP in the frozen GHCN station inventory, 33.4278°N, 112.0036°W, elevation 339.2 m; NWS identifies Phoenix's current observing location as Sky Harbor. This is not a city/metro population-weighted temperature estimate.

**Schema.** The frozen NOAA GHCN-Daily README is version 3.35. Each fixed-width `.dly` line begins with station (11), year (4), month (2), element (4), then 31 eight-character day slots: value (5), measurement flag (1), quality flag (1), source flag (1). TMAX/TMIN are tenths Celsius; −9999 is missing. Invalid calendar-day padding is ignored. Retain source/measurement flags for provenance; reject missing values or any nonblank quality flag. No imputation or gap-filling. All 365 dates have both accepted elements, with TMAX≥TMIN. This is 365 daily pairs, not 730 independent days.

**Formula.** Convert each tenths-Celsius input to Fahrenheit by `F = raw/10 × 1.8 + 32`. Define mean as `(TMAX_F + TMIN_F)/2`, not the average of 24 hourly readings. Calculate `max (0, mean−65)` daily and add. Primary analysis uses exact Decimal arithmetic with no intermediate rounding: annual 5281.92°F-days, outside June–August 2407.80, share 45.5856961%. Outside means months 1–5 and 9–12,273 calendar dates; June–August 92 dates. These are degree-day shares, not shares of dates. Monthly and daily values are exported.

**Convention and threshold checks.** An alternative rounds each Fahrenheit high/low to whole degrees, averages, rounds that mean to a whole degree (half-up), then applies 65°F. It gives annual 5354 and outside 2458, share 45.9096003%. Annual 5354 matches the current NWS2025 summary; this arithmetic agreement does not imply that every internal NOAA calculation stage has been independently documented. We keep it as a disclosed sensitivity, not overwrite the primary method. Bases 60°F and 70°F yield outside shares 50.9380877% and 39.9086976%. The headline is specifically about the 65°F convention.

**Uncertainty and limits.** These are deterministic calculations on an archived station record, not survey estimates requiring a sampling MOE. Measurement uncertainty, rounding, observing practice and representativeness still matter. Precision is not a claim of exact household conditions. No energy-use, bill, cooling-equipment, indoor-temperature, health, climate-trend or property-risk estimate is made. No pre 2025 comparison supports a lengthening-season assertion.

## Charleston prediction versus observation

**Question and selection.** Does the highest astronomical prediction on a complete year's hourly grid identify the highest unflagged observed hour at the same gauge? Charleston 8665530 was selected as one coastal illustration with long-established tide products, not selected as a national residual maximum. Latitude 32.7808, longitude−79.9236 in the frozen response. Previous HomeRiskIQ persistence/count studies are not reused.

**Universe and API.** `product=hourly_height` and `product=predictions`, with predictions `interval=h`; station 8665530; January 1 through December 31,2025 inclusive; `time_zone=gmt`, `datum=MLLW`, `units=metric`, `format=json`. This means 8760 expected timestamps from 2025-01-01 00:00 to 2025-12-31 23:00 UTC. The script enforces no duplicate timestamps and exact expected-date sets for both products before joining them. All 8760 pairs exist; no missing heights. Tide datum metadata frozen separately identify the 1983–2001 epoch. No conversion to a building or NAVD88 elevation is performed.

**Schema and quality.** Hourly `t` is time, `v` is water height, `s` the standard deviation of the underlying 1-second samples, and `f` holds two flags in this product: inferred (I), expected-height limit (L). Main eligibility requires exactly`0,0`. There are 8729 eligible pairs;31 are`1,0` and excluded. A verified hourly product is not the same as every value being unflagged. The sigma field is not treated as a standard error/confidence interval. Predictions have`t` and`v`.

**Metric.** Parse heights directly as Decimal. Compute residual=`observed−predicted`; this is a stated sign convention, not a claim every NOAA graphic uses it. Highest eligible observed hourly value:2.535 m at 2025-10-10 15:00UTC, prediction 2.114 m, residual+0.421 m. Highest predicted hour across the complete 8760-hour prediction series:2.180 m at 2025-11-06 13:00UTC, observation 2.040 m, residual−0.140 m. Both matched observations are eligible. Including 31 flagged observations leaves the maximum observed hourly value unchanged. One foot=0.3048 m;0.421 m≈1.38 ft. The candidate peak selection is annual within each series, not two dates chosen first.

**Uncertainty and limits.** A gauge observation and an astronomical baseline are not forecasts of the same thing. Residuals do not isolate a storm's contribution. A maximum on an hourly grid is not the maximum in a six-minute series or the actual instantaneous crest; the latter can be higher. Existing state documentation already covers October 2025 high water. No new flood discovery, flood duration/count, property exposure, street-water depth, damage or climate trend is claimed. All dates in the paired table are UTC; chart labels do not silently switch to local time.

## Montgomery groundwater

**Question and selection.** What does a small January 1–December 31 change omit from a full daily groundwater record? Site USGS-421240072490201 was found during searches for authoritative Massachusetts groundwater examples, then selected because the modern API offered full 2025 approved coverage and retrievable site metadata. Indexed USGS network publications supplied discovery leads but their full documents could not be frozen after 403 responses; their substantive claims are not used in the final article. It is not chosen as the nation's most variable/deepest/driest well. The initial exploratory legacy request for a California site was denied (403), yielded no usable data and was abandoned before this question/site was selected; no excluded site was coded as zero or used in a comparison.

**Geography and hydrogeology.** MA-M7W19 Montgomery; Hampden County, Massachusetts; state 25/county 013; coordinates−72.8169972222,42.2112666667; site typeGW; aquifer 112SRFD; national aquiferN100GLCIAL; aquifer typeU (unconfined); constructed well depth 18 ft and hole depth 21 ft. The analysis neither assumes that it represents all Montgomery wells nor substitutes monitoring-well depth for a household's well construction.

**Data and schema.** USGS modern OGC daily GeoJSON. Filter monitoring_location_id, parameter_code 72019 (depth to water below land surface,ft), statistic_id 00003 (daily mean). `time` is the agency-assigned daily date; these dates are not reinterpreted as UTC instants. `approval_status`, `qualifier`, `last_modified`, parameter, statistic and units are retained/validated. All 3652025 rows are Approved, have null qualifier and nonmissing numeric value; timestamps are unique and match all 365 expected dates. Missing dates are not zero; negative depth is valid and means above the land-surface reference. Daily averages can conceal intraday extrema.

**Historical extraction and selection.** The frozen 2015–2024 request returns 2645 records, all Approved/null qualifier, beginning 2017-09-23; it is not a complete decade.2015/2016 have no rows and 2017 only 100. We therefore use 2018–2024 as the seven full calendar years after continuous daily coverage began, without claiming complete daily coverage. Year counts are 362/365,363/365,366/366,363/365,365/365,361/365,365/366. Every historical month has at least 27 observed days. The raw request and a coverage table for all requested years 2015–2025 preserve exclusions. No endpoint or seasonal result chooses the historical start. There is no pagination-next link in either saved response; the limit 10000 exceeds the returned counts.

**Calculations.**2025 endpoint depth difference=2.02−1.87=+0.15 ft (deeper). Minimum daily depth−0.12 ft onMay 10; maximum 3.51 ft onSeptember 23; observed span 3.63 ft. Monthly medians use all available approved daily means within each calendar month. The historical band is the min/max of seven separate same-calendar-month medians, not the min/max of all daily values pooled together, not a confidence interval and not official drought percentiles. Historical observed annual spans 2.07–4.32 ft bracket the 2025 span, but gaps mean historical absolute daily extrema might have been missed.

**Revision and limits.** The station metadata include aJune 23,2026 revision notice concerning field measurements in NAVD88/NGVD29 elevations. We preserve it and use only the currently retrieved parameter 72019 depth series; no conversion from the station's altitude is made. Approved is not unrevisable. No inference about actual domestic-well capacity, well failure, contamination, health, regional drought severity, pumping causality or a climate trend is supported. The historical comparison is not a long-term normal and is included specifically to prevent ordinary variation from being sold as an anomaly.

## File and source policy

All raw public download inputs are federal government data or documentation. No private contacts, campaign state, suppression records or correspondence are inputs to the reproduction. Outlet staff/contact HTML, pitch drafts, source-policy and novelty review, acquisition failures, editorial dispositions and independent audit belong only to the private package. Charts are original graphical renderings of the exported calculations. Article links cite contextual sources; no third-party newsroom article is redistributed in the public evidence set.
