etfray 1.0.0
What's New in 1.0.0
Added
- Home Dashboard — Redesigned startup screen with four live panels: Benchmark Marquee (SPY/QQQ/AGG/GLD YTD), Watchlist Snapshot, ETF Movers (top-5 gainers/losers), and Seasonal Spotlight Strip (month win rate + MTD return per watchlist ticker).
- Recent / Quick-Jump — Pill buttons on Home for up to 5 last-visited ETF tickers plus a "Search →" shortcut.
- Screener service — New
etfray/data/screener_service.pypowering the ETF Movers panel via Yahoo Finance screener with a 1-hour SQLite TTL cache and a 40+ ETF seed-universe fallback. - Stress Scenarios (Margin view) — Simulates portfolio cushion after −10% and −20% shocks to gross position value.
- Quick Keys footer on Home — Inline keybinding reference on the Home screen.
Changed
- Portfolio Risk view — Added Equity Exposure % and Data Coverage rating; Risk Drivers list is now dynamic.
- Portfolio Concentration view — Ticker normalization for
BRK B/BRK/Bstyle variants; Jaccard overlap now scored as High / Medium / Low. - Compare view — Added weight-adjusted overlap column and average 52-week return column.
- Settings view — All settings now exposed in the in-app UI, including
ibkr_host,ibkr_client_id,freshness_days_acceptable,cache_dir, andexport_dir. - Market data service — Auto-corrects previously cached whole-percent YTD values on read.
- Database — Added
screener_cachetable; migratedholdings_cacheto composite(ticker, source)primary key; renamed'zacks'source to'web'.
Installation
pip install etfrayOptional matplotlib charts:
pip install etfray[charts]Full documentation: https://etfray.readthedocs.io