One Research Shell For ETFs, Indices, FX And Commodities: Atlas Market Substrate Milestone 2
A build pass logged on 2026-06-02 made ETFs, indices, FX, commodities and crypto or stocks render through the same professional research shell, so a fund or a currency pair no longer collapses into a thin placeholder just because it lacks the filing facts an operating company has.
That single sentence is the whole point of the work below. Until this milestone, the Atlas research notebook treated company equities as first-class and quietly let non-equity instruments fall through to a thinner template. The 2026-06-02 patch closed that gap with a deterministic substrate floor and a smoke test that has to pass before the backend serves the result.
Table Of Contents
- The Minimum-Trio Substrate For Non-Equity Markets
- Official Source Rails For FX And Index Coverage
- Twenty Non-Equity Substrates Refreshed In One Pass
- Blocking Stale RSS Prose From Premium Exports
- Coverage After The Rebuild: 171 Symbols, 75 Indexable
- Caveats: What Is Not Proven Or Not Public
The Minimum-Trio Substrate For Non-Equity Markets
The core change lives in /root/Atlas_Backend/atlas_substrate.py. It adds a deterministic minimum-trio substrate for the asset classes etf, index_etf, index, forex or fx, fx_index, and commodity. A market-class report can now reach report_ready from a sourced structural floor made of three parts: identity and structure, live level and tape context, and catalyst, calendar or driver context.
The design decision that matters is what is no longer required. Optional fields such as holdings, net asset value, COT positioning, token data, or company filings cannot block a market-class report. Before this pass, the absence of those fields was enough to make a fund or a commodity render as a thin placeholder. The trio floor replaces that brittle rule with a question that can actually be answered for every asset class: does the report have a sourced identity, a sourced live level, and a sourced catalyst context.
This is the difference between an honest research shell and a tiered cosmetic. An index page that promises structure now has to carry structure, and it has to come from a named source rather than recycled prose.
Official Source Rails For FX And Index Coverage
A research shell is only as good as the sources behind it, so the same pass extended the source routing in /root/Atlas_Backend/scout_orchestrator.py. ETF, index and FX reports now stay off company-filing lanes unless the asset class genuinely supports them, and they pick up official market rails instead.
The added FX and index rails cover central-bank and macro sources, ICE for DXY, Cboe for VIX, S&P Dow Jones Indices, FTSE and the London Stock Exchange, STOXX and Deutsche Boerse, and Nikkei and JPX. The earlier 2026-06-02 ETF routing pass had already pinned exchange-traded funds to deterministic public rails including TradingView, the Nasdaq ETF profile, SEC fund search, and the FINRA Fund Analyzer, with issuer homepages where available. The two passes together mean a fund or a currency pair now resolves to a source rail that matches what it actually is.
For readers who want the upstream methodology behind the free-data spine that feeds these contexts, the OpenBB documentation describes the open financial-data toolkit, and the DefiLlama API documents the on-chain data feed used for the crypto side of cross asset market intelligence.
Twenty Non-Equity Substrates Refreshed In One Pass
The patch was not theoretical. The refresh in /root/Atlas_Backend/atlas_substrate_refresh.py rebuilt 20 non-equity market-class substrates selected by asset class:
- ETFs and index ETFs: SPY, QQQ, DIA, IWM.
- FX: EURUSD, GBPUSD, USDJPY.
- Commodities: GOLD, SILVER, COPPER, PALLADIUM, PLATINUM, USOIL, UKOIL, NGAS.
- Indices: VIX, DXY, UK100, DE40, JP225.
The depth count recorded after the refresh was crypto:report_ready=100, equity:report_ready=50, equity:source_pack_ready=1, commodity:report_ready=8, etf:report_ready=4, forex:report_ready=3, and index:report_ready=5. Route-level probes for SPY, DXY, GOLD, VIX, SILVER, EURUSD and UK100 returned SCOUT_RESEARCH_READY with provider_state=atlas_substrate_v2_research, which confirms the new trio floor is what is being served rather than a placeholder.
A later system-wide rebuild on the same date carried the figure across the full desk: AtlasSubstrate v2 rebuilt with ok=171, failed=[], total=171, and a depth split of report_ready=156 against source_pack_ready=15.
Blocking Stale RSS Prose From Premium Exports
The harder problem with reusing existing material is provenance. Old daily narrative is now reused only when its original source manifest was acceptable. Adding official rails to a record after the fact no longer blesses stale RSS-derived or unsupported prose, because the market fallback in the refresh script preserves an _original_source_manifest field for provenance checks.
The guard is enforced by /root/Atlas_Backend/atlas_no_leak_smoke.py, which gained minimum-trio fixtures for ETF, index ETF, index, FX and commodity and asserts that those classes reach report_ready, carry resolving source spans, and do not render forbidden equity or crypto fields. The route-level probes were checked to contain no leakage from sources such as news.google.com/rss, FXStreet, Seeking Alpha or similar feeds in the market-class executive path. The same smoke run also swept a deterministic all-ETF cached universe and reported all_cached_etfs_checked_750, meaning 750 ETF and index-ETF instruments were checked for company-lane leakage.
The verification trail for the milestone is recorded in the upgrade ledger: py_compile passed for the patched files, the substrate and no-leak smokes passed, atlas_export_defect_smoke.py scanned all 100 crypto contexts, atlas_receipt_smoke.py passed with pending_count=0, and atlas_full_writer_qa.py --fast passed after the refresh. The backend was restarted and atlas-backend.service returned active on 127.0.0.1:8081.
Coverage After The Rebuild: 171 Symbols, 75 Indexable
The same 2026-06-02 to 2026-06-03 work window rebuilt the live Atlas symbol pages on top of the new substrate. The rebuild wrote 171 pages, retained 75 as indexable, and held 96 top-100 crypto expansion pages as noindex while they mature. Atlas Pulse JSON was rebuilt with 171 of 171 validated. The full set is browsable through the Atlas symbol coverage index, and the methodology notes sit alongside the rest of the Atlas notes library.
The daily writer that produces these contexts runs on atlas-dynamic-news.timer, a daily 06:00 BST timer whose service executes /root/Atlas_Backend/atlas_dynamic_news_pipeline.py. The next scheduled full daily run was logged as 2026-06-03 06:00:00 BST. A local health probe returned atlas_substrate_v2.state=ready with report_ready=156 and source_pack_ready=15. This research substrate is what feeds the wider FreedomCore surfaces and sits upstream of the autonomous Maverick engine.
Caveats: What Is Not Proven Or Not Public
Several things are worth stating plainly. The minimum-trio floor proves that a report has a sourced identity, level and catalyst context. It does not prove that any market view is complete or that the catalyst context is the most important one for a given day. The 96 crypto expansion pages held as noindex are not yet competing for search visibility and should not be counted as live indexable coverage. The depth counts above are point-in-time figures from the 2026-06-02 refresh and will move on the next daily run.
None of the material here is investment advice. The Atlas research notebook documents macro context, market structure, symbol coverage and data-source methodology so that the sources behind a page are legible. It does not make trading recommendations, and the figures cited are build telemetry rather than performance claims.
Browse the Atlas research notebook
FreedomCore Atlas Research →