# Summaries and entities

Every article passes through an enrichment step that adds a short neutral summary and a list of entities.

## How it works

When an article is ingested, a model reads the headline and the text we have and returns a 1–3 sentence summary, plus named entities with symbols where they map to a ticker. Press releases are summarized from the full release. Publisher articles are summarized after the article page is fetched, or from the headline and snippet when that page is not available. The summary uses only facts in that text.

## Timing

- The article is stored, shown on the site, and sent on [/v1/stream](/docs/websocket) as soon as it is ingested. Nothing on that path waits for the summary.
- The summary usually follows a few seconds later. Up to three summaries run at the same time, so a burst does not line up behind the archive.
- [/v1/stream/summaries](/docs/websocket) sends the same article after the summary is written. The welcome message on that socket says it is the delayed stream.
- Over REST, a very fresh article may briefly have `summary: null`. [GET /news/{id}](/docs/article) returns the summary once it is stored.
- Older archive articles are enriched in the background. A missing summary means that work has not reached the article yet.

## Summaries

Summaries are neutral, factual and 1–3 sentences long, written from the article text only. They're meant for feeds, alerts and LLM context windows. Link to `url` for the full story.

## Entities

Entities cover companies, people, products, and organizations. Entity symbols feed into the `tickers` array alongside symbols supplied by the source.

> Enrichment is automated and can be wrong. It's a useful feature for ranking and alerting. It is not investment advice and should be validated before you trade on it.
