# Quant 2.0 — daily operations & learning

Paper only. Real money needs later explicit approval. This is the durable runbook, not a routine or new trading authority. Chief owns routine prompts. All timestamps Pacific/Honolulu (HST); compute market sessions/holidays and close via America/New_York zoneinfo, never fixed year-round hours.

## Exact session workflow
1. Read config/universe.json (currently16), actual positions/trades/cashflows, latest non-superseded snapshots, thesis, research README and each ticker log. Never assume candidates were filled.
2. Mid-session: every allowed name gets a dated price/asof/source/retrieved stamp, numerical chart/range/trend context, and dated news check. Mark unavailable/not checked explicitly; say no material news only after actual search. Primary filings outrank aggregator narratives. Do not splice ticker-collision histories. Prepend HST chronology to every name, preserve old text, sync INDEX.
3. Deep-research2–3 held/unheld names from research-rotation.json, using filings/issuer economics, normalized owner earnings/FCF, balance sheet/financing, competition, valuation assumptions and what would falsify the thesis. Record sources/asof, uncertainty, questions and corrections in each linked log. Update last_deep_research_at only AFTER completed source-backed work; planning is not completion. Rotate oldest/unknown coverage, with material-event overrides and both held/unheld representation.
4. Before close: append a timestamped decision record in data/decisions.jsonl (session, decision_at, universe, action/no-change, budgets, reasons, risks, information cutoff). No obligation to trade or spend cash; no hindsight changes. Decisions are research intent, not ledger fills. Preserve day1 original research artifact.
5. After regular close: verify session-specific RAW market close, not NAV, adjusted close, last intraday or afterhours. Prefer listing exchange/issuer dated market-price evidence; otherwise use documented reliable final daily bars with corroboration. Price conflicts get explicit source-selection reasoning and limitations, never a guess. A plausible last-sale/auction explanation is not a proven cause. Keep blocked budgets cash.
6. Inspect actual trade IDs/session/ticker before incremental paper trade CLI; never reseed. Keep decision_at/intended_session/price_asof/price_date/source/status. Do not rewrite append-only trades/cashflows. Mark every held name andSPY at consistent session close. Ledger mark appends snapshots: use one canonical close per session; if correcting, append explicit revision/supersedes_ts metadata, preserve old rows and select latest valid revision per date for analysis. Do not count revisions as days.
7. Close reflection: compute available day/week/month/year and since-inception comparisons versusSPY; append reflections.jsonl, refresh performance-reflection.json and thesis.learning. Separate decisions/process from outcomes; attribution only when observed holding returns exist. Document right/wrong, worked/did-not, unknowns and next experiment. No fabricated windows or annualization.
8. Export dashboard using existing ledger export; publish current reflection/rotation and immutable journal to dashboard/learning/, regenerate readable homepage short summary/history links. npm run deploy uses established existing auth only. Verify production HTML/data.json and learning assets, reconcile4trades/cash/equity now; log public fetch failures and successful independent checks with HST timestamps. Never call deploy complete merely from local export. No credentials in published notes.

## Performance contract
Current method: raw-close PRICE return for both book andSPY. No claim of dividend-reinvested total return. Cash earns zero unless an actual paper cashflow policy records interest. Cashflows must distinguish external flows from dividends/fees; deposits/withdrawals require flow-adjusted returns (chain-link/TWR), not raw equity growth. Corporate actions must be reconciled before return calculations. Today no cashflows.
Select latest valid snapshot revision per session. Since-inception equity/start minus1 andSPY close/baseline minus1 are comparable price-based marks; alpha here means arithmetic percentage-point difference, not risk-adjusted regression alpha. Rolling day needs consecutive session closes spanning a real holding interval; trailing week/month/year require baseline at or before the calendar lookback date with valid sessions/history. Record actual start/end/dates, missingness and methodology. Do not label partial since-inception history a full window, annualize it, or call intraday pre-purchase losses portfolio returns.

## Files / update rules
- reflections.jsonl: append-only dated journal; corrections append with supersedes_id.
- performance-reflection.json: current structured dashboard summary; history remains journal.
- research-rotation.json: current plan and dates, planned/completed clearly separated.
- decisions.jsonl: future append-only preclose decisions incl no-change (do not backdate day1).
- research/TICKER.md: newest chronology first, existing corrections immutable.
- Dashboard learning assets are copies of source files, not a second book. Current summary also lives in thesis.learning, included by established export.
