Rising at the top, not widening: seven decades of eastern North Pacific tropical-cyclone intensity and timing at a fixed point on the Guerrero coast
La Saladita Field Guide, La Saladita, Guerrero, Mexico · [email protected] · lasaladita.com/about/
Abstract
Background Basin-wide tropical-cyclone statistics answer a different question from the one a coastal resident asks. This paper measures what the eastern North Pacific (EPAC) record has delivered to one fixed point, La Saladita, Guerrero (17.8375°N, 101.7606°W), and asks whether the timing and intensity of that delivery have changed over seven decades.
Methods Every 6-hourly best-track fix in the NHC HURDAT2 NEPAC database (1949–2025; 1,260 storms) was placed at a haversine distance from the point. Rings of 500 km (direct threat) and 1,500 km (swing zone, basin activity) define yearly series: first-arrival day of year, storm count, storm-days, and peak sustained wind within 500 km. Trends were fitted by ordinary least squares. The upper tail was summarised per decade by both the maximum and a linearly interpolated 90th percentile, each tested with a five-method ensemble (Pearson, Mann–Kendall and permutation on the decade series; Pearson and Mann–Kendall on rolling 15-year windows), alongside the decade mean, median, standard deviation and interquartile range; a change-point ensemble (Pettitt, CUSUM, Mann–Kendall, AIC piecewise, permutation) was applied to the first-arrival series; years were stratified by ENSO class from the NOAA CPC Oceanic Niño Index. Every result was re-run on the satellite era (1978–2025) as a standing robustness rule, and p-values were read against a Bonferroni threshold over the 22 cumulative tests logged at the time of the last artifact.
Results The first storm within 1,500 km arrives 2.30 days earlier per decade (p = 0.008, n = 77). Storms within 1,500 km rise by 1.21 per decade and storm-days by 6.17 per decade (both p < 0.001). Peak intensity within 500 km rises 4.8 kt per decade (p = 0.001). The decade maximum of yearly peak intensity rises from 120 kt in the 1950s (1959) to 185 kt in the 2010s (2015) (decade Pearson r = 0.75, p = 0.032), and the interpolated decade 90th percentile from 79.5 to 131 kt (r = 0.87, p = 0.005); both statistics win five of five ensemble votes, though no decade-level test clears the cumulative Bonferroni threshold. Decade standard deviation (p = 0.15) and interquartile range (p = 0.40) do not trend, so the change is the top of the distribution moving up, not a general widening. The rise at the top persists in the satellite era. Storm-count trends hold within El Niño, La Niña and neutral years; the first-arrival trend is negative in each class but significant in none. A 1969 change point in first arrival that five methods called real (17-day step) fell to one method in five on the satellite-era retest and is retracted as a detection artifact; track-geometry trends fail the same retest.
Limitations Pre-1966 detection bias, unmodelled interannual autocorrelation (p-values optimistic), about ten values per decade (the maximum is one storm; any 90th percentile is coarse), overlapping rolling windows, and one point on one coast.
Keywords: tropical cyclones · eastern North Pacific · HURDAT2 · intensity trend · phenology · change-point · detection bias · Guerrero
Note on the v1 finding (June 2026). The intensity analysis this paper rests on was first published on 9 June 2026 with three defects, found while this manuscript was being written and corrected before it was posted. (1) The statistic reported as the decade “90th percentile” was computed as the value at index ⌊0.9 n⌋ of the sorted decade values; with n ≤ 10 per decade that index is n − 1, so the series (120 kt in the 1950s → 185 kt in the 2010s) was the decade maximum. (2) The satellite-era robustness figure quoted as a rolling-window p90 (r = 0.87) was a rolling standard deviation. (3) The findings artifacts had been built from an earlier HURDAT2 download than the current storm-climatology table (for example, 2009 read 135 kt rather than 150 kt, and the first-arrival slope −2.45 rather than −2.30 days per decade). The June decade-level tests on the maximum were r = 0.729 (p = 0.009), Mann–Kendall z = 2.35 (p = 0.019), permutation p = 0.029; the rolling tests r = 0.904 and z = 9.25. All numbers in this paper come from artifacts regenerated on 27 September 2026 from one table, with the maximum and a properly interpolated 90th percentile reported side by side. The finding that the top of the distribution is rising survives; the claim that the distribution is widening, in the sense of increasing spread, does not.
Introduction
Most published tropical-cyclone trend work is organised by basin: counts, accumulated cyclone energy, the proportion of fixes at major-hurricane intensity, the latitude of lifetime-maximum intensity. Those are the right units for the atmosphere. They are the wrong units for a person standing on a beach. A surfer at La Saladita, a point break on the Guerrero coast about 40 km northwest of Zihuatanejo, does not experience the basin; she experiences the subset of storms whose tracks bring them within swell range or within striking distance, on the days they do so. The relevant questions are local and calendrical: when does the first storm of the year come within range, how many storms and storm-days does a season now deliver, and how strong is the strongest storm that passes close enough to matter?
This paper answers those questions for one fixed coordinate using the full length of the NHC best-track record for the eastern North Pacific. The method is deliberately simple, a set of distance rings around the point and yearly summary statistics inside them, so that every number can be traced to a published data artifact and reproduced by a script. The contribution is not a new climate mechanism. It is a careful, fully disclosed description of what one coast has received, with the analysis's own false positive left in as a methods lesson.
Two distances organise the work. Within 500 km a storm is a direct threat: winds, rain and surge at the coast, and the size of the surf changes from an asset to a hazard. Within 1,500 km a storm is a swell source and a sign the basin is active; the site's forecast engine uses that ring to define the storm season. The 1,000 km ring used by the forecast for "elevated swell" is not analysed here.
Data
Best tracks. The National Hurricane Center's HURDAT2 database for the northeast and north-central Pacific (NEPAC) provides 6-hourly position and maximum sustained wind (kt) for every tropical and subtropical cyclone from 1949 onward (Landsea and Franklin 2013 describe the format and the uncertainty model for the Atlantic edition, which the NEPAC edition shares). The file used for the current storm-climatology table is hurdat2-nepac-1949-2025-091426.txt, published at nhc.noaa.gov/data/#hurdat. It contains 1,260 eastern and central Pacific storms over 77 seasons, 1949–2025, as parsed by the track script. Sustained winds are in knots throughout; 1 kt = 0.514 m/s. Saffir–Simpson thresholds are quoted for orientation only: Category 4 begins at 113 kt and Category 5 at 137 kt.
ENSO. Each year was classified by the NOAA Climate Prediction Center Oceanic Niño Index for the July–August–September season (oni.ascii.txt, the file current in September 2026, through the June–August 2026 season): El Niño at ONI ≥ +0.5 °C, La Niña at ONI ≤ −0.5 °C, otherwise neutral. This gives 15 El Niño, 17 La Niña and 44 neutral years among the 76 years with an ONI value. CPC recomputes the index against a moving base period, so edge-year classes differ between downloads; the June 2026 run had 17, 19 and 40.
Reference point. La Saladita, 17.8375°N, 101.7606°W.
Data vintage. Every artifact used here was regenerated on 27 September 2026 from the storm-climatology table built on 19 September 2026 from the file named above (the track artifact parses the same file directly), and each records it in a data_vintage field. Earlier June 2026 artifacts were built from a previous download; the differences are listed in the note above and in Appendix A.
Methods
Distance rings and yearly series
For every fix the great-circle distance to the reference point was computed with the haversine formula. A storm "enters" a ring on the first fix inside it. Four yearly series were built (script build_storm_climatology.py): (i) first-arrival day of year, the earliest calendar day on which any storm was within 1,500 km; (ii) the number of distinct storms entering 1,500 km; (iii) storm-days within 1,500 km, counted as unique storm × calendar-date combinations with a fix inside the ring; and (iv) the maximum sustained wind recorded by any fix within 500 km. Two years, 1977 and 1994, had storms within 1,500 km but none within 500 km; they carry a peak intensity of zero in the table and are excluded from the intensity-distribution analysis, leaving 75 years for that series and 77 for the others.
Trend estimation
Each yearly series was regressed on calendar year by ordinary least squares (script analyze_hurricane_phenology.py). Slopes are reported per decade with r² and a two-sided p-value from the normal approximation to the t-distribution. Interannual autocorrelation was not modelled; the p-values are therefore optimistic bounds, a point returned to in the Limitations. The same script computed the trends within each ENSO class separately.
The upper tail: decade and rolling-window statistics
To ask whether the intensity distribution is widening rather than only shifting, the 75 yearly peak-intensity values were grouped by decade and summarised by mean, median, population standard deviation, interquartile range, a 90th percentile, and the maximum (script loop_iter8_intensity_distribution.py, revision 2). The 90th percentile and the quartiles use linear interpolation between order statistics (the numpy default): with n = 10 the 90th percentile lies one tenth of the way from the second-highest to the highest value, so it is a coarse statistic, but it is not the maximum. The maximum is reported alongside as the decade upper order statistic. The same three statistics (maximum, 90th percentile, standard deviation) were computed in 63 rolling 15-year windows across the 75 years. Trends in the decade series were tested three ways: Pearson correlation with decade (exact t-distribution p-value), the Mann–Kendall rank test (Mann 1945; Kendall 1975), and a 3,000-shuffle permutation null on the Pearson statistic; the rolling series by Pearson and Mann–Kendall. The ensemble was run separately on the maximum and on the 90th percentile; each had five votes (decade Pearson, decade Mann–Kendall, decade permutation, rolling Pearson, rolling Mann–Kendall) and the verdict “real” required at least three at p < 0.05. Rolling windows overlap by 14 of 15 years, so their p-values are not independent tests and are read as description.
Change-point ensemble
The first-arrival series was tested for a discrete shift with the Pettitt statistic (Pettitt 1979) with both its asymptotic p-value and a 5,000-shuffle permutation null; a CUSUM of deviations from the grand mean (Page 1954) with the same permutation null; the Mann–Kendall test; and an AIC comparison (Akaike 1974) between a two-parameter linear fit and a three-parameter piecewise-constant fit whose break is chosen by minimum residual sum of squares. The verdict "real" required at least three of the four p-value methods at p < 0.05 and a ΔAIC favouring the piecewise model (scripts loop_iter3_regime_change.py and loop_iter4_regime_change_satellite_era.py).
Track geometry
Per-storm genesis latitude and longitude (first fix), northernmost latitude, circular-mean heading between consecutive fixes, and recurvature latitude (the first inflection where a two-step net zonal displacement flips from westward to eastward with concurrent poleward motion) were averaged by year and regressed on year (script analyze_hurricane_tracks.py). Recurvature was detectable in 26.6% of storms.
The satellite-era retest as a standing rule
Routine geostationary surveillance of the EPAC basin was established in the late 1970s; the site treats 1978–2025 (n = 48 seasons) as the period of uniform detection. Every finding above was re-run on that subset. A result that changes verdict on the subset is reported as a detection artifact, not as climate. This rule was adopted after the change-point result in Section 4.5 failed it.
Multiple testing
The site's self-paced pattern hunt logs every hypothesis test it runs. At the time the intensity-widening artifact was first written the log stood at 22 cumulative tests; the September re-estimation adds no new hypothesis and keeps that count (the change-point artifact was written at 11; the log later reached 33 after two further iterations not used here). The Bonferroni threshold for the 22-test count is α = 0.05/22 = 0.0023; for 11 tests it is 0.0045 (Dunn 1961). Each family of results also states its own within-family threshold where the artifact does (four simultaneous track tests, p < 0.0125).
Results
Timing, count, storm-days and mean intensity
Table 1 collects the four ordinary-least-squares trends and Figure 1 shows the first-arrival series. The first storm within 1,500 km now arrives earlier by 2.30 days per decade, about 17.5 days across the record (the fitted line runs from day 165, mid-June, in 1949 to day 147.5, late May, in 2025). Storms and storm-days inside the ring have both risen strongly. Peak intensity within 500 km has risen by 4.8 kt per decade (4.75 kt on the 75 storm years alone, p = 0.0004). Three of the four clear the 22-test Bonferroni threshold; the first-arrival trend clears the four-test threshold used on its own page but not the cumulative one.
STORM_CLIMATOLOGY.first_arrival.by_year, September 2026 vintage). Solid line: OLS fit to the plotted points (−2.30 d/decade, as in FINDINGS_HURRICANE_PHENOLOGY). Dashed: pre- and post-1969 means (168.6, 151.6) from the change-point analysis retracted in Section 4.5. Shading: satellite era.Ordinary least-squares trends of yearly series, 1949–2025. Source: FINDINGS_HURRICANE_PHENOLOGY. Bonferroni column: α/22 = 0.0023.
| Series | n | Slope per decade | r² | p | Clears α/22 |
|---|---|---|---|---|---|
| First-arrival day of year, 1,500 km | 77 | −2.30 d | 0.086 | 0.0078 | no (clears 0.0125) |
| Storms per year within 1,500 km | 77 | +1.21 | 0.369 | < 0.001 | yes |
| Storm-days per year within 1,500 km | 77 | +6.17 d | 0.340 | < 0.001 | yes |
| Peak sustained wind within 500 km | 77 | +4.80 kt | 0.119 | 0.0014 | yes |
The climatological context for these trends comes from the storm-climatology table: over the full record the mean first arrival is day 156 (early June), the median day 153, with a 10th–90th percentile range of days 137–178. September is the busiest month at the 500 km ring (1.25 storms per year on average) and at 1,500 km (12.9 storm-days per year); June is the second-busiest month at 500 km (1.09 storms per year).
The upper tail of intensity
Table 2 and Figure 2 give the decade summaries. The mean rises from 76.5 kt in the 1950s to 101.0 kt in the 2010s and 107.5 kt in the partial 2020s. The interpolated 90th percentile rises from 79.5 kt in the 1950s to 136.5 kt in the 2000s, 131.0 kt in the 2010s and 127.5 kt in the 2020s. The decade maximum rises further and less evenly: 120 kt in the 1950s (one storm, 1959), 75 kt in the 1960s, then 125, 115 and 130 kt, 150 kt in the 2000s (2009), 185 kt in the 2010s (2015) and 145 kt in the six seasons of the 2020s (2023). Read as Saffir–Simpson categories, the strongest storm to pass within 500 km in a decade was at most Category 4 until the 2000s and has been Category 5 in each decade since. Fitted across decades, the maximum rises 9.7 ± 3.5 kt per decade, the 90th percentile 8.5 ± 2.0, the mean 4.7 ± 1.0 and the median 3.4 ± 1.8 (slope ± standard error). The upper statistics gain more knots than the centre, but the difference between the maximum’s and the mean’s slopes is less than two standard errors and is not itself tested.
FINDINGS_INTENSITY_WIDENING.decade_stats (revision 2, September 2026 table).Yearly peak sustained wind within 500 km, grouped by decade. Source: FINDINGS_INTENSITY_WIDENING.decade_stats (revision 2; years with no storm inside 500 km excluded, n = 75). SD is the population standard deviation; IQR and p90 use linear interpolation.
| Decade | n yrs | Mean kt | Median kt | SD kt | IQR kt | p90 kt | Max kt (year) |
|---|---|---|---|---|---|---|---|
| 1950s | 10 | 76.5 | 75.0 | 17.0 | 0.0 | 79.5 | 120 (1959) |
| 1960s | 10 | 67.0 | 75.0 | 12.5 | 15.0 | 75.0 | 75 (1960) |
| 1970s | 9 | 87.2 | 90.0 | 25.9 | 40.0 | 113.0 | 125 (1976) |
| 1980s | 10 | 80.0 | 80.0 | 15.5 | 23.8 | 92.5 | 115 (1983) |
| 1990s | 9 | 91.7 | 95.0 | 25.3 | 30.0 | 118.0 | 130 (1993) |
| 2000s | 10 | 87.0 | 67.5 | 37.6 | 67.5 | 136.5 | 150 (2009) |
| 2010s | 10 | 101.0 | 97.5 | 35.0 | 22.5 | 131.0 | 185 (2015) |
| 2020s (partial) | 6 | 107.5 | 107.5 | 19.3 | 16.2 | 127.5 | 145 (2023) |
Table 3 gives the ensemble. Both upper statistics win five of five votes. On the decade series the 90th percentile gives Pearson r = 0.871 (p = 0.005) and permutation p = 0.005; the maximum r = 0.75 (p = 0.032) and permutation p = 0.021; Mann–Kendall gives z = 2.10 (p = 0.035) for both. None of the decade-level tests clears the cumulative Bonferroni threshold of 0.0023. The rolling-window tests are all nominally p < 0.0001, but with windows overlapping by 14 of 15 years they are not independent tests and are read as description. The decade mean also rises (r = 0.888, p = 0.003); the median does not reach significance (r = 0.612, p = 0.106). The two dispersion measures do not trend: standard deviation r = 0.553 (p = 0.155), interquartile range r = 0.347 (p = 0.400). The result is therefore a rise at the top of the distribution, not a general increase in spread. Dropping the partial 2020s leaves the upper-tail trends in place (maximum r = 0.80, p = 0.030; 90th percentile r = 0.89, p = 0.007). On the satellite-era subset (1978–2025, 47 storm years, 34 windows) the rolling maximum rises with r = 0.925, the rolling 90th percentile with r = 0.923 and the rolling standard deviation with r = 0.859; the rise at the top is not confined to the pre-satellite years. The rolling standard deviation also rises on the full record (r = 0.852), in tension with the null decade dispersion tests; with overlapping windows and a few strong years (2009, 2015, 2023) each counted in many windows, the non-overlapping decade tests are the stronger evidence, and whether spread is growing is left open.
Trend tests on decade and rolling-window statistics of yearly peak intensity within 500 km. Source: FINDINGS_INTENSITY_WIDENING.decade_trends, .rolling_15yr_trends, .satellite_era.rolling_15yr_trends, .ensemble. Rolling p-values are nominal (overlapping windows).
| View · statistic | Test | Statistic | p | Clears α/22 |
|---|---|---|---|---|
| Decade (8) · maximum | Pearson r | 0.75 | 0.032 | no |
| Decade (8) · maximum | Mann–Kendall | z = 2.10 | 0.035 | no |
| Decade (8) · maximum | Permutation (3,000) | — | 0.021 | no |
| Decade (8) · p90 | Pearson r | 0.871 | 0.005 | no |
| Decade (8) · p90 | Mann–Kendall | z = 2.10 | 0.035 | no |
| Decade (8) · p90 | Permutation (3,000) | — | 0.005 | no |
| Rolling 15-yr (63) · maximum | Pearson r | 0.852 | < 0.0001 | nominal |
| Rolling 15-yr (63) · maximum | Mann–Kendall | z = 8.99 | < 0.0001 | nominal |
| Rolling 15-yr (63) · p90 | Pearson r | 0.929 | < 0.0001 | nominal |
| Rolling 15-yr (63) · p90 | Mann–Kendall | z = 9.63 | < 0.0001 | nominal |
| Rolling 15-yr (63) · SD | Pearson r | 0.852 | < 0.0001 | nominal |
| Rolling 15-yr (63) · SD | Mann–Kendall | z = 7.40 | < 0.0001 | nominal |
| Decade (8) · mean | Pearson r | 0.888 | 0.003 | no |
| Decade (8) · median | Pearson r | 0.612 | 0.106 | no |
| Decade (8) · SD | Pearson r | 0.553 | 0.155 | no |
| Decade (8) · IQR | Pearson r | 0.347 | 0.400 | no |
| Satellite era 1978–2025, rolling 15-yr (34) · maximum | Pearson r | 0.925 | < 0.0001 | nominal |
| Satellite era 1978–2025, rolling 15-yr (34) · p90 | Pearson r | 0.923 | < 0.0001 | nominal |
| Satellite era 1978–2025, rolling 15-yr (34) · SD | Pearson r | 0.859 | < 0.0001 | nominal |
| Ensemble votes (p < 0.05) | maximum / p90 | 5/5 · 5/5 | — | verdict real / real |
ENSO stratification
If the trends were an artifact of the mix of ENSO states across the record, they would vanish within each class. The storm-count trend does not: it is positive and at least p < 0.05 in El Niño, La Niña and neutral years (Table 4). The first-arrival trend is negative in all three classes but reaches p < 0.05 in none; the neutral class, with 44 of the 76 classified seasons, comes closest (p = 0.066), and the El Niño subset has the steepest slope and the widest uncertainty. (On the June ONI download, with 40 neutral years, the neutral-year trend was p = 0.046; the result sits at the threshold and moves with the classification.) Class means run against the basin-wide intuition: neutral years bring the most storms into the 1,500 km ring (13.7 per year), La Niña years 11.7, El Niño years 11.1. A plausible reading is that El Niño steers activity westward, away from the Mexican coast, while raising basin totals; the data here describe the pattern and do not test the mechanism.
Trends within ENSO classes (ONI, July–September). Source: FINDINGS_HURRICANE_PHENOLOGY.first_arrival_doy_trend.by_enso, .storm_count_1500km_trend.by_enso, .enso_class_means.
| Class | n yrs | Mean storms / yr (1,500 km) | Count slope / decade | p | First-arrival slope / decade | p |
|---|---|---|---|---|---|---|
| El Niño | 15 | 11.07 | +1.20 | < 0.001 | −3.87 d | 0.180 |
| La Niña | 17 | 11.65 | +0.96 | 0.028 | −1.28 d | 0.359 |
| Neutral | 44 | 13.68 | +1.19 | < 0.001 | −1.96 d | 0.066 |
Track geometry
Over the full record mean genesis latitude moved south by 0.33° per decade (p < 0.001, r² = 0.25) and mean recurvature latitude by 0.37° per decade (p = 0.016), while genesis longitude, northernmost latitude and mean heading showed nothing (Table 5). The genesis-latitude decade means fall from 16.0°N in the 1950s to 12.9°N in the 1970s and are flat afterwards. Restricted to 1978–2025 every trend is inconclusive: genesis latitude +0.14° per decade (p = 0.16), recurvature −0.04° (p = 0.87), northernmost latitude +0.26° (p = 0.080). The long-record signals are the catalog learning to see short-lived low-latitude systems, not the tracks moving. The satellite-era northernmost-latitude lean is the one geometric quantity that would mechanically explain more storms reaching the 1,500 km ring; at p = 0.080 on 48 seasons it is reported as a watch item, not a result.
Track-geometry trends of yearly means, 1,260 storms. Source: FINDINGS_HURRICANE_TRACKS.trends. Within-family Bonferroni threshold for the four full-record tests: p < 0.0125.
| Metric | Full record slope / decade | p | 1978–2025 slope / decade | p |
|---|---|---|---|---|
| Genesis latitude | −0.333° | < 0.001 | +0.142° | 0.161 |
| Genesis longitude | +0.167° | 0.617 | — | — |
| Recurvature latitude (n = 71 yrs) | −0.368° | 0.016 | −0.042° | 0.872 |
| Northernmost latitude | −0.085° | 0.278 | +0.264° | 0.080 |
| Mean heading | −0.68° | 0.494 | — | — |
A change point that was not: the 1969 false positive
Run on the full first-arrival series, all five change-point methods agreed on a discrete shift at 1969: Pettitt K = 641 (asymptotic p = 0.0097; permutation p = 0.0036), CUSUM maximum 260 (permutation p = 0.0008), Mann–Kendall z = −2.48 (p = 0.013), and AIC 429.36 for the piecewise model against 436.72 for the linear one (ΔAIC = −7.36). Mean first arrival was day 168.6 (17 June) over 1949–1969 (n = 21) and day 151.6 (31 May) over 1970–2025 (n = 56), a step of 17.0 days. Only the CUSUM p-value cleared the Bonferroni threshold for the 11 tests logged at the time (0.0045). The step's magnitude matched the roughly 17.5 days implied by the linear trend, so the data were consistent with either shape and the ensemble preferred the step.
The break sits at the dawn of routine satellite surveillance of the basin. A jump in detection of short-lived, early-season systems would produce exactly this signature. The satellite-era retest was designed to separate the two: if the atmosphere had shifted, some structure should remain within 1978–2025; if the catalog had, the series inside that window should look stationary. It looks stationary (Table 6). Pettitt's best break moves to 1999 with permutation p = 0.92; CUSUM's to 2022 with p = 0.83; Mann–Kendall z = 0.20, p = 0.84. AIC still prefers a piecewise fit by 3.71 units, but the implied break is 2022 with a step of −3.0 days, inside sampling noise, and AIC will usually reward a third parameter on a noisy series. One vote in five: the verdict is null. The 1969 finding is retracted as a detection artifact. The linear trend of Section 4.1, which the retest did not address directly, remains the defensible description, with the caveat that part of its slope is also inherited from the pre-satellite years (Section 5.1).
Change-point ensemble on first-arrival day of year, full record versus satellite era. Sources: FINDINGS_EPAC_REGIME_CHANGE.change_point and .satellite_era_retest (regenerated 27 September 2026; the iteration-4 script’s own full-record run gives Pettitt permutation p = 0.005).
| Method | 1949–2025 (n = 77) | 1978–2025 (n = 48) |
|---|---|---|
| Pettitt, break year | 1969 | 1999 |
| Pettitt, permutation p | 0.0036 | 0.919 |
| CUSUM, permutation p | 0.0008 | 0.827 |
| Mann–Kendall z (p) | −2.48 (0.013) | 0.20 (0.838) |
| ΔAIC, piecewise − linear | −7.36 | −3.71 |
| Step, days | −17.0 | −3.0 |
| Votes "real" | 5 / 5 | 1 / 5 |
Discussion
Detection bias and the shape of the early record
Before routine satellite coverage the EPAC was among the least observed basins on Earth: storms were logged when ships met them or aircraft were sent to them, so weak, short-lived and remote systems were under-counted, and intensity was estimated from sparse surface reports rather than the satellite technique that became standard in the 1970s (Dvorak 1975). Landsea and Franklin (2013) quantify the resulting uncertainty in the Atlantic record; the NEPAC edition carries larger, less well characterised uncertainty because it never had a comparable reanalysis programme. Three of the results here are shaped by that history. The count and storm-day trends are certainly inflated by improving detection, an effect that could be large in the first two decades. The genesis-latitude trend is entirely explained by it. The 1969 change point was created by it. The satellite-era retest is the site's answer: whatever survives 1978–2025 can be discussed as climate; whatever does not is reported as catalog.
The intensity results are the least exposed to under-counting, because the strongest storm within 500 km of a populated coast is the storm least likely to be missed in any era. They are more exposed to a different bias: pre-satellite peak winds were more often assigned round values (75 kt appears in 15 of the first 20 years of the table) and rarely exceeded 120 kt. The 1950s maximum of 120 kt rests on a single storm in 1959, and the 1950s interpolated 90th percentile (79.5 kt) on the round 75 kt values beneath it.
What "widening" means for coastal exposure
A shift in the mean says the typical strong storm near the coast is stronger; a rise in the upper tail says the worst storm of a decade is stronger by more. For a coastal resident the second matters more than the first. Building codes, insurance, the height of a palapa's foundation and the decision to stay or leave are set by the worst plausible case, not the average one. Within 500 km of this point the worst case per decade has moved from Category 3–4 to Category 5, and the strong-storm years just below the worst have moved with it (the 90th percentile from about 80 to about 130 kt). The decade dispersion measures did not trend, so this is not a general spreading of the distribution; it is the top of it moving up.
For a surfer the two rings tell a paired story. More storm-days within 1,500 km, arriving earlier in the year, mean more south-swell days in June and a longer season; that is the benign side of the same trend. The 500 km results are the other side: the storm that closes out the point for a week and strips the beach is more likely to be a major hurricane than it was.
Comparison with basin-wide and global trends
The upper-tail result is directionally consistent with the literature on the strongest storms. Elsner, Kossin and Jagger (2008) found the upper quantiles of lifetime-maximum intensity rising globally over 1981–2006 while the median did not, the same shape seen here at one point. Kossin et al. (2020), using a homogenised satellite-based intensity record, reported that the global probability of a fix being at major-hurricane intensity (≥ 100 kt) rose by roughly 8% per decade over 1979–2017. The Knutson et al. (2019) assessment placed detectable increases in the proportion of Category 4–5 storms at low-to-medium confidence, and the companion projection paper (Knutson et al. 2020) expects that proportion to rise further. The present record is a small, noisy sample of one coast; it is not evidence for those global findings, but it is what those findings would look like at this point.
The track result is also consistent with published work. Kossin, Emanuel and Vecchi (2014) found the latitude of lifetime-maximum intensity migrating poleward in most basins, with the eastern North Pacific among the basins where the signal was weak. Here, within the satellite era, no geometric quantity has moved detectably. The northernmost-latitude lean of +0.26° per decade (p = 0.080) is in the direction of a poleward expansion and would be worth a formal look after another decade of seasons.
The methods lesson
Five methods agreeing is not five independent pieces of evidence. Pettitt, CUSUM, Mann–Kendall and the AIC comparison all read the same series, and all four are sensitive to the same step; their agreement measured the strength of one signal, not its cause. The retest that killed the finding did not use a sixth method; it asked the same methods a better-posed question on a subset chosen for a physical reason. That is the general lesson the site has kept: the ensemble guards against a single statistic's quirks, and a designed subset guards against the ensemble.
The estimator and the vintage
The June 2026 intensity artifact reported the decade maximum under the label “p90”, quoted a rolling standard deviation as a rolling-p90 retest, and was built from an earlier HURDAT2 download than the table used here. Correcting all three moves the numbers but not the direction of any result. The maximum’s decade trend weakens (r 0.729 → 0.75 on the refreshed table, but p 0.009 → 0.032 with the exact t-distribution; permutation 0.029 → 0.021); the properly interpolated 90th percentile, which the June analysis never computed, rises more cleanly than the maximum (r = 0.87, p = 0.005). The first-arrival slope moves from −2.45 to −2.30 days per decade and the peak-wind slope from +4.63 to +4.80 kt per decade. What does not survive is the word “widening” in its statistical sense: the non-overlapping dispersion measures do not trend. The lesson is the site’s standing one in a new place: a label on an artifact field is a claim, and it needs the same check as a p-value.
Limitations
Detection bias. Pre-1966 under-counting and pre-1978 non-uniform coverage inflate count-based trends; no homogenisation was attempted. Autocorrelation. Adjacent seasons are weakly dependent; effective sample size is probably 30–50 rather than 77 years, so the p-values are optimistic bounds. A modified Mann–Kendall (Hamed and Rao 1998) or pre-whitening (Yue et al. 2002) would tighten them. Small decades. With about ten values per decade the maximum is one storm (185 kt in the 2010s is one storm in 2015) and the interpolated 90th percentile is set by the top two years; the two statistics are shown together for that reason. Rolling windows share 14 of 15 years with their neighbours, so their p-values are nominal. Multiple testing. None of the decade-level upper-tail tests (three per statistic) clears the 22-test Bonferroni threshold; the cumulative count itself is a convention of the site's loop log and other counting rules are defensible. One point. Nothing here generalises to another coast; that is the point of the design and also its limit. Winds. Peak sustained wind is the storm's best-track value at a fix inside 500 km, not a wind observed at the coast. ENSO classes. Classification by the July–September ONI is one of several defensible choices; edge-case years move between index downloads, and the neutral-year first-arrival result moved across p = 0.05 when they did. Estimator history. See the v1 note and Section 5.5.
Data and code availability
All inputs are public. HURDAT2 NEPAC: nhc.noaa.gov/data/hurdat/hurdat2-nepac-1949-2025-091426.txt. ONI: cpc.ncep.noaa.gov/data/indices/oni.ascii.txt. The site publishes the derived artifacts as JSON at https://lasaladita.com/api/findings-hurricane-phenology, /api/findings-hurricane-tracks and /api/seasonal (which carries the storm-climatology table). The intensity-widening and change-point artifacts are served as ES modules from the site's source (functions/api/_findings_intensity_widening.js, functions/api/_findings_epac_regime_change.js) and rendered at the four findings pages listed under isBasedOn in this page's metadata. Scripts: scripts/build_storm_climatology.py, scripts/analyze_hurricane_phenology.py, scripts/analyze_hurricane_tracks.py, scripts/loop_iter3_regime_change.py, scripts/loop_iter4_regime_change_satellite_era.py, scripts/loop_iter8_intensity_distribution.py; the test log is scripts/_loop_log.jsonl. The PDF of this preprint is built by scripts/build_paper_pdf.sh. Figures are inline SVG generated from the artifact values. Every regenerated artifact records its HURDAT2 file in a data_vintage field; analyze_climate_trends.py, which also quotes these storm series, now reads the same table instead of an embedded copy.
Author contributions and competing interests
A.C. designed the analysis, wrote the scripts, and wrote the manuscript. The work is independent and unfunded. The author lives part of the year at La Saladita and runs the field guide that hosts this preprint; no other competing interests. Not peer reviewed.
References
- Akaike H (1974) A new look at the statistical model identification. IEEE Transactions on Automatic Control 19(6):716–723.
- Dunn OJ (1961) Multiple comparisons among means. Journal of the American Statistical Association 56(293):52–64.
- Dvorak VF (1975) Tropical cyclone intensity analysis and forecasting from satellite imagery. Monthly Weather Review 103(5):420–430.
- Elsner JB, Kossin JP, Jagger TH (2008) The increasing intensity of the strongest tropical cyclones. Nature 455:92–95.
- Hamed KH, Rao AR (1998) A modified Mann–Kendall trend test for autocorrelated data. Journal of Hydrology 204(1–4):182–196.
- Kendall MG (1975) Rank Correlation Methods, 4th edn. Charles Griffin, London.
- Knutson T, Camargo SJ, Chan JCL, Emanuel K, Ho C-H, Kossin J, Mohapatra M, Satoh M, Sugi M, Walsh K, Wu L (2019) Tropical cyclones and climate change assessment: Part I. Detection and attribution. Bulletin of the American Meteorological Society 100(10):1987–2007.
- Knutson T, Camargo SJ, Chan JCL, Emanuel K, Ho C-H, Kossin J, Mohapatra M, Satoh M, Sugi M, Walsh K, Wu L (2020) Tropical cyclones and climate change assessment: Part II. Projected response to anthropogenic warming. Bulletin of the American Meteorological Society 101(3):E303–E322.
- Kossin JP, Emanuel KA, Vecchi GA (2014) The poleward migration of the location of tropical cyclone maximum intensity. Nature 509:349–352.
- Kossin JP, Knapp KR, Olander TL, Velden CS (2020) Global increase in major tropical cyclone exceedance probability over the past four decades. Proceedings of the National Academy of Sciences 117(22):11975–11980.
- Landsea CW, Franklin JL (2013) Atlantic hurricane database uncertainty and presentation of a new database format. Monthly Weather Review 141(10):3576–3592.
- Mann HB (1945) Nonparametric tests against trend. Econometrica 13(3):245–259.
- National Hurricane Center (2026) HURDAT2 Northeast and North Central Pacific hurricane database, 1949–2025, file hurdat2-nepac-1949-2025-091426.txt. NOAA/NWS/NHC, Miami. https://www.nhc.noaa.gov/data/#hurdat
- NOAA Climate Prediction Center (2026) Oceanic Niño Index (ONI), ERSSTv5 base periods. https://www.cpc.ncep.noaa.gov/data/indices/oni.ascii.txt
- Page ES (1954) Continuous inspection schemes. Biometrika 41(1/2):100–115.
- Pettitt AN (1979) A non-parametric approach to the change-point problem. Journal of the Royal Statistical Society, Series C (Applied Statistics) 28(2):126–135.
- Yue S, Pilon P, Phinney B, Cavadias G (2002) The influence of autocorrelation on the ability to detect trend in hydrological series. Hydrological Processes 16(9):1807–1829.
Numbers table
Every number quoted in the text, with the artifact and field it was read from. Vintages: F = findings artifacts regenerated 27 September 2026 from S; S = storm-climatology table, 19 September 2026 (HURDAT2 hurdat2-nepac-1949-2025-091426.txt); L = scripts/_loop_log.jsonl (iteration 8 June entry and the 27 September revision entries); J = the June 2026 artifacts, quoted only in the v1 note. Rows marked "computed" were derived for this manuscript and are not artifact fields.
| Quoted value | Artifact · field | Vintage |
|---|---|---|
| 77 seasons, 1949–2025 | STORM_CLIMATOLOGY.n_years, .years_covered; FINDINGS_HURRICANE_PHENOLOGY.n_years_storms | S, F |
| 1,260 storms | FINDINGS_HURRICANE_TRACKS.n_storms_total | F |
| HURDAT2 file in each artifact | FINDINGS_INTENSITY_WIDENING.data_vintage, FINDINGS_HURRICANE_PHENOLOGY.data_vintage, FINDINGS_HURRICANE_TRACKS.data_vintage, FINDINGS_EPAC_REGIME_CHANGE.data_vintage | F |
| HURDAT2 file name and URL | _storm_climatology.js header comment | S |
| Haversine; rings 500 / 1,000 / 1,500 km; storm-day definition | STORM_CLIMATOLOGY.methodology_note; header comment | S |
| 15 / 17 / 44 ENSO years; 76 years with ONI; ONI file through JJA 2026 | FINDINGS_HURRICANE_PHENOLOGY.first_arrival_doy_trend.by_enso.*.n; .n_years_enso; .data_vintage.oni | F |
| Zero-intensity years 1977, 1994; n = 75 | STORM_CLIMATOLOGY.per_year (computed); FINDINGS_INTENSITY_WIDENING.n_years | S, F |
| First arrival −2.30 d/decade, r² 0.086, p 0.0078, n 77 | FINDINGS_HURRICANE_PHENOLOGY.first_arrival_doy_trend.all_years | F |
| Storms +1.206/decade, r² 0.369, p 0.0 | …storm_count_1500km_trend.all_years | F |
| Storm-days +6.17/decade, r² 0.340, p 0.0 | …storm_days_1500km_trend | F |
| Peak wind +4.80 kt/decade, r² 0.119, p 0.0014; storm years only +4.75, p 0.0004 | …max_intensity_500km_trend; …max_intensity_500km_trend_storm_years_only | F |
| ENSO slopes, p-values, class means 11.07 / 11.65 / 13.68 | …first_arrival_doy_trend.by_enso; …storm_count_1500km_trend.by_enso; …enso_class_means | F |
| Mean first arrival day 156, median 153, p10 137, p90 178 | STORM_CLIMATOLOGY.first_arrival.mean_doy / median_doy / p10_doy / p90_doy | S |
| September 1.247 storms/yr at 500 km, 12.883 storm-days at 1,500 km; June 1.091 storms/yr at 500 km | STORM_CLIMATOLOGY.monthly.sep.avg_storms_500km, .sep.storm_days_1500km, .jun.avg_storms_500km | S |
| Decade n / mean / median / SD / IQR / p90 / max / max year (Table 2) | FINDINGS_INTENSITY_WIDENING.decade_stats[].n, .mean, .median, .sd, .iqr, .p90, .max, .max_year | F |
| Decade slopes 9.7 / 8.5 / 4.7 / 3.4 kt per decade (± SE); trends without the 2020s | computed from FINDINGS_INTENSITY_WIDENING.decade_stats (OLS on decade) | F |
| v1 estimator: index ⌊0.9 n⌋ = decade maximum; June values r 0.729, p 0.009, MK z 2.35, p 0.019, perm 0.029, rolling r 0.904, z 9.25; satellite-era "p90" r 0.868 = rolling SD | June _findings_intensity_widening.js; _loop_log.jsonl iteration 8 (June entry) | J, L |
| Decade tests, max: r 0.75, p 0.032; MK z 2.10, p 0.035; perm 0.021. p90: r 0.871, p 0.0049; MK z 2.10, p 0.035; perm 0.0047. Mean, median, SD, IQR rows | FINDINGS_INTENSITY_WIDENING.decade_trends.max / .p90 / .mean / .median / .sd / .iqr | F |
| Rolling (63 windows): max r 0.852, z 8.99; p90 r 0.929, z 9.63; SD r 0.852, z 7.40 | …rolling_15yr_trends | F |
| Satellite era 1978–2025, 47 storm years, 34 windows: rolling max r 0.925, p90 r 0.923, SD r 0.859 | …satellite_era.n_years, .rolling_15yr_trends | F |
| June decade SD r 0.582 p 0.0799; IQR r 0.445 p 0.223 (v1 estimator, old table) | _loop_log.jsonl iteration 8 (June entry) decade_trends.std / .iqr | L |
| Ensemble 5/5 on max and 5/5 on p90, verdict real; 3,000 permutations; 15-yr windows | FINDINGS_INTENSITY_WIDENING.ensemble.max / .p90; script constants | F |
| Cumulative tests 22 (and 11; log to 33) | FINDINGS_INTENSITY_WIDENING.cumulative_tests_to_date; FINDINGS_EPAC_REGIME_CHANGE.cumulative_tests_to_date; _loop_log.jsonl iteration 10 cumulative_tests | F, L |
| Bonferroni 0.0023 (α/22), 0.0045 (α/11), 0.0125 (α/4) | computed; FINDINGS_EPAC_REGIME_CHANGE.bonferroni_threshold_for_n11; FINDINGS_HURRICANE_TRACKS.methodology | F |
| Change point 1969: K 641, p 0.0097 / 0.0036; CUSUM 260.4, p 0.0008; MK −2.48, p 0.0133; AIC 436.72 / 429.36, ΔAIC −7.36 | FINDINGS_EPAC_REGIME_CHANGE.change_point | F |
| Means 168.6 (n 21, 17 June) and 151.6 (n 56, 31 May); step −17.0 d | …regime_means | F |
| Satellite retest: break 1999, p 0.9186; CUSUM 2022, p 0.827; MK z 0.20, p 0.838; AIC 257.83 / 254.12, ΔAIC −3.71; piecewise break 2022; step −3.0; 1/5 null | FINDINGS_EPAC_REGIME_CHANGE.satellite_era_retest; _loop_log.jsonl iteration 4 (revision 2) | F, L |
| Iteration-4 full-record Pettitt permutation p 0.005 | _loop_log.jsonl iteration 4 (revision 2) full_record.pettitt_p_perm | L |
| Track slopes and p-values (Table 5); recurvature fraction 0.266; n 71 / 48 / 47 | FINDINGS_HURRICANE_TRACKS.trends.*.overall_1949_2025, .satellite_era_1978_2025, .recurvature_latitude.fraction_of_storms_recurving | F |
| Genesis latitude 16.03°N (1950s) and 12.92°N (1970s) | …genesis_latitude.decade_means | F |
| Satellite era 1978–2025, n 48 | FINDINGS_HURRICANE_TRACKS.trends.*.satellite_era_1978_2025.n; _loop_log.jsonl iteration 4 | F, L |
| 75 kt in 15 of the first 20 years; 2009 = 150 kt; 1959 = 120 kt; 2015 = 185 kt | STORM_CLIMATOLOGY.per_year[year].max_intensity_kt_within_500km (computed count) | S |
| Fitted first arrival day 165 (1949) and 147.5 (2025); 17.5 days across the record | computed from STORM_CLIMATOLOGY.first_arrival.by_year (OLS) | S |
| Saffir–Simpson 113 kt (Cat 4), 137 kt (Cat 5) | NHC Saffir–Simpson scale; not a site artifact | — |
| Kossin et al. 2020 ≈ 8% per decade; Elsner et al. 2008; Kossin et al. 2014 | cited literature; not site artifacts | — |