Three new data sources hooked into the existing SOURCES registry. All
open APIs, no keys:
- EUROSTAT: prefix EUROSTAT:dataset?dim=val&... — current EU bond
yields (Bund/OAT/BTP/EZ) and Eurozone economic indicators that
FRED's OECD-mirror series stopped updating in 2022-2023.
- ONS: prefix ONS:topic/cdid/dataset — current UK CPI, unemployment,
GDP, industrial production. Replaces the 5+ month-stale FRED
LRHUTTTTGBM156S mirror.
New indicator groups in default.toml feed the strategic/fundamental
lens we converged on: valuation (CAPE/Buffett anchors), bubble_watch
(SKEW/VVIX/RSP vs SPY/HYG vs TLT/IPO/crypto), economy (multi-region,
ALL current-or-stale-flagged), bonds (UK/EU/US/JPN sovereign yields).
Indicator panel now opens with an AI "read" interpretation per group
(generated hourly at :07 UTC alongside an aggregate cross-group read
shown in the dashboard header). The aggregate is grounded by a markets
strip — NYSE/LSE/Frankfurt/Tokyo/HK/Shanghai with open/closed LEDs and
next-open countdown, computed locally from each exchange's tz.
Other UX bits: indicator-row tooltips populated from TOML notes;
rows whose last observation is >90 days old get a 'stale' chip;
ghost symbols (in DB but no longer in TOML) filtered out of the
panel; Eurostat/ONS symbols display as short codes rather than the
full API path.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
264 lines
16 KiB
TOML
264 lines
16 KiB
TOML
# Baseline config — universal data tables consumed by market_pulse.py and
|
|
# flash_news.py. Edit this file to change what every user/portfolio tracks by
|
|
# default. User-specific or portfolio-specific overrides go in portfolio.toml,
|
|
# which is loaded on top of this and wins on key conflicts.
|
|
#
|
|
# Symbol prefixes in [groups]:
|
|
# bare → Yahoo Finance (default)
|
|
# FRED:SERIES_ID → FRED economic series (needs FRED_API_KEY in .env)
|
|
|
|
|
|
# =============================================================================
|
|
# market_pulse.py — indicator groups
|
|
# =============================================================================
|
|
|
|
[groups]
|
|
|
|
equity = [
|
|
{symbol="^GSPC", label="S&P 500", note="doc ref 7,501 (ATH)"},
|
|
{symbol="^IXIC", label="Nasdaq Composite", note="Mag 7 concentration"},
|
|
{symbol="^NDX", label="Nasdaq 100", note="Mag 7 concentration"},
|
|
{symbol="^FTSE", label="FTSE 100", note="GBP base"},
|
|
{symbol="^STOXX50E", label="Euro Stoxx 50", note=""},
|
|
{symbol="^N225", label="Nikkei 225", note="JPY at multi-decade low → VJPN thesis"},
|
|
{symbol="^HSI", label="Hang Seng", note="China expression"},
|
|
{symbol="000300.SS", label="CSI 300", note="broad China A-share"},
|
|
{symbol="^VIX", label="VIX", note="doc ref 18.0 — 'anomalously calm'"},
|
|
]
|
|
|
|
mag7 = [
|
|
{symbol="AAPL", label="Apple", note="doc thesis: 'Mag 7 pops' scenario"},
|
|
{symbol="MSFT", label="Microsoft", note=""},
|
|
{symbol="GOOGL", label="Alphabet (Class A)", note=""},
|
|
{symbol="AMZN", label="Amazon", note=""},
|
|
{symbol="META", label="Meta Platforms", note=""},
|
|
{symbol="NVDA", label="Nvidia", note="AI capex bellwether"},
|
|
{symbol="TSLA", label="Tesla", note=""},
|
|
]
|
|
|
|
rates = [
|
|
{symbol="^IRX", label="US 3-month T-bill", note="%"},
|
|
{symbol="^FVX", label="US 5y yield", note="%"},
|
|
{symbol="^TNX", label="US 10y yield", note="% — doc ref 4.45"},
|
|
{symbol="^TYX", label="US 30y yield", note="%"},
|
|
{symbol="HYG", label="HYG — HY corp bond ETF", note="HY OAS price proxy"},
|
|
{symbol="TIP", label="TIP — TIPS ETF", note="inflation expectations proxy"},
|
|
]
|
|
|
|
macro = [
|
|
{symbol="FRED:DFF", label="Fed Funds (effective)", note="%"},
|
|
{symbol="FRED:CPIAUCSL", label="US CPI (YoY)", note="% — doc ref 3.8"},
|
|
{symbol="FRED:CPILFESL", label="US Core CPI (YoY)", note="% — ex food & energy"},
|
|
{symbol="FRED:BAMLH0A0HYM2", label="US HY OAS", note="% — doc ref 2.79 (279bps)"},
|
|
{symbol="FRED:T10YIE", label="US 10y breakeven inflation", note="%"},
|
|
{symbol="FRED:T10Y2Y", label="10y-2y term spread", note="% — recession watch"},
|
|
{symbol="FRED:UNRATE", label="US unemployment rate", note="%"},
|
|
{symbol="FRED:WALCL", label="Fed balance sheet", note="$M — QT/QE state"},
|
|
]
|
|
|
|
commodities = [
|
|
{symbol="BZ=F", label="Brent crude", note="$/bbl — doc ref 109; closure-priced 180-250"},
|
|
{symbol="CL=F", label="WTI crude", note="$/bbl"},
|
|
{symbol="NG=F", label="Henry Hub nat-gas", note="$/MMBtu"},
|
|
{symbol="GC=F", label="Gold futures", note="$/oz — doc ref 4,651"},
|
|
{symbol="SI=F", label="Silver futures", note="$/oz"},
|
|
{symbol="HG=F", label="Copper futures", note="$/lb — transition demand"},
|
|
{symbol="PL=F", label="Platinum futures", note="$/oz"},
|
|
]
|
|
|
|
fx = [
|
|
{symbol="DX-Y.NYB", label="DXY (USD index)", note="USD-debasement channel"},
|
|
{symbol="GBPUSD=X", label="GBP/USD", note="household base FX"},
|
|
{symbol="EURGBP=X", label="EUR/GBP", note="~£400-530k EUR exposure"},
|
|
{symbol="EURUSD=X", label="EUR/USD", note=""},
|
|
{symbol="USDJPY=X", label="USD/JPY", note="JPY at multi-decade low"},
|
|
{symbol="USDCNY=X", label="USD/CNY", note="managed peg, watch deviation"},
|
|
{symbol="GC=F", label="Gold (USD)", note="anchor for FX read"},
|
|
]
|
|
|
|
tech_ai = [
|
|
{symbol="XLK", label="XLK — US tech sector", note="broad US tech read"},
|
|
{symbol="SOXX", label="SOXX — iShares semis", note="AI capex bellwether"},
|
|
{symbol="TSM", label="TSMC (ADR)", note="foundry monopoly + Taiwan risk"},
|
|
{symbol="ASML", label="ASML", note="EUV monopoly — China-export friction"},
|
|
{symbol="AVGO", label="Broadcom", note="AI infra; cyclical risk"},
|
|
{symbol="AMD", label="AMD", note="Nvidia competitor"},
|
|
{symbol="ARM", label="ARM Holdings", note="mobile/edge AI"},
|
|
]
|
|
|
|
financials = [
|
|
{symbol="XLF", label="XLF — US financials sector", note="broad US financials"},
|
|
{symbol="KBE", label="KBE — US banks", note="bank-only, regional+money centre"},
|
|
{symbol="KRE", label="KRE — US regional banks", note="post-2023 stress watch"},
|
|
{symbol="JPM", label="JPMorgan", note="systemically important"},
|
|
{symbol="GS", label="Goldman Sachs", note="capital markets read"},
|
|
{symbol="HSBA.L", label="HSBC (LSE)", note="UK + Asia exposure"},
|
|
{symbol="BARC.L", label="Barclays (LSE)", note="UK clearing bank"},
|
|
{symbol="BNP.PA", label="BNP Paribas (Paris)", note="EU systemic"},
|
|
{symbol="DBK.DE", label="Deutsche Bank (Frankfurt)", note="EU stress canary"},
|
|
{symbol="^FTAS", label="FTSE All-Share", note="UK breadth"},
|
|
]
|
|
|
|
# --- Strategic / fundamentals groups -----------------------------------------
|
|
# These feed the Temperature page (phase 2) where each indicator is shown as a
|
|
# percentile of its own history vs past cycles incl. recessions. Until phase 2
|
|
# they render as standard tabs in the Indicators panel.
|
|
|
|
# Valuation — slow-moving "is the market expensive vs history" anchors.
|
|
valuation = [
|
|
{symbol="FRED:WILL5000PRFC", label="Wilshire 5000 (US market cap proxy)", note="numerator for Buffett indicator"},
|
|
{symbol="FRED:GDP", label="US Nominal GDP (quarterly)", note="denominator for Buffett indicator"},
|
|
{symbol="FRED:SP500", label="S&P 500 (FRED long-history)", note="FRED-anchored percentile vs deep history"},
|
|
{symbol="FRED:DJIA", label="Dow Jones Industrial Average", note="long-history equity reference"},
|
|
{symbol="FRED:DGS10", label="US 10y nominal yield (FRED)", note="ERP denominator"},
|
|
{symbol="FRED:DFII10", label="US 10y real yield (TIPS)", note="real-rate signal — gold + multiples"},
|
|
{symbol="FRED:T10YIE", label="US 10y breakeven inflation", note="market-implied inflation"},
|
|
]
|
|
|
|
# Bubble watch — irrationality / positioning / behavioural extremes.
|
|
bubble_watch = [
|
|
{symbol="RSP", label="RSP — equal-weight S&P 500", note="breadth — falling vs SPY = concentration"},
|
|
{symbol="SPY", label="SPY — cap-weighted S&P 500", note="pair with RSP for concentration read"},
|
|
{symbol="IWM", label="IWM — Russell 2000", note="small-cap cycle health"},
|
|
{symbol="^VIX", label="VIX — equity vol", note="LOW percentile = complacency"},
|
|
{symbol="^VVIX", label="VVIX — vol of vol", note="LOW = no demand for vol insurance"},
|
|
{symbol="^SKEW", label="SKEW — tail-risk pricing", note="HIGH = options market pricing crash"},
|
|
{symbol="HYG", label="HYG — high-yield credit", note="pair with TLT for risk-on/off"},
|
|
{symbol="TLT", label="TLT — long Treasuries", note="duration / safe haven flows"},
|
|
{symbol="IPO", label="IPO — Renaissance IPO ETF", note="late-cycle frothiness gauge"},
|
|
{symbol="BTC-USD", label="Bitcoin", note="retail risk appetite + USD-debasement"},
|
|
{symbol="ETH-USD", label="Ethereum", note=""},
|
|
{symbol="FRED:BAMLH0A0HYM2", label="US HY OAS", note="LOW percentile = credit complacency"},
|
|
]
|
|
|
|
# Real economy — fundamental anchors that move on quarters, not days.
|
|
#
|
|
# Geographic coverage note: FRED mirrors OECD "international comparable"
|
|
# series for non-US economies. Several (Japan CPI, Eurozone unemployment,
|
|
# Eurozone industrial production, UK CPI) were de-facto abandoned by
|
|
# OECD-Stat in 2022-2023 and are 1-4 YEARS stale on FRED. Listing them
|
|
# would be worse than not having them. We only include series that are
|
|
# currently maintained. Up-to-date non-US economic data would require
|
|
# direct integration with Eurostat / ONS / Statistics Bureau of Japan /
|
|
# NBS-China — out of scope for v0. The dashboard flags any indicator
|
|
# older than 90 days as "stale" on screen.
|
|
economy = [
|
|
# United States
|
|
{symbol="FRED:ICSA", label="US initial jobless claims (weekly)", note="leading labour signal — weekly"},
|
|
{symbol="FRED:INDPRO", label="US industrial production", note="real activity, monthly"},
|
|
{symbol="FRED:HOUST", label="US housing starts", note="cyclical real-economy gauge"},
|
|
{symbol="FRED:UMCSENT", label="US consumer sentiment (UMich)", note="demand-side mood"},
|
|
{symbol="FRED:T10Y3M", label="US 10y-3m yield curve", note="Fed-favoured recession signal"},
|
|
{symbol="FRED:USREC", label="NBER recession indicator (0/1)", note="binary — context overlay only"},
|
|
# Eurozone — direct Eurostat (open API, no key, current)
|
|
{symbol="EUROSTAT:ei_cphi_m?geo=EA&indic=TOTAL&unit=RT12", label="Eurozone HICP YoY %", note="EZ inflation, YoY % — ECB-style series, current"},
|
|
{symbol="EUROSTAT:une_rt_m?geo=EA21&age=TOTAL&sex=T&unit=PC_ACT&s_adj=SA", label="Eurozone unemployment rate", note="EZ labour, seasonally adjusted"},
|
|
{symbol="EUROSTAT:sts_inpr_m?geo=EA21&nace_r2=B-D&s_adj=SCA&unit=I21", label="Eurozone industrial production", note="EZ real activity"},
|
|
# United Kingdom — direct ONS (open API, current within 1-2 months)
|
|
{symbol="ONS:economy/inflationandpriceindices/d7g7/mm23", label="UK CPI YoY %", note="UK headline inflation, monthly"},
|
|
{symbol="ONS:employmentandlabourmarket/peoplenotinwork/unemployment/mgsx/lms", label="UK unemployment rate", note="UK labour, 16+, seasonally adjusted"},
|
|
{symbol="ONS:economy/grossdomesticproductgdp/ihyo/qna", label="UK GDP growth q/q-4 %", note="UK GDP, year-on-year quarterly"},
|
|
{symbol="ONS:economy/economicoutputandproductivity/output/k222/diop", label="UK industrial production", note="UK IoP, monthly"},
|
|
# Japan
|
|
{symbol="FRED:LRHUTTTTJPM156S", label="Japan unemployment rate", note="JP labour — ~3mo lag"},
|
|
]
|
|
|
|
# Sovereign bond yields — UK / EU / US / JP. China yields have no free open-API
|
|
# source; would need scraping or paid feed.
|
|
bonds = [
|
|
# United States — daily, deep curve
|
|
{symbol="^IRX", label="US 3m T-bill yield", note="short-end, daily"},
|
|
{symbol="^FVX", label="US 5y Treasury yield", note="belly of the curve"},
|
|
{symbol="^TNX", label="US 10y Treasury yield", note="benchmark long rate"},
|
|
{symbol="^TYX", label="US 30y Treasury yield", note="long-end / term premium proxy"},
|
|
# Eurozone — Maastricht convergence yields via Eurostat (monthly)
|
|
{symbol="EUROSTAT:irt_lt_mcby_m?geo=EA&int_rt=MCBY", label="Eurozone 10y aggregate", note="EZ avg 10y govt bond yield"},
|
|
{symbol="EUROSTAT:irt_lt_mcby_m?geo=DE&int_rt=MCBY", label="German 10y Bund", note="EU risk-free benchmark"},
|
|
{symbol="EUROSTAT:irt_lt_mcby_m?geo=FR&int_rt=MCBY", label="French 10y OAT", note="core-EU spread to Bund"},
|
|
{symbol="EUROSTAT:irt_lt_mcby_m?geo=IT&int_rt=MCBY", label="Italian 10y BTP", note="periphery — BTP/Bund spread = EU stress"},
|
|
# United Kingdom — FRED OECD mirror (Eurostat dropped UK post-Brexit)
|
|
{symbol="FRED:IRLTLT01GBM156N", label="UK 10y Gilt", note="UK long-term yield"},
|
|
# Japan — BoJ regime tracker
|
|
{symbol="FRED:IRLTLT01JPM156N", label="Japan 10y JGB", note="BoJ; YCC legacy"},
|
|
]
|
|
|
|
|
|
# =============================================================================
|
|
# flash_news.py — RSS feed registry, by category
|
|
# =============================================================================
|
|
|
|
[feeds]
|
|
|
|
markets = [
|
|
{name="BBC Business", url="https://feeds.bbci.co.uk/news/business/rss.xml"},
|
|
{name="Guardian Business", url="https://www.theguardian.com/uk/business/rss"},
|
|
{name="CNBC Top", url="https://www.cnbc.com/id/100003114/device/rss/rss.html"},
|
|
{name="MarketWatch Top", url="https://feeds.content.dowjones.io/public/rss/mw_topstories"},
|
|
{name="FT Markets", url="https://www.ft.com/markets?format=rss"},
|
|
{name="Yahoo Finance", url="https://finance.yahoo.com/news/rssindex"},
|
|
]
|
|
|
|
world = [
|
|
{name="BBC World", url="https://feeds.bbci.co.uk/news/world/rss.xml"},
|
|
{name="Al Jazeera", url="https://www.aljazeera.com/xml/rss/all.xml"},
|
|
]
|
|
|
|
energy = [
|
|
{name="OilPrice", url="https://oilprice.com/rss/main"},
|
|
]
|
|
|
|
# Pan-Asia coverage: HK/China, Japan, Korea, SE Asia, regional wire.
|
|
asia = [
|
|
{name="SCMP", url="https://www.scmp.com/rss/91/feed/"},
|
|
{name="China Daily", url="http://www.chinadaily.com.cn/rss/world_rss.xml"},
|
|
{name="Xinhua", url="http://www.xinhuanet.com/english/rss/worldrss.xml"},
|
|
{name="Japan Times", url="https://www.japantimes.co.jp/feed/"},
|
|
{name="Nikkei Asia", url="https://asia.nikkei.com/rss/feed/nar"},
|
|
{name="Yonhap", url="https://en.yna.co.kr/RSS/news.xml"},
|
|
{name="Straits Times", url="https://www.straitstimes.com/news/world/rss.xml"},
|
|
{name="Asia Times", url="https://asiatimes.com/feed/"},
|
|
]
|
|
|
|
|
|
# =============================================================================
|
|
# flash_news.py — built-in keyword presets for headline filtering
|
|
# =============================================================================
|
|
|
|
[news.presets]
|
|
|
|
# Mirrors Family_Wealth_Summary_v2.md §8 macro thesis. Swap freely if the
|
|
# portfolio's thesis changes (e.g. crypto, biotech, deep value).
|
|
thesis = [
|
|
"hormuz", "iran", "opec", "brent", "wti", "crude", "oil", "gas", "lng",
|
|
"china", "taiwan", "yuan", "beijing", "xi",
|
|
"fed ", "powell", "ecb", "lagarde", "boe ", "boj", "bailey",
|
|
"inflation", "cpi", "rate cut", "rate hike", "yield",
|
|
"gold", "silver", "dollar", "yen",
|
|
"sanction", "tariff", "trade war",
|
|
"saudi", "russia", "ukraine", "israel", "nato",
|
|
"defence", "defense", "rearmament",
|
|
]
|
|
|
|
# Tech / AI sector — semis, hyperscaler capex, model labs, chip-export controls.
|
|
tech = [
|
|
" ai ", "ai ", " ai,", "artificial intelligence",
|
|
"nvidia", "openai", "anthropic", "deepmind", "gemini", "chatgpt",
|
|
"semiconductor", "chip", "foundry", "tsmc", "asml", "samsung",
|
|
"lithography", "euv", "wafer",
|
|
"data centre", "data center", "hyperscaler", "capex",
|
|
"broadcom", "amd ", "arm holdings", "intel ",
|
|
"apple", "microsoft", "alphabet", "google", "meta ", "tesla",
|
|
"cloud", "saas", "compute",
|
|
]
|
|
|
|
# Financials — banks, credit, central banks, market plumbing.
|
|
finance = [
|
|
"bank", "banking", "lender", "lending",
|
|
"jpmorgan", "goldman", "morgan stanley", "wells fargo", "citigroup",
|
|
"hsbc", "barclays", "lloyds", "natwest", "santander",
|
|
"bnp paribas", "deutsche bank", "credit suisse", "ubs",
|
|
"federal reserve", "rate cut", "rate hike", "basel",
|
|
"credit spread", "default", "junk bond", "high yield",
|
|
"private credit", "shadow banking",
|
|
"earnings", "buyback", "dividend",
|
|
]
|