PANEL PHILOSOPHY — FOUR BUCKETS
Every panel type sorts into one of four buckets:
1. PRICE INSTRUMENTS — STOCKS, INDICES, CRYPTO, FOREX,
COMMODITIES, TREASURIES. Structured numeric quotes.
2. INFORMATION FLOW — NEWS (incl. Watchlist, External CSV holdings, EIA RSS), CALENDAR,
MOVERS, PREDICTION MARKETS. Narrative + schedule + probabilistic risk.
3. VISUALIZATION — HEAT MAP lives under DISPLAY on any price
panel (same symbols as the table; no separate panel type).
4. LEADING-INDICATOR RISK SIGNALS — SEISMIC EVENTS,
TROPICAL CYCLONES, EARTH EVENTS (NASA). Physical-world
events, structured as lat/lon/category (and size when
NASA provides it), that hit the feed before the news
cycle prices them in.
The discipline for adding more panel types: free CORS-friendly
API, threshold that maps to a tradeable instrument, fits the
existing list-with-drilldown idiom. No flights/nuclear/cyber/
elections firehose — the signal/noise ratio doesn't survive
contact with a trading UI.
CHANGE A PANEL'S DATA TYPE
Click any panel title (e.g. "INDICES ▾") to pull down its tray.
Click a panel-type chip: [STOCKS] [INDICES] [CRYPTO] [FOREX]
[COMMODITIES] [TREASURIES] [NEWS] [PREDICTION MARKETS]
[CALENDAR] [MOVERS] [SEISMIC] [STORMS] [EARTH EVENTS].
The panel's title, content, and defaults switch instantly.
ADD A SYMBOL
In the panel tray, type a ticker (e.g. "TSLA") and press Enter.
Autocomplete suggests matching tickers as you type.
Click an [×] next to any symbol pill to remove it.
Symbol formats:
Stocks NVDA, AAPL, TSLA
Indices ^GSPC (S&P 500), ^IXIC (NASDAQ), ^VIX, ES=F / NQ=F / YM=F (E-mini futures)
Crypto BTC-USD, ETH-USD, SOL-USD
Forex EURUSD=X, USDJPY=X, GBPUSD=X
Commodities CL=F (oil), GC=F (gold), SI=F (silver)
Treasuries ^IRX (3M), ^FVX (5Y), ^TNX (10Y), ^TYX (30Y)
On any price panel (WATCHLIST, INDICES, CRYPTO, …), the tray's
DISPLAY row switches the main view: ENTERED / A↔Z / % sort the
table; HEAT MAP shows the sector treemap for the same symbols
(toggle HEAT MAP off with ENTERED or another DISPLAY chip).
CLICK-A-ROW DRILLDOWN
Click any equity/index/crypto/commodity/forex/bond row to
open a full-screen drilldown:
- Multi-range chart (1D/5D/1M/3M/YTD/1Y/5Y) + prev close
- Fundamentals grid: P/E, Forward P/E, Mkt Cap, EPS, PEG,
P/S, EV, EV/Rev, Revenue, Net Income, 52W Hi/Lo
- Sector / industry / exchange tags
- 5 most recent Google News headlines for that company
Click any HEAT MAP tile to open the same drilldown.
Click any PREDICTION MARKETS row to open the market drilldown.
Press ESC (or [×]) to close.
CHANGE NEWS TOPIC
On a NEWS panel, click a topic chip in the tray:
Markets · Watchlist · External · Tech/AI · Semis · Crypto · Economy ·
Energy · Politics · World · Chokepoints · EIA.
Watchlist runs a Google News search over every ticker in your
WATCHLIST (stocks) panels — add symbols there first.
External runs Google News over Yahoo-quoted holdings from every
EXTERNAL ACCOUNT panel (same rows as live quotes — no sweep/MM
cash vehicles unless you SYM-override them to a listed ticker).
Shift+click or ⌘+click (or long-press ~0.5s on a chip) selects
multiple topics; the feed merges headlines from any selected topic
(duplicate URLs removed).
Or type a custom query and press Enter to make your own topic.
Custom topics list under SAVED in the tray with [×] to remove
(same pattern as watchlist symbols). They are stored in your
saved layout (localStorage / export JSON) and survive reload.
CHOKEPOINTS is a curated preset for shipping / supply-chain
disruption — Red Sea, Suez, Panama, Strait of Hormuz, tanker
incidents. Ripples into oil (CL=F), nat-gas (NG=F), container
shippers, and the dry-bulk ETF (BDRY) before the move shows
in price panels.
EIA = U.S. Energy Information Administration (federal energy
stats & analysis; part of the Department of Energy). The EIA
topic pulls their Today in Energy RSS directly (not a Google
News search) — every article is EIA-authored analysis of the
latest petroleum / natural gas / electricity / renewables
story. Pair with the Energy release schedule in CALENDAR:
CALENDAR tells you WHEN a WPSR or Nat Gas print is coming;
the EIA topic gives EIA's own read on the last one.
SCHEDULED RELEASES (CALENDAR)
The CALENDAR panel lists upcoming US data releases. Release
DATES are computed client-side from weekday math — CALENDAR
never fetches anything from BLS, BEA, or EIA. When a release
hits, you still have to read the actual number elsewhere
(e.g. the NEWS panel · EIA topic for EIA's own write-up).
Click a release title to open the agency schedule or data page.
Click a CATEGORY chip in the tray to filter:
ALL — every release, interleaved by date (default)
MACRO — BLS / Fed / ISM / BEA / Census releases:
NFP, CPI, PPI, Retail Sales, PCE, GDP, ISM, FOMC.
ENERGY — EIA release dates (schedule only, no API calls):
- WPSR (crude + gasoline + distillate stocks) —
every Wed 10:30 ET. Moves CL=F, RB=F ~2% on
surprise; XLE constituents track closely.
- Natural Gas Storage — every Thu 10:30 ET. Moves
NG=F 3-5% on winter/summer surprises.
- STEO (Short-Term Energy Outlook) — 2nd Tuesday
monthly. Absorbed the Drilling Productivity
Report in June 2024, so one entry covers both.
Release dates are computed from naive weekday math. Federal
holidays occasionally push a release by a day; CALENDAR
accepts that approximation (same as it does for CPI/PPI).
PREDICTION MARKETS
Shows the top 20 active Polymarket markets ranked by 24h
volume, with YES/NO probability bars, volume, and days left.
Click a category chip to filter: All · Politics · Crypto ·
Sports · Elections · Economics.
Click any row for a full-screen drilldown:
- Probability history (1H/6H/1D/1W/1M/MAX) with dashed
50% reference line
- 24h vol, total vol, liquidity, best bid/ask, spread,
1W/1M change, resolution date, days left
- Full description + link to Polymarket
- Related news headlines seeded from the question
EXTENDED HOURS (PRE-MARKET / AFTER-HOURS)
On a WATCHLIST or INDICES panel, open the tray and click the
EXT HRS [OFF/ON] button. Per-panel toggle — each panel keeps
its own preference.
When ON and the market is in pre-market or after-hours:
- Price swaps to the extended-session price
- Change / % swaps to the extended-session change
- Volume swaps to that session's volume (PRE VOL / AH VOL)
- A small PRE or AH badge appears next to the price
- The meta row appends "REG CLOSE $XXX.XX" so the regular
close is still visible
- The panel title shows a gold "· EXT" marker
When ON during regular hours (or when no extended data is
available), rows show a dim REG badge but display normal
regular-session values. Toggle OFF to hide badges and the
extended data entirely.
EXTERNAL ACCOUNT — FIDELITY CSV FORMAT
The EXTERNAL ACCOUNT panel only ingests positions files in
Fidelity's export shape — the CSV Fidelity generates when you
export open positions (not a generic spreadsheet you invent).
How to get the file (Fidelity):
Website or app → Accounts → Positions (or Portfolio) →
Download / export — choose the positions CSV, usually named
like Portfolio_Positions_<date>.csv. That file is what
ADD CSV expects.
What "Fidelity format" means here:
- First row = column headers (names matched case-insensitive).
- Required headers for any rows to load: Account Name,
Symbol (ticker, CUSIP, cash ISO like EUR, or sweep codes like SPAXX**).
- Optional headers the parser uses if present: Account Number,
Description, Quantity, Last Price, Current Value, Cost Basis Total,
Average Cost Basis, Today's Gain/Loss Dollar, Total Gain/Loss Dollar,
Type.
- Numbers and money may use commas, $, and parentheses for negatives
(Fidelity style). Quoted fields are supported (e.g. account names with commas).
Other brokers / your own CSV:
The importer is not a universal CSV mapper. To load data here, a file
must present those same header names and row semantics (one row
per position line). Otherwise export from Fidelity, or reshape another
export in a spreadsheet to match these columns, then save as CSV.
Tray (after load): DISPLAY = table sort / heat map; P/L COLS =
TOTAL P/L (vs cost) vs DAILY P/L (last columns vs prior close).
ACCOUNT chips — combine a subset (like mini-TOTALS!):
- Normal click: one account (or TOTALS! for everything), same as before.
- Shift+click or ⌘+click (Mac) another account: add/remove it from a
combined view — same SECURITIES / CASH sections and rollups as TOTALS!, but only
the accounts you highlighted. Click TOTALS! to clear multi-select.
- iPhone / iPad (no Shift key): press and hold an account chip for about
half a second, then release — that gesture is treated like Shift+click (add/remove from the
combined set). It is not “hold one finger while tapping another”; one long-press per account
you want to add or remove.
DISPLAY AND HEAT MAP
Heat map is not a separate panel TYPE — it is a DISPLAY mode
on any price panel, using the same symbol list as the quote table.
Bloomberg-HMAP-style squarified treemap: tiles sized by market
cap, colored on a diverging red↔green ramp by today's % change,
grouped into sector buckets (Technology, Energy, Health Care, …).
Open the tray on WATCHLIST, INDICES, CRYPTO, FOREX, etc. Under
DISPLAY, click HEAT MAP (click again, or ENTERED / A↔Z / %, to
return to the table). First paint shows equal-weighted
UNCLASSIFIED tiles within ~1s; fundamentals hydrate
progressively (5 at a time), and the layout re-lays out as
sectors resolve. Click any tile to open the ticker drilldown.
SEISMIC EVENTS & TROPICAL CYCLONES — WHY
Physical-world feeds are a fourth bucket alongside price /
info / viz — leading-indicator risk signals. Four reasons
they earn panel real-estate:
LEAD TIME ON SECTOR MOVES
A M6+ near Hsinchu, a Gulf hurricane forming, or a Red
Sea tanker incident all hit the physical feed 30-120s
before the headline reaches Reuters/Yahoo. Enough time
to pull up TSM, NG=F, or BDRY before the tape moves.
EXPLAINS PRICE ACTION
When a stock gaps on the watchlist, a glance at the
events panel tells you why. The news panel lags and is
noisy; a structured physical feed answers "what just
happened in the real world?" in one row.
SECTOR / TICKER ATTRIBUTION (mental map)
Taiwan/Japan → TSM, ASML, semis + autos. Gulf Coast →
XLE, CL=F, NG=F, Florida insurers. Hormuz → XOM, tanker
ETFs. Chile → copper miners. A disaster in any of those
regions tells you which of YOUR tickers to check first.
COVERS BLIND SPOTS
Polymarket = probabilistic risk (will X happen?).
News = narrated risk (Reuters says X happened).
Seismic/Cyclones/Earth events = physical risk — already
happened, structured as lat/lon/category (+ size when
published). The terminal couldn't answer that before.
WHAT'S IN THE LIST
SEISMIC — USGS M4.5+ week feed. MIN MAG chip
(M4.5/M5/M5.5/M6/M7). Each row: magnitude badge
(dim → green → red → red-fill), depth km, TSUNAMI tag
when USGS flags one, click-through to USGS page.
DISPLAY → GLOBE: same feed, rotating globe from lat/lon.
TROPICAL CYCLONES — NOAA NHC active-storms feed. BASIN
chips (All / Atlantic / E. Pacific / C. Pacific). Normal
click = one basin; Shift+click / ⌘+click or long-press ~0.5s
toggles multiple basins (list/globe show storms in any
selected basin). Each
row: Saffir-Simpson CAT from 1-min sustained wind
(or TD/TS for sub-hurricane), wind mph, pressure mb,
click-through to NHC public advisory.
DISPLAY → GLOBE: storm centers (latitude_numeric /
longitude_numeric from NHC JSON).
EARTH EVENTS (NASA) — NASA EONET open events (last 14 days).
No API key. FILTER chips pick hazard type on one list and
one globe (not separate panel types). Normal click = one
filter; Shift+click or ⌘+click toggles extra categories so
the list/globe show events matching any selected chip
(ALL alone still means everything). On iPhone/iPad, long-press
~0.5s on a chip = same as Shift+click.
ALL — every open EONET event (noisier).
FIRE — wildfire · utilities, REITs, timber, insurers.
VOLC — volcano / ash · airlines, cargo, tourism.
DUST — dust & haze · solar output, port visibility.
DRY — drought · ag, barges, hydropower narrative.
STORM — severe (non-tropical) systems EONET tracks.
ICE — sea / lake ice · arctic shipping seasonality.
SLIDE — landslides · mines, rails, roads into supply.
Rows: category badge, NASA title, relative time, link
(source URL when present). When NASA gives magnitude
(e.g. acres, kt), it shows as a secondary badge — unlike
Richter, units differ by hazard; when absent, globe dot
size uses a footprint/recency blend (see tray hint).
Polygons → map pin at centroid (outline only on NASA).
DISPLAY → GLOBE: same filtered events on the rotating
globe with Natural Earth coastlines.
Seismic, cyclones, and Earth events refresh on the same 60s
tick as quotes and news.
DATA SOURCES (ALL FREE / PUBLIC)
Quotes: Yahoo Finance (via public CORS proxies)
Crypto backup: CoinGecko public API
Forex backup: open.er-api.com
Bonds backup: US Treasury Fiscal Data API
Fundamentals: Yahoo fundamentals-timeseries + v1/search
Prediction: Polymarket Gamma (proxied) + CLOB (direct)
News: Google News RSS (proxied)
EIA news: eia.gov/rss/todayinenergy.xml — U.S. Energy Information
Administration "Today in Energy" (proxied RSS)
Calendar: Computed client-side — schedule only, no API
Movers/VIX: Derived locally from loaded quotes
Seismic: USGS earthquake.usgs.gov M4.5+ week feed (direct)
Cyclones: NOAA NHC CurrentStorms.json (proxied)
Earth events: NASA EONET api/v3/events/geojson (direct CORS;
falls back to same public proxies if needed)
KEYBOARD SHORTCUTS
R Refresh all panels
H Toggle this help
ESC Close help / close open tray
Enter (in symbol input) add typed symbol
Up/Down (in symbol input) navigate autocomplete
Shift+click / ⌘+click — also used in the tray for EXTERNAL ACCOUNT
(multi-account combined roll-up), NEWS topics (merged feed),
TROPICAL CYCLONES basins, and EARTH EVENTS FILTER (multi-category
OR). See those sections above. On touch devices without Shift, use a long-press
(~0.5s) on the chip instead.
TROUBLESHOOTING
If prices show DATA UNAVAILABLE: a public CORS proxy may be
down. The app automatically tries multiple proxies in sequence.
Stale values (dim green) mean the last-known cached price.
Press [R] or wait for auto-refresh (default 60s) to retry.