Source Health
| Data type | Provider | Status | Calls today | Priority |
|---|
Symbol Lookup
Index structure
Nightly snapshot of major indices: % from 52-week high and ATH, breadth (advance/decline, % above SMA50/200), and a MarketCap-proxy concentration read. Cache only — never walks 500 tickers live. SPX uses the seeded S&P 500 list; SXXP is the Europe starter list, not official Stoxx 600. Concentration is a cap proxy, not licensed index weights.
Top movers
From GET /movers for composition indices (SPX / SXXP).
Gainers
| # | Symbol | 1d % |
|---|
Losers
| # | Symbol | 1d % |
|---|
History
% from ATH and, for composition indices, % advancing — from prior nightly snapshots.
Live Squawk Feed
Real-time-ish headlines from FinancialJuice's WebSocket stream
(server-side, always-on ingestion — see
server/src/financialJuiceStream.js). Free tier: news
and economic-calendar events delayed by ~10 minutes. This panel
reads the resulting cache, it never opens its own connection.
Economic Calendar
| When | Event | Country | Actual | Forecast | Previous | Importance |
|---|
My Alert Rules
Get notified when a squawk headline matches a keyword, category, and/or minimum importance. Requires login (My Account tab). At least one filter is required per rule.
| Label | Keyword | Category | Min importance | Enabled |
|---|
Triggered Alerts
Log in
Email and password. New accounts are created on the Admin tab (master key required).
Advanced: log in with an account API key
Log in above to manage your watchlist, entitlements, and dashboard layout.
Buy / Hold / Sell Signals
Not financial advice. Heuristic decision-support only, computed from cached fundamentals, news sentiment, social sentiment, and price momentum. Requires login (My Account tab).
Data Explorer
Browse what's actually cached in Postgres, rendered nicely instead of as raw database tables. Read-only — nothing here ever triggers a live provider call or creates new instrument rows, it only shows you what's already been fetched. Master key only (Admin-tier).
Price History
| Date | Open | High | Low | Close | Adj. Close | Volume | Source |
|---|
Fundamentals
Derived ratios (by fiscal period)
| Metric |
|---|
Raw fields (by fiscal period)
| Field |
|---|
News & Squawk Feed
Alt-Data
Screener & Movers
Nightly batch-job output — never triggers a live scan, this only reads whatever the last screener/movers run already computed.
Workbench — files in, files out
This is the human-facing door on the same API everything else uses. Pull history for one or many tickers, pick the columns that actually exist in our providers, download Excel / CSV / JSON / Parquet — or drop in a file of your own, map its columns, and optionally join it onto a pull by date. Master-key tier, no account login required. Does not write imported files into the database.
1. What to pull
2. Columns we actually have
Loading catalog…
3. Import a file (optional)
CSV, JSON, Parquet, or Excel (.xlsx). Map the date column — and a ticker column, or assign one symbol — then join onto the pull or just inspect it.
4. Preview / download
Admin
Master-key-only room: mint accounts, inspect quota/cache, and manage the rolling Parquet snapshots the scheduler writes every 30 minutes on weekdays. Nothing here is visible to an account key — same auth tier as Data Explorer.
Create Account (insider-only)
This form re-enters the master API key
(AGGREGATOR_API_KEY from .env) as a
deliberate second check — even though this dashboard's server
already holds that key internally, creating an account still
requires whoever is sitting at this screen to type it in correctly.
If the key is wrong, the account is not created —
node-api rejects it exactly like a direct POST /accounts
call with a bad key would. This keeps the number of accounts limited
to people who actually know the master key, not just anyone who can
open this Admin tab.
Provider Quota / Usage
| Provider | Window | Used | Limit |
|---|
Cache Stats
| Table | Rows | Oldest | Newest |
|---|
Parquet exports
Files the rolling snapshot job writes under EXPORT_DATA_DIR
(Hive folders: modality / date / file). Live refresh is still
intraday + news + social; each run also snapshots cached EOD,
fundamentals, screener, and a unified PIT report
(unified_pit = latest cross-section;
unified_pit_history = last 60 trading days) joining
technicals + fundamentals (filed_at cutoff) + news/social sentiment
for the current security set (dashboard instruments, else the
screener universe). Click a column header to sort. Delete is
permanent; there is still no automatic retention policy.
Session & System Info
Snapshot of the current browser session and this dashboard server — paste this when reporting a bug.
Compile Report
A raw dump of every cached row this aggregator holds — for one symbol (every modality: price, fundamentals, news, alt-data, predictions, sentiment, screener/movers) or for one squawk theme (category/keyword/importance across the squawk feed + economic calendar). Every row, every column, verbatim, capped to a safe payload size below. Built to paste straight into an agent's context to look for gaps/optimization opportunities across the pipeline.
Quick Endpoint Tests
One button per documented endpoint, pre-filled with a working example. Buttons marked (fill in) only populate the Manual API Tester below and require you to fill in a sensitive field yourself (e.g. the master key) before pressing Send — everything else sends immediately and jumps you to the result.
Manual API Tester
Send any request through this dashboard's proxy with full control over auth headers. Useful for reproducing an issue exactly, or pressing a button above to pre-fill this. Set DEBUG_EXPOSE_KEYS=true in .env and optional DEBUG_ACCOUNT_KEY / DEBUG_DASHBOARD_KEY in .env or .env.providers to auto-fill the key fields below on tab open.
Client Request Log
Every request this browser tab has made through the dashboard proxy (most recent last). Click a row to expand its full request payload and response body. Copy this whole log when something looks wrong.
| Time | Method | Path | Status | ms | Error |
|---|