LAI Desk · Relative Strength Command Center

LAI Desk

EUR/USD

Market Pulse

Regime detection across QQQ, SPY and SMH with watchlist breadth. RS scanning activates only under qualifying market conditions to ensure strength readings reflect true accumulation rather than market drift.

MARKET REGIME · AWAITING SCAN
Awaiting Scan
Run a scan to detect the current market regime across benchmarks and breadth.
Breadth
% Positive
Median Day
Standby
RS Scan
Benchmarks
QQQ
SPY
SMH
Macro & Markets
Loading market news…
AI Industry
Loading AI news…

Top Leaders at a Glance

The five strongest names in the universe, in plain language — how each is beating the market, its momentum, volume and whether the leadership is holding. Full sortable table is in the Leaderboard tab.

Run a scan to populate

Daily RS Leaderboard

Stocks ranked by composite RS Score. Sortable by every metric. Each row has a 60-day sparkline with 9-EMA (green), 21-EMA (amber), 50-DMA (blue) and 200-DMA (gray) so chart regime is visible at a glance. The score blends excess return over QQQ, RS line slope, volume confirmation and short-term momentum.

RS Score Ticker / Trend Daily % EMA 9 / 21 RS Spread Volume RVOL 5d ROC RS Trend RSI(14) Persist Peer RS
Run a scan to populate

Multi-Timeframe Leadership Rankings

A Leadership Score combining average RS across 20 days, consistency of outperformance, trend slope, acceleration, volume confirmation, and down-day resilience — how a name holds up (or rises) on days the market is red. Names that outperform when QQQ falls now score meaningfully higher, since that behavior signals genuine accumulation. Tier 1 names are persistent institutional leaders. Tier 2 are emerging.

Tier Leadership Score Ticker Daily % Monthly % Red-Day Hold Avg RS Score (20d) Consistency 20d Trend Slope Acceleration Vol Confirm 5d 60d
Run a scan to populate

Thematic Intelligence

Themes ranked by composite Theme Score, or sort by performance over a chosen window. Low dispersion plus high median RS plus high participation indicates coordinated accumulation.

Sort by
Define themes in the Watchlist tab, then run a scan.

Theme Detail

Full theme breakdown with all constituent metrics.

Theme Score Theme Members Median RS Daily % Monthly % Participation Dispersion Avg RS 5d Avg RS 20d
Define themes and run a scan

Rotation Map

A live view of the whole universe. The heatmap groups every name by theme, sized by liquidity and coloured by performance over the selected window. The rotation map below plots each theme by relative strength (selected window) against short-term momentum, flowing Improving → Leading → Weakening → Lagging. Hover any tile for its price and move.

Timeframe
Universe heatmap · by theme · tile size = liquidity · hover for price & move
Run a scan to render the universe heatmap.
Rotation map · relative strength × momentum
Run a scan to plot the rotation map.

Spring-Load Detection

Swing-oriented multi-factor model (weeks-to-months horizon, tuned to not churn day to day). The Setup Score (0-100) rewards the structures that matter for a position trader: a big base or turnaround, a reclaim of major support (regaining the 50/200-DMA) and re-entry into a Stage-2 uptrend, institutional accumulation, and a confirmed base breakout on volume — provided the name is an RS leader or emerging leader in a top-ranked sector. Scores are smoothed across recent sessions and persistence is rewarded, so a setup that's working holds its place and earns a ★ sticky flag rather than flickering in and out. Short-term coil/expansion signals are de-emphasised to cut noise.

Works for any symbol, even ones outside the scan.
⚡ Short-Term Trade Ideas · strongest themes · ranked by odds to T1
Run a scan to populate.
Sort by
Run a scan to populate

Adaptive Model self-learning weights

Fully automatic: after each day's first scan the engine measures which factors actually predicted 5-day outperformance vs QQQ, shifts the score weights toward what's working (shrunk toward base, split by regime), recalibrates the win-odds table, and applies the result to the live board, ranking, strict filter and alerts. The strict gates are structural and never adapt. The panel is read-only and needs no input.

Learning state loads with the ledger\u2026

Signal Ledger forward performance

Forward performance of each scan-day cohort versus QQQ, computed from the worker's daily snapshots (scan-day closes, trading-day offsets). Win = beat QQQ over the horizon. A signal that cannot clear the Universe baseline has not earned its weight.

Scroll here or hit Refresh to load scan history…

Replay any recorded day

Reconstruct what the board showed on a past scan day, then what actually happened over the next 5 and 20 scan days, QQQ-relative. It reads the same shared snapshots as the ledger; nothing is back-fitted.

Technical Room

A full technical workbench for any ticker, topped by a synthesized Edge Score (0–100) — one read of how set up the name is to beat the market, blending trend, relative strength, momentum, volume and volatility. Search a symbol, then switch tabs: VWAP (real intraday session), Fibonacci, moving averages & the golden/death cross, support & resistance, momentum (RSI & MACD), volume, plus three edge tabs — Relative (strength vs QQQ, the engine's core signal), Volatility (Bollinger/Keltner squeeze & ATR stops) and Trade Plan (entry, ATR stop, R-multiple targets & position sizing). Educational, not advice.

Search a ticker to load its chart.

Position & Thesis Tracker

Every open and closed position with its thesis, sizing, conviction, and — most importantly — its pre-defined invalidation triggers. The discipline that closed INV cleanly: write the exit conditions before you need them, then hold yourself to them. Positions sync with your scan: live RS, setup score, and a breakdown warning appear automatically for names in your universe.

No positions yet. Click "+ New Position" to start tracking a thesis with its invalidation triggers.

Earnings Calendar

Upcoming earnings across your universe and watchlist, pulled live through the worker. Trade around catalysts deliberately — see which names report in the next days, sort by proximity, and flag the ones you hold so events never blindside you. Estimates shown where available.

Click "Fetch Earnings" to pull reports for your watchlist. Worker v17.1+ required. Add free FMP / Finnhub keys in Config for actual EPS, beat/miss, and transcripts.

Trump Watch

A curated tracker of President Trump's disclosed portfolio activity and the companies in the policy/news spotlight. Holdings come from OGE government-ethics disclosures — these are periodic, reported in broad value ranges, and the assets are held in a trust managed by his children (not a real-time 13F). This is an editable research aid, not investment advice or any claim of intent.

Trump News & Posts — policy headlines + X posts (if API connected)
Click Refresh to pull the latest policy headlines across the tracked names.
Disclosed Holdings & Trades (OGE filing)
TickerActionValue rangePeriodLiveNote
Policy Themes in Focus — sectors the administration is backing
In the Spotlight — names recently in policy/news headlines

Options & Derivatives Intelligence

Where the size is positioning. Live sweeps & blocks, the full chain with Vol/OI new-money flags, IV skew & Greeks — read the smart money in the options tape before the move shows up on price. Tradier feed (15-min delayed) is plenty for spotting unusual whales.

NVDA $184.20 ▲ 1.8%
Volatility & Greeks
IV surface · live
ATM Implied Vol
%
Put / Call Vol
IV − HV30 spread
vol premium
IV Skew · Volatility Smile
25Δ skew · +3.1 vol
IVATM
Deep OTM PutsATMDeep OTM Calls
Positioning · Open Interest & Volume by Strike
OI walls = support/resistance · max pain = dealer magnet
Call OIPut OItoday's volume◆ Max Pain— Spot
Pick a ticker to load positioning.
Options Chain · Calls ↔ Puts · strike-anchored
In-the-moneyVol > OI (new positions)◆ ATM
— C A L L S —STRIKE— P U T S —
IVVol/OIOIVolBid×AskBid×AskVolOIVol/OIIV
🐋 Whale Log · Most Unusual
Vol>OI · bought · near-term · ≥$500k — the highest-conviction directional bets, logged as they appear. Search a ticker in Institutional Flow to see just that name's history.
SeenTickerExpiryStrikeTypeSidePremiumBias · Vol/OI
No whale-grade prints logged yet — they accrue as you watch live sessions.
Institutional Flow · Unusual Activity
Chain-derived — biggest premium + Vol>OI contracts this session
Live
Last TradeTickerExpiryStrikeTypeSide · OrderPremiumSentiment

Smart Money

Tracking where institutional and political capital is positioned. Quarterly 13F-HR filings from any registered institutional investor, plus congressional disclosures for your watchlist tickers. Holdings matching your watchlist are flagged so you spot overlap with your conviction list instantly.

13F Filer Search ~45d delayed
Quarterly 13F holdings — filed up to 45 days after quarter-end, so positioning context, not timing. Search any institution (e.g. "berk", "drucken", "citadel") or pick a superinvestor below.
Short Interest & Insiders
Short squeeze setups + insider buying. Pick a scope or type tickers. Insider data is parsed buy/sell from FMP (foreign issuers like NOK/TSM/ASML are SEC-exempt and won't show Form 4).
🏦 Analyst Upgrades / Downgrades recent rating & price-target changes from Wall St. desks
Pick a scope, scan tickers, or search above.
📉 Short Interest % float · days-to-cover · MoM trend
Pick a scope or scan tickers.
🟢 Insider Activity open-market buys (P) & sells (S), last 90d
Pick a scope or scan tickers.
Congressional Disclosures delayed
STOCK Act filings for your watchlist tickers · disclosures lag the trade by weeks — context, not timing.
Enter your Finnhub key in Watchlist & Config, then click Refresh.

Benchmark Comparison

QQQ, SPY and SMH compared across returns, volatility and short-term trend. Stock-vs-benchmark RS is computed against all three for each name in the leaderboard.

BenchmarkPriceDaily %5d Return20d ReturnYTDVolatility 20dRSI
Run a scan to populate

Top vs Benchmarks

For each top-ranked stock, spread against each benchmark.

TickerStock Returnvs QQQvs SPYvs SMH
Run a scan to populate
🔒 Admin lock

Set a password to gate Watchlist & Config and Methodology so visitors can't change your universe, themes, or API keys. Leave blank and Save to remove the lock. Note: this is casual gating for a shared link, not strong security — never hard-code real API keys into a file you share publicly. Your keys live only in your own browser.

🔑 Access gate — the engine asks for a code every time it loads; once the code is correct the gate disappears and the engine opens. Set or change the access code below (saved on this device). Casual gating only — a deterrent, not strong security.

Watchlist Editor

Universe of stocks the engine tracks. Benchmarks (QQQ, SPY, SMH) are always included automatically. The default cloud-ready universe is 256 names. You can add any ticker — including ones outside the default universe and international stocks using their Yahoo suffix (e.g. ASML.AS, 7203.T, 0700.HK, SHOP.TO, MC.PA, RR.L). Added names are fetched on-demand on the next scan.

Theme Builder

Themes group subthemes. Subthemes hold tickers. Example: AI Chips → subthemes like Power Chips, Cooling, Photonics.

Watchlist Builder

Group subthemes across different themes into a watchlist. Use for cross-theme rotation tracking — e.g. an "AI Bottlenecks" watchlist combining Cooling + Power + HBM from different parent themes.

Data Provider

Congressional trades use Finnhub's free tier. Create a free account at finnhub.io, copy your API key from the dashboard, paste it above and click Save Key. The Smart Money tab then pulls current congressional disclosures for every ticker in your watchlist. Free tier allows 60 calls per minute, which covers a full watchlist scan. The key is stored locally in your browser and passed to your own Worker only. The Finnhub key also unlocks actual earnings EPS and beat/miss on the Earnings tab.

Earnings actuals, beat/miss history, income-statement numbers, and call transcripts use Financial Modeling Prep's free tier. Create a free account at financialmodelingprep.com, copy your API key, paste it above and Save. The Earnings tab then shows real reported numbers, surprise history, and a transcript you can summarize with AI. Stored locally, passed only to your own Worker. Without it, the Earnings tab still shows upcoming dates from Yahoo but no actuals.

AI debrief & chatbot use Google Gemini's free tier. Get a free key at aistudio.google.com/apikey — no credit card, 1,500 requests/day on Gemini Flash. Paste it above and click Save Key. The engine then generates a market-sentiment debrief on the Pulse tab and powers the floating assistant. The key is stored locally in your browser and passed only to your own Worker, which relays to Google. Requires Worker v14.0+.

The engine talks to a Cloudflare Worker you deploy in 2 minutes. Full setup walkthrough is in the Methodology tab. Once you paste the URL here and click Save, the engine fetches Yahoo Finance OHLCV through your own Worker — no CORS, no rate limits, no third-party proxies.

Why this is the only path that works: in 2026, every browser-callable free OHLCV API either blocks CORS (Yahoo, Twelve Data), requires a paid plan (FMP, Finnhub), or has a useless free quota (Alpha Vantage at 25/day). Running a tiny Worker on your own Cloudflare account routes around all of this.

Worker free tier: 100,000 requests/day. A full default scan uses ~259 of those.

Methodology & Formulas

Every metric the engine computes, exactly as it computes it.

Relative Strength Line (Normalized)
RS line is the ratio of stock price to benchmark, normalized to the start of the lookback window so all stocks are directly comparable. A rising RS line means the stock is outperforming the benchmark regardless of absolute price.
RS(t) = (Stock(t) / Stock(0)) / (QQQ(t) / QQQ(0))
RS Score (Composite)
Weighted blend of excess return, RS line slope, volume confirmation and short momentum. Volume Z-score is capped at +4 to prevent earnings-day outliers from dominating the score.
RS_Score = 0.40 × (StockRet − QQQRet) + 0.25 × RS_Slope (10-day linreg, normalized) + 0.20 × min(VolumeZ, 4) + 0.15 × ROC(5)
Persistence Filter (Refined)
Original spec required red-day persistence. We extended it: a name qualifies as persistent if RS Score was above threshold on at least 2 of the last 3 red days OR remained above threshold for 5 of the last 10 days regardless of market color. This avoids signal starvation during steady uptrends.
Leadership Score
Multi-timeframe composite. Weights shifted toward slope and acceleration vs the draft to catch emerging leaders earlier (matching O'Neil/Minervini-style institutional-leadership detection).
Leadership = 0.30 × Avg_RS_Score(20d) + 0.25 × Consistency(20d) + 0.20 × RS_Trend_Slope + 0.15 × RS_Acceleration + 0.10 × Volume_Confirmation Tier 1: top 20% — Institutional Leaders Tier 2: 20-50% — Emerging Tier 3: 50-100% — Weak / Noise
Theme Score
Original spec mixed scales. We percentile-rank each component across all themes before combining so they are unit-comparable.
Theme_Score = 0.45 × pct_rank(Median_RS) + 0.35 × pct_rank(Participation) − 0.20 × pct_rank(Dispersion)
Spring-Load Phases (Refined)
Phase 1 — Setup: RS Score above threshold AND positive RS trend.
Phase 2 — Compression: ATR(14) in lowest 30th percentile of last 60 days AND price > 10-day MA.
Phase 3 — Trigger: QQQ daily > 0 AND (price > 20-day high OR 5d ROC accelerating) AND volume > 1.3× 20-day average.
Live Data & Refresh
The engine pulls fresh daily OHLCV every time you click Run Scan. There is no continuous polling — by design, since intraday RS noise is unhelpful for this signal. For end-of-day refresh, run once after US market close (~22:00 Lisbon time).

Provider options:
Why a Cloudflare Worker: every free OHLCV API in 2026 either blocks browser requests (CORS), requires a paid plan, or has a too-small free quota. A Worker runs server-side on Cloudflare's network, so it can call Yahoo Finance freely and return data to your browser with CORS headers attached. Free tier: 100,000 requests/day, never expires, takes 2 minutes to set up.

One-time setup (2 minutes):
1. Sign in to dash.cloudflare.com (same account you use for Pages).
2. Left sidebar: Workers & PagesCreateWorkers: Get startedHello World template → name it lai-yahoo-proxy → Deploy.
3. After deploy, click Edit code. Delete everything. Paste the file lai-yahoo-proxy.js (delivered alongside this engine).
4. Click Deploy (top right).
5. Copy the URL shown — it ends in .workers.dev.
6. Open this engine → Watchlist & Config → paste that URL into the field → click Save.
7. Click Test next to Save to verify connectivity. You should see "Worker OK".
8. Click Run Scan. Done forever.

What the Worker does: the code (about 90 lines) handles Yahoo's cookie+crumb authentication, caches the cookie per-isolate for 25 minutes, and serves OHLCV data with CORS headers. The endpoint accepts ?symbol=QQQ. Range defaults to 4 months (about 84 trading days, enough for all engine calculations).

Settings persist in browser localStorage. Re-enter your key on a new device.
Options Flow · Tradier key
The Options Flow tab pulls the live chain, IV/Greeks and unusual-activity feed from Tradier. The key lives on the worker (never in this file), so it works for everyone who opens your shared link — same model as your FMP/Finnhub keys.

Where to put the key (one-time):
1. Tradier dashboard → API Access → copy your Sandbox access token.
2. Cloudflare → Workers & Pages → your lai-yahoo-proxy worker → Settings → Variables & Secrets.
3. Add a secret named TRADIER_KEY = your token. (Sandbox is the default; if you upgrade to live data, also add TRADIER_BASE = https://api.tradier.com/v1.)
4. Deploy the worker. Reload the engine → the Options tab switches from demo data to live automatically.

No key set? The tab still works on built-in demo data so the design is visible. Verify the key is live at /health (look for TRADIER_KEY:true).
Architecture Notes
The data provider is a swappable module. Calculations live in pure functions that take normalized arrays. To move to Python/Polygon later, only the data-fetch layer needs replacing — the scoring engine logic is portable as-is.
🔬 Event Analyst live ingestion feed
Idle — your bot POSTs to /event-stream
No analyzed events yet. Hit ⚡ pull AI news to auto-analyze the latest AI/tech headlines, or have your scraper bot POST raw event text to /event-stream — either way, entries stream in here.
+ Manual analyze (paste text yourself)
BENCHMARKS index · sector · cross-asset
Run a scan, then reopen.
MARKET INTERNALS from your latest scan
Run a scan first, then reopen.
BOOK X-RAY your open positions
No open positions yet.
NEWSWIRE
Connecting to the wire…
Liberty Assistant
PULSE