# Are earthquakes becoming more frequent?

Pre-registered 2026-09-11 (session 36), before any yearly count or magnitude
histogram was fetched. This file, `rule.py` and `branches.py` are committed and
pushed before `fetch.py` runs; the commit is the timestamp.

## The claim, and the frame

People repeat that there are more earthquakes than there used to be. The version
people point at is almost always the catalog — "look how many were recorded this
year" — and that version is not worth sealing: the number of events in the USGS
catalog has obviously grown, and a bet on it would be void, a bet on something
already settled. The version worth testing is the one the sentence is actually
about: **is the Earth producing more earthquakes?** That can only be asked at
magnitudes the global network could see the whole time, which is why the sealed
claim is about magnitude 7 and above, and why the second half of this study
measures where "could see the whole time" actually starts.

The authorities already say no. The USGS FAQ and its "earthquake facts and
fantasy" page, IRIS and the British Geological Survey all state that the number
of large earthquakes has stayed roughly constant and the apparent rise is
detection. None of those pages gives the size of the change the record could
have detected. That number is what this study adds; the table below is the
probability that my rule disagrees with them.

**What I had seen before sealing:** those pages (a search result summary, not
the data behind them), and two integers from testing the API — 15 events of
M ≥ 7 in 2000, and 705 of M ≥ 4 in 1970. Nothing else from the catalog.

## Sealed claim

**Large earthquakes (M ≥ 7.0, global, USGS ComCat, event type earthquake) have
become more frequent over 1973–2025.**

Rule, in `rule.py`: quasi-Poisson regression of the annual count on the year,
dispersion from the Pearson statistic floored at 1, change in the annual rate
per decade with a 95 % interval.

- **survived** if the interval's lower bound is above 0;
- **killed** otherwise, if its upper bound is below **+10 % a decade** (a rise
  of that size would be +66 % over the record, which is what "more earthquakes
  than there used to be" would have to mean for anyone to notice);
- **inconclusive** otherwise.

Why 1973: it is when the USGS National Earthquake Information Center's
continuous global catalog begins; before it, even M7 magnitudes come from mixed
scales. Why not M ≥ 6, which would have more power: in the 1970s many M6 events
were sized with body-wave magnitude, which saturates near 6, so a scale change
could manufacture a trend. M ≥ 6 is reported beside the verdict, not under it.

## The branches, scored before the seal

`branches.py` (output `branches.txt`): 2,000 synthetic catalogs per cell,
1973–2025, 15 events a year at 2000, trend and dispersion (variance / mean)
assumed. This is also the positive control: a trend of known size injected into
the rule.

| true change / decade | φ | P(survived) | P(killed) | P(inconclusive) |
|---|---|---|---|---|
| 0 % | 1.0 | 0.0225 | 0.9735 | 0.0040 |
| 0 % | 1.5 | 0.0300 | 0.9125 | 0.0575 |
| 0 % | 2.5 | 0.0320 | 0.7345 | 0.2335 |
| +5 % | 1.5 | 0.4110 | 0.3705 | 0.2185 |
| +10 % | 1.0 | 0.9805 | 0.0175 | 0.0020 |
| +10 % | 1.5 | 0.9130 | 0.0220 | 0.0650 |
| +10 % | 2.5 | 0.7290 | 0.0235 | 0.2475 |
| +20 % | 1.5 | 1.0000 | 0.0000 | 0.0000 |

No branch is dead. If the authorities are right and the aftershock clustering is
modest, the rule kills the claim about nine times in ten and wrongly confirms it
about three times in a hundred; if there were a real +10 % a decade, it confirms
about nine times in ten. The middle grows with dispersion: at φ = 2.5 about a
quarter of null worlds end inconclusive, so a high measured dispersion is the
one way this study can end in a shrug, and the result will print φ.

## Described, not sealed

No bar, so these cannot be void and cannot pass or fail:

1. The same trend at M ≥ 4.5, 5.0 and 6.0 — how much the catalog grew at each
   size.
2. The magnitude of completeness per decade window, by maximum curvature of the
   0.1-unit magnitude histogram (the bin with the most events): the size below
   which the catalog is visibly missing earthquakes, and how it moved.

## Result (added after the fetch, 2026-09-11)

**Survived as sealed.** 729 events of M ≥ 7, 13.75 a year; **+6.6 % a decade,
95 % interval +1.6 % to +11.8 %**, dispersion 1.00 (`results.txt`). 1973–82
averaged 10.2 a year, 2016–25 13.4.

Described at other thresholds, same model: M ≥ 4.5 +21.7 % a decade (2016–25 is
2.23 times 1973–82, dispersion 106); M ≥ 5 +4.3 %; M ≥ 6 +6.2 % (+2.5 % to
+10.0 %).

**Described item 2 did not work, and is not reported.** Maximum curvature puts
the magnitude of completeness at the 2.5 floor in five of six windows, because
the global catalog is dominated by dense regional networks that record far below
global completeness. The method needs a catalog of one network's coverage.
`analyse.py` prints the failure rather than a number.

## The mate (written after the verdict, and labelled so everywhere)

The rule's notes named magnitude scales as the likeliest thing to move under it,
so after the verdict I checked. From one ComCat event query at M ≥ 6.5
(`~/data/comcat_m65.csv`, re-downloadable with the URL in `mate.py`'s notes):

- **72 of the 78 M ≥ 7 events of the 1970s are sized on Ms** (surface-wave
  magnitude). By five years: 1973–74 100 %, 1975–79 90 %, 1980–84 37 %,
  1985–89 2 %, none after 1987. Everything later is a moment magnitude.
- **No M ≥ 7 deeper than 300 km anywhere in 1973–79**; 7 in the 1980s, 16, 15
  and 17 in the three decades after. Ms is read from surface waves, and deep
  earthquakes make few.

Second surface, `mate.py`: the Global CMT catalog, moment magnitude computed one
way throughout, 1976–2020 (`~/data/gcmt_jan76_dec20.ndk`, from
`https://www.ldeo.columbia.edu/~gcmt/projects/CMT/catalog/jan76_dec20.ndk`;
Dziewonski et al. 1981, Ekström et al. 2012). Mw = 2/3 (log10 M0 − 16.1),
rounded to 0.1. Same rule, unchanged, on the years both cover (`mate.txt`):

| window | catalog | per decade | 95 % interval | rule |
|---|---|---|---|---|
| 1976–2020 | ComCat M ≥ 7 | +7.3 % | +1.0 % to +14.0 % | survived |
| 1976–2020 | Global CMT Mw ≥ 7 | +6.0 % | −0.4 % to +12.8 % | inconclusive |
| 1976–2025 | ComCat M ≥ 7 | +6.2 % | +0.8 % to +11.8 % | survived |
| 1976–2025 | Global CMT Mw ≥ 7 | +5.7 % | +0.3 % to +11.4 % | survived |

The 1976–2025 rows use Global CMT's monthly files for 2021–2025
(`~/data/gcmt_monthly/`, 60 files). **Correction, same session:** the pack and
essay were first published with only the 1976–2020 rows and read "on a
one-method catalog the rule cannot tell". With the last five years added it
survives on both catalogs.

Five-year sums, ComCat / GCMT: 1976–80 **51 / 68**, 81–85 61 / 56, 86–90 61 / 52,
91–95 75 / 61, 96–00 76 / 68, 01–05 70 / 67, 06–10 82 / 80, 11–15 86 / 85,
16–20 59 / 59, 21–25 75 / 75. From the 1980s ComCat took many moment magnitudes
from Global CMT, so the later agreement is not independent.

`cluster.py` (`cluster.txt`), after the data, described only: the busiest ten
years in both catalogs are 2007–2016 — 173 in ComCat (17.3 a year against a mean
of 13.75), 170 in Global CMT. In 100,000 constant-rate Poisson records at each
catalog's own mean, the busiest ten-year window anywhere reaches that total
**4.0 %** (ComCat) and **3.1 %** (Global CMT) of the time.

Also after the data, on ComCat, other start years (forking paths, described
only): 1983–2025 +1.9 % (−4.3 % to +8.5 %) → the rule would say killed;
1990–2025 −2.4 % (−10.0 % to +5.9 %) → killed. The same on Global CMT:
1983–2025 +7.3 % (+0.5 % to +14.6 %) → survived; 1990–2025 +3.5 % (−4.8 % to
+12.5 %) → inconclusive. The catalogs disagree most in 1981–95, which is what a
later start leans on.

**Reading.** The magnitude-scale change is real and pulls the 1970s down in
ComCat, but it does not explain the rise away: measured one way throughout, the
rate over 1976–2025 still rose, 5.7 % a decade against ComCat's 6.2 %. The rise
is modest (no upper bound above 15 % a decade in any window or catalog tried,
every central estimate in single digits), concentrated in 2007–2016, and sensitive to the start year. "More and
more" is not supported; "not increased" is more than the record shows;
"roughly constant, with one unusually busy decade" is what it allows.

The obvious third catalog, ISC-GEM (which re-measured 1971–1983 in its version
12), is distributed through a form asking for name, email and a CAPTCHA, and was
not used.

## Files

- `rule.py` — the verdict function, as committed.
- `branches.py`, `branches.txt` — branch probabilities and positive control.
- `fetch.py` — the counts, from `https://earthquake.usgs.gov/fdsnws/event/1/count`,
  no key; writes `yearly.csv` and `hist.csv` (small, committed).
- `analyse.py`, `results.txt` — written after the fetch; applies `rule.py` unchanged.
- `mate.py`, `mate.txt`, `gcmt_yearly.csv` — the second catalog, after the verdict.
- `chart.py`, `chart.png` — five-year sums in both catalogs.
