News & enrichment¶
How the corpus track is built. This is the editorial-side counterpart to the tape: where the tape tells you what the price is doing, the enrichment pipeline tells you what the publication's news corpus is saying about an asset. The two are distinct signals, and divergences between them are interesting — see editorial scope.
The news corpus¶
The enrichment pipeline runs over the publication's own ingested news corpus — not a third-party news API. An article-enrichment process classifies each article, identifies the entities it mentions, and assigns a tone to the article. The aggregated output is persisted as a daily per-entity metrics table that powers the sentiment, sentiment-history, and critical-event tools.
The MCP surfaces this as metadata and signal, plus links — mention counts, tones, velocities, ranks, and links back to the original publishers. It does not surface full article text; the publication is a syndication surface pointing readers to the primary source, not a content mirror.
Entity classification¶
Each ticker maps to a canonical entity name used inside the corpus (BTC-USD → Bitcoin). A ticker outside the publication's covered universe resolves to no entity and the tools return found: false rather than guessing. The mention and tone aggregations are computed against this entity, so "how much is BTC in the news" is really "how many corpus articles mention the Bitcoin entity".
Attention versus article-tone — two different axes¶
The single most important distinction on this surface is between attention and tone. They answer different questions and must be read together.
Attention — mention velocity. Attention is how much the corpus is talking about an entity. The headline measure is mention velocity: today's mention rate divided by the trailing 8-day average daily rate.
- above
1.0→ attention accelerating - below
1.0→ attention decelerating
It is surfaced with a categorical label — fading, cooling, steady, rising, surging — and returns no value when the 8-day window is empty (there's no baseline to divide by).
Article-tone — avg_article_sentiment. Tone is the mean LLM-assigned tone (−1…+1) of the corpus articles that mention the entity over a window. This is a precise and easily-misread definition, so state it carefully:
avg_article_sentimentis the tone of coverage mentioning the entity — not sentiment toward it, and not market or social sentiment.
A neutral wire report and an op-ed both count as "mentioning" the entity; the field measures the tone of that body of coverage, nothing more. It is only meaningful read alongside the same window's mention count — a tone delta computed over a handful of mentions is noise, which is why the change label is sample-gated: below 5 recent mentions, the label returns insufficient_sample rather than asserting a confident read.
The trailing windows¶
Both attention and tone are aggregated over a set of Fibonacci-spaced trailing windows:
1d, 2d, 3d, 5d, 8d, 13d
For each present window the sentiment tool returns the mention count and the average article tone, so an agent can read the trend directly (e.g. mentions climbing 1d → 13d while tone diverges). Derived signals layer on top: the 1d-vs-8d mention velocity, and the 1d-vs-8d tone change (sample-gated as above). A separate history tool returns a true day-by-day series across snapshot dates for plotting the trajectory.
Universe rank. Within a snapshot, entities are ranked by today's mention count (1 = most-mentioned), and the rank is labelled by band — dominant, high, moderate, low, dormant — calibrated to the universe size. This places an entity's attention against the rest of the covered universe rather than in isolation.
Critical-event flagging¶
Critical events — exploits, depegs, exchange halts, protocol failures, regulatory actions — are flagged when an entity shows elevated negative attention in the same daily snapshot that powers the sentiment tools. Detection is gated so it fires on a genuine signal, not on stale or merely-neutral coverage; the gate combines an elevated trend score, negative recent tone, and a minimum recent mention count. Most tickers most days flag zero events — that empty state is the expected steady state, not an error.
Each flagged event carries a type, a severity score and label, a headline, the detection date, and a phase — trigger when the corpus is just starting to report it, confirmation once multiple sources are reporting (a higher recent-mention threshold). Events of the same type within a snapshot are deduped to the highest severity.
This is the corpus-side early-warning the tape can't see yet: a tape brief that reads neutral for an asset inside an active exploit window is informationally stale, and the critical-event flag is what surfaces the gap. (The most severe of these also feed the tape track as the direction-signal override described on the market analysis page.)
Sourcing to primary publishers¶
The enrichment surface is built to drive readers to the original reporting. Coverage records and news items carry links to the original publishers, and the sentiment tools attach pointers to the publication's recent coverage of the ticker. Synthetic LLM-generated headlines without a source URL, and incoherent context-summary concatenations, were deliberately removed from the surface — the commitment is that what's surfaced is traceable to a real source, not model-generated narrative dressed as news. Every response carries the canonical disclosure; preserve it and the source links when forwarding the content downstream.