Admin access only
This area is restricted to authorised administrators. If you believe you should have access, check you are signed in with the correct account.
| Feed Name | Source | Endpoint / Ticker | Frequency | Requests | Status | Last Updated | Error |
|---|
Loading cron status…
| ID | Username | Type | Subject | Description | Submitted At | Status |
|---|
| Endpoint | Enabled | Model | Schedule | Today | Month | Avg Time | Avg Tokens | Tokens Day | Tool Calls | Cache Hit% | Cost Day | Cost Month | Success% | FB% | Last Run | Model Dist | Health |
|---|
Registered Users
| Pack | Searches | USD ($) | GBP (£) | EUR (€) |
|---|---|---|---|---|
| Pack 1 | ||||
| Pack 2 |
Site & Member Analytics
Last 30 days unless noted.Signups (last 90 days)
Members by provider
Popular pages — members
Popular pages — visitors (not signed in)
Daily traffic — visitors (30d)
Daily traffic — members (30d)
What members are doing (last 30 days)
Free-tier usage this month
Features
Switch site features on or off. Changes apply within about a minute.| Feature | Setting | What it does |
|---|---|---|
| AI LabAccess for everyone | When on, every signed-in user sees AI Lab regardless of their individual toggle on the Users tab. Admins always see it. | |
| AI Lab web searchSearch tool in AI Lab | When on, every signed-in user gets the AI Lab web search tool regardless of their individual toggle on the Users tab. Admins always have it. | |
| Personal Analyst — featureMaster switch | Paused in code (13 Nov 2026) — this switch has no effect while PAUSED_FEATURES.personalAnalyst in server.js is true. When off, every Personal Analyst page/API returns “disabled” and all its jobs (price refresh, detectors, tripwires, news ingestion, candidate proposer, digests) skip — no AI calls or external fetches, for anyone including admins. Independent of the menu-link switch above. |
|
| Sign in with AppleWeb secret expiry | The Apple sign-in “client secret” saved in Supabase (Auth → Providers → Apple) lasts at most 6 months; after that, Apple sign-in on the website stops (the iOS app is unaffected). A daily job (apple-secret-check) emails you from 21 days before it expires. When you generate a new one (steps in docs/APPLE-SIGNIN.md) and save it in Supabase, record the date here. |
|
| Guest passMembers area without sign-up | days days | When on, a signed-out visitor who opens a members page can press “Try without sign-up” (captcha-checked guest login) and use watchlists, portfolio, My Desk and the stock tools for this many days, with “Create account” buttons and a “Preview — N days left” reminder banner that first appears on the reminder day set here (day 0 = the day they start) and then repeats every N days (dismissing it hides it until the next reminder day); creating an account keeps their data. Brokerage sync, Personal Analyst and AI Lab stay members-only. Turning it off stops all guests within a minute; members are unaffected. Guests who never sign up are deleted 7 days after their pass ends (weekly job guest-cleanup). Needs anonymous sign-ins on in Supabase. |
| Landing page palettePublic home page | Sets the palette on the public landing page (/) for all visitors. Takes effect immediately — stored in the local SQLite settings table (no Supabase, no cache delay). Preview any palette without changing the live site by appending ?theme=slash or ?theme=classic to the URL — that override affects only your own browser tab. |
AI Prompts Library
Central catalogue of every AI prompt used across the site. Click any row to expand; copy icon copies the full prompt.AI Sanity-Check Log
Hallucination flags caught by the AI sanity layer. Six flag types: price_drift from validateGroundedPrices() when a generation quotes a gold, oil, index level, BTC, VIX, EUR/USD or yield more than 10% off the live grounded value (offending sentences are stripped); pct_drift from validateGroundedDayMoves() when a generation cites a day-move percentage ("Nasdaq jumps 1.98%") that differs from the live (+/-X.XX%) figure beside the same ticker by more than 0.20 percentage points or has the wrong sign (offending sentences are stripped); invalid_ticker from AI Lab when an LLM-suggested symbol returns no live quote (the row is dropped before reaching the user); fabricated_event from detectFabricatedEvents() when a model invents a calendar date for a halving, fork, FOMC, CPI release, jobs report, earnings call, IPO, merger close, ex-dividend or split that is not in the live grounding block (offending sentences are stripped); claim_contradicted from the LLM judge (Haiku 4.5 / Gemini Flash) when a specific claim directly conflicts with the live data block (offending sentences are stripped); claim_unsupported from the LLM judge when a specific claim cannot be verified against the live data (logged for review only — not stripped).
Investment Themes
Curate the themes shown on every user’s portfolio dashboard. Tickers can belong to multiple themes (NVDA → AI / Robotics / Quantum). Weight defaults to 1.0 — lower it (0.0–1.0) to dilute partial-exposure plays.
Banner Marketing
Campaign cards shown once per user in a modal. A user who clicks the CTA or dismisses the card never sees it again — use Reset to make it reappear for everyone, and Test to preview the live modal yourself regardless of schedule or dismissal state.
When more than one campaign is live on the same page they rotate: each user is served a different card across visits instead of the highest-priority one always winning. Priority only breaks the tie on first exposure.
| Campaign | Active | Target | Status | Schedule | Priority | Views/ unique | Clicks | CTR | Dismiss | Actions |
|---|
Options Trading
Enter a US ticker on the right to load chain, Greeks, IV analytics, strike selection, sizing, screener, and wheel state.