Skip to main content
All manual pages

Settings

Settings is Tapeboard's account control surface, organized into four tabs — Account, Billing, Alerts, and Preferences — so you jump straight to two-factor auth, plan and billing, alert delivery and quiet hours, or chart/timezone/hotkey preferences without scrolling past everything else.

Settings is organized into four tabs — Account, Billing, Alerts, and Preferences — so you jump straight to the section you came for instead of scrolling past a dozen others. Account holds two-factor authentication, account info, and the Refer-a-trader link. Billing holds your plan, a Pro upgrade panel on the free tier, and usage. Alerts holds push notifications, quiet hours, muted symbols, alert delivery, and recording consent. Preferences holds extended-hours, chart/timezone, the top ticker bar, data rights, reset progress, and hotkeys. Everything that is not a per-feature workspace setting still lives here — who you are, what you've paid for, how you want to be notified, what timezone the terminal speaks, and how to wipe the account if you're done.

Settings page top — single-column stack starting with Two-factor authentication, Push notifications, and Quiet hours
Settings page top — single-column stack starting with Two-factor authentication, Push notifications, and Quiet hours

<!-- SCREENSHOT-DEFERRED-2026-08-05: capture dark-mode desktop + mobile of the new four-tab Settings (Account/Billing/Alerts/Preferences) headings, hide the watchlist rail, clip the left nav. Place at /manual/screenshots/settings-tabs.png + settings-tabs-mobile.png and wire as: -->

<!-- !The four Settings tabs — Account, Billing, Alerts, Preferences — on dark mode -->

What it is

A single control panel at /settings, split into four tabs. Each tab is a self-contained stack of the sections that belong to it:

  • Account — Two-factor authentication (TOTP), account info, Refer a trader (jump-link to the referral block)
  • Billing — your plan + the Stripe portal, a free-tier Pro upgrade panel, AI usage
  • Alerts — Push notifications, Quiet hours, Muted symbols, Alert delivery email, Recording consent
  • Preferences — Extended hours, chart + timezone, the top ticker bar, Data rights (GDPR/CCPA export + delete), Reset progress, Hotkeys

Tabs are hash-addressable: /settings#billing, /settings#alerts, /settings#preferences jump straight to that tab, and the default (no hash) lands on Account.

Server-backed values (extended hours, alert delivery email, ticker bar) are saved to your account and sync across devices; your browser keeps a fast-paint copy so the form populates instantly before the saved value arrives. The page isn't indexed by search engines — it's an app surface, not a marketing page.

When to use it

First session — enroll 2FA, enable push notifications, set your timezone, customize the ticker bar. After upgrading — verify the tier badge, hit Manage Billing to open the Stripe portal. Before traveling — set quiet hours so overnight alerts don't wake you. Before market open — confirm Show Extended Hours matches the session you trade. When a shortcut won't stick in your memory — rebind it under Hotkeys. When you're leaving the platform — export your data, then delete your account from Data Rights.

Open it

  • Path: /settings
  • Shortcut: none — reach it from the sidebar account menu
  • Tier-gate: free — every section is reachable on every tier. The AI Usage Today section is hidden for Free (no daily quota counters apply), and the Simulate Tier (Demo) section is admin-only.

Two-factor authentication (2FA)

The top section, placed first on purpose so power users and admins enroll before they drop into chart defaults. It uses time-based one-time passwords (TOTP) — the same standard Google Authenticator, Authy, 1Password, and Microsoft Authenticator speak.

The section has three states. When 2FA is off, you see an Enable two-factor authentication button. Clicking it generates a secret and a QR code. Scan the QR with your authenticator app (or expand Can't scan? Enter this secret manually to type the secret), then enter the first six-digit code your app generates and press Verify. On success the banner flips to On with the enrollment date.

Once enrolled, every future sign-in requires a fresh six-digit code. To turn it off, click Disable 2FA, then confirm your current account password (not a code) — that path also covers the lost-authenticator recovery case, since you can disable with the password alone.

Two-factor setup showing the QR code to scan, the "Can't scan?" manual-secret option, and the six-digit verification field with a Verify button
Two-factor setup showing the QR code to scan, the "Can't scan?" manual-secret option, and the six-digit verification field with a Verify button

Push notifications

Opt-in to OS-level web push so alerts reach your lock screen even when Tapeboard is closed. The toggle subscribes your browser for push and registers it to your account; triggered alerts are then delivered to your device in addition to the in-app inbox. Alerts fire within about a minute of meeting their condition during market hours.

Push is per-device — enable it on each browser and phone you want notified, and you can Disable push on this device independently. On iOS there is a catch the section spells out: Safari refuses to subscribe from a normal tab. You must install the PWA first (Share → Add to Home Screen) and open Tapeboard from the home-screen icon; only then will the enable button succeed. iOS 16.4 or newer is required. Browsers without push support (or with the permission denied) show an inline explanation instead of the button.

Note the distinction from the Browser Notifications toggle further down in Preferences: that one is the simpler desktop-tab notification permission, while this section is the full Web Push subscription that works with the app closed. See Notifications for how triggered alerts surface.

Push notifications section On above the Quiet hours section, with the window set to 22:00 start, 07:00 end, America/New_York timezone
Push notifications section On above the Quiet hours section, with the window set to 22:00 start, 07:00 end, America/New_York timezone

Quiet hours

A daily window during which alerts that would normally push to your device are routed to the inbox only — useful for not getting buzzed overnight. Pick START_TIME, END_TIME (both on the 24-hour clock), and a TIMEZONE, then [ SAVE ]. The default is 22:00 to 07:00 in America/New_York.

The window has its own timezone selector (America/New_York, Chicago, Denver, Los_Angeles, or UTC) — it is independent of the Timezone Display setting under Preferences, so set it explicitly to your physical location. A window that crosses midnight is handled correctly: 22:00–07:00 means 22:00 to midnight plus midnight to 07:00. To disable quiet hours entirely, set START_TIME equal to END_TIME — equal start and end means "no window, always push," and the status chip flips to Off. [ RESET TO DEFAULTS ] restores 22:00/07:00/New_York.

Quiet hours suppress push delivery only; the alert still writes to /notifications so nothing is lost.

Muted symbols

A finer-grained companion to quiet hours: pause push for one or two specific noisy tickers without silencing everything. Type a symbol (1–10 characters, starts with a letter; letters, digits, dot, and dash allowed) and press [ MUTE ]. Muted symbols appear as chips; click the × on a chip to unmute. The status chip shows None or N muted.

This is a delivery-channel mute, not an alert disable — inbox notifications still fire for muted symbols, only the push is suppressed. Mutes are saved to your account, so they follow you across devices.

Data rights (export and delete)

Self-serve GDPR/CCPA controls.

Export my data (JSON) downloads a bundle of every user-scoped record Tapeboard holds — profile, portfolios, positions, orders, trades, watchlists, alerts, trade ideas, and subscription. Credentials and Stripe card details are deliberately excluded (a policy note is included inside the bundle). This satisfies your right of access and right to data portability; the file lands as tapeboard-export.json.

Delete my account is permanent. It opens a confirmation form requiring your current password and typing DELETE exactly, then permanently erases all of your data and invalidates your session. There is no undo. If you have an active subscription, cancel it from the billing portal first (see the next section) so you aren't invoiced again. After deletion the app reboots into a signed-out state; a still-valid session may linger for a few minutes — sign out manually if needed.

Plan and billing

The Current Plan card (also reachable via the /settings#billing deep-link from the Pricing page) shows your tier badge — Free, Pro (green icon), or Terminal (yellow icon) — plus a trial countdown when you're in a trial, or a "Free plan, upgrade to unlock more features" prompt otherwise.

Change Plan routes to /pricing. Manage Billing opens the Stripe customer portal where you change plans, update your card, view invoices, and cancel. That button only appears when you're on a paid tier and have a Stripe customer ID and aren't an admin — admins and trial-without-card users have no Stripe customer, so the button is hidden rather than dead-clicking. On a successful checkout the page auto-syncs from the server and surfaces a TIER_ACTIVATED confirmation banner.

Admins also get a Simulate Tier (Demo) selector to flip the displayed tier between Free/Pro/Terminal — this is client-side only, doesn't touch billing, and is hidden for non-admins (locked down 2026-05-09 after non-admins could briefly self-upgrade until the next server sync).

Current Plan card showing the Pro tier badge and a Change Plan button
Current Plan card showing the Pro tier badge and a Change Plan button

Usage (AI Usage Today)

Shown only on Pro and Terminal. It lists per-feature daily counters with progress bars: Stock Analysis, News Digest, Economic Explain, Command AI Q&A, and Watchlist Risk. Terminal shows Unlimited per feature; Pro shows used / limit and the bar turns warning-yellow when you hit the cap. A feature showing Not available or 0 / 0 on Pro is Terminal-only — upgrade to unlock it. Free has no daily quota counters (its trial cap is total, not daily), so the section is hidden entirely.

Preferences

Display and behavior defaults, read from usePreferencesStore:

  • Default Chart Timeframe — the interval every chart opens at: 1m, 2m, 5m, 15m, Daily, or Weekly.
  • Timezone Display — ET, CT, PT, or UTC. This is purely a display label; quotes are stored UTC server-side. Note it is *not* the same setting as the quiet-hours timezone.
  • Show Extended Hours — a server-persisted toggle (survives cache-clear and new devices). On: intraday charts include pre-market and after-hours candles, and the Scanner price column shows extended-hours quotes during pre-/post-market. Off: regular-session-only everywhere.
  • Auto-refresh — when off, data freezes until you manually refresh.
  • Browser Notifications — a desktop-tab notification permission toggle (distinct from the Push Notifications section above, which is full Web Push). Flipping it on calls the browser's permission prompt.

Top ticker bar config

Inside Preferences, the Top ticker bar field controls the scrolling strip of symbols across the top of every page. Enter a comma-separated list (e.g. SPY, QQQ, DIA, IWM, $VIX, $DXY, $TNX, BTC), then Save ticker bar. Use $-prefixed codes for indices ($VIX, $DXY, $TNX) and plain symbols for stocks and crypto (BTC). Reset to defaults restores the shipped set.

The list is saved with your workspace layout, so it syncs across devices alongside your chart layouts (saving the ticker bar leaves your charts and watchlist untouched). The strip updates immediately on save without a hard refresh.

Top ticker bar field with a comma-separated symbol list and Save ticker bar plus Reset to defaults buttons
Top ticker bar field with a comma-separated symbol list and Save ticker bar plus Reset to defaults buttons

Alert delivery

Where alerts are sent. The Email for alerts field is saved to your account: your browser shows an instant first paint, then the saved value (the cross-device source of truth) overwrites it on load. Edits aren't live — there is an explicit Save button with a transient Saved confirmation, and an Unsaved changes hint while the field is dirty, so you always know whether your address actually persisted. This is the per-alert delivery address; the account email under the Email section is used for billing receipts. See Alerts for setting alert conditions.

Account information

The Email card holds your account email — edit it and click Save. If the server recognizes your email as an admin, an ADMIN, FULL_ACCESS badge renders below the input.

The Account card shows a profile chip (avatar or initials, name, email), three reference links (View Plans & Pricing, View Usage, Purchase Credits — currently placeholders that route back to /settings), and Sign Out, which clears your session. For real plan changes use Change Plan/pricing; for usage and invoices use Manage Billing → the Stripe portal.

Hotkeys

A full keyboard-binding editor. Each row lists an action, its description, and its current binding. Click any binding button, then press the new key combination — modifier keys (Ctrl/Cmd, Shift) are captured, bare modifier presses are ignored, and Escape cancels the capture. Reset Defaults restores the shipped map. Changes save automatically in your browser (the Changes saved automatically hint next to the heading explains the deliberate absence of a Save button). For the default bindings and where each one applies, see Keyboard Shortcuts.

How to use it

  1. Open /settings. The page loads as a single centered column, ordered security-first.
  2. Enroll two-factor authentication: click Enable two-factor authentication, scan the QR with Google Authenticator / Authy / 1Password, enter the six-digit code, and Verify. Future logins now require a code.
  3. Enable push notifications: toggle the section on and accept the browser prompt. On iOS, first install the PWA via Share → Add to Home Screen, then open it from the home-screen icon before enabling.
  4. Set quiet hours: choose START_TIME, END_TIME, and a TIMEZONE (e.g. 22:00–07:00 America/New_York) and press [ SAVE ]. Notifications inside the window write to the inbox but skip the device push.
  5. Mute a noisy symbol: type a ticker (e.g. AAPL) and press [ MUTE ]. Click the × on its chip to unmute. Inbox notifications still fire — only push is suppressed.
  6. Export or delete your data under Data Rights: Export my data (JSON) downloads tapeboard-export.json; Delete my account requires your password plus typing DELETE and is permanent.
  7. Manage your plan: the Current Plan card shows your tier; Change Plan opens /pricing and Manage Billing opens the Stripe portal (paid tiers only). Checkout success auto-syncs the tier badge.
  8. Check AI usage (Pro/Terminal): the AI Usage Today section shows per-feature daily counters; Terminal reads Unlimited, Pro shows used / limit.
  9. Set display preferences: pick a Default Chart Timeframe, a Timezone Display, and toggle Show Extended Hours and Auto-refresh to taste.
  10. Configure the top ticker bar: enter comma-separated symbols (use $VIX, $DXY, $TNX for indices, BTC for crypto) and click Save ticker bar; the strip updates immediately.
  11. Set alert delivery: enter your Email for alerts and click Save — watch for the Saved confirmation; it syncs across devices.
  12. Rebind hotkeys: click any binding, press the new combo (or Escape to cancel); changes save automatically. Use Reset Defaults to revert.

Fields

SectionFieldDefaultNotes
2FATOTP secretunsetEnroll with any RFC 6238 authenticator; disable requires account password
PushsubscriptionunsetPer-device; iOS requires installed PWA + iOS 16.4+
Quiet hoursstart / end / tz22 / 7 / America/New_Yorkstart === end disables; own timezone, not the Preferences one
Muted symbolsticker listempty1–10 chars, starts with a letter; push-suppressed only, inbox still fires
Data rightsexport / deleten/aExport = JSON bundle; delete = password + typed DELETE, permanent
Emailaccount emailfrom signupUsed for billing receipts + admin detection
Current PlantierfreeManage Billing only on paid tiers with a Stripe customer
AI Usage Todayper-feature countershidden on FreeTerminal = Unlimited; Pro = used / limit
Preferenceschart timeframeD1m / 2m / 5m / 15m / D / W
PreferencestimezoneETDisplay label only; quotes are UTC server-side
Preferencesextended hoursoffServer-persisted; on = pre/post candles + ext-hours quotes
Preferencesauto-refreshonOff = data frozen until manual refresh
Preferencesbrowser notificationsoffDesktop-tab permission; distinct from Web Push
Top ticker barsymbol listshipped defaultsSynced via workspace layout; $-prefix for indices
Alert deliveryemailunsetSaved to your account; explicit Save
Hotkeysbindingsshipped mapClick to rebind, Escape cancels, autosaves in your browser

The brokerage connection for live trade sync lives on the Journal page header, not in Settings — that connection is journal-scoped (auto-import filled orders) rather than account-scoped. See Journal for the connect flow.

Limits

  • Free: no AI Usage Today section (trial cap is total, not daily); no Manage Billing button (no Stripe customer yet).
  • Pro: per-feature daily AI caps shown as progress bars; Manage Billing opens the Stripe portal for plan changes, cancellation, and invoices.
  • Terminal: AI section shows Unlimited per feature.
  • Admin (email on the server allowlist): extra Simulate Tier (Demo) selector to flip the *displayed* tier — client-side only, no billing effect; admin-only since 2026-05-09.
  • Push notifications are per-device and require a fresh subscription on each browser; iOS needs the installed PWA.
  • Quiet hours and the Preferences Timezone Display are separate timezone settings — set quiet hours' timezone explicitly.
  • The View Plans & Pricing, View Usage, and Purchase Credits links in the Account card are placeholders pointing back to /settings; use Change Plan and Manage Billing for the real flows.
  • Tier sync from the server runs on mount and after every checkout success — the displayed tier is authoritative; the admin demo selector is the only override.

Troubleshooting

I upgraded but the tier badge still says Free. Checkout-success triggers a server sync automatically, but if you navigated away mid-flow it didn't fire. Reload the page; if it's still wrong, click Manage Billing to confirm Stripe shows the subscription as active, then reload.

The Manage Billing button is missing. You're on Free, or you're an admin, or you have no Stripe customer ID yet — in any of those cases there's no portal to open. Upgrade via Change Plan first; the button appears once a paid subscription with a Stripe customer exists.

2FA enrollment fails with "Invalid code". This is almost always authenticator clock drift. Open your app's time-correction setting (Google Authenticator: Settings → Time correction for codes → Sync now), then re-enter a fresh six-digit code. Confirm you're scanning the current QR — restarting enrollment generates a new secret.

I can't enable push notifications on my iPhone. iOS Safari refuses web push from a normal tab. Install Tapeboard as a PWA first: tap Share → Add to Home Screen, open the app from the new home-screen icon, then enable push from Settings. You also need iOS 16.4 or newer.

I set quiet hours but pushes still come through. Check two things. First, the window's timezone — quiet hours has its own timezone selector that is independent of the Preferences Timezone Display, so set it to your physical location. Second, confirm start and end aren't equal — equal values mean quiet hours is disabled (status chip reads Off).

The Browser Notifications toggle won't turn on. The browser blocked the permission. Open the site permission settings (chrome://settings/content/notifications or your browser's equivalent), set tapeboard.com to Allow, then toggle off and on to re-register.

A muted symbol is still notifying me. Muting only suppresses push delivery — inbox notifications for that ticker still fire by design. If you're getting push for a muted symbol, confirm the chip is present in Muted Symbols; if you just added it, give the change a moment to propagate, then re-add.

My ticker bar reset to the defaults after I customized it. Make sure you clicked Save ticker bar after editing — the field stages changes locally until you save. Once saved it syncs via your workspace layout; if it still reverts, you may have edited it on a device that hadn't yet loaded the synced layout.

My alert delivery email didn't stick. The field requires an explicit Save — look for the Saved confirmation; an Unsaved changes hint means it hasn't persisted yet. If the save errored (offline or a server hiccup), your entry is kept locally and will save once the connection is restored.

I deleted my account but can still log in. The delete is processed server-side and your existing session token may stay valid for a few minutes. Sign out manually; any subsequent login will fail with "account not found".

AI Usage Today shows "Not available" or "0 / 0" for a feature on Pro. That feature is Terminal-only (for example Command AI Q&A). Upgrade to Terminal to unlock it.