Every published signal in the same row shape as the external-scan dataset, for a downstream intake that already speaks that schema: discovery metadata, the full editorial writeup composed into full_text, and the signal-native fields appended.
One row per published signal, full corpus on every download (re-import replaces; upsert on item_id). The leading columns mirror the external-scan contract key for key so the same importer ingests both files; the appended columns carry the signal-native detail, including per-touch direction and editorial reasoning. That per-touch detail plus retained article text is why the download requires an access key. This is a working corpus, not a redistribution channel.
| Column | Type | Definition |
|---|---|---|
| item_id | text | The signal's stable UUID; the natural import key. |
| run_day | date | The signal's editorial date (fallback: creation date). Not constant across the file, unlike the daily scan. |
| url | text | The source article URL, or the signal's Atlas page when no source is linked. |
| normalized_url | text | Canonical dedupe form, same normalization as the external scan. May repeat when two signals share one source. |
| headline | text | The signal title. |
| source_domain | text | Hostname of the URL, www stripped. |
| published_on | date | The signal's editorial date (YYYY-MM-DD), when set. |
| discovered_via | text | Always the literal string atlas_signal. |
| topic_slug | text | Always null; signals carry lenses, not scan topics. |
| topic_code | text | Always null. |
| summary | longtext | The signal's one-paragraph editorial summary. |
| tags | text | The signal's audience lenses, joined with a semicolon. An open set, like scan tags. |
| entities | text | Always empty; signals do not track entities. |
| relevance | number | Significance mapped to a number: high 0.9, medium 0.6, low 0.3. Advisory. |
| enrich_status | enum | Always done: every signal is fully written up. |
| fetch_status | enum | Always done: full_text is always present. |
| fetched_via | enum | Always null. |
| text_chars | number | Character count of full_text. |
| full_text | longtext | Composed document, capped at 24,000 characters: title, summary, brief sections, counterpoint, argument-map touches, then SOURCE ARTICLE TEXT with the retained article when one exists. |
| enriched_by | text | Always null here: signals are human-edited editorial work, not model enrichment. Present to mirror the external-scan shape. |
| significance | enum | high, medium, or low. |
| lenses | text | Audience lenses, joined with a semicolon: market, labor, geopolitics, regulatory, capability, society. |
| origin | enum | manual (curated by hand), pipeline (web discovery), or backfill (the one-time history since ChatGPT, published by hand). |
| claim_touches | text | Argument-map codes the signal bears on, joined with a semicolon. |
| touch_details | longtext | JSON array, one entry per touch: {code, direction, reason, statement}. direction is supports, contradicts, or neutral; reason is the editorial why; statement is the touched claim's text. |
| brief_what_happened | longtext | The development itself, in plain prose. |
| brief_why_it_matters | longtext | The stakes: what this changes. |
| brief_whats_contested | longtext | Where reasonable readers still disagree. |
| counterpoint | longtext | A steelman of the contrary reading. |
| atlas_url | text | The signal's page on the Atlas. |
| source_title | text | Title of the underlying article, when one is linked. |
| evidence_type | enum | What KIND of evidence this is, not what it is about: experiment, statistics, survey, projection, announcement, analysis, or other. Null when unclassified. |
unfiltered
Heavy dataset: the preview is capped at 25 rows; download for the full corpus.
Preview needs an access key. Unlock once and it opens up here.