▌ Loading · empty · error
Every state is its own surface.
Loading isn't an em-dash. Empty isn't "no data." Error isn't "something went wrong." Each shape carries a receipt.
▌ Loading · shimmer pulse on placeholder shape
Loadingstat tile
Loadingpositions row
Loadingdrawer chart
▌ Empty · the agents are quiet, here's the timer
Emptyagent feed · 0 runs
Agents are quiet.
No flags this cycle. The loop runs every 60 seconds. We'll surface anything worth a receipt.
Next cron in00:42
Emptyyour watchlist · new user
No tickers in your watchlist yet.
Paste a symbol up top. The drawer opens with a thesis, kill vectors, agent runs. Five names is a starting weight.
Add your first ticker →
Emptycompare · 100% overlap
You hold all five anchors.
Same names, same layers. Differences are in weight and sleeve. Open the Shadow Forecast to size the gap.
Open Shadow Forecast →
▌ Error · the actual retry timer, not a sorry-page
Errorprices · backoff
● Network blip
Price feed dropped.
Tradier returned 503. We're holding the last known last-trade and retrying with exponential backoff.
Retry in 04s
Errordrawer · ticker not found
● 404 ticker
No ticker matches ZZZZ.
We checked Polygon, Tradier, and the SEC issuer file. Three possible matches surfaced. None at confidence.
Did you mean ZZZ.TO?
Erroragent · timeout
● Timeout
filings-watch took too long.
EDGAR latency at 11s, our budget is 8s. The run is queued behind earnings-watch. Not a thesis problem, a queue problem.
Auto-retry in 11s