Skip to main content
All manual pages

Settings

Settings has four tabs — Account (identity, 2FA, email, data rights), Billing (plan, Stripe portal, AI usage), Notifications (master mute, per-kind channel matrix, quiet hours, push, muted symbols), and Preferences (theme, chart, timezone, extended hours, hotkeys, workspace layout).

Settings is the account control surface, split into four tabs that match how you come to it:

  • Account — who you are: profile card, email change, two-factor auth, referral link, data export/delete
  • Billing — what you pay for: tier badge, Stripe portal, upgrade prompt, AI usage counters
  • Notifications — how the product tries to reach you: master mute, per-kind channel matrix, quiet hours, device push subscribe, muted symbols (this is *delivery*; the alert *rules* themselves live at /settings/alerts)
  • Preferences — how the terminal looks and behaves: theme, chart timeframe, timezone, extended hours, auto-refresh, ticker bar, workspace import/export, session reset, hotkeys

Deep-linkable: /settings#billing, /settings#notifications, /settings#preferences. No hash → Account.

Server-backed values sync across devices; the page shows them fast from a local paint and never hides whether the save landed.

Account

Profile + email. Your display card sits at the top of this tab. To change the account email itself, use the *Change email* card: enter the new address, we send a verification link to the *new* address first, the old address stays usable as a login alias so you're never locked out mid-move.

Two-factor authentication (top of this tab). TOTP (Google Authenticator / Authy / 1Password all speak it). Enable → scan the QR (or enter the secret manually) → confirm with a fresh six-digit code. Once enrolled, every login needs a code. Disable with your account password, which is also the lost-phone recovery path.

Referral. Your shareable link + copy button. Anyone you bring in counts on this row.

Data rights. Export my data (JSON) hands you a single file with your profile, watchlists, alerts, journal, simulator state, and subscription record — no credentials or card numbers. Delete my account needs your password *and* typing DELETE; it's permanent and not reversible (cancel a paid plan first if you have one).

Billing

The Current Plan card shows your tier (Free / Pro / Terminal) and trial state. If you're paid: Manage Billing opens the Stripe portal for plan changes, cards, invoices, and cancellation. If you're free, it routes you to /pricing — there's nothing Stripe-side to manage yet. A successful checkout flips the badge immediately (with a TIER_ACTIVATED banner).

Notifications

This tab is the fix place for *how anything finds you*. One card with four behaviors, all saving to your account:

  • Mute everything — one switch. Nothing reaches you except halted-stock warnings (those are urgent by design).
  • Channels by alert type — a grid of kind × channel (in-app inbox, device push, email). Tick what you want. Price alerts + halts + fills default everywhere; watchlist movers default to push; digests default to email.
  • Quiet hours — start, end, and timezone. During the window, events write to the inbox but don't push. *(Historical note: this control famously didn't do anything before 2026-09-01; it does now. If your setting looks wrong, re-set it once.)*
  • Push notifications — subscribe/unsubscribe your *current device*. iOS: install the app from Safari (Share → Add to Home Screen) first — the enable button will tell you if you're in a plain Safari tab where push can't run.
  • Muted symbols — per-ticker push kill, for the one name that won't shut up.

Rule mapping reminder: every toggle here is *delivery-only* — none of it pauses your alert rules or scanner logic. Delete rules at /settings/alerts.

Preferences

  • Theme — system / dark / light
  • Default chart timeframe — what a fresh chart opens at (1m … weekly)
  • Timezone display — your display clock; market times stay ET everywhere
  • Show extended hours — toggles pre/post-market candles and extended-hours scanner quotes
  • Auto-refresh — off freezes data until you refresh manually
  • Top ticker bar — the scrolling strip across the top; comma-separated symbols, $-prefix for indices ($VIX, $DXY)
  • Workspace — export/import your layout (charts, panels, drawer geometry) as a JSON file
  • Hotkeys — per-action rebinding; click a binding, press the new combo, Esc cancels. Full list at Keyboard Shortcuts
  • Reset progress — wipes local learning-state (wedge dismissals, tours, academy progress) after a typed confirmation
  • Recording consent — opt out of session recording (PostHog Replay / heatmaps)

AI usage

Per-day counters for AI features (briefings, Q&A, digest) show on Pro/Terminal billing tab with bars that go amber at the cap. Terminal reads Unlimited.

Things you cannot do here (by design)

A couple of traps that were laid by earlier versions of this page and are gone now:

  • There is no "browser notifications" toggle separate from device push — push *is* the OS notification channel. If you keep thinking they should be separate things, that's the old page talking; the merged version is device push only.
  • There is no separate "alert email address" field: alert email goes to your account email. Change your account email on the Account tab.

Troubleshooting

I changed quiet hours and my phone still buzzed once. Two things: the save takes under a minute to propagate to the alert evaluator, and quiet hours block *push* only — a halted stock you watch will still notify you because halts are urgent.

My push subscription died after a browser cookie clear. Push subscriptions are per-browser-profile. Re-enable from Settings → Notifications.

A muted symbol still appears in the inbox. By design: symbol mute kills *push*, the inbox row stays (you muted the ping, not the record).

The theme toggle switch but pages keep resetting. System-pref is default. Lock it by picking dark or light explicitly.