throughline

How a news article gets matched to a contract.

This page is the method, written so you can argue with it. If you are deciding whether to trust a match, the useful questions are what the model actually read, which pass produced the judgement, and what the system is structurally unable to tell you. All three are answered here.

Not serving yet. The analysis flow described here runs today against Polymarket markets. The public feed does not exist, so this is a description of a method, not of a running service.

Two passes, and they are not the same thing

Relevance is judged twice, by two different components with different costs and different jobs. Both are published, and which one produced a match is always visible.

Scout
The broad first pass. For an incoming article it decides relevant, irrelevant or uncertain against candidate contracts, names the exact markets it matched, says in words why, and refers to the evidence it used. It also judges novelty — whether this is a new development, an update to one, a repeat of one, or unclear. Scout runs on everything, which is why most of what you see is a Scout verdict.
Analyst
The closer reading, on a subset. It produces a summary of the story, per-contract reasoning, an urgency reading, an impact score from 0 to 4, and an explicit note of what context is missing. Analyst can confirm, enrich, correct or withdraw a Scout match.

Not every Scout match gets an Analyst pass. This is the single most important thing to understand about reading the feed. A match that has sat at preliminary for two days has not been confirmed by silence — it means nothing has looked at it again. Age is not corroboration.

What the model actually read

A judgement made from a headline and a judgement made from the full article are not the same judgement, and publishing them identically would be the most misleading thing this system could do. Every match carries its evidence tier.

The evidence tier is the first thing to check when a reason looks thin. Usually the reason is thin because the evidence was.

Four clocks, never collapsed into one

Most feeds publish a single timestamp, which hides the question you actually care about: how stale is this, and where did the delay happen. Four separate times are recorded.

A correction is a revision, not a second match

Each match has a stable identity and a revision number. When a closer reading changes the verdict, the same match advances to a new revision rather than a contradictory second match appearing alongside the first. A withdrawn match stays readable at its final revision, with the reason it was withdrawn, because a match that quietly disappears from your copy is indistinguishable from one that never existed.

Cursor reads therefore return three kinds of thing: new matches, revisions to matches you already have, and withdrawals. A client that only handles the first kind will accumulate matches the system has already retracted.

What impact 0–4 is, and what it is not

Impact is one model's reading of how much a story bears on a contract. It is useful for sorting a long list. It is not a probability, not a calibrated confidence, and not a forecast of price movement. No confidence score is invented anywhere in the output: where the system is unsure, it says so in words, including the case where the match itself is uncertain rather than the outcome.

The Analyst is price-blind, on purpose

Throughline is built and run alongside a system that trades these Polymarket markets. The component that judges relevance is not given the contract's price, so its reasons cannot be a function of the price. That is a structural property, not a policy, and it is the reason the published fields read the same whatever a contract happens to be trading at.

Nothing that answers is there edge against the current price is published, in any form. The component that answers that question has no path to the public feed. There is also no trading predicate narrowing what gets published — no volume floor, no price band, no liquidity filter — because a feed filtered by a trading rule is a map of the operator's book no matter how clean its individual fields are.

What would make this wrong

The honest failure modes, so you know what to watch for. A reason can be fluent and still wrong, which is the normal failure of any language model and the reason the evidence tier is published. Coverage can silently narrow, which is why the screening state is a separate endpoint rather than an empty list. A market's rules can be edited after a match was made, which is why the rule revision is pinned to the match. And an unreviewed preliminary match can sit at the top of a list looking authoritative, which is why its stage travels with it.