JARVIS COMMAND CENTER

Overview Breadth Research Lab Backtests Volatility Bayesian Cross-Series Portfolio Growth/Value VIX Rates Options Trading Intraday Intraday A/D One Pager Berg Signals Entropy Forensic Valuation ETF Rotation

Price Series

Lookback:
| Custom: to

Current Signals

Lookback:
| Custom: to View Regime Signals Research Bloomberg Queue

Latest Day — Advancers vs Decliners

Cumulative A/D Line

% Members Above SMA & Trend

Short-term: % Above SMA(10) & SMA(20)
Long-term: % Above SMA(50) & SMA(200)
Trend: SMA(10)>SMA(20) & SMA(50)>SMA(200)

Distance-from-SMA — Cross-Section (magnitude, not sign)

Center: Bands:
SMA(50) — % distance from 50-day SMA (zero baseline; green above, red below)
SMA(200) — % distance from 200-day SMA
Bollinger Squeeze — Band Width (20-period BB on mean-dist; dashed = 1-yr 25th-pct threshold; badge fires when SMA(50) BBW below threshold)

McClellan Oscillator & Summation Index (RAMO — methodology-dependent)

Oscillator: EMA(19) − EMA(39) of ratio-adjusted A−D
Summation Index: cumulative sum of oscillator

Constituents — Drill-Down

Loading…
Autoresearch — Experiment Log
Loading experiments...
MA Sweep Results

SMA Crossover Heatmap

EMA Crossover Heatmap

Single MA Comparison
Loading...
Finance Research Lab — Studies
Loading studies...
Out-of-Sample Validation
Loading...
MA Crossover Walk-Forward
Model Comparison
Volatility Regime Analysis

Realized Volatility (21d EMA)

Lookback:
| Custom: to
Vol Ratio Threshold Sweep
Loading...
Vol Regime Continuation Rates
Loading...
Bayesian Signal Analysis — P(positive return | signal)
Loading...
MA Spread Predictive Value
Loading...
Cross-Series Leaderboard — 49 Series (7 Tickers + 42 Ratios)
Full Leaderboard
Loading cross-series data...
File Paths
Growth vs Value Rotation
Loading growth/value data...
Lookback:
| Custom: to

VONG/VONV (Russell 1000)

VUG/VTV (Vanguard)

Rotation Backtest — Always 100% Long
Loading rotation data...
GV Signals on GLD/AGG
Loading...
Standalone Ratio Backtests
Loading...

Signal Tearsheet

Loading...
Loading...
Loading...

Cumulative Returns

Drawdown (%)

Signal Tearsheet — Page 2

Monthly Returns (%)

Yearly Returns (%)

Time Range:
Custom:
VIX Futures Term Structure
Compare dates:
Dot color = contract expiry (tracks across dates) · Hover Spot History below to preview curves
Contango Mode:
VIX Spot History
Contango / Backwardation History
Related Volatility Indices
Volatility Compression Watch — Vixologist Squeeze Template 📄 docs
TTM Squeeze Status
Computing...
BBand Width %
vs 20d rolling mean
StdDev(10) Compression
current vs 20d MA
SPX Trend (3d)
Setup requires uptrend
6-Month Realized Volatility (StdDev 10-Day) — Compression Zones Highlighted
Light red zones = StdDev below 25th percentile (compression state). Thrasher framework: compression under buy pressure → explosive release. Cross-ref: Thrasher 2017 paper + Lakha correlation divergence
Docs: Vixologist Template (what & why) · Thrasher 2017 Paper (full methodology) · Compare both
Memory: reference_vixologist_thrasher_squeeze.md · reference_options_insight_imran_lakha.md · Sentinel: svix-squeeze-check (4:00 PM ET)
VIX Dispersion (Thrasher 2017) — Paper-Faithful Signal 📄 docs
VIX Signal
StdDev(20) vs 15th pct
VIX 20-Day StdDev
threshold: —
StdDev Percentile
vs full history
VVIX Signal (secondary)
15th pct of VVIX StdDev(20)
VIX 20-Day Standard Deviation vs Threshold (1Y) — Signal Days Marked
Blue line = VIX 20d StdDev. Dashed = 15th-percentile threshold (adaptive to full history). Red markers = signal-fired days (StdDev ≤ threshold with 10-day dedup).
Docs: Thrasher 2017 Paper (full methodology) · Vixologist Template (comparison) · Compare both
Memory: reference_thrasher_paper_methodology.md · Source PDF: /var/lib/jarvis/personal/research/papers/thrasher-2017-forecasting-volatility-tsunami.pdf · Sentinel: vix-dispersion-check (4:05 PM ET)
Active Strategy Signals
Loading strategy signals…
Library: finance/strategies/vix_library.json · Evaluator: finance/scripts/eval_strategies.py · Pipeline stage: strategy_eval (daily, depends on rv_compute + skew_capture + bubble_bounds) · API: /api/finance/strategies
VIX Spikes (Last 5 Years)
Loading...
Short-End Term Structure & Contract Roll
Today: Spot & Near-Dated Futures
Spot + M1 + M2, including first contract past 60 DTE. Dot color = contract identity (shared with spread charts below).
M1 − Spot Spread (Front Month vs VIX)
M2 − Spot Spread (2nd Month vs VIX)
M1 − M2 Spread (Short-End Contango, Raw Points)
Raw vol points (M2 settle − M1 settle). M1/M2 identity rolls on the Wednesday exactly 14 calendar days before the front contract's expiry — earlier than the actual-expiry roll used in the M1/M2 vs Spot charts above.
Line color flips at each contract roll — segments are colored by which contract was the M1/M2 on that date, matching dot colors on the short-end curve above and the full term structure chart at top.
KEY RATES
BREAKEVEN INFLATION
MACRO CONTEXT
Source: Capital Flows STIR Replication Playbook · Live data — Yahoo chart API (SR3 + ZQ futures) + NY Fed EFFR/SOFR CSV + FRED (DGS2/5/10/30, T5YIE/T10YIE, PSAVERT). Refresh: weekdays 16:30 ET.
Synthetic ATM Straddle — Bloomberg Methodology
Options Chain Snapshot
Underlying:
Loading options data...
Put/Call Ratio & Volume
IV Overview
Open Interest by Strike
Data Sources
Active: Polygon.io (via Massive MCP) — chains, historical OHLC, contract reference
Available: Theta Data ($80/mo — tick-level + Greeks), ORATS ($99/mo — backtester), DeltaNeutral ($575/yr — 20yr EOD)
Libraries: py_vollib (pricing/Greeks), Optopsy (backtesting), polygon-api-client
Full reference: /var/lib/jarvis/personal/finance/research/options/OPTIONS_DATA_SOURCES.md
Paper Trading Account
Open Positions
Loading positions...
Submit Order
Recent Orders
Loading orders...
Equity Curve
Intraday 1-Min Bars
Stored Data Summary
Loading ticker summary...
Intraday Breadth — 9 Indices, 2 Methodologies
A = probe vs yesterday's adj close · B = vs prior 5-min bar · Auto-refresh 60s  ·  raw JSON
Live Signal Monitor
Loading portfolio data...
Pareto Frontier — Non-Dominated Solutions
Loading...
Full Rankings (Top 20)
Loading...
Signal Changes
No changes detected
Improvement History
Loading...
Risk Monitor — Correlation & Volatility
Loading risk data...
Post-2010 calibration only. Gate G2: 8/16 = 50% on full 1957-2026 precedent set. The 4 live combos (C2/C4/C6/C10) have demonstrated efficacy in recent regime. Use with care — blocked combos (C1/C3/C5/C7/C8/C9/C11) excluded from production.
Methodology & Sources
Internal docs
Plan: berg-atomic-indicators.md Indicator catalog (30k+ → 11 combos) Combos source (berg_combos.py) Atoms source (berg_atoms.py) Gate G2 harness
External (Berg's own material)
Shapiro/Berg interview (YouTube) @bergmilton (Twitter/X) miltonbergedge.com (retail $10/mo) miltonberg.com (institutional)
Today's Signal Status
Loading...
Combo Charts (click to view price + fire markers)
Historical Fires
Loading...
Suggested Stop (live signals)
Calculated from signal close minus (historical max_dd + 0.5% buffer). Only shown for signals where max_dd_60d is available.
Loading...
Forensic Accounting Screener
⚠ Threshold Breaches (literature thresholds — dashboard-only)
Loading...
Four deterministic forensic scores per 10-K (annual): Beneish M (earnings manipulation likelihood), Altman Z (bankruptcy proximity), Sloan accruals (earnings quality), Piotroski F (financial strength). Source: SEC EDGAR via edgartools; computed nightly. Literature thresholds — Beneish M>-1.78 = aggressive; Altman Z<1.81 = distress; Sloan >+0.10 = high accruals; Piotroski ≤2 = weak. Plan: forensic-scores-nightly.md.
Latest 10-K Scores
Ticker Period Beneish M Altman Z Sloan Piotroski F Quality
Enter a ticker to see all scored filings.
Plan & Lessons
Recent Screener Runs
Loading...
Damodaran Valuation Integration
Foundation Build In Progress
This tab is a state tracker, not the final UI. Following plans/damodaran-valuation-integration.md: datasets → engine → snapshots → UI. Real valuation surface (Phase 4) replaces this panel once foundation layers ship. Universe progression for every phase: NDX-100 → R3K → full equities.
Aswath Damodaran's intrinsic-valuation toolkit applied across the full equity universe: DCF (four value drivers: growth, margins, reinvestment, discount rate), WACC bottom-up from industry betas, implied ERP, relative multiples with peer z-scores, country risk premium. Source: NYU Stern annual dataset release.

Domain boundary: the existing Forensic tab answers "can I trust the numbers?" — this tab will answer "given the numbers, what is it worth?". Forensics is a quality gate; valuation is a decision input. Orthogonal domains sharing the EDGAR source data.
Phase Tracker
Status Phase Scope Completed
✓ DONEPhase 0Memory reference + plan + placeholder tab2026-06-04
✓ DONEPhase 1Static datasets ingest — 4 tables in research.db (industry metrics 94, country risk 178, ERP history 66, asset returns 98); sentinel cron damodaran-datasets-annual Jan 15 09:00 ET2026-06-04
✓ DONEPhase 1.5Historical archive ingest + verification harness — 17 vintages (2008-2024) backfilled (1,439 industry rows, 2,271 country rows). Ticker-industry map from indname.xls (48k rows). NDX-100 reconciliation runs end-to-end — 49 rows, 37% within ±0.15 (method gap, no data corruption). Gate partially passed — proceed cautiously to Phase 2 with diff disclosures.2026-06-05
✓ DONEPhase 2aDCF + WACC engine (NDX-100 baseline) — finance/damodaran/dcf.py; migration 023 valuation_snapshots/valuation_runs; reusable writer finance/common/snapshot_log.py. NDX-100 first run: WACC 93/97, DCF 2/97 — DCF gap = xbrl_concepts coverage (only 14/97 NDX tickers cached). Backfill blocker for Phase 2a′.2026-06-05
✓ DONEPhase 2a′R3K expansion — WACC 2900/2900 (100%); DCF 84/2900 (2.9%) gated by edgartools XBRL backfill (no_xbrl=2347/83.3%). 2816 gaps in valuation_gaps classified by root cause: no_xbrl/no_ocf/no_shares/financial_sector/reit/holdco/tracking_stock.2026-06-06
✓ DONEPhase 2bRelative multiples + peer z-scores — migration 032 damodaran_industry_multiples (94 industries × 24 cols: P/E + EV + Sales + Book/IC); finance/damodaran/multiples.py (model multiples_v1) computes trailing_pe, ev_ebitda, p_s, p_b, ev_ic per ticker + winsorized peer Z-scores across same-industry run peers (min 5). EV metrics suppressed for Banks/Insurance/REITs (Damodaran convention). Gaps logged uniform with DCF.2026-06-06
✓ DONEPhase 3Sensitivity tables + ERP overlay — 5×5 WACC×growth grid per ticker; ERP regime panel (66-year history, percentile, sparkline); backfilled 62 existing DCF rows; API: /api/finance/damodaran/erp + /api/finance/valuation/sensitivity-grid2026-06-06
☐ PLANPhase 4Real Valuation UI — replaces this placeholder; per-ticker DCF + comparable cards + cross-section screens
☐ PLANPhase 5Damodaran VEP — blog/Substack/YouTube ingestion + expert chat profile
☐ PLANPhase 6Narrative-to-numbers tool (P3) — thesis → cash-flow projection → implied price
Reconciliation — damodaran_reconciliation
Our median trailing-2y daily-return beta vs Damodaran's published cross-section. Universe: NDX-100 (N≥3 constituents per industry). Tolerance ±0.15.
loading…
Industry N Vintage Ours β Theirs β Δ ±0.15
Loading reconciliation data…
Method: finance/damodaran/reconcile_report_2026-06-04.md · Code: finance/damodaran/verify.py · Triage: 31 misses are method gaps (simple-median vs Damodaran's cap-weighted bottom-up), 0 are data corruption. Tighten by widening universe to R3K and switching to cap-weighted aggregation (Phase 1.5b, deferred).
DCF & WACC — valuation_snapshots (Phase 2a)
5y explicit + Gordon terminal. WACC from industry weights + ticker-level beta vs SPY. Δβ = ours − Damodaran industry β. Universe: NDX-100, latest run.
loading…
Ticker Industry WACC β Δβ Value/share TV %
Loading DCF data…
Code: finance/damodaran/dcf.py · Writer: finance/common/snapshot_log.py · DCF cells empty = xbrl_concepts coverage gap (FCF inputs not cached for that ticker; Phase 2a′ backfill blocker). Run a fresh baseline: finance/venv/bin/python -m finance.damodaran.dcf --universe NDX-100 --as-of YYYY-MM-DD.
ERP Overlay — Equity Risk Premium
Damodaran implied ERP (DCF on S&P 500 cash flows) · 1960–present · Regime: percentile vs history
loading…
Current ERP
Riskfree (T-Bond)
Expected Return
Percentile (1960–)
Historical Median
Year ERP (FCFE) T-Bond Rate Exp. Return S&P 500 Regime
Loading ERP history…
Source: damodaran_erp_history (Damodaran NYU Stern annual release) · Method: DCF/IRR on S&P 500 dividends + buybacks. Regime bands: <P25 = LOW (expensive), P25–P75 = NORMAL, >P75 = HIGH (cheap). ERP used as discount-rate input for all DCF valuations via finance/damodaran/dcf.pycost_of_equity = rf + β × ERP.
Sensitivity Grid — 5×5 WACC × Growth
Per-ticker DCF value/share across (−200 → +200 bps) WACC × growth offsets. Base case highlighted. Color = relative value (green = higher, red = lower).
Enter a ticker and click Load Grid.
Grid cells = value/share ($). Rows = WACC offset (top = WACC −200 bps, bottom = +200 bps). Cols = growth offset (left = growth −200 bps, right = +200 bps). Base case (WACC offset=0, growth offset=0) is center cell, outlined in blue. Heatmap: color scaled within the 25-row grid; cells >P75 green, <P25 red, mid yellow. API: GET /api/finance/valuation/sensitivity-grid?ticker=AAPL
Per-Ticker Valuation — /api/finance/valuation/ticker
Composes DCF + WACC + multiples + ERP regime + forensic status. Click any row to drill in; intrinsic value is DCF-derived (5y explicit + Gordon TV), MoS is (intrinsic - market) / market.
Industry Snapshot — damodaran_industry_metrics × damodaran_industry_multiples
Default sort: cost_of_capital DESC (highest discount-rate industries first). Click headers to sort. Vintage shown is the latest Damodaran release.
Country Risk — damodaran_country_risk
Default sort: total_erp DESC (highest country-risk first). Country risk premium = base ERP + default-spread × risk multiplier. Apply when valuing non-US ops.
Plan & Memory
  • plans/damodaran-valuation-integration.md — locked 6-phase plan, §7 decisions, §8 execution order
  • memory/reference_damodaran_valuation_framework.md — canonical reference (DCF, ERP, country risk, narrative+numbers, lifecycle, sources)
  • memory/reference_damodaran_erp_2026.md — start-of-2026 ERP data point (4.23% at riskfree 4.18%; expected stock return 8.41%)
  • memory/MEMORY_finance_index.md — satellite index pointer
NYU Stern Datasets
EV Premium / Discount Tracker — Market vs Damodaran intrinsic
Daily Market Cap and Market EV vs Damodaran-implied intrinsic EV/equity, rolled up to GICS sector and index (SPX/NDX/RUI/RUT/RUA). Positive = market trades at premium; negative = discount. Bridge: market_ev = market_cap + total_debt + preferred + minority + leases - cash. APIs: /api/finance/valuation/ev-premium/{aggregate,snapshot,ticker}. Coverage % surfaces the XBRL backfill gap as a first-class signal — rises as ticker coverage expands.
Index: Window: Loading…
Sector Heatmap — latest
Sector N Cov $T MC EV vs Damo MC vs Damo EV vs Peer
Loading…
Per-Ticker Premium — /api/finance/valuation/ev-premium/ticker
 
Phase 7 shipped 2026-06-07 — EV premium tracker live. Daily Market-vs-Damodaran premium %s per ticker, rolled up to sector and index. Nightly cron valuation-ev-premium-daily @ 03:30 ET (4-stage: bridge → market_ev → ev_premium → aggregate). APIs: /api/finance/valuation/ev-premium/{aggregate,snapshot,ticker}. Coverage today: SPX 88/503 with market_ev, 2/503 with Damodaran intrinsic; expands with XBRL backfill. Phase 4 shipped 2026-06-06valuation-snapshots-nightly wired (DCF + WACC + multiples across R3K @ 02:30 ET). Next: Phase 5 (Damodaran VEP — blog/Substack/YouTube ingest).
ETF Trend Rotation
Momentum + trend-strength rotation across 12 ETFs (GLD, AGG, SPY, QQQ, TLT, UUP, VXX, SHY, VONV, VONG, VTV, VUG). Signal: 12-1 risk-adjusted momentum (skip last month) × trend filter (SMA-200). Top 4 = BUY. VXX excluded. Runner: python -m finance.scripts.run_etf_rotation
▲ BUY Signals
Loading…
Full Rankings —
Rank Ticker Signal Composite Momentum 12-1 Trend Vol 21d Ret 1m Ret 3m Ret 6m Ret 12m Price vs SMA200
Permutation Entropy (Bandt-Pompe)
Per-ticker complexity classifier — window=63 trading bars on adjusted close. Low PE → structured / trend-friendly. High PE → near-random / mean-reversion regime. Source: finance/indicators/entropy.py · gemchanger (@gemchange_ltd) ~2026-06-02 · Bandt & Pompe (2002).
Most structured (low PE·dim3)
Loading...
Most random (high PE·dim3)
Loading...