{"schema_version":"v1","slug":"turnover-us-sp500","name":"Turnover Factor (US S&P 500)","name_i18n":{},"verdict":"rejected","asset_class":"equity","categories":["anomaly","factor","liquidity","turnover"],"hypothesis":"Datar, Naik, Radcliffe (1998): low turnover stocks outperform. Applied to S&P 500 constituents.","rejection_reason":{"primary":"regime_dependent","secondary":[],"narrative":"Across 320 grid combinations, median Sharpe=-0.11, best=0.62. Primary failure mode: regime_dependent."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":-0.1064,"max_drawdown_pct":-15.5,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.56,"backtest_period":{"start":"2022-05-02","end":"2026-09-01"}},"grid_summary":{"sharpe":{"p25":-0.42,"p75":0.11,"best":0.62,"worst":-2.45,"median":-0.11},"n_combinations":320},"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-09-24T21:54:27","git_sha_z":"1455e77","git_sha_genkidama":"17a7674","python_version":"3.12.10","numpy_version":"2.4.2","pandas_version":"3.0.0","tier":"shallow"},"runs":[{"run_id":"r-turnover-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":0.28,"max_drawdown_pct":-6.7,"alpha_annualized_pct":1.2,"p_value":0.55,"regime_breakdown":{"UP":0.826949,"DOWN":-0.394529,"FLAT":-0.211904}},"executed_at":"2026-09-23T20:25:10","notes":null},{"run_id":"r-turnover-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.17,"max_drawdown_pct":-8.4,"alpha_annualized_pct":-0.7,"p_value":0.72,"regime_breakdown":{"UP":-0.086813,"DOWN":-0.394529,"FLAT":-0.211904}},"executed_at":"2026-09-23T20:25:10","notes":null},{"run_id":"r-turnover-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":-0.02,"max_drawdown_pct":-7.9,"alpha_annualized_pct":-0.1,"p_value":0.97,"regime_breakdown":{"UP":0.534225,"DOWN":-0.712806,"FLAT":-0.512598}},"executed_at":"2026-09-23T20:25:10","notes":null},{"run_id":"r-turnover-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.38,"max_drawdown_pct":-9.3,"alpha_annualized_pct":-1.7,"p_value":0.42,"regime_breakdown":{"UP":-0.214404,"DOWN":-0.712806,"FLAT":-0.512598}},"executed_at":"2026-09-23T20:25:10","notes":null},{"run_id":"r-turnover-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":-1.5,"max_drawdown_pct":-8.1,"alpha_annualized_pct":-2,"p_value":0.0023,"regime_breakdown":{"UP":-1.359327,"DOWN":-0.541446,"FLAT":-1.996094}},"executed_at":"2026-09-23T20:25:13","notes":null},{"run_id":"r-turnover-us-sp500-0018","name":"formation_days=10, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":5,"formation_days":10},"performance":{"sharpe":-0.05,"max_drawdown_pct":-13.6,"alpha_annualized_pct":-0.5,"p_value":0.91,"regime_breakdown":{"UP":0.949993,"DOWN":-1.853868,"FLAT":-0.69869}},"executed_at":"2026-09-23T20:25:15","notes":null},{"run_id":"r-turnover-us-sp500-0032","name":"formation_days=10, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":10,"formation_days":10},"performance":{"sharpe":0.16,"max_drawdown_pct":-20,"alpha_annualized_pct":2.2,"p_value":0.73,"regime_breakdown":{"UP":1.430644,"DOWN":-2.349727,"FLAT":-0.733325}},"executed_at":"2026-09-23T20:25:18","notes":null},{"run_id":"r-turnover-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":-0.33,"max_drawdown_pct":-11.4,"alpha_annualized_pct":-1.7,"p_value":0.49,"regime_breakdown":{"UP":0.547392,"DOWN":-0.446382,"FLAT":-1.384511}},"executed_at":"2026-09-23T20:25:22","notes":null},{"run_id":"r-turnover-us-sp500-0060","name":"formation_days=10, holding_days=20, n_stocks=50, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":50,"regime_gate":false,"holding_days":20,"formation_days":10},"performance":{"sharpe":-0.21,"max_drawdown_pct":-12.1,"alpha_annualized_pct":-1.4,"p_value":0.66,"regime_breakdown":{"UP":0.625744,"DOWN":-0.686365,"FLAT":-1.055742}},"executed_at":"2026-09-23T20:25:26","notes":null},{"run_id":"r-turnover-us-sp500-0064","name":"formation_days=10, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":60,"formation_days":10},"performance":{"sharpe":0.27,"max_drawdown_pct":-60.1,"alpha_annualized_pct":21.5,"p_value":0.34,"regime_breakdown":{"UP":0.713947,"DOWN":0.313968,"FLAT":-0.536551}},"executed_at":"2026-09-23T20:25:27","notes":null},{"run_id":"r-turnover-us-sp500-0075","name":"formation_days=10, 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":10},"performance":{"sharpe":0.36,"max_drawdown_pct":-27,"alpha_annualized_pct":13.1,"p_value":0.21,"regime_breakdown":{"UP":0.995842,"DOWN":-0.540286,"FLAT":-0.78189}},"executed_at":"2026-09-23T20:25:30","notes":null},{"run_id":"r-turnover-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.59,"max_drawdown_pct":-5.1,"alpha_annualized_pct":-1.3,"p_value":0.22,"regime_breakdown":{"UP":-0.160849,"DOWN":-0.953479,"FLAT":-0.99105}},"executed_at":"2026-09-23T20:25:34","notes":null},{"run_id":"r-turnover-us-sp500-0103","name":"formation_days=20, 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":20},"performance":{"sharpe":-0.23,"max_drawdown_pct":-15.4,"alpha_annualized_pct":-1.5,"p_value":0.63,"regime_breakdown":{"UP":1.024376,"DOWN":-1.530476,"FLAT":-1.135642}},"executed_at":"2026-09-23T20:25:38","notes":null},{"run_id":"r-turnover-us-sp500-0117","name":"formation_days=20, holding_days=10, n_stocks=10, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":10,"formation_days":20},"performance":{"sharpe":-0.18,"max_drawdown_pct":-22.7,"alpha_annualized_pct":-1.7,"p_value":0.7,"regime_breakdown":{"UP":1.268667,"DOWN":-1.79839,"FLAT":-1.314683}},"executed_at":"2026-09-23T20:25:42","notes":null},{"run_id":"r-turnover-us-sp500-0131","name":"formation_days=20, 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":20},"performance":{"sharpe":0.06,"max_drawdown_pct":-35.9,"alpha_annualized_pct":1.1,"p_value":0.9,"regime_breakdown":{"UP":1.637335,"DOWN":-1.197485,"FLAT":-1.526233}},"executed_at":"2026-09-23T20:25:46","notes":null},{"run_id":"r-turnover-us-sp500-0145","name":"formation_days=20, 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":20},"performance":{"sharpe":0.29,"max_drawdown_pct":-58.6,"alpha_annualized_pct":24.3,"p_value":0.31,"regime_breakdown":{"UP":0.942258,"DOWN":-0.67149,"FLAT":-0.572756}},"executed_at":"2026-09-23T20:25:50","notes":null},{"run_id":"r-turnover-us-sp500-0159","name":"formation_days=20, holding_days=60, n_stocks=50, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":50,"regime_gate":true,"holding_days":60,"formation_days":20},"performance":{"sharpe":0.57,"max_drawdown_pct":-14.8,"alpha_annualized_pct":13.7,"p_value":0.052,"regime_breakdown":{"UP":1.071241,"DOWN":0.280315,"FLAT":-0.488479}},"executed_at":"2026-09-23T20:25:54","notes":null},{"run_id":"r-turnover-us-sp500-0173","name":"formation_days=40, 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":40},"performance":{"sharpe":-0.85,"max_drawdown_pct":-5.2,"alpha_annualized_pct":-1.3,"p_value":0.076,"regime_breakdown":{"UP":-0.458572,"DOWN":-3.220268,"FLAT":-0.996723}},"executed_at":"2026-09-23T20:25:58","notes":null},{"run_id":"r-turnover-us-sp500-0187","name":"formation_days=40, 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":40},"performance":{"sharpe":0.01,"max_drawdown_pct":-9.3,"alpha_annualized_pct":0.1,"p_value":0.98,"regime_breakdown":{"UP":1.534886,"DOWN":-1.532018,"FLAT":-0.93373}},"executed_at":"2026-09-23T20:26:02","notes":null},{"run_id":"r-turnover-us-sp500-0201","name":"formation_days=40, 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":40},"performance":{"sharpe":0.02,"max_drawdown_pct":-12.1,"alpha_annualized_pct":0.1,"p_value":0.97,"regime_breakdown":{"UP":1.419144,"DOWN":-2.056153,"FLAT":-1.716776}},"executed_at":"2026-09-23T20:26:06","notes":null},{"run_id":"r-turnover-us-sp500-0215","name":"formation_days=40, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":10,"regime_gate":true,"holding_days":20,"formation_days":40},"performance":{"sharpe":0.1,"max_drawdown_pct":-26.6,"alpha_annualized_pct":1.5,"p_value":0.83,"regime_breakdown":{"UP":1.723884,"DOWN":-2.565219,"FLAT":-1.249313}},"executed_at":"2026-09-23T20:26:10","notes":null},{"run_id":"r-turnover-us-sp500-0229","name":"formation_days=40, holding_days=60, n_stocks=10, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":60,"formation_days":40},"performance":{"sharpe":0.43,"max_drawdown_pct":-34.3,"alpha_annualized_pct":22.7,"p_value":0.13,"regime_breakdown":{"UP":0.987327,"DOWN":-0.013637,"FLAT":-0.643721}},"executed_at":"2026-09-23T20:26:14","notes":null},{"run_id":"r-turnover-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.62,"max_drawdown_pct":-14.8,"alpha_annualized_pct":14.3,"p_value":0.034,"regime_breakdown":{"UP":1.151195,"DOWN":0.523869,"FLAT":-0.521944}},"executed_at":"2026-09-23T20:26:16","notes":null},{"run_id":"r-turnover-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.41,"max_drawdown_pct":-12.4,"alpha_annualized_pct":-2.3,"p_value":0.39,"regime_breakdown":{"UP":-0.039144,"DOWN":-1.095406,"FLAT":-0.501176}},"executed_at":"2026-09-23T20:26:17","notes":null},{"run_id":"r-turnover-us-sp500-0245","name":"formation_days=60, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":1,"formation_days":60},"performance":{"sharpe":-0.55,"max_drawdown_pct":-8.2,"alpha_annualized_pct":-1.9,"p_value":0.25,"regime_breakdown":{"UP":-0.042643,"DOWN":-1.417309,"FLAT":-0.68569}},"executed_at":"2026-09-23T20:26:18","notes":null},{"run_id":"r-turnover-us-sp500-0254","name":"formation_days=60, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":50,"regime_gate":false,"holding_days":1,"formation_days":60},"performance":{"sharpe":-2.45,"max_drawdown_pct":-13,"alpha_annualized_pct":-3.3,"p_value":0.000004,"regime_breakdown":{"UP":-2.492906,"DOWN":-4.523641,"FLAT":-1.994647}},"executed_at":"2026-09-23T20:26:20","notes":null},{"run_id":"r-turnover-us-sp500-0260","name":"formation_days=60, 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":60},"performance":{"sharpe":-0.23,"max_drawdown_pct":-14.2,"alpha_annualized_pct":-1.7,"p_value":0.62,"regime_breakdown":{"UP":0.291453,"DOWN":-0.963012,"FLAT":-0.677799}},"executed_at":"2026-09-23T20:26:22","notes":null},{"run_id":"r-turnover-us-sp500-0274","name":"formation_days=60, holding_days=10, n_stocks=5, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":10,"formation_days":60},"performance":{"sharpe":-0.2,"max_drawdown_pct":-39.3,"alpha_annualized_pct":-3.7,"p_value":0.67,"regime_breakdown":{"UP":0.646996,"DOWN":-2.33975,"FLAT":-1.35361}},"executed_at":"2026-09-23T20:26:26","notes":null},{"run_id":"r-turnover-us-sp500-0288","name":"formation_days=60, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":20,"formation_days":60},"performance":{"sharpe":-0.55,"max_drawdown_pct":-63.1,"alpha_annualized_pct":-13.5,"p_value":0.26,"regime_breakdown":{"UP":0.38042,"DOWN":-1.828096,"FLAT":-1.573555}},"executed_at":"2026-09-23T20:26:30","notes":null},{"run_id":"r-turnover-us-sp500-0302","name":"formation_days=60, 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":60},"performance":{"sharpe":-1.05,"max_drawdown_pct":-24.6,"alpha_annualized_pct":-6.3,"p_value":0.033,"regime_breakdown":{"UP":-0.446892,"DOWN":-0.848848,"FLAT":-1.905293}},"executed_at":"2026-09-23T20:26:34","notes":null}],"facts":[{"fact_id":"turnover-us-sp500-fact-best-sharpe","strategy_slug":"turnover-us-sp500","claim":"Best grid Sharpe ratio is 0.62 (p=0.034).","value":0.62,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-05-02–2026-09-01; cost=5bps","supports_verdict":"rejected","source_run_id":"r-turnover-us-sp500-0237","search_tsv":"'-01':15 '-02':12 '-05':11 '-09':14 '0.034':8 '0.62':6 '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/turnover-us-sp500-fact-best-sharpe"},{"fact_id":"turnover-us-sp500-fact-median-sharpe","strategy_slug":"turnover-us-sp500","claim":"Median Sharpe across 320 grid runs is -0.11.","value":-0.11,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 320 parameter combinations.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.11':8 '320':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/turnover-us-sp500-fact-median-sharpe"},{"fact_id":"turnover-us-sp500-fact-regime-down","strategy_slug":"turnover-us-sp500","claim":"Median Sharpe in DOWN regime is -1.03 across 320 runs.","value":-1.03,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-1.03':7 '320':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/turnover-us-sp500-fact-regime-down"},{"fact_id":"turnover-us-sp500-fact-regime-flat","strategy_slug":"turnover-us-sp500","claim":"Median Sharpe in FLAT regime is -1.06 across 320 runs.","value":-1.06,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-1.06':7 '320':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/turnover-us-sp500-fact-regime-flat"},{"fact_id":"turnover-us-sp500-fact-regime-up","strategy_slug":"turnover-us-sp500","claim":"Median Sharpe in UP regime is 0.90 across 320 runs.","value":0.9,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'0.90':7 '320':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/turnover-us-sp500-fact-regime-up"}],"related_strategies":[{"related_slug":"turnover-jp-all","relation":"same_strategy"},{"related_slug":"turnover-jp-growth","relation":"same_strategy"}],"tags":["turnover","liquidity","factor","anomaly","us-market","sp500","grid-search"],"_links":{"self":"https://qbuntu.ai/v1/strategies/turnover-us-sp500","html":"https://qbuntu.ai/strategies/turnover-us-sp500","markdown":"https://qbuntu.ai/ai/strategies/turnover-us-sp500.md"}}