METHODOLOGY · event-metadata-anchored

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_hours OR (now() - updated_at < freshness_window_hours AND 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_cycles of 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

  1. 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.
  2. 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.
  3. Link the anchor-specific canonical source. See the required_primary_source field for each anchor in the params block. alert requires the /pager URL; tsunami requires the PTWC/NTWC bulletin URL. Missing that URL = no publish under this slug.
  4. Coverage-window honesty. For the novel_depth_magnitude anchor, 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.
  5. 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.
  6. 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 last min_stability_cycles rows — 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 /pager URL 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_hours AND it hasn’t been substantively re-evaluated inside that window.
  • Anchor stability fails: the firing anchor has flipped within the last min_stability_cycles USGS polls.
  • USGS is still refining the magnitude — the most recent updated_at is within the last hour AND the mag has changed since initial publication.
  • The required_primary_source URL for the firing anchor cannot be verified as returning content (e.g. PAGER page not yet published, tsunami bulletin link broken).

Primary sources required

  1. USGS event page URL (https://earthquake.usgs.gov/earthquakes/eventpage/{id}).
  2. The anchor-specific canonical URL listed under required_primary_source for the firing anchor.
  3. The USGS week-feed GeoJSON endpoint URL.
  4. The event_time and updated_at at which we read the event.
  5. The exact property/value that fired the anchor (quoted from the GeoJSON properties object).

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.