diff --git a/backend/src/routes/options.ts b/backend/src/routes/options.ts
index 9125ece..16ecf7a 100644
--- a/backend/src/routes/options.ts
+++ b/backend/src/routes/options.ts
@@ -526,15 +526,26 @@ optionsRouter.delete("/orders/:id", (c) => {
// HV30 and IV/HV ratio for each. Highlight spikes where IV >> HV.
// ---------------------------------------------------------------------------
const DEFAULT_SCAN_SYMBOLS = [
- "SPY","QQQ","IWM","DIA",
+ // Indices & sector ETFs (8) — vol-stable references
+ "SPY","QQQ","IWM","DIA","SMH","XLF","XLE","XLK",
+ // Mega-cap tech (6)
"AAPL","MSFT","NVDA","GOOGL","META","AMZN",
- "TSLA","AMD","NFLX","COIN","INTC",
+ // Semiconductors (5) — frequent earnings & policy catalysts
+ "AMD","INTC","TSM","AVGO","MU",
+ // High-vol / event-driven (7)
+ "TSLA","NFLX","COIN","PLTR","SHOP","UBER","MARA",
+ // Financials (4)
+ "JPM","BAC","GS","V",
+ // Healthcare (3)
+ "LLY","JNJ","UNH",
+ // Consumer / energy (4)
+ "XOM","WMT","DIS","MCD",
];
optionsRouter.get("/scan", async (c) => {
const symsParam = c.req.query("symbols");
const symbols = (symsParam ? symsParam.split(",") : DEFAULT_SCAN_SYMBOLS)
- .map((s) => s.trim().toUpperCase()).filter(Boolean).slice(0, 30);
+ .map((s) => s.trim().toUpperCase()).filter(Boolean).slice(0, 100);
if (symbols.length === 0) return c.json(fail("No symbols to scan"), 400);
diff --git a/frontend/scanner.html b/frontend/scanner.html
index 78bdbb2..37cd35c 100644
--- a/frontend/scanner.html
+++ b/frontend/scanner.html
@@ -216,7 +216,24 @@