Version 34d81e8bd9c1109aab9f8b79033be753301e7fa8a32109bf94ad98ff2ec11391
· HISTORICAL
Methodology: Event-Metadata-Anchored (USGS)
Slug: event-metadata-anchored
This methodology covers publishable frames on USGS earthquakes where the editorial claim is anchored on the event’s own metadata — the values USGS itself assigns to the event at or shortly after origin time — and not on any regional rate baseline we maintain internally.
USGS seismologists already produce regional-rate analyses, named-swarm tracking, and aftershock forecasts in their own bulletins. Nothing we can do with a trailing-9-day warehouse window beats that. What we can do is notice when a single event’s own metadata crosses a publishable threshold, and publish fast with a clean primary-source link to the USGS bulletin.
This slug replaces the legacy spatial-temporal-clustering slug, which was removed. Do not try to publish “is this cluster unusual vs local baseline” stories — that’s the wrong frame.
When to use this slug
Set methodology_slug = "event-metadata-anchored" in the publish payload when all of:
- The source is USGS earthquakes.
- At least one of the three anchors below is firing on the event:
tsunami = 1,alert ∈ {orange, red}, or a novel(depth_bucket, magnitude_bucket)combination in the coverage window. - Freshness:
now() - event_time < freshness_window_hoursOR (now() - updated_at < freshness_window_hoursAND the revision did not change the firing anchor in a way that now disqualifies it). - Anchor stability: the anchor-property that’s firing has been stable across the last
min_stability_cyclesof USGS polls (not oscillating between orange ↔ yellow, mag ↔ mag+0.3, etc.).
Fall back to agent-edited if the story requires multi-source reasoning (volcano co-location, tectonic context beyond what USGS’s own metadata provides) or a “largest-since” / “first in N years” reframing — that wording lives on the USGS event detail page, not in the week-feed GeoJSON properties.title, so it’s not a reliable machine-readable anchor. If you find that wording by fetching the detail page, publish under agent-edited with the quote + link.
Parameters
{
"schema_version": 1,
"source": "usgs-earthquakes",
"feed_endpoint": "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/4.5_week.geojson",
"event_detail_endpoint_template": "https://earthquake.usgs.gov/earthquakes/eventpage/{id}",
"freshness_window_hours": 24,
"min_stability_cycles": 2,
"anchors": {
"tsunami": {
"property": "tsunami",
"publishable_values": [1],
"required_primary_source": "https://www.tsunami.gov/ (PTWC) or https://tsunami.gov/events (NTWC); linked bulletin URL must be present in the publish payload when this anchor fires",
"rationale": "USGS sets tsunami=1 when the event triggers a tsunami advisory or warning by NTWC/PTWC. That is a fact about the event's own assessment, not our inference."
},
"alert": {
"property": "alert",
"publishable_values": ["orange", "red"],
"required_primary_source": "https://earthquake.usgs.gov/earthquakes/eventpage/{id}/pager — the PAGER summary for the event; this exact URL must be in the publish payload when this anchor fires",
"rationale": "USGS PAGER alert tiers encode estimated impact (fatalities + economic loss). Orange/red is USGS's own judgment that the event has significant impact potential."
},
"novel_depth_magnitude": {
"rule": "first-of-kind (depth_bucket, magnitude_bucket) combination in the current warehouse coverage window",
"depth_buckets": {
"shallow": "depth_km <= 70",
"intermediate": "depth_km > 70 AND depth_km <= 300",
"deep": "depth_km > 300"
},
"magnitude_buckets": {
"m6_plus": "mag >= 6.0 AND mag < 7.0",
"m7_plus": "mag >= 7.0 AND mag < 8.0",
"m8_plus": "mag >= 8.0"
},
"narrative_requirement": "State the actual coverage window length in days. Do not pretend to historical first-of-kind.",
"rationale": "A shallow M8+ vs an intermediate-depth M8+ are different editorially. If the coverage window hasn't seen that bucket combo yet, that's publishable as 'first in our N-day window' — honestly caveated."
}
}
}
Editorial obligations
- Anchor on an event-metadata fact, not on our own count. The narrative’s lead claim must be a value pulled directly from the USGS GeoJSON for the event (
tsunami,alert, or the depth+magnitude pair). The supporting quote is USGS, not us. - Link the USGS event page. Every publish must include
https://earthquake.usgs.gov/earthquakes/eventpage/{id}in primary sources. That page is updated by USGS as their analysis matures; readers who click through get the current state. - Link the anchor-specific canonical source. See the
required_primary_sourcefield for each anchor in the params block.alertrequires the/pagerURL;tsunamirequires the PTWC/NTWC bulletin URL. Missing that URL = no publish under this slug. - Coverage-window honesty. For the
novel_depth_magnitudeanchor, state the actual warehouse window in the body (“first intermediate-depth M7+ in our coverage window, which begins YYYY-MM-DD”). Do not say “first in N years” unless USGS itself said it — and if USGS said it, quote the USGS bulletin, don’t paraphrase. - Don’t re-editorialize USGS’s assessment. If USGS says
alert = orange, quote USGS’s own PAGER summary — don’t grade it as “severe” or “moderate.” Let USGS’s tier stand. - Retraction + anchor-stability watch. Before publishing, query
SELECT mag, depth_km, tsunami, alert, updated_at FROM usgs_events WHERE id = ... ORDER BY updated_at DESC LIMIT 5. If any anchor field (mag,depth_km,tsunami,alert) has flipped across the lastmin_stability_cyclesrows — not just the one that’s firing — hold the publish. A non-firing anchor flipping is a signal the event is still being re-evaluated. Examples: mag dropped from 7.1 to 6.8 (crosses a bucket boundary), alert stepped orange → yellow, tsunami flag cleared.
Allowed claims
- “USGS has set the PAGER alert level for the M6.4 event offshore Y to orange, estimating N casualties and $X in economic losses [linking the
/pagerURL for the event].” - “This is the first intermediate-depth M7+ in the current warehouse coverage window (which begins YYYY-MM-DD).”
- “USGS set
tsunami = 1; the PTWC tsunami bulletin is at [exact PTWC URL].”
Forbidden claims under this slug
- “This cluster is unusual for the region.” (USGS does that; we don’t.)
- “Regional rate has increased N× over the trailing period.” (Insufficient data; wrong slug.)
- “X events in Y hours.” (Raw event counts without USGS having called them a sequence is editorial inference, not metadata.)
- Paraphrased “largest since” / “strongest since” claims — if you have that wording, quote USGS’s bulletin verbatim with a direct link; don’t infer it from our data.
Fail modes (fall back to agent-edited or log no-publish)
- None of the three anchors fire.
- Freshness fails: event is older than
freshness_window_hoursAND it hasn’t been substantively re-evaluated inside that window. - Anchor stability fails: the firing anchor has flipped within the last
min_stability_cyclesUSGS polls. - USGS is still refining the magnitude — the most recent
updated_atis within the last hour AND the mag has changed since initial publication. - The
required_primary_sourceURL for the firing anchor cannot be verified as returning content (e.g. PAGER page not yet published, tsunami bulletin link broken).
Primary sources required
- USGS event page URL (
https://earthquake.usgs.gov/earthquakes/eventpage/{id}). - The anchor-specific canonical URL listed under
required_primary_sourcefor the firing anchor. - The USGS week-feed GeoJSON endpoint URL.
- The
event_timeandupdated_atat which we read the event. - The exact property/value that fired the anchor (quoted from the GeoJSON
propertiesobject).
Reproducibility
USGS event pages are updated in place as analysis matures — the publicly-visible state at a later fetched_at is the current state, not the state at our observation updated_at. The narrative’s embedded GeoJSON values (quoted verbatim from the properties object at the observation timestamp) are therefore the canonical record of what fired the anchor; a later reader’s fetch of the same event page may show revised values, and that divergence is itself publishable as a correction detection per invariant #2.
For the tsunami anchor, the linked PTWC/NTWC bulletin is often archived under a dated URL and remains retrievable. For the PAGER anchor, the /pager sub-page is updated but the revisions are smaller — linking the exact URL in the publish payload is sufficient.