{"schema_version":"v1","slug":"garman-klass-vol-us-sp500","name":"Garman-Klass Volatility Factor (US S&P 500)","name_i18n":{},"verdict":"rejected","asset_class":"equity","categories":["anomaly","factor","volatility"],"hypothesis":"Garman & Klass (1980): OHLC-based volatility estimator. Testing low-volatility anomaly using GK vol on S&P 500 constituents.","rejection_reason":{"primary":"no_edge","secondary":[],"narrative":"Across 222 grid combinations, median Sharpe=-0.83, best=-0.29. Primary failure mode: no_edge."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":-0.8333,"max_drawdown_pct":-52.5,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.082,"backtest_period":{"start":"2022-02-01","end":"2026-06-01"}},"grid_summary":{"sharpe":{"p25":-1.07,"p75":-0.66,"best":-0.29,"worst":-1.87,"median":-0.83},"n_combinations":222},"methodology":{"notes":"{\"walk_forward_definition\": {\"type\": \"single_pass\", \"description\": \"Full period backtest without walk-forward split\", \"verdict_basis\": \"full_period\"}}","signal":null,"benchmark":null,"rebalance":null,"slippage_model":"open-on-open + variable bps fixed","position_sizing":"equal_weight","regime_definition":"GSPC SMA20/SMA60 three-class: UP (close>SMA20 AND SMA20>SMA60), DOWN (close<SMA20 AND SMA20<SMA60), FLAT (else)","transaction_cost_bps":5},"provenance":{"data_source":"kabu STATION REST API + J-Quants daily bars","source_project":"qbuntu-analysis","computed_asof":"2026-07-30T01:20:51","git_sha_z":"18193e9","git_sha_genkidama":"711b855","python_version":"3.10.11","numpy_version":"2.2.6","pandas_version":"2.3.3","tier":"shallow"},"runs":[{"run_id":"r-garman-klass-vol-us-sp500-0000","name":"formation_days=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1,"formation_days":10},"performance":{"sharpe":-1,"max_drawdown_pct":-46.1,"alpha_annualized_pct":-9.4,"p_value":0.038,"regime_breakdown":{"UP":-1.275487,"DOWN":-0.111172,"FLAT":-1.389094}},"executed_at":"2026-07-30T01:03:56","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0001","name":"formation_days=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":1,"formation_days":10},"performance":{"sharpe":-0.63,"max_drawdown_pct":-29,"alpha_annualized_pct":-5,"p_value":0.19,"regime_breakdown":{"UP":-0.477128,"DOWN":-0.111172,"FLAT":-1.389094}},"executed_at":"2026-07-30T01:03:56","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0002","name":"formation_days=10, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":1,"formation_days":10},"performance":{"sharpe":-1.13,"max_drawdown_pct":-50.7,"alpha_annualized_pct":-10.6,"p_value":0.019,"regime_breakdown":{"UP":-1.439964,"DOWN":-0.205998,"FLAT":-1.512104}},"executed_at":"2026-07-30T01:03:56","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0003","name":"formation_days=10, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":5,"regime_gate":true,"holding_days":1,"formation_days":10},"performance":{"sharpe":-0.74,"max_drawdown_pct":-32.4,"alpha_annualized_pct":-5.9,"p_value":0.12,"regime_breakdown":{"UP":-0.956287,"DOWN":-0.205998,"FLAT":-1.512104}},"executed_at":"2026-07-30T01:03:56","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0012","name":"formation_days=10, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":50,"regime_gate":false,"holding_days":1,"formation_days":10},"performance":{"sharpe":-0.83,"max_drawdown_pct":-21.5,"alpha_annualized_pct":-3.9,"p_value":0.083,"regime_breakdown":{"UP":-0.815059,"DOWN":-0.005888,"FLAT":-1.607091}},"executed_at":"2026-07-30T01:03:57","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0013","name":"formation_days=10, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":50,"regime_gate":true,"holding_days":1,"formation_days":10},"performance":{"sharpe":-0.67,"max_drawdown_pct":-16.7,"alpha_annualized_pct":-2.8,"p_value":0.16,"regime_breakdown":{"UP":-0.476976,"DOWN":-0.005888,"FLAT":-1.607091}},"executed_at":"2026-07-30T01:03:57","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0023","name":"formation_days=10, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":10,"regime_gate":true,"holding_days":5,"formation_days":10},"performance":{"sharpe":-0.62,"max_drawdown_pct":-41.6,"alpha_annualized_pct":-7,"p_value":0.19,"regime_breakdown":{"UP":-0.725907,"DOWN":-0.289695,"FLAT":-1.180159}},"executed_at":"2026-07-30T01:03:58","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0033","name":"formation_days=10, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":10,"formation_days":10},"performance":{"sharpe":-0.85,"max_drawdown_pct":-77.3,"alpha_annualized_pct":-16.9,"p_value":0.078,"regime_breakdown":{"UP":0.378099,"DOWN":-0.939798,"FLAT":-1.460497}},"executed_at":"2026-07-30T01:03:58","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0046","name":"formation_days=10, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":50,"regime_gate":false,"holding_days":10,"formation_days":10},"performance":{"sharpe":-1.87,"max_drawdown_pct":-71.5,"alpha_annualized_pct":-16.4,"p_value":0.00023,"regime_breakdown":{"UP":-1.747152,"DOWN":-1.314573,"FLAT":-2.440961}},"executed_at":"2026-07-30T01:03:59","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0047","name":"formation_days=10, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":50,"regime_gate":true,"holding_days":10,"formation_days":10},"performance":{"sharpe":-1.23,"max_drawdown_pct":-46.4,"alpha_annualized_pct":-10.1,"p_value":0.012,"regime_breakdown":{"UP":0.142155,"DOWN":-1.314573,"FLAT":-2.440961}},"executed_at":"2026-07-30T01:03:59","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0062","name":"formation_days=10, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":50,"regime_gate":false,"holding_days":20,"formation_days":10},"performance":{"sharpe":-1.43,"max_drawdown_pct":-88,"alpha_annualized_pct":-20.4,"p_value":0.004,"regime_breakdown":{"UP":-1.707778,"DOWN":-1.599778,"FLAT":-1.060814}},"executed_at":"2026-07-30T01:04:00","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0065","name":"formation_days=10, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":60,"formation_days":10},"performance":{"sharpe":-0.29,"max_drawdown_pct":-92.8,"alpha_annualized_pct":-20.6,"p_value":0.32,"regime_breakdown":{"UP":1.039461,"DOWN":-0.188493,"FLAT":-0.864586}},"executed_at":"2026-07-30T01:04:00","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0080","name":"formation_days=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1,"formation_days":20},"performance":{"sharpe":-1.06,"max_drawdown_pct":-49,"alpha_annualized_pct":-10,"p_value":0.028,"regime_breakdown":{"UP":-1.475282,"DOWN":-0.101743,"FLAT":-1.40993}},"executed_at":"2026-07-30T01:04:01","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0089","name":"formation_days=20, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":20,"regime_gate":true,"holding_days":1,"formation_days":20},"performance":{"sharpe":-0.57,"max_drawdown_pct":-20.5,"alpha_annualized_pct":-3.2,"p_value":0.23,"regime_breakdown":{"UP":-0.391538,"DOWN":0.075452,"FLAT":-1.425457}},"executed_at":"2026-07-30T01:04:02","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0100","name":"formation_days=20, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":10,"regime_gate":false,"holding_days":5,"formation_days":20},"performance":{"sharpe":-1.1,"max_drawdown_pct":-76,"alpha_annualized_pct":-15.4,"p_value":0.023,"regime_breakdown":{"UP":-1.444623,"DOWN":-0.3232,"FLAT":-1.290941}},"executed_at":"2026-07-30T01:04:03","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0109","name":"formation_days=20, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":50,"regime_gate":true,"holding_days":5,"formation_days":20},"performance":{"sharpe":-0.53,"max_drawdown_pct":-24.2,"alpha_annualized_pct":-3.3,"p_value":0.26,"regime_breakdown":{"UP":0.140635,"DOWN":-0.256262,"FLAT":-1.197019}},"executed_at":"2026-07-30T01:04:03","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0123","name":"formation_days=20, holding_days=10, n_stocks=20, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":20,"regime_gate":true,"holding_days":10,"formation_days":20},"performance":{"sharpe":-1.12,"max_drawdown_pct":-59.2,"alpha_annualized_pct":-12.8,"p_value":0.022,"regime_breakdown":{"UP":0.209826,"DOWN":-1.037158,"FLAT":-2.167931}},"executed_at":"2026-07-30T01:04:04","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0137","name":"formation_days=20, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":20,"regime_gate":true,"holding_days":20,"formation_days":20},"performance":{"sharpe":-0.65,"max_drawdown_pct":-57.5,"alpha_annualized_pct":-11.9,"p_value":0.17,"regime_breakdown":{"UP":0.698516,"DOWN":-1.26302,"FLAT":-0.983996}},"executed_at":"2026-07-30T01:04:05","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0155","name":"formation_days=20, holding_days=60, n_stocks=20, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":20,"regime_gate":true,"holding_days":60,"formation_days":20},"performance":{"sharpe":-0.41,"max_drawdown_pct":-92.2,"alpha_annualized_pct":-21.7,"p_value":0.16,"regime_breakdown":{"UP":1.24881,"DOWN":-0.156435,"FLAT":-1.267359}},"executed_at":"2026-07-30T01:04:06","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0166","name":"formation_days=40, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":1,"formation_days":40},"performance":{"sharpe":-0.89,"max_drawdown_pct":-38.4,"alpha_annualized_pct":-7.4,"p_value":0.062,"regime_breakdown":{"UP":-1.094773,"DOWN":-0.27421,"FLAT":-1.239383}},"executed_at":"2026-07-30T01:04:07","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0175","name":"formation_days=40, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":50,"regime_gate":true,"holding_days":1,"formation_days":40},"performance":{"sharpe":-0.87,"max_drawdown_pct":-20.9,"alpha_annualized_pct":-3.8,"p_value":0.069,"regime_breakdown":{"UP":-0.868218,"DOWN":-0.33966,"FLAT":-1.741743}},"executed_at":"2026-07-30T01:04:08","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0186","name":"formation_days=40, holding_days=5, n_stocks=20, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":20,"regime_gate":false,"holding_days":5,"formation_days":40},"performance":{"sharpe":-1.21,"max_drawdown_pct":-68.5,"alpha_annualized_pct":-13.6,"p_value":0.013,"regime_breakdown":{"UP":-1.65165,"DOWN":-0.439595,"FLAT":-1.17956}},"executed_at":"2026-07-30T01:04:08","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0199","name":"formation_days=40, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":10,"regime_gate":true,"holding_days":10,"formation_days":40},"performance":{"sharpe":-1.04,"max_drawdown_pct":-73.7,"alpha_annualized_pct":-16.2,"p_value":0.032,"regime_breakdown":{"UP":-0.022188,"DOWN":-1.113508,"FLAT":-1.754746}},"executed_at":"2026-07-30T01:04:09","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0211","name":"formation_days=40, holding_days=20, n_stocks=5, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":5,"regime_gate":true,"holding_days":20,"formation_days":40},"performance":{"sharpe":-0.64,"max_drawdown_pct":-86.1,"alpha_annualized_pct":-19.4,"p_value":0.18,"regime_breakdown":{"UP":-0.081446,"DOWN":-1.06662,"FLAT":-0.787056}},"executed_at":"2026-07-30T01:04:10","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0237","name":"formation_days=40, holding_days=60, n_stocks=50, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":50,"regime_gate":true,"holding_days":60,"formation_days":40},"performance":{"sharpe":-0.38,"max_drawdown_pct":-73.8,"alpha_annualized_pct":-15.9,"p_value":0.19,"regime_breakdown":{"UP":1.11743,"DOWN":-0.265174,"FLAT":-1.259859}},"executed_at":"2026-07-30T01:04:12","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0240","name":"formation_days=60, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1,"formation_days":60},"performance":{"sharpe":-0.95,"max_drawdown_pct":-40.6,"alpha_annualized_pct":-8.8,"p_value":0.05,"regime_breakdown":{"UP":-1.02327,"DOWN":-0.886858,"FLAT":-0.93784}},"executed_at":"2026-07-30T01:04:12","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0248","name":"formation_days=60, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":20,"regime_gate":false,"holding_days":1,"formation_days":60},"performance":{"sharpe":-1.01,"max_drawdown_pct":-31,"alpha_annualized_pct":-6.6,"p_value":0.038,"regime_breakdown":{"UP":-0.76919,"DOWN":-0.981551,"FLAT":-1.308026}},"executed_at":"2026-07-30T01:04:12","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0257","name":"formation_days=60, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":5,"formation_days":60},"performance":{"sharpe":-0.69,"max_drawdown_pct":-50.7,"alpha_annualized_pct":-10,"p_value":0.15,"regime_breakdown":{"UP":-0.465822,"DOWN":-0.93361,"FLAT":-0.895672}},"executed_at":"2026-07-30T01:04:13","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0267","name":"formation_days=60, holding_days=5, n_stocks=20, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":20,"regime_gate":true,"holding_days":5,"formation_days":60},"performance":{"sharpe":-0.68,"max_drawdown_pct":-39.1,"alpha_annualized_pct":-6.5,"p_value":0.16,"regime_breakdown":{"UP":-0.413928,"DOWN":-0.480701,"FLAT":-1.205788}},"executed_at":"2026-07-30T01:04:14","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0281","name":"formation_days=60, holding_days=10, n_stocks=20, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":20,"regime_gate":true,"holding_days":10,"formation_days":60},"performance":{"sharpe":-1.06,"max_drawdown_pct":-61.6,"alpha_annualized_pct":-13.5,"p_value":0.031,"regime_breakdown":{"UP":0.208728,"DOWN":-1.217706,"FLAT":-1.934585}},"executed_at":"2026-07-30T01:04:14","notes":null}],"facts":[{"fact_id":"garman-klass-vol-us-sp500-fact-best-sharpe","strategy_slug":"garman-klass-vol-us-sp500","claim":"Best grid Sharpe ratio is -0.29 (p=0.32).","value":-0.29,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-02-01–2026-06-01; cost=5bps","supports_verdict":"rejected","source_run_id":"r-garman-klass-vol-us-sp500-0065","search_tsv":"'-0.29':6 '-01':12,15 '-02':11 '-06':14 '0.32':8 '2022':10 '2026':13 '5bps':17 'best':1 'cost':16 'grid':2 'p':7 'period':9 'ratio':4 'sharp':3","cite_url":"https://qbuntu.ai/cite/garman-klass-vol-us-sp500-fact-best-sharpe"},{"fact_id":"garman-klass-vol-us-sp500-fact-median-sharpe","strategy_slug":"garman-klass-vol-us-sp500","claim":"Median Sharpe across 222 grid runs is -0.83.","value":-0.83,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 222 parameter combinations.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.83':8 '222':4,12 'across':3 'combin':14 'full':9 'grid':5,10 'median':1 'paramet':13 'run':6 'sharp':2","cite_url":"https://qbuntu.ai/cite/garman-klass-vol-us-sp500-fact-median-sharpe"},{"fact_id":"garman-klass-vol-us-sp500-fact-regime-down","strategy_slug":"garman-klass-vol-us-sp500","claim":"Median Sharpe in DOWN regime is -0.45 across 222 runs.","value":-0.45,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.45':7 '222':9 'across':8 'classif':15 'median':1 'n225':13 'regim':5,11 'run':10 'sharp':2 'sma20/sma60':14","cite_url":"https://qbuntu.ai/cite/garman-klass-vol-us-sp500-fact-regime-down"},{"fact_id":"garman-klass-vol-us-sp500-fact-regime-flat","strategy_slug":"garman-klass-vol-us-sp500","claim":"Median Sharpe in FLAT regime is -1.30 across 222 runs.","value":-1.3,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-1.30':7 '222':9 'across':8 'classif':15 'flat':4,12 'median':1 'n225':13 'regim':5,11 'run':10 'sharp':2 'sma20/sma60':14","cite_url":"https://qbuntu.ai/cite/garman-klass-vol-us-sp500-fact-regime-flat"},{"fact_id":"garman-klass-vol-us-sp500-fact-regime-up","strategy_slug":"garman-klass-vol-us-sp500","claim":"Median Sharpe in UP regime is -0.44 across 222 runs.","value":-0.44,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.44':7 '222':9 'across':8 'classif':15 'median':1 'n225':13 'regim':5,11 'run':10 'sharp':2 'sma20/sma60':14","cite_url":"https://qbuntu.ai/cite/garman-klass-vol-us-sp500-fact-regime-up"}],"related_strategies":[{"related_slug":"garman-klass-vol-jp-all","relation":"same_strategy"},{"related_slug":"garman-klass-vol-jp-growth","relation":"same_strategy"}],"tags":["volatility","garman-klass","factor","anomaly","us-market","sp500","grid-search"],"_links":{"self":"https://qbuntu.ai/v1/strategies/garman-klass-vol-us-sp500","html":"https://qbuntu.ai/strategies/garman-klass-vol-us-sp500","markdown":"https://qbuntu.ai/ai/strategies/garman-klass-vol-us-sp500.md"}}