News Analytics

FastAPI-backed source, lens, workflow, and event diagnostics

The news surface reads from the backend contract and exposes exploratory comparisons, data quality checks, workflow health, and same-event analysis.

Index

Pages

All routes below stay inside the same shared analytics surface.

News Integration

Live FastAPI data

What this page does

Verify app-to-upstream integration status and runtime contract signals.

Data Mode

Integration Banner

Integration checks passing. Data is fresh.

Integration Summary

Checks Passing4 / 4
Generated At2026-04-30T16:10:42Z
Digest Items5
Latest TitleIran war pushes oil prices to 4-year high as Hegseth faces lawmakers
Freshness Statusfresh

Upstream Analysis Contract

Confirms that the upstream RSS/scoring bundle contains enough lens and source-analysis material for the dashboard contract, independent of page-level rendering.

Upstream Articles1,427
Digest Articles44
History Added1,383
Scored Articles363
Lens-Scored Articles363
Upstream Lenses12
Upstream Sources11
Upstream LOOCV Accuracy22.3%
Source differentiation statusok
Articles in source analysis385
Multivariate F7.1506
Multivariate p_perm0.0010
Classifier baseline11.9%
LensRubricsMax TotalItems With Scores
Agency and Voice Lens220.0385
Authority and Source Positioning Lens220.0385
Causal Attribution Lens220.0385
Credibility Lens220.0385
Emotional Intensity Lens220.0385
Entity-Level Sentiment Lens220.0385
Epistemic Modality and Certainty Lens220.0385
Hegemonic Common-Sense Lens220.0385
Linguistic Quality Lens110.0385
Objectivity vs Opinion Lens220.0385
Omission and Silence Lens220.0385
Sentiment Clarity Lens220.0385

Contract Checks

CheckEndpointStatusDetail
Digest endpoint reachable/api/news/digest?limit=5&refresh=trueHTTP 200current
Latest endpoint reachable/api/news/digest/latest?refresh=trueHTTP 200current
Stats endpoint reachable/api/news/stats?refresh=trueHTTP 200current
Freshness endpoint reachable/health/news-freshnessHTTP 200current
Payload includes generated_atdigest.meta.generated_atokgenerated_at=2026-04-30T16:10:42Z
Payload has articlesdigest.dataokitems=5

Debug Payload

{
  "digest_status_code": 200,
  "latest_status_code": 200,
  "stats_status_code": 200,
  "freshness_status_code": 200,
  "digest_status": "ok",
  "latest_status": "ok",
  "stats_status": "ok",
  "freshness_status": "ok",
  "from_cache": false,
  "using_last_good": false,
  "fetch_error": null,
  "freshness_reason": null
}