QuakeScope 2026
Re-running the global phase catalogue
What changed since 2025, what the benchmarks say about which model to trust, and what it costs to run.
Why re-run at all
The 2025 campaign picked a petabyte of continuous data with a single model and wrote it into a document store. Four things changed.
Better weights
A fine-tuned PhaseNet family rather than one model, chosen on a benchmark rather than by default.
Amplitudes
Wood-Anderson displacement per pick, so the catalogue carries magnitudes, not just arrival times.
Parquet on S3
Same picks in a sixth of the space, with no database to keep running between campaigns.
No classifier
QuakeXNet is out: it depends far more on where an arrival sits in its window than on region.
How the models were compared
Five sequences, four weight sets, scored against analyst arrivals from published catalogues.
| Sequence | Setting | analyst P | analyst S |
|---|---|---|---|
| Ridgecrest 2019 | M7.1, dense aftershocks seconds apart | 347 | 298 |
| Mendocino 2024 | M7.0, offshore, one-sided geometry | 200 | 113 |
| San Simeon 2003 | M6.5, sparse 2003 network | 62 | 16 |
| Monte Cristo 2020 | M6.5, Basin and Range | 16 | 12 |
| Monroe WA 2019 | M4.6 — no published arrivals | — | — |
The reference is arrivals attached to published origins, merged across SCEDC and NCEDC and restricted to manually reviewed picks. It is not exhaustive: unmatched model picks are reported as extra detections, never as false positives.
A shared threshold does not compare models
S recall at a shared 0.3 — Ridgecrest
original looks decisively best.
…but it emits far more picks to get there
Extra detections at the same threshold.
Holding the threshold fixed does not hold the operating point fixed. Matched on pick budget, the three fine-tunes land within a few points of each other and no ordering survives across all five sequences.
What that looks like on the waveform
CI.CLC, three minutes of Ridgecrest aftershocks, twenty minutes after the mainshock. Same data, same threshold, four models.
This is the finding that decided a campaign.
instance returns 4 picks where
original returns 26 on identical data — a
ceiling on dense near-field sequences that no threshold recovers. It is why
the western-states deliverable was moved off instance.
Where a station-day actually goes
One station-day profiled stage by stage, on the real code path.
CPU-bound, not I/O-bound
All S3 and parsing together is under 4%. Compute does not have to sit beside the data — cross-region costs about a second per station-day.
Writing Parquet is free
0.1% of a station-day. The storage change cost no throughput and saved 6.5× on space.
Amplitudes dominate
The measurement added since 2025 is now the largest stage — larger than inference.
Two ways to run it
| Fargate Spot | EC2 Spot via SkyPilot | |
|---|---|---|
| Spot quota, us-east-2 | 12,000 vCPU, granted | 256 vCPU |
| Cold start | 66 s | ~3 min |
| Same shard, wall clock | 33.7 s | 53.7 s |
| Idle cost | none — the task ends | jobs controller persists, on-demand |
| Proven at scale | the 2025 petabyte campaign | four shards |
The 33.7 s against 53.7 s is one sample on each side, and the gap is almost entirely inference on identical code. It should be repeated before it is relied on.
The launch
Five campaigns. Western states is the stakeholder deliverable and runs first.
| Campaign | Weight | station-days |
|---|---|---|
| EarthScope onshore | jma_wc | 44,127,796 |
| Western states | original | 33,796,194 |
| NCEDC | jma_wc | 4,551,557 |
| SCEDC | jma_wc | 2,467,740 |
| EarthScope offshore | obs | 950,793 |
Western states: 24,111 stations across 122 networks, selected by true state polygons. A bounding box sweeps in ~3,000 stations from neighbouring states.
What we do not know yet
Stated plainly, because these are the numbers that would move the cost estimate most.
Processes per vCPU
Every benchmark used one process on an eight-vCPU box, so most of the machine was idle. This swings campaign cost about 4×. An hour of work to settle.
Bands per station
The picker runs on every band a station has — 2.83× on SCEDC, including 1 Hz channels that cannot be picked at all.
The 2025 baseline
Cost Explorer is blocked on this account, so "match or beat 2025" has no measured baseline yet.
Scale
v3 has run four shards end to end. The 2025 machinery completed a petabyte. That gap is the reason the first campaign starts with a two-shard smoke test.
Reading the result
Picks land as Hive-partitioned Parquet on S3. No database, no VPC, readable from anywhere.
s3://quakescope-picks-2026/western/
picks/network=CI/year=2019/month=07/<shard_id>.parquet
manifests/<shard_id>.json what each job wrote
runs/<run_id>.json model, weight, thresholds
Every pick carries rid, resolving to the model and
weights that produced it — so picks from different campaigns stay separable in
one catalogue.