The Gutenberg-Richter Law Explained

On this page

Problem statement

Small earthquakes are common and large ones rare, and in 1944 Beno Gutenberg and Charles Richter showed that the relationship is remarkably regular: the logarithm of the number of earthquakes at or above a magnitude falls on a straight line, log10 N = a − bM. With b close to 1, each step of one magnitude unit up brings ten times fewer earthquakes. The law is the starting point for every recurrence estimate and hazard model, and it has a consequence that surprises people: although small earthquakes vastly outnumber large ones, almost all the energy is released by the few largest.

This page tests the law on 25 years of the world's M5.5+ earthquakes from the USGS catalogue, estimates a and b, compares the counts it predicts with those observed up to magnitude 9, measures how the seismic moment is shared between small and large events, and compares b for shallow and deep earthquakes.

Quick answer

Count earthquakes per magnitude unit and fit b by maximum likelihood above a complete threshold:

m = ev.mag.round(1)
b = np.log10(np.e) / (m.mean() - (5.5 - 0.05))
for lo, hi in ((5.5, 6.5), (6.5, 7.5), (7.5, 8.5), (8.5, 9.5)):
    print(f"M{lo}-{hi}: {((m >= lo) & (m < hi)).sum():>6,} earthquakes")
print(f"b = {b:.3f} from {len(m):,} earthquakes of M5.5 and above, 2000-2024")
M5.5-6.5: 11,193 earthquakes
M6.5-7.5:  1,009 earthquakes
M7.5-8.5:    127 earthquakes
M8.5-9.5:      5 earthquakes
b = 1.028 from 12,334 earthquakes of M5.5 and above, 2000-2024

Each magnitude unit up holds about ten times fewer earthquakes: 11,193 between M5.5 and M6.5, 1,009 up to M7.5, 127 up to M8.5 and 5 above. The maximum-likelihood b-value is 1.028.

Log-scale chart of global earthquakes per year from M5.5 to M9.1 for 2000 to 2024: counts per 0.1 bin and cumulative counts falling along the line log10 N equals 8.35 minus 1.03 M, with labels of 149.28 a year at M6 or more, 14.84 at M7, 1.08 at M8 and 0.08 at M9. Log-scale chart of global earthquakes per year from M5.5 to M9.1 for 2000 to 2024: counts per 0.1 bin and cumulative counts falling along the line log10 N equals 8.35 minus 1.03 M, with labels of 149.28 a year at M6 or more, 14.84 at M7, 1.08 at M8 and 0.08 at M9.
The law on the world's earthquakes.

What a and b predict, who releases the energy, depth

1. What a and b predict

The a-value sets the level, the b-value the slope. Predict the yearly number at or above each magnitude and compare with the catalogue:

years = 25
a = np.log10(len(m) / years) + b * 5.5
for mag in (6, 7, 8, 9):
    pred = 10 ** (a - b * mag)
    obs = (m >= mag).sum() / years
    print(f"M{mag}+: predicted {pred:7.2f} a year, observed {obs:7.2f} a year")
print(f"a = {a:.2f} (yearly, M0 and above, extrapolated)")
M6+: predicted  151.02 a year, observed  149.28 a year
M7+: predicted   14.15 a year, observed   14.84 a year
M8+: predicted    1.33 a year, observed    1.08 a year
M9+: predicted    0.12 a year, observed    0.08 a year
a = 8.35 (yearly, M0 and above, extrapolated)

With a = 8.35 and b = 1.028, the law predicts 151 earthquakes of M6 or more a year, against 149 observed, and 14.2 of M7 or more, against 14.8. At the top end it predicts 1.33 of M8+ a year against 1.08 observed, and one M9+ every eight years, against two in 25 years: close, given how few great earthquakes there are.

2. Who releases the energy

Seismic moment grows by a factor of 10^1.5, about 32, per magnitude unit, faster than the number of earthquakes falls. Share the total moment by magnitude band:

m0 = 10 ** (1.5 * ev.mag + 9.1)
bands = pd.cut(ev.mag, [5.5, 6.5, 7.5, 8.5, 9.5], right=False)
share = m0.groupby(bands, observed=True).sum() / m0.sum()
print((share * 100).round(1).rename("% of moment").to_string())
top = ev.assign(m0=m0).nlargest(3, "m0")
print(f"three largest earthquakes: {top.m0.sum() / m0.sum():.0%} of the moment of all {len(ev):,}")
print(top[["time", "mag", "place"]].assign(time=top.time.str[:10]).to_string(index=False))
mag
[5.5, 6.5)     3.4
[6.5, 7.5)    10.0
[7.5, 8.5)    33.9
[8.5, 9.5)    52.7
three largest earthquakes: 46% of the moment of all 12,334
      time  mag                                     place
2004-12-26  9.1 2004 Sumatra - Andaman Islands Earthquake
2011-03-11  9.1       2011 Great Tohoku Earthquake, Japan
2010-02-27  8.8              2010 Maule, Chile Earthquake

The 11,193 earthquakes between M5.5 and M6.5, 91% of the catalogue, released 3.4% of its moment; the 5 of M8.5 and above released 52.7%. The three largest alone, Sumatra 2004, Tohoku 2011 and Maule 2010, account for 46% of the moment of all 12,334.

Grouped bar chart by magnitude band of the share of earthquakes and of seismic moment: M5.5 to 6.5 holds 90.7 percent of the earthquakes but 3.4 percent of the moment, M6.5 to 7.5 8.2 and 10.0 percent, M7.5 to 8.5 1.0 and 33.9 percent, and M8.5 to 9.5 almost none of the earthquakes but 52.7 percent of the moment. Grouped bar chart by magnitude band of the share of earthquakes and of seismic moment: M5.5 to 6.5 holds 90.7 percent of the earthquakes but 3.4 percent of the moment, M6.5 to 7.5 8.2 and 10.0 percent, M7.5 to 8.5 1.0 and 33.9 percent, and M8.5 to 9.5 almost none of the earthquakes but 52.7 percent of the moment.
Count against moment.

3. Shallow and deep earthquakes

The b-value is not universal. Compare earthquakes shallower than 70 km with intermediate and deep ones:

for name, sel in (("shallow (< 70 km)", ev.depth < 70), ("intermediate (70-300 km)", ev.depth.between(70, 300)), ("deep (> 300 km)", ev.depth > 300)):
    mm = m[sel]
    bb = np.log10(np.e) / (mm.mean() - 5.45)
    se = bb / np.sqrt(len(mm))
    print(f"{name:>25}: {len(mm):>5,} earthquakes, b = {bb:.2f} ± {se:.2f}")
        shallow (< 70 km): 10,039 earthquakes, b = 1.05 ± 0.01
 intermediate (70-300 km): 1,532 earthquakes, b = 0.98 ± 0.03
          deep (> 300 km):   763 earthquakes, b = 0.83 ± 0.03

Shallow earthquakes have b = 1.05 ± 0.01 and intermediate-depth ones 0.98 ± 0.03, but deep earthquakes, below 300 km, have 0.83 ± 0.03: proportionally more large events, a difference well outside the uncertainties.

Is magnitude 5.5 really complete

The data used on this page

Every earthquake of magnitude 5.5 or more worldwide from 2000 to 2024 in the USGS ComCat catalogue, from the FDSN event service. At M5.5 the global catalogue is taken to be complete for this period.

from pathlib import Path

import numpy as np
import pandas as pd
import requests

Path("data").mkdir(exist_ok=True)
p = Path("data/global_m55_2000_2024.csv")
if not p.exists():
    r = requests.get("https://earthquake.usgs.gov/fdsnws/event/1/query", timeout=600,
                     params=dict(format="csv", starttime="2000-01-01", endtime="2025-01-01", minmagnitude=5.5, orderby="time-asc"))
    r.raise_for_status()
    p.write_bytes(r.content)
ev = pd.read_csv(p)
ev = ev[ev["type"] == "earthquake"].reset_index(drop=True)
print(f"{len(ev):,} earthquakes; M{ev.mag.min()} to M{ev.mag.max()}; magnitude types {ev.magType.value_counts().head(4).to_dict()}")
12,334 earthquakes; M5.5 to M9.1; magnitude types {'mww': 5312, 'mwc': 4132, 'mwb': 1934, 'mb': 776}

The catalogue holds 12,334 earthquakes from M5.5 to M9.1. Nearly all have moment magnitudes of one kind or another (Mww, Mwc, Mwb); 776 have body-wave magnitudes (mb).

Example 1: is M5.5 really complete?

Check the frequency-magnitude distribution just above the threshold: in a complete catalogue the counts per 0.1 bin fall steadily from the first bin:

c = m.value_counts().sort_index().loc[5.5:6.2]
print(c.to_string())
print(f"ratio of successive bins: {(c.values[1:] / c.values[:-1]).round(2).tolist()}; expected for b = {b:.2f}: {10 ** (-b * 0.1):.2f}")
mag
5.5    2633
5.6    2034
5.7    1662
5.8    1240
5.9    1033
6.0     824
6.1     647
6.2     435
ratio of successive bins: [0.77, 0.82, 0.75, 0.83, 0.8, 0.79, 0.67]; expected for b = 1.03: 0.79

From the threshold up, each 0.1 bin holds between 67% and 83% of the one before, scattered around the 79% that b = 1.03 implies. There is no deficit in the first bins, which is what an incomplete catalogue would show; M5.5 is complete here.

Chart of normalised cumulative frequency-magnitude distributions for shallow, intermediate and deep earthquakes: the deep curve, below 300 kilometres, falls more slowly, with b of 0.83, against 0.98 for intermediate and 1.05 for shallow earthquakes. Chart of normalised cumulative frequency-magnitude distributions for shallow, intermediate and deep earthquakes: the deep curve, below 300 kilometres, falls more slowly, with b of 0.83, against 0.98 for intermediate and 1.05 for shallow earthquakes.
b by depth.

Magnitudes follow an exponential distribution

What one magnitude unit changes, with b close to 1. one magnitude unit upfactorbecausenumber of earthquakesx 1/10 (b = 1.03)Gutenberg-Richter slopemoment per earthquakex 32M0 = 10^(1.5M + 9.1)total momentx 332 / 10.7So the largest earthquakes dominate: 3 events, 46% of 25 years of moment spatialworkflow.io
One magnitude unit up.

The Gutenberg-Richter law says magnitudes above a threshold follow an exponential distribution, which is why a single parameter, b, describes the shape and why the maximum-likelihood estimate is a simple function of the mean magnitude. Why nature produces it is still debated: it is what many systems close to failure produce, where a slip of any size can trigger more, with no preferred scale. Values of b near 1 are found from small regions to the whole globe; departures, higher in volcanic areas and swarms, lower in some highly stressed zones, are among the most studied signals in seismology.

The energy consequence follows from the logarithms. Each magnitude unit brings about 10 times fewer earthquakes but about 32 times more moment per earthquake, so each unit up contributes about 3 times more moment in total. The largest earthquakes therefore dominate any sum of energy, and a quarter-century of global seismicity is, in moment, mostly a handful of great earthquakes. That is also why the law cannot run upwards forever: fault size limits the largest possible earthquake, and somewhere above magnitude 9 the line must bend.

Completeness, moment and short records

Checks before applying the Gutenberg-Richter law. before applying Gutenberg-Richtercomplete above the thresholdM5.5 globally, bins fall steadilymaximum likelihood, not a line fitb = 1.028 heremixed magnitude types776 mb among 12,334b variesshallow 1.05, deep 0.83the top end is uncertaintwo M9 in 25 yearsUSGS ComCat, M5.5+, 2000-2024 spatialworkflow.io
Before applying Gutenberg-Richter.
  • Completeness: fit only above the magnitude of completeness; see the b-value fix.
  • Magnitude types: global catalogues mix body-wave (mb) and moment magnitudes; mb saturates around 6 to 6.5, which can bend the distribution.
  • Moment from magnitude: M0 = 10^(1.5M + 9.1) N m is exact only for moment magnitude.
  • Short records: 25 years contains two M9 earthquakes, too few to test the law at the top end.

FAQ

What is the Gutenberg-Richter law?

The empirical relation log10 N = a − bM between magnitude M and the number N of earthquakes at or above it; b is usually close to 1.

What does the b-value mean?

The slope of the relation: with b = 1, every unit increase in magnitude brings ten times fewer earthquakes.

Do small earthquakes release pressure and prevent big ones?

No: because moment grows about 32 times per magnitude unit while numbers fall only about 10 times, small earthquakes release a tiny fraction of the energy. In 2000–2024, the 11,193 earthquakes between M5.5 and M6.5 released 3.4% of the moment of all M5.5+ earthquakes; the five of M8.5 and above, 52.7%.

How many great earthquakes does the law predict?

Fitted to the world's M5.5+ earthquakes of 2000–2024, it predicts 1.33 earthquakes of M8 or more a year (1.08 were observed) and 0.12 of M9 or more, one every eight years; two happened in the 25 years.