Grand Isle historical comparison v1.0.0 Source records: NOAA CO-OPS; analysis and chart: Louisiana Deep Sea Fishing. No NOAA endorsement. NOAA source material is public domain; see https://tidesandcurrents.noaa.gov/disclaimers.html Question: how did hourly measured height differ from hourly tide predictions at station 8761724 in calendar year 2025? This is a descriptive historical station comparison, not a fishing, causal weather, clearance or forecast-skill study. Predictions are as retrieved, not archived issue-time forecast vintages. Period: 2025-01-01 00:00 UTC through 2025-12-31 23:00 UTC. Products: hourly_height (verified observations), predictions (interval=h). Both: English height units (ft), datum=MLLW, time_zone=gmt. Station and month fixed before retrieval. Data retrieved October 21, 2026. Exact URLs, retrieval times and SHA-256 hashes are in provenance.json. Original source files: observations.json, predictions.json, station.json. Pair exactly on a 8760-hour UTC grid. Accept numeric pairs only when hourly observation flags I,L are both 0. Missing/invalid/flagged hours are excluded with reasons, never filled. Duplicates, malformed times/flags, wrong station or incompatible request settings fail validation. For each admitted pair: difference_ft = observed_ft - predicted_ft. Mean difference = sum of signed differences / number of admitted pairs. Mean absolute difference = sum of absolute differences / admitted pairs. Median = middle sorted difference (mean of middle two for even count). Daily mean = signed differences averaged within that UTC date's valid pairs. Extremes refer to hourly samples, not unobserved between-hour extremes. Thousandth-foot formatting is numeric precision, not measurement accuracy. Standalone reproduction (Node 24, no network needed): Download reproduce.mjs, protocol.json, observations.json and predictions.json to one folder. Run node reproduce.mjs there to print the summary. No files are modified by this standalone calculator. Compare the raw-file hashes with provenance.json before running. Reproduction in the repository (Node 24, no network needed): node site/scripts/build-noaa-year.mjs cd site npm test Chart generation (Python 3, Matplotlib; delivery used Matplotlib 3.11.2): python site/scripts/plot-noaa-year.py The source protocol and hashes are checked before rebuilding outputs. Raw inputs are retained in research/noaa/grand-isle-2025/. Source acquisition is separate and refuses to overwrite an existing snapshot. Results use 8,758 eligible pairs out of 8,760 expected hours (two inferred observations excluded). No catch, fishing-effort, marsh-current, bottom-depth or meteorological variables were acquired. No confidence interval or representativeness claim is made. Independent scientific review is pending. Corrections require a versioned output and recorded explanation; historical collection dates do not become current conditions when the page is updated. Monthly and seasonal means use admitted hourly pairs for BOTH observed and predicted heights. They are hour-weighted, not means of monthly means. Means are independently rounded, so subtracting printed means may differ by 0.001 ft. Winter combines January, February and December 2025; it is not a contiguous December-February winter. Spring = Mar-May; summer = Jun-Aug; fall = Sep-Nov. These are within-year descriptive groupings, not multiyear seasonal normals. monthly-summary.csv contains all 12 calendar-month summaries.