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.
Refresh
Refresh checksIntegration Banner
Integration checks passing. Data is fresh.Integration Summary
Checks Passing4 / 4
Generated At2026-06-06T15:01:00Z
Digest Items5
Latest TitleQuantum Space’s military SPAC is trying to catch SpaceX’s IPO wave
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,826
Digest Articles47
History Added1,779
Scored Articles729
Lens-Scored Articles729
Upstream Lenses12
Upstream Sources11
Upstream LOOCV Accuracy23.7%
| Source differentiation status | ok |
|---|---|
| Articles in source analysis | 792 |
| Multivariate F | 14.8676 |
| Multivariate p_perm | 0.0010 |
| Classifier baseline | 11.6% |
| Lens | Rubrics | Max Total | Items With Scores |
|---|---|---|---|
| Agency and Voice Lens | 2 | 20.0 | 792 |
| Authority and Source Positioning Lens | 2 | 20.0 | 792 |
| Causal Attribution Lens | 2 | 20.0 | 792 |
| Credibility Lens | 2 | 20.0 | 792 |
| Emotional Intensity Lens | 2 | 20.0 | 792 |
| Entity-Level Sentiment Lens | 2 | 20.0 | 792 |
| Epistemic Modality and Certainty Lens | 2 | 20.0 | 792 |
| Hegemonic Common-Sense Lens | 2 | 20.0 | 792 |
| Linguistic Quality Lens | 1 | 10.0 | 792 |
| Objectivity vs Opinion Lens | 2 | 20.0 | 792 |
| Omission and Silence Lens | 2 | 20.0 | 792 |
| Sentiment Clarity Lens | 2 | 20.0 | 792 |
Contract Checks
| Check | Endpoint | Status | Detail |
|---|---|---|---|
| Digest endpoint reachable | /api/news/digest?limit=5 | HTTP 200 | current |
| Latest endpoint reachable | /api/news/digest/latest | HTTP 200 | current |
| Stats endpoint reachable | /api/news/stats | HTTP 200 | current |
| Freshness endpoint reachable | /health/news-freshness | HTTP 200 | current |
| Payload includes generated_at | digest.meta.generated_at | ok | generated_at=2026-06-06T15:01:00Z |
| Payload has articles | digest.data | ok | items=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
}