Skip to content
Ross King
All projects
[ 07 ]2026Solo project3 min read

Cited Market Brief Agent

A region-aware morning-market web app and an audit-ready, evidence-backed brief engine in one. The radar surfaces a market clock, a FRED overnight-risk rail, most-read finance news with AI summaries, and a Taiwan ETF-vs-benchmark attribution tool; the brief engine generates company briefs from SEC EDGAR + FRED, attaching a stored source span to every claim it accepts, with a click-through evidence ledger. Four localised editions (Taiwan, Korea, UK, EU). The CI gate that once certified this at 100% turned out to be scoring itself; measured against independently labelled ground truth, 40% of accepted claims are genuinely supported by the span they cite.

TypeScript · React · FastAPI · Python · +2

Key finding

Withdrawn: 1.000. Corrected to 0.400 holdout precision (corrected).
Corrected: a published number was withdrawn and replacedHonest limits
cited-market-brief-agent.vercel.appLive
Screenshot of the Cited Market Brief Agent live demo

What I built

A full-stack market web app with two surfaces on one page: a consumer Morning Market Radar and a professional evidence-backed brief engine. It started as a daily market tool for a family member who invests in Taiwan and grew into a portfolio-grade full-stack project — running entirely on free / end-of-day public data, with four localised editions (Taiwan, Korea, UK, EU).

Morning Market Radar

An Asia → US market clock; a FRED-backed overnight-risk rail (VIX, USD/TWD·JPY·CNY, broad dollar, WTI, US 10-year); most-read finance news over day / week / month windows with AI summaries (Traditional-Chinese key points for the Taiwan edition); and a Taiwan ETF-vs-TAIEX attribution tool: paste holdings and it breaks performance into contributors, drags, and sector bars.

Evidence-backed brief engine

Cited generation from SEC EDGAR filings and FRED/ALFRED macro series: a claim without a source span is dropped, and a click-through evidence ledger exposes the quote, document, section, accession number, and checksum behind each claim that survives.

Auditable by design

Every claim carries a primary source a reviewer can open, rather than being asserted confidently with nothing behind it. What the validator checks is provenance and numeric/temporal consistency — that a span exists, resolves, and does not contradict the figure. It does not check entailment, so “cited” is not the same as “correct”, and the repo’s claim ledger forbids presenting it as verification of the underlying facts.

The gate that couldn’t fail

The project’s central claim used to be that 100% of shipped claims were cited, backed by a CI eval reporting precision 1.000 and recall 1.000. Those numbers were the system marking its own homework: the gate was built from the same rules that produced the output, so it could not fail, and a metric that cannot fail is not measuring anything.

Replacing it with independently labelled ground truth gave a different picture — precision 0.579 on the development set and 0.400 on the holdout, with recall 1.000 and no false negatives on either. In plain terms: of the claims the system accepts, about 40% are genuinely supported by the span they cite, so 60% are not. Nothing is dropped that should have shipped; plenty is kept that shouldn’t be.

The repo now carries a claim ledger listing the wording this result forbids, including quoting the development figure on its own, calling the validator a fact-checker, and stating any precision figure without first defining the unit, the positive class, and the population. One defect stays open and named: removing every evidence quote leaves the score unchanged, because an empty span skips the provenance check.

Honest limits

It runs on free / EOD data tiers (TWSE, FRED, NYT Most Popular, RSS, SEC EDGAR) — great for a personal morning digest, not a real-time terminal. The public demo runs on built-in demo data with no backend; the full live-data app runs privately and is available on request. It is not a commercial product, and nothing it produces is investment advice.