Bias & coverage methodology
Facets shows how different outlets cover the same story, not whether a story is true. Fact-checking is a separate step (AI verify).
Outlet labels
Each publisher in our seed list has a bias_label (left, center-left, center, center-right, right) and optional factuality tier. Labels come from manual curation aligned with public rating organizations (e.g. AllSides, Media Bias/Fact Check) and are versioned in convex/seedData.ts. Ingestion: RSS seed + Exa widen — see docs/FEED_PIPELINE.md.
Coverage bar
For each story cluster, we count how many linked articles belong to each bias bucket and show that distribution as a bar. More sources on one side means heavier coverage from that perspective—not a verdict on accuracy.
Story matching
New RSS items are grouped when headlines are similar (token overlap) and published within the same day. This is a simple heuristic; false splits and false merges can occur.
Ownership
Outlets may include an ownershipCategory (independent, media conglomerate, government, etc.) for filter and transparency — Ground-style, hand-seeded in convex/seedData.ts.
Blindspot
Stories flagged when coverage skews left or right (see convex/lib/blindspotFormula.ts). Explore on /blindspot.
Corrections
Outlet owners or readers can request label updates via the project issue tracker. We do not claim infallible bias scores.