## Running now

## Requests, last 24 hours

phone pen other server errors

## Most requested

all routes

Route | Calls | Avg ms | Max ms | 4xx | 5xx
--- | --- | --- | --- | --- | ---

## Recent problems

4xx/5xx, except sign-in and not-found

When | Request | Status | From
--- | --- | --- | ---

signed-in accounts only

Person | Sign-in | Plan | Access | Strategies | Live alerts | Tickers | Push | Balance | Last seen
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---

Strategy | Owner | Source | Category | Bars | Visibility | Return | Win rate | Trades | Drawdown | Forks | In alerts | Updated |
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---

## Subscriptions

Person | Alert | Strategies | Tickers | Direction | Quiet | Live | Push | Last fired
--- | --- | --- | --- | --- | --- | --- | --- | ---

## Recent events

newest first

When | Person | Ticker | Strategy | Side | Bar | Pushed | Read
--- | --- | --- | --- | --- | --- | --- | ---

## Live tickers (leases)

Ticker | Refs | Last polled | Last bar | Error |
--- | --- | --- | --- | --- | ---

## Schwab

Link (or re-link) in three steps. Codes expire in about 30 seconds, so keep this page open.

1. opens in your browser
2. Approve. The browser lands on `https://127.0.0.1/?code=…` and may warn that the page is not private — that's expected, nothing is served there.
3. Copy that address from the address bar and paste it here:

Refresh tokens last 7 days; the server nudges you before then.

## Vault — one permanent record

New bars (Schwab poller, fills) land in a small live table and are folded into `vault.db` every hour automatically; readers see both at all times. The fold steps aside while `build_vault.py` is running.

## Missing bars — check and fill

include tickers idle 30+ days (delisted?)
Compares each ticker's newest bar (vault + live) with the last completed regular-session bar. Filling writes only regular-session 5-minute bars into `live5`; the vault itself is never touched. A nightly job (5 pm ET) does this for the whole vault from Schwab automatically.

Ticker | Newest bar | Expected | Missing bars | Status | Fill result
--- | --- | --- | --- | --- | ---

## Scheduled jobs

from the in-process scheduler

Job | Every | On | Runs | Last finished | ms | Error
--- | --- | --- | --- | --- | --- | ---

## Health

## Log

follow

The three services are macOS launch agents: they start when you log in and restart on their own if they crash. Install copies the plist from `ops/launchd` into `~/Library/LaunchAgents` and loads it; after that, Start / Stop / Restart are all you need. The Mac must stay on and awake — that's what keep-awake is for (it only prevents sleep while on power).

## Everything an admin changed

When | Admin | Action | Person | Detail
--- | --- | --- | --- | ---

## Person