Same totals, different rain: forty-seven years of ERA5 daily precipitation at a Pacific Mexico estuary show restructuring without a trend in the mean
Abstract
Background. Annual rainfall on the Pacific coast of Guerrero, Mexico, shows no trend in reanalysis, and the site's own earlier analysis summarised the rainy season as unchanged. Totals, however, cannot see a reorganisation of rain within the year.
Data and methods. ERA5 daily precipitation at the grid cell containing La Saladita (17.8375°N, 101.7606°W), 1979–2025 (47 years, 17,167 days), via the Open-Meteo archive. Seven per-year structural metrics (longest wet spell, longest dry spell, independent wet runs, annual maximum one-day total, cumulative-deficit days, monsoon onset and end) were regressed on year by OLS, with a Bonferroni threshold for seven tests (p<0.0071), an AR(1) effective-sample-size adjustment and an ENSO-adjusted re-fit, and compared with a June 2026 run at a cell 44 km away. A sealed year-level natural experiment compares top-tercile marine-heatwave years (NOAA OISST v2.1, Hobday et al. 2016 definition) with the rest.
Results. Rainy-season total: +2.2 mm/decade (p=0.94, mean 991 mm). Longest wet spell: −3.93 days/decade (p=0.00009, r²=0.29). Wet runs: +1.42/decade (p=0.0009, r²=0.22). Longest dry spell: −7.2 days/decade (p=0.042). Annual maximum one-day total: +17.6 mm/decade (p=0.010), corroborated by the 99th-percentile daily total (+10.1 mm/decade, p=0.017). Monsoon end: −2.4 days/decade (p=0.042); onset and deficit days null. Wet-spell length and wet-run count survive Bonferroni correction and the effective-n adjustment; the wet-run year slope holds within each ENSO phase (+1.51/decade with ONI as covariate, p=0.00007). At the 44 km-distant cell only the wet-run trend had been significant. Top-tercile marine-heatwave years carry 3.26 more wet runs per year (95% CI 0.88–5.64; Welch p=0.007; permutation p=0.015; retrodesign power 0.77), a secondary outcome; the primary outcome (storm counts within 1,500 km) is inconclusive.
Conclusions. The same annual volume of rain now arrives in more, shorter, harder bursts, with shorter dry gaps and an earlier end to the season. Trend-in-the-mean tests would miss all of it. The grid-cell sensitivity result is a caution for any point-scale climate claim built on reanalysis.
Introduction
La Saladita is a surf beach and small estuary on the Costa Grande of Guerrero, Mexico, at 17.8375°N, 101.7606°W, roughly 40 km north-west of Zihuatanejo. Its climate is the tropical Pacific monsoon of the Mexican south coast: a dry season from November to May, a rainy season from June to October that carries essentially all of the year's precipitation, a mid-summer relaxation of rain in July and August of the kind described for the region by Magaña et al. (1999), and strong modulation by the El Niño–Southern Oscillation and by East Pacific tropical cyclones (Amador et al. 2006; Pavia et al. 2006).
The field guide that publishes this preprint maintains original analyses of the local climate record. Its climate-trend analysis found no trend in rainy-season totals, onset or end over the ERA5 period: the expected result for a monsoon coast whose interannual variance is dominated by ENSO, and easy to read as "the rain has not changed". It is a weak test. Two years with identical totals can differ entirely in how the water arrives: in a few long soaking spells or many short bursts; on ordinary days or in one extreme day; with or without a long rainless gap. Trenberth et al. (2003) argued that in a warming atmosphere the character of precipitation — intensity, frequency, duration — should change faster than its amount, and Fischer and Knutti (2016) showed that the observed increase in heavy precipitation matches that expectation.
This paper asks the structural question at one place with the longest homogeneous daily record available for it: has the within-year structure of rainfall at La Saladita changed over 1979–2025, even though its total has not? It reports seven per-year structural metrics, their trends, the corrections a seven-test design and an autocorrelated series require, and two checks the site's earlier analyses had left open: whether the trends survive conditioning on ENSO, and how much they depend on the reanalysis grid cell. The second is not a formality. The June 2026 version of this analysis was, by mistake, run at a cell 44 km to the south-east and found one significant metric of seven; the corrected cell finds five. The paper reports that as a sensitivity result rather than a correction note, because it says something general about point-scale claims built on a 31 km product.
Finally, marine heatwaves at the offshore cell nearest the beach have become more frequent over the same period. A sealed year-level comparison asks whether warm-water years differ in storm counts, storm timing, wet-run count and daily extremes, and grades the answer by a rule written down before the read.
Data
ERA5 daily precipitation
Precipitation is the ERA5 reanalysis daily precipitation sum (Hersbach et al. 2020), obtained from the Open-Meteo historical archive API (Zippenfenig 2023) as the precipitation_sum daily variable at 17.8375°N, 101.7606°W in the America/Mexico_City time zone, 1 January 1979 to 31 December 2025: 47 complete years, 17,167 daily values. ERA5 is served on a 0.25° grid, nominally about 31 km and roughly 28 km by 26 km at this latitude. The daily value is a modelled areal average over that box from a forecast model assimilating observations, not a rain-gauge reading. Convective cells and orographic enhancement on the coastal range behind the beach are smoothed; absolute daily amounts are less reliable than year-to-year comparisons of the same quantity, on which the trends reported here rest. The same series aggregated to a May–October total and a 99th-percentile daily value is taken from the site's climate-trend artifact; the ERA5 2 m air temperature trend at the same cell is quoted for context only.
No local gauge calibration is applied. The site operates a personal weather station and holds a short record of nearby Weather Underground stations, with a monthly bias factor against ERA5 estimated for forecast use; neither record is long enough to calibrate a 47-year structural analysis, and doing so is future work.
The June 2026 cell
The June 2026 run of the same script used 17.5897°N, 101.4317°W, a different town about 44 km to the south-east, while the page describing it carried the correct coordinates. The error was found on 14 September 2026 when the forecast model's grid point was corrected; the analyses were rerun at the correct cell on 19–20 September 2026. The June numbers survive in version history and are reported here in full.
Sea-surface temperature
Sea-surface temperature is NOAA OISST v2.1 daily (Huang et al. 2021) at 17.875°N, 101.875°W, the nearest valid ocean cell to the beach, about 12 km west-south-west of it; the cell containing the beach is land-masked on the 0.25° grid. All 44 years 1982–2025 are present (16,054 valid days of 16,071). Coastal SST inside the surf zone can diverge from this offshore value by several tenths of a degree during upwelling or onshore-wind episodes.
ENSO and storms
ENSO phase is the NOAA Climate Prediction Center Oceanic Niño Index (ONI) for the July–August–September season, with El Niño at +0.5 °C or above and La Niña at −0.5 °C or below. Storm counts within 1,500 km and first-arrival dates are from the NHC HURDAT2 East Pacific best-track file as computed in the site's climate-trend artifact.
Methods
Seven per-year structural metrics
Each metric is computed for each calendar year from the daily series, with a wet day defined as at least 1 mm and a dry day as under 1 mm:
- Longest wet spell: the longest run of consecutive wet days.
- Longest dry spell: the longest run of consecutive dry days.
- Wet runs: the number of independent runs of two or more consecutive wet days.
- Annual maximum one-day total: the largest single daily value, in mm.
- Cumulative-deficit days: the number of days on which the 30-day trailing mean is below 20% of the long-term day-of-year climatological mean.
- Monsoon onset: the first day of year after 1 April on which the 7-day trailing mean exceeds 5 mm/day.
- Monsoon end: the last day of year before 1 November on which the 7-day trailing mean exceeds 5 mm/day.
The climate-trend artifact defines the season differently (onset: first day the cumulative May–October total passes 50 mm; end: last day with at least 10 mm), and both definitions are reported where they bear on the same question.
Trend estimation and its corrections
Each annual metric is regressed on calendar year by ordinary least squares (scipy.stats.linregress); slopes are reported per decade with the two-sided p-value of the slope and r². The p-values are approximate for two reasons. First, seven tests are run on one series: the Bonferroni threshold for a family-wise error of 0.05 is p<0.0071, and a result is called robust only if it clears it. Second, annual metrics of a daily series can be serially correlated. For this paper the lag-1 autocorrelation r1 of the regression residuals was computed for each metric, the effective sample size taken as neff = n(1 − r1)/(1 + r1) for positive r1 and n otherwise (Santer et al. 2000), the slope's standard error rescaled by √((n − 2)/(neff − 2)) and the p-value recomputed on neff − 2 degrees of freedom. With 47 points the standard error of r1 is about 0.15, so this checks the order of magnitude of the correction, not its exact size.
ENSO conditioning
Two checks address the site's earlier caveat that the trends had not been tested within ENSO phases. The wet-run regression was repeated inside each JAS-ONI phase separately, and every metric was re-fitted with year and the JAS ONI value as joint covariates, so that the year slope is read net of the linear ENSO effect. Composite August and September totals by phase come from the site's ENSO climatology artifact (1985–2025).
Cell sensitivity
The seven metrics from the June 2026 run at 17.5897°N, 101.4317°W are tabulated beside the corrected-cell values. Nothing else in the pipeline changed between the runs, so the table is a direct sensitivity of the conclusions to a 44 km displacement of the sampling point.
Marine heatwaves
Marine heatwaves are detected by the Hobday et al. (2016) definition: at least five consecutive days above the day-of-year 90th percentile, with the climatology and threshold computed on a 1982–2011 baseline smoothed with an 11-day window, and gaps of up to two days bridged within an event. Categories follow Hobday et al. (2018). Annual event counts and heatwave-days are regressed on year as above.
The sealed natural experiment
The year-level comparison was written as a design before it was read, using the author's sealed-experiment engine. The design fixes the treatment (a year in the top tercile of marine-heatwave days at the offshore cell: 48 days or more), the unit (calendar year, 1982–2025), a primary outcome (storms within 1,500 km), secondary outcomes (first storm arrival, wet runs, annual maximum one-day total, annual peak wave power), a minimum detectable effect (MDE) for each, an expectation, a falsifier, the author's prediction with a confidence, and a SHA-256 seal over the design text. The read compares treated years with the rest by Welch's t-test (Welch 1947) with a 95% confidence interval on the difference in means, and by a permutation test on the same statistic. A verdict is one of four words: WIN, the interval clears the MDE in the predicted direction; LOSS, the opposite; NULL_POWERED, the interval excludes an effect as large as the bar; INCONCLUSIVE, the interval reaches outside the bar on both sides. An interval that includes zero is never read as zero. Every estimate carries the Gelman and Carlin (2014) retrodesign triple: power for an effect of the observed size, the probability that a significant estimate has the wrong sign (type S), and its expected exaggeration (type M). The design is marked post hoc: the data existed before it was written.
Results
Totals and extremes
The May–October total has no trend: +2.2 mm/decade (p=0.94, r²=0.0001) on a mean of 991 mm. Neither season boundary in the climate-trend definition moves (onset −4.2 days/decade, p=0.46; end −1.2 days/decade, p=0.64). The 99th-percentile daily total rises by 10.1 mm/decade (p=0.017, r²=0.12), about 47 mm across the record. Over the same years and cell the ERA5 2 m air temperature rises by 0.278 °C/decade (p<0.0001, r²=0.49).
The seven structural metrics
| Metric | Mean | Slope / decade | r² | p | Bonferroni |
|---|---|---|---|---|---|
| Longest wet spell (days) | 20.8 | −3.93 | 0.293 | 0.00009 | clears |
| Wet runs (≥2 consecutive wet days) | 18.3 | +1.42 | 0.221 | 0.0009 | clears |
| Annual max one-day total (mm) | 104.4 | +17.6 | 0.138 | 0.010 | no |
| Longest dry spell (days) | 114.2 | −7.22 | 0.089 | 0.042 | no |
| Monsoon end (day of year) | 292.1 | −2.41 | 0.089 | 0.042 | no |
| Cumulative-deficit days | 98.6 | −6.14 | 0.058 | 0.104 | null |
| Monsoon onset (day of year) | 168.0 | −0.27 | 0.001 | 0.855 | null |
Five of seven metrics move at p<0.05, and the two strongest clear the seven-test threshold by one and two orders of magnitude. Those two describe one mechanism from two sides. The longest wet spell averaged 20.8 days, reached 45 days in 1983 and 1984, and has not exceeded 16 days in the 2020s; independent wet runs averaged 18.3, were 10 in 1988, and reached 28 in 2025, the most in the record (Figure 1). The same water is arriving in more, shorter runs. Decade means make the size of the change plain: the longest wet spell averaged 29.9 days in 1979–1988 and 13.4 in 2016–2025; wet runs averaged 15.7 and 21.5.
wet_runs.annual.The other three significant metrics point the same way. The annual maximum one-day total rises by 17.6 mm/decade on a mean of 104 mm; the record is 292.9 mm in 2016 (Figure 2), and the decade mean rose from 86.6 mm in 1979–1988 to 161.1 mm in 2016–2025, consistent in sign and size with the 99th-percentile trend from the independent seasonal aggregation. The longest dry spell shortens by 7.2 days/decade on a mean of 114 days, and has run 61 to 84 days in four of the last five years. The monsoon end moves earlier by 2.4 days/decade, about 11 days over the record, from a mean of day 292 (19 October); onset does not move (mean day 168, 17 June). The cumulative-deficit metric is null with a negative sign: nothing in the set says the dry part of the year is getting longer or deeper.
max_1day.annual.Autocorrelation and effective sample size
| Metric | r1 (residuals) | neff | p (nominal) | p (adjusted) |
|---|---|---|---|---|
| Longest wet spell | 0.09 | 38.9 | 0.00009 | 0.0004 |
| Wet runs | −0.04 | 47 | 0.0009 | 0.0009 |
| Annual max one-day total | −0.23 | 47 | 0.010 | 0.010 |
| Longest dry spell | −0.13 | 47 | 0.042 | 0.042 |
| Monsoon end | −0.05 | 47 | 0.042 | 0.042 |
| Cumulative-deficit days | 0.23 | 29.5 | 0.104 | 0.205 |
| Monsoon onset | −0.05 | 47 | 0.855 | 0.855 |
The residuals of five metrics show no positive lag-1 autocorrelation, so their nominal p-values stand. The wet-spell residuals carry r1 = 0.09, which cuts the effective sample to about 39 years and moves p from 0.00009 to 0.0004, still an order of magnitude inside the Bonferroni threshold. Only the deficit-day series is materially autocorrelated (r1 = 0.23), and it was null before the adjustment. The site's earlier pages had assumed an effective n of 30–40 for all metrics; that assumption was conservative for this set.
Sensitivity to the grid cell
| Metric | June cell mean | June slope / decade | June p | Corrected mean | Corrected slope / decade | Corrected p |
|---|---|---|---|---|---|---|
| Wet runs | 19.3 | +1.01 | 0.009 | 18.3 | +1.42 | 0.0009 |
| Longest wet spell (days) | 19 | −0.4 | 0.59 | 20.8 | −3.93 | 0.00009 |
| Longest dry spell (days) | 114 | −0.7 | 0.82 | 114.2 | −7.22 | 0.042 |
| Annual max one-day (mm) | 124 | +10 | 0.15 | 104.4 | +17.6 | 0.010 |
| Cumulative-deficit days | 90 | +1.7 | 0.55 | 98.6 | −6.14 | 0.104 |
| Monsoon onset (DOY) | 160 | −0.1 | 0.90 | 168.0 | −0.27 | 0.855 |
| Monsoon end (DOY) | 297 | −0.7 | 0.36 | 292.1 | −2.41 | 0.042 |
At the June cell one metric of seven was significant, wet-run clustering at +1.0 runs/decade (p=0.009, r²=0.14), and the page summarised the rest as "four nulls", with the extreme day "the most interesting null" at p=0.15. At the corrected cell the clustering signal is stronger and four other metrics move with it, three of them in directions the June page had stated were absent. The seasonal aggregates changed as much: the June cell's mean May–October total was 1,281 mm against 991 mm here, its 99th-percentile trend +6.4 mm/decade at p=0.11 against +10.1 at p=0.017, and its air-temperature trend +0.12 °C/decade (r²=0.22) against +0.278 (r²=0.49). The signs agree for six of seven structural metrics; the magnitudes and the significance do not.
ENSO stratification
ENSO governs the amount of late-summer rain here. Over 1985–2025 the August composite is 169 mm in El Niño years, 250 mm in neutral years and 358 mm in La Niña years (medians 174, 221 and 367; n = 8, 25 and 8), and September is 265, 347 and 438 mm (medians 255, 324 and 361). The relation is monotonic in both months and the El Niño deficit is large, about half a normal August.
ENSO does not, however, account for the structural trends. Fitted within phase over 1979–2025 (n = 9 El Niño, 30 neutral, 8 La Niña years by JAS ONI), the wet-run slope is +1.75, +1.27 and +2.74 runs/decade (p = 0.05, 0.006 and 0.08): positive in every phase and significant in the one with enough years to test. With year and ONI as joint covariates the year slope is +1.51 runs/decade (p=0.00007) and the ONI coefficient +2.83 runs per degree (p=0.0002): El Niño years carry fewer millimetres in more runs. The same model leaves the other trends in place (longest wet spell −4.08 days/decade, p=0.00002; dry spell −7.77, p=0.023; maximum one-day +16.5 mm/decade, p=0.011; monsoon end −2.37, p=0.047) and attaches to the first three an ENSO effect of the same sign as the trend: warm years have shorter wet spells, shorter dry spells and a lower daily maximum. The structural shift is not a residue of the recent ENSO sequence, but the fragmenting effect of a warm year and of the passage of time look alike.
Marine heatwaves and the sealed year-level comparison
The offshore cell records 129 marine heatwaves and 1,475 heatwave-days over 1982–2025, a mean of 33.5 days a year, rising from 18.9 in 1982–2001 to 41.7 in 2005–2025. Heatwave-days increase by 9.6 per decade (p=0.009, r²=0.15, n=44); events by 0.57 per decade (p=0.063). Every event is category Moderate: at this warm, low-variance cell the 90th-percentile threshold sits only about 1.1 °C above climatology, and the strongest peaks (1.3 °C in 2015, 1.1 °C in 2024) never reach the 2× multiple that defines Strong.
| Outcome | Control mean | Treated mean | Difference | 95% CI | Welch p | Perm. p | MDE | Verdict | Power / S / M |
|---|---|---|---|---|---|---|---|---|---|
| Storms within 1,500 km (primary) | 14.48 | 15.53 | +1.05 | −0.90 to 3.00 | 0.29 | 0.35 | 2 | Inconclusive | 0.18 / 0.007 / ×2.4 |
| First storm arrival (DOY) | 152.97 | 149.40 | −3.57 | −12.34 to 5.21 | 0.43 | 0.46 | 7 | Inconclusive | 0.13 / 0.023 / ×3.1 |
| Wet runs per year | 17.21 | 20.47 | +3.26 | 0.88 to 5.64 | 0.0072 | 0.0152 | 2 | Win | 0.77 / 0.000 / ×1.15 |
| Annual max one-day (mm) | 100.92 | 110.07 | +9.14 | −38.03 to 56.31 | 0.70 | 0.68 | 20 | Inconclusive | 0.07 / 0.145 / ×6.2 |
| Annual peak wave power (kW/m) | 66.22 | 53.86 | −12.36 | −28.40 to 3.67 | 0.13 | 0.24 | 10 | Inconclusive | 0.33 / 0.001 / ×1.7 |
The primary outcome does not resolve: warm-water years see about one more storm within 1,500 km, with an interval spanning both no effect and the two-storm bar, at 18% power. The design's falsifier ("if storm count does not move, local SST is not the cyclogenesis lever here") is not triggered: the count is not shown to be still, only unmeasured at this sample. One secondary outcome is graded WIN: top-tercile heatwave years carry 3.26 more wet runs (95% CI 0.88–5.64); the interval clears the two-run bar, the permutation p agrees with Welch, and the retrodesign gives power 0.77, a negligible chance of a wrong sign and an expected exaggeration of 15%. The daily-maximum and first-arrival outcomes are underpowered (0.07 and 0.13) and say nothing either way. Because this is a secondary outcome in a post-hoc design, because Section 4.5 shows that warm-ONI years also carry more wet runs, and because the treated years include the El Niño summers of 2015 and 2023, the WIN is best read as "warm-water years fragment the rain", without a claim about whether the local heatwave or the basin state does it.
Discussion
Restructuring without a trend in the mean
The central result is a negative and a positive that would normally be reported separately. The May–October total at this cell is as flat as a 47-year monsoon series can be, and neither definition of the season boundary shows an onset shift. At the same time the longest wet spell has roughly halved, the number of distinct wet runs has risen by more than a third, the longest dry spell has shortened by about a month, the hardest day has become much harder, and the season ends a week and a half earlier. A test of the mean would have returned "no change" and been right about the mean. The change is in the second moment and in the arrangement of the days.
The direction is the one Trenberth et al. (2003) predicted for a warmer, moister atmosphere, in which intensity rises faster than the total and rain falls in fewer or shorter events; the extreme-day and wet-spell results fit that picture, and the cell's air temperature has risen about 1.3 °C over the record. The shortening of the longest dry spell does not fit the "longer intervals" half of it, and the ENSO model offers a reason: warm years here have shorter dry spells too, and the late-season rain that ends the long dry gap is arriving in a more fragmented way. The monsoon-end result is definition-dependent, significant with a 7-day threshold definition and null with a last-10-mm-day definition, and is reported as supporting evidence rather than a finding.
Consistency with regional work
The results are consistent with the regional literature at the level of mechanism rather than specific numbers, because that literature is mostly at basin or national scale. The bimodal rainy season with a mid-summer minimum described by Magaña et al. (1999) is the setting in which "more wet runs" can occur without more rain: each rainy peak is becoming more fragmented. The dominance of ENSO in the interannual rain amount on this coast, with El Niño summers dry, is the standard result (Amador et al. 2006; Pavia et al. 2006; Méndez and Magaña 2010), and the composites reproduce it. The rise in heavy daily precipitation is the global observational result of Fischer and Knutti (2016), and the increase in marine-heatwave days at the offshore cell is the local expression of the global increase reported by Oliver et al. (2018). The paper adds nothing to those literatures; it adds a place, a 47-year daily record there, and a demonstration that structural metrics see what totals cannot.
What it means for an estuary and a beach
For the estuary, the arrangement of the days matters more than the total. Shorter, harder wet spells deliver the same water with more as runoff and less as infiltration, and more of it in single days that move sediment and open the bar to the sea; a longest dry spell shorter by a month means the lagoon is closed and stagnant for less of the year. For the beach, a wet run is a period of brown water and a closed-out estuary mouth; more of them, spread through the season, is a different summer from a few long ones. An earlier monsoon end lengthens the clear-water season at the back of the year. None of this is measured here; each is a hypothesis that a record of the estuary mouth's state could test.
The cell as a finding
The most general result in the paper is the sensitivity table. Two cells 44 km apart on the same coast in the same reanalysis disagree on five of seven conclusions; the June cell has a mean seasonal total 29% higher and a higher mean daily maximum. A reanalysis at 0.25° is a map of climates, not a climate, and a point-scale claim built on it inherits the box it was read from. The rule that follows is to state the cell, check the nearest neighbours, and treat any result that flips between them as a property of the map.
Limitations
- Reanalysis, not observation. ERA5 precipitation is a model product constrained by assimilated observations, not a gauge. Daily amounts at a coastal cell with steep terrain behind it are smoothed, and a metric built on a 1 mm threshold inherits the model's drizzle behaviour. No local calibration is applied.
- One cell. Conclusions change across 44 km. The metrics have not yet been run at the eight neighbouring cells; that is the obvious next check.
- Seven tests, one series. Only two results clear the family-wise threshold; the other three are reported as supporting a mechanism, not as stand-alone findings.
- Approximate p-values. The AR(1) adjustment is itself estimated from 47 points, and OLS on a count (wet runs) and on maxima (the one-day total) approximates their distributions; the sign and rough size of the slopes do not depend on it.
- Post-hoc natural experiment. The design was sealed after the data existed; the seal fixes the reading rule and the author's prediction, not the author's ignorance. The wet-run WIN is a secondary outcome of a design whose primary outcome is inconclusive, and is not separable from ENSO.
- SST is offshore. The OISST cell is 12 km from the beach; surf-zone temperature can differ from it by several tenths of a degree.
- Not a projection. The record is 47 years; the trends describe it and do not extrapolate beyond it.
Data and code availability
All numbers in this paper are read from machine-generated artifacts published at lasaladita.com, each a JSON object exported by a script in the site's repository. The rainfall-structure artifact (/api/findings-rainfall-regime, generated 2026-09-20T21:16Z by scripts/analyze_rainfall_regime.py) contains the seven metrics with annual series, slopes, r², p and means; the figures are drawn from its wet_runs.annual and max_1day.annual keys. The climate-trend artifact (/api/findings-climate-trends, 2026-09-19, scripts/analyze_climate_trends.py) carries the seasonal totals, the 99th-percentile trend and the temperature trend. The marine-heatwave artifact (/api/findings-marine-heatwaves, 2026-09-20, scripts/analyze_marine_heatwaves.py after scripts/build_sst_climatology.py) carries the OISST event ledger. The ENSO composites are the enso_local_climatology object served by /api/seasonal (2026-08-31, scripts/build_enso_local_climatology.py). The sealed designs and reads are in data/ground_truth/natural_experiments.jsonl and functions/api/_findings_natural_experiments.js, written by scripts/natural_experiments.py and rendered at /findings/natural-experiments/. The June 2026 values are from the June versions of the rainfall-structure and climate-trend findings pages, retained in version control. The effective-n and ENSO-adjusted computations (Sections 4.3 and 4.5) are fully specified in Section 3 and reproduce from the artifact annual series and the public ONI table; every artifact slope and p-value was independently reproduced from the annual series for this paper and agrees to the reported precision.
References
- Amador, J.A., Alfaro, E.J., Lizano, O.G. and Magaña, V.O. (2006). Atmospheric forcing of the eastern tropical Pacific: A review. Progress in Oceanography 69: 101–142.
- Fischer, E.M. and Knutti, R. (2016). Observed heavy precipitation increase confirms theory and early models. Nature Climate Change 6: 986–991.
- Gelman, A. and Carlin, J. (2014). Beyond power calculations: Assessing Type S (sign) and Type M (magnitude) errors. Perspectives on Psychological Science 9(6): 641–651.
- Hersbach, H., Bell, B., Berrisford, P. et al. (2020). The ERA5 global reanalysis. Quarterly Journal of the Royal Meteorological Society 146: 1999–2049.
- Hobday, A.J., Alexander, L.V., Perkins, S.E. et al. (2016). A hierarchical approach to defining marine heatwaves. Progress in Oceanography 141: 227–238.
- Hobday, A.J., Oliver, E.C.J., Sen Gupta, A. et al. (2018). Categorizing and naming marine heatwaves. Oceanography 31(2): 162–173.
- Huang, B., Liu, C., Banzon, V. et al. (2021). Improvements of the Daily Optimum Interpolation Sea Surface Temperature (DOISST) version 2.1. Journal of Climate 34: 2923–2939.
- Magaña, V., Amador, J.A. and Medina, S. (1999). The midsummer drought over Mexico and Central America. Journal of Climate 12: 1577–1588.
- Méndez, M. and Magaña, V. (2010). Regional aspects of prolonged meteorological droughts over Mexico and Central America. Journal of Climate 23: 1175–1188.
- NOAA Climate Prediction Center. Oceanic Niño Index (ONI),
oni.ascii.txt. https://www.cpc.ncep.noaa.gov/data/indices/ (accessed 2026). - Oliver, E.C.J., Donat, M.G., Burrows, M.T. et al. (2018). Longer and more frequent marine heatwaves over the past century. Nature Communications 9: 1324.
- Pavia, E.G., Graef, F. and Reyes, J. (2006). PDO–ENSO effects in the climate of Mexico. Journal of Climate 19: 6433–6438.
- Santer, B.D., Wigley, T.M.L., Boyle, J.S. et al. (2000). Statistical significance of trends and trend differences in layer-average atmospheric temperature time series. Journal of Geophysical Research 105(D6): 7337–7356.
- Trenberth, K.E., Dai, A., Rasmussen, R.M. and Parsons, D.B. (2003). The changing character of precipitation. Bulletin of the American Meteorological Society 84: 1205–1217.
- Welch, B.L. (1947). The generalization of "Student's" problem when several different population variances are involved. Biometrika 34: 28–35.
- Zippenfenig, P. (2023). Open-Meteo.com Weather API [computer software]. Zenodo. https://doi.org/10.5281/zenodo.7970649
Appendix: numbers table
Every number quoted in the text, mapped to the artifact and key it was read from. RR = /api/findings-rainfall-regime (FINDINGS_RAINFALL_REGIME); CT = /api/findings-climate-trends (FINDINGS_CLIMATE_TRENDS); MHW = /api/findings-marine-heatwaves (FINDINGS_MARINE_HEATWAVES); NE = FINDINGS_NATURAL_EXPERIMENTS, read marine_heatwave_year; ENSO = enso_local_climatology in /api/seasonal; JUNE = the June 2026 findings pages in version control; PAPER = computed for this paper from the artifact annual series (and ONI where stated).
| Quoted number | Source | Key |
|---|---|---|
| 17.8375°N, 101.7606°W; 47 years; 1979–2025 | RR | lat, lon, n_years, year_range |
| 17,167 daily values | RR page / arithmetic | 47 × 365 + 12 leap days |
| Wet spell −3.93 d/dec, r² 0.293, p 0.00009, mean 20.8; 45 d in 1983 and 1984; ≤16 in 2020s | RR | wet_spell.slope_per_decade −3.9304, .r2, .p_value 8.7e-05, .mean 20.77, .annual |
| Wet runs +1.42/dec, r² 0.221, p 0.0009, mean 18.3; 10 in 1988; 28 in 2025 | RR | wet_runs.slope_per_decade 1.4165, .r2, .p_value 0.000869, .mean 18.26, .annual |
| Dry spell −7.22 d/dec, r² 0.089, p 0.042, mean 114.2; 61–84 d in four of last five years | RR | dry_spell.* (−7.2179, 0.0885, 0.042276, 114.17); .annual 2021–2025 = 84, 128, 61, 70, 73 |
| Max one-day +17.6 mm/dec, r² 0.138, p 0.010, mean 104.4; record 292.9 mm (2016) | RR | max_1day.* (17.5642, 0.1378, 0.010198, 104.37); .annual.2016 |
| Deficit days −6.14 d/dec, r² 0.058, p 0.104, mean 98.6 | RR | deficit_days.* (−6.1448, 0.0578, 0.103552, 98.62) |
| Onset −0.27 d/dec, r² 0.001, p 0.855, mean DOY 168.0 | RR | monsoon_onset.* (−0.2683, 0.0007, 0.855368, 167.96) |
| End −2.41 d/dec, r² 0.089, p 0.042, mean DOY 292.1 | RR | monsoon_end.* (−2.4075, 0.0891, 0.041581, 292.13) |
| Bonferroni threshold p<0.0071 | arithmetic | 0.05 / 7 = 0.00714 |
| Decade means: wet spell 29.9 → 13.4; wet runs 15.7 → 21.5; max one-day 86.6 → 161.1 mm; dry spell 125.2 → 98.8 (1979–88 vs 2016–25) | PAPER | means of *.annual over the two decades |
| r1, neff, adjusted p (Table 2) | PAPER | residual lag-1 autocorrelation of OLS on *.annual; neff = n(1−r1)/(1+r1) |
| Season total +2.2 mm/dec, p 0.94, r² 0.0001, mean 991 mm | CT | rainy_season.total_precip_trend (2.23, 0.937146, 0.0001, 991.2) |
| CT onset −4.2 d/dec p 0.46 (mean DOY 139); CT end −1.2 d/dec p 0.64 (mean DOY 303) | CT | rainy_season.onset_doy_trend, .end_doy_trend |
| p99 +10.1 mm/dec, p 0.017, r² 0.12; ≈47 mm over record | CT | rainy_season.p99_extremes_trend (10.14, 0.016807, 0.1205); × 4.7 decades |
| T2m +0.278 °C/dec, p<0.0001, r² 0.49; ≈1.3 °C over record | CT | surface_temp (0.278, 0.0, 0.4909); × 4.7 decades |
| June cell 17.5897°N, 101.4317°W, 44 km | RR page revision note; NE design model_point_correction_2026-09-14 | haversine ≈ 44 km |
| June metrics: wet runs +1.01 p 0.009 r² 0.14 mean 19.3; wet spell −0.4 p 0.59 mean 19; dry spell −0.7 p 0.82 mean 114; max one-day +10 p 0.15 mean 124; deficit +1.7 p 0.55 mean 90; onset −0.1 p 0.90 DOY 160; end −0.7 p 0.36 DOY 297 | JUNE | rainfall-regime-structure page, June 2026 version |
| June seasonal: total −15 mm/dec p 0.62 mean 1,281 mm; p99 +6.4 mm/dec p 0.11; T2m +0.12 °C/dec r² 0.22 | JUNE | climate-trends page, June 2026 version |
| 29% higher June-cell seasonal mean | arithmetic | 1,281 / 991 − 1 |
| ENSO composites: Aug 169 / 250 / 358 (medians 174 / 221 / 367); Sep 265 / 347 / 438 (medians 255 / 324 / 361); n 8 / 25 / 8; 1985–2025 | ENSO | august_mm, september_mm, n, record |
| Within-phase wet-run slopes +1.75 / +1.27 / +2.74 (p 0.05 / 0.006 / 0.08; n 9 / 30 / 8); year+ONI model +1.51/dec p 0.00007, ONI +2.83 p 0.0002; wet spell −4.08 p 0.00002; dry spell −7.77 p 0.023; max one-day +16.5 p 0.011; end −2.37 p 0.047 | PAPER | OLS on *.annual with JAS ONI (NOAA CPC) as covariate, 1979–2025 |
| 129 events; 1,475 MHW-days; 33.5/yr; 18.9 (1982–2001) vs 41.7 (2005–2025) | MHW | summary.total_events, .total_mhw_days, .mean_mhw_days_per_year, .early_era_mean_days, .recent_era_mean_days |
| MHW-days +9.6/dec p 0.009 r² 0.15 n 44; events +0.57/dec p 0.063 | MHW | trends.mhw_days_per_year (9.581, 0.0088, 0.152), trends.events_per_year (0.57, 0.0631) |
| All Moderate; threshold ≈1.1 °C above climatology; peaks 1.3 °C (2015), 1.1 °C (2024) | MHW | summary.category_breakdown; page method note; per_year.2015.max_intensity 1.32, per_year.2024.max_intensity 1.06 |
| OISST cell 17.875°N, 101.875°W, ~12 km WSW; 16,054 of 16,071 days; baseline 1982–2011 | MHW | cell_note, page data-acquisition note, baseline |
| Tercile cut 48 days; n 15 treated / 29 control | NE | tercile_cut_mhw_days; outcomes[].n_treated, .n_control |
| Storms within 1,500 km 14.48 vs 15.53, +1.05, CI −0.9 to 3.0, p 0.29 / 0.35, MDE 2, power 0.18 | NE | outcomes[storms_1500] |
| Wet runs 17.21 vs 20.47, +3.26, CI 0.88 to 5.64, Welch p 0.0072, perm p 0.0152, MDE 2, WIN, power 0.766, type S 0.0, type M 1.149 | NE | outcomes[wet_runs] |
| First arrival −3.57 (CI −12.34 to 5.21); max one-day +9.14 (CI −38.03 to 56.31), power 0.07; peak wave power −12.36 (CI −28.4 to 3.67) | NE | outcomes[first_doy], [max_1day], [peak_p] |
| Seal 5889…9582; sealed 2026-09-27T01:31:30Z; read 2026-09-26; prediction INCONCLUSIVE (0.5); post hoc | NE | design marine_heatwave_year: seal, sealed_at, author_prediction, confidence, post_hoc; read read_at |
| Storm counts and first arrival (HURDAT2) | CT | epac_season.storms_within_1500km_trend, .first_arrival_doy_trend |