Atlas · MACRO NOTE
Published 2026-05-30

Atlas Research Notebook: How a Source-Backed Quality Gate Governs 75 Symbol Pages

The Atlas research notebook now serves 65 of its 75 symbol pages only after each daily context clears a source-backed quality gate, and the remaining 10 stay out of runtime by design rather than by accident.

What the Atlas symbol surface ships today

The public symbol surface covers 75 instruments across eight asset classes. The static builder /root/Atlas_Backend/atlas_symbol_pages_build.py regenerates these pages and the sitemap, and the most recent full pass rebuilt 75 symbol pages before the asset-class hub work landed. Coverage spans equities, an ETF set (SPY, QQQ, DIA, IWM), crypto (BTC, ETH, SOL, XRP), forex (EURUSD, GBPUSD, USDJPY), commodities (GOLD, SILVER, COPPER, USOIL, UKOIL, NGAS), and indices (VIX, DXY, UK100, DE40, JP225). The full index sits at the Atlas symbol coverage landing page.

Six asset-class hub pages were added under /var/www/atlas/stocks/<class>/ for equities, etf, crypto, forex, commodity, and index, with peer cross-links on every symbol page and a hub bar on the /stocks/ landing. That expansion moved the sitemap from 67 to 73 URLs while leaving the 75 symbol count and the 66/9 index versus noindex split unchanged.

Service health is verifiable from outside the box. The public endpoint https://atlas.freedomcore.io/api/atlas/health responds with ok: true, and public HTML serves versioned assets such as /css/atlas.css and /js/atlas.js.

The daily context quality gate and what it rejects

Each symbol page is driven by a daily context file at /root/Atlas_Backend/cache/daily_contexts/{slug}.json, treated as the canonical master and immutable for the UTC day. Before any context can drive a public page, a runtime report, or an email receipt, it must pass /root/Atlas_Backend/daily_context_quality_gate.py. That gate enforces a current-date as_of value, fetched-URL source provenance (the published source manifest must be a subset of the sources actually stored in the database), an 8-class asset enum, balanced paragraph-tag HTML, no disallowed tags, and explicit advice-language rejection. Source manifests now carry source_manifest_source=fetched_news, meaning provenance comes from fetched headlines rather than model output.

The full 75-symbol run produced a concrete, auditable split: 65 of 75 contexts validated for runtime and serving. The builder then marked 66 pages index,follow (the 65 validated plus 1 already trafficked in Google Search Console) and 9 pages noindex,follow because they were both unvalidated and untrafficked. The gate rejected two symbols for cause, which is the fail-safe behaving as intended: XRP carried a disallowed <a> tag in a snippet, and MA carried advice language ("buy/sell now"). A further nine symbols (ABNB, AVGO, GOOGL, MU, NKE, SQ, TSLA, UKOIL, WMT) were skipped after an NVIDIA HTTP 429 rate-limit forced a fallback model that returned non-JSON; those skips preserved prior on-disk state rather than overwriting it.

Cross-asset source methodology and citation tiers

Source quality is treated as a first-class output, not a footnote. A render-time authority tiering pass in /root/Atlas_Backend/renderers.py orders citations official (tier 1) before reputable press (tier 2) before aggregator (tier 3), and labels each one. Because the tiering is additive at render time, it applies to the existing 65 validated contexts with no pipeline rerun and no change to the gate's required keys.

The tier-1 host list is explicit and public-facing: regulators and official statistics and central-bank bodies including fca.org.uk, esma.europa.eu, boj.or.jp, pbc.gov.cn, imf.org, worldbank.org, and bis.org, alongside BoE, Fed, ONS, BLS, and BEA. Tier-2 hosts include nikkei.com, scmp.com, nasdaq.com, and nyse.com. A verification on GBPUSD confirmed the serve order: official-first (BoE, Fed, ONS, BLS, BEA) ahead of FXStreet, ahead of DailyForex and Forex Factory.

For equities, the daily writer is being wired to read primary filings. Recent cache writes under /root/Atlas_Backend/cache/free_sources/ include SEC companyfacts and submissions pulls (for example CIK 0000320193 and CIK 0001045810), captured between 05:00 and 05:14 UTC on 2026-05-30. The methodology question Atlas is answering is whether macro, forex, and commodity contexts can be held to the same provenance standard as company filings. The DefiLlama and OpenBB style of open, documented data spines is the reference point for that work; see the OpenBB documentation and the DefiLlama site for the open-source primitives this surface treats as a baseline.

Crawl-budget signal from Google Search Console

The decision to gate breadth rather than chase it is grounded in indexing telemetry, not preference. Google Search Console coverage exports show that "Discovered, currently not indexed" dominates: Atlas at 61 URLs versus only 3 "Crawled, currently not indexed." Arena, a sibling surface, sits far higher at 439 discovered-not-indexed. Read together, that pattern points at crawl-budget and domain authority as the binding constraint, not raw content volume. A monitor at /root/Atlas_Backend/gsc_index_monitor.py parses the per-property Page-Indexing CSVs and reports reason deltas against a stored snapshot (gsc_index_snapshots.json), with a validated baseline of Atlas 61 and Arena 439 and zero delta on rerun. The measurement window for whether gating plus hubs moves the discovered-not-indexed count downward is the next GSC export, two to four weeks out.

Caveats: what is not proven, not live, not public

Several things are deliberately incomplete, and stating them plainly is part of the methodology.

Why the gate matters for the research surface

The wider FreedomCore stack runs separate, autonomous surfaces; the Maverick engine and the broader FreedomCore index are out of scope for this note. Atlas's own contribution is narrower and checkable: a research notebook where every served page can be traced back to fetched sources, ranked by authority tier, and held immutable for the trading day. The published methodology and dated build notes are the artifact, and the next Atlas notes entry will report whether the GSC discovered-not-indexed line bends. For the schema vocabulary these notes target, see the Schema.org BlogPosting type.

Browse the Atlas research notebook

FreedomCore Atlas Research →