{"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.21, best=0.51. Primary failure mode: regime_dependent."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":-0.2129,"max_drawdown_pct":-15.5,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.45,"backtest_period":{"start":"2022-05-02","end":"2026-06-01"}},"grid_summary":{"sharpe":{"p25":-0.58,"p75":0.05,"best":0.51,"worst":-2.58,"median":-0.21},"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-07-29T01:08:52","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-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.23,"max_drawdown_pct":-6.7,"alpha_annualized_pct":1,"p_value":0.63,"regime_breakdown":{"UP":0.826949,"DOWN":-0.394529,"FLAT":-0.422507}},"executed_at":"2026-07-29T01:00:44","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.24,"max_drawdown_pct":-8.4,"alpha_annualized_pct":-1,"p_value":0.63,"regime_breakdown":{"UP":-0.086813,"DOWN":-0.394529,"FLAT":-0.422507}},"executed_at":"2026-07-29T01:00:44","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.06,"max_drawdown_pct":-7.9,"alpha_annualized_pct":-0.3,"p_value":0.9,"regime_breakdown":{"UP":0.534225,"DOWN":-0.712806,"FLAT":-0.704884}},"executed_at":"2026-07-29T01:00:44","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.44,"max_drawdown_pct":-9.3,"alpha_annualized_pct":-2,"p_value":0.37,"regime_breakdown":{"UP":-0.214404,"DOWN":-0.712806,"FLAT":-0.704884}},"executed_at":"2026-07-29T01:00:44","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.47,"max_drawdown_pct":-8.1,"alpha_annualized_pct":-2,"p_value":0.0038,"regime_breakdown":{"UP":-1.359327,"DOWN":-0.541446,"FLAT":-1.988455}},"executed_at":"2026-07-29T01:00:44","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.09,"max_drawdown_pct":-13.6,"alpha_annualized_pct":-0.9,"p_value":0.86,"regime_breakdown":{"UP":0.949993,"DOWN":-1.853868,"FLAT":-0.858304}},"executed_at":"2026-07-29T01:00:45","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.01,"max_drawdown_pct":-20,"alpha_annualized_pct":0.1,"p_value":0.99,"regime_breakdown":{"UP":1.240594,"DOWN":-2.349727,"FLAT":-0.808213}},"executed_at":"2026-07-29T01:00:46","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.57,"max_drawdown_pct":-11.4,"alpha_annualized_pct":-2.7,"p_value":0.24,"regime_breakdown":{"UP":0.107031,"DOWN":-0.446382,"FLAT":-1.302061}},"executed_at":"2026-07-29T01:00:47","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.43,"max_drawdown_pct":-12.1,"alpha_annualized_pct":-2.6,"p_value":0.38,"regime_breakdown":{"UP":0.266218,"DOWN":-0.686365,"FLAT":-1.074169}},"executed_at":"2026-07-29T01:00:48","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.14,"max_drawdown_pct":-58.6,"alpha_annualized_pct":10.7,"p_value":0.63,"regime_breakdown":{"UP":0.499625,"DOWN":0.474032,"FLAT":-0.536551}},"executed_at":"2026-07-29T01:00:48","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.29,"max_drawdown_pct":-27,"alpha_annualized_pct":10.3,"p_value":0.33,"regime_breakdown":{"UP":0.851221,"DOWN":-0.19205,"FLAT":-0.78189}},"executed_at":"2026-07-29T01:00:49","notes":null},{"run_id":"r-turnover-us-sp500-0077","name":"formation_days=10, 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":10},"performance":{"sharpe":0.51,"max_drawdown_pct":-15.6,"alpha_annualized_pct":12.7,"p_value":0.09,"regime_breakdown":{"UP":0.921971,"DOWN":-0.111091,"FLAT":-0.186322}},"executed_at":"2026-07-29T01:00:49","notes":null},{"run_id":"r-turnover-us-sp500-0090","name":"formation_days=20, holding_days=1, n_stocks=20, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":20,"regime_gate":false,"holding_days":1,"formation_days":20},"performance":{"sharpe":-1.29,"max_drawdown_pct":-9.6,"alpha_annualized_pct":-2.6,"p_value":0.01,"regime_breakdown":{"UP":-1.021917,"DOWN":-1.833627,"FLAT":-1.506876}},"executed_at":"2026-07-29T01:00:50","notes":null},{"run_id":"r-turnover-us-sp500-0104","name":"formation_days=20, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":20,"regime_gate":false,"holding_days":5,"formation_days":20},"performance":{"sharpe":0.13,"max_drawdown_pct":-8.4,"alpha_annualized_pct":0.6,"p_value":0.78,"regime_breakdown":{"UP":1.222634,"DOWN":-0.606811,"FLAT":-0.969636}},"executed_at":"2026-07-29T01:00:50","notes":null},{"run_id":"r-turnover-us-sp500-0118","name":"formation_days=20, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":10,"formation_days":20},"performance":{"sharpe":-0.32,"max_drawdown_pct":-19.4,"alpha_annualized_pct":-3,"p_value":0.51,"regime_breakdown":{"UP":1.260003,"DOWN":-1.982308,"FLAT":-1.370773}},"executed_at":"2026-07-29T01:00:51","notes":null},{"run_id":"r-turnover-us-sp500-0132","name":"formation_days=20, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":10,"regime_gate":false,"holding_days":20,"formation_days":20},"performance":{"sharpe":-0.4,"max_drawdown_pct":-22.4,"alpha_annualized_pct":-4.7,"p_value":0.42,"regime_breakdown":{"UP":1.521698,"DOWN":-1.4417,"FLAT":-1.355431}},"executed_at":"2026-07-29T01:00:52","notes":null},{"run_id":"r-turnover-us-sp500-0146","name":"formation_days=20, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":60,"formation_days":20},"performance":{"sharpe":0.03,"max_drawdown_pct":-58.6,"alpha_annualized_pct":1.9,"p_value":0.93,"regime_breakdown":{"UP":0.372391,"DOWN":-0.226118,"FLAT":-0.591543}},"executed_at":"2026-07-29T01:00:53","notes":null},{"run_id":"r-turnover-us-sp500-0160","name":"formation_days=40, 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":40},"performance":{"sharpe":-0.08,"max_drawdown_pct":-11.6,"alpha_annualized_pct":-0.4,"p_value":0.88,"regime_breakdown":{"UP":0.407863,"DOWN":-0.598914,"FLAT":-0.374003}},"executed_at":"2026-07-29T01:00:54","notes":null},{"run_id":"r-turnover-us-sp500-0174","name":"formation_days=40, 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":40},"performance":{"sharpe":-2.23,"max_drawdown_pct":-12.4,"alpha_annualized_pct":-3.3,"p_value":0.000029,"regime_breakdown":{"UP":-2.222487,"DOWN":-4.845513,"FLAT":-1.694529}},"executed_at":"2026-07-29T01:00:55","notes":null},{"run_id":"r-turnover-us-sp500-0188","name":"formation_days=40, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":50,"regime_gate":false,"holding_days":5,"formation_days":40},"performance":{"sharpe":-0.09,"max_drawdown_pct":-7.8,"alpha_annualized_pct":-0.4,"p_value":0.85,"regime_breakdown":{"UP":0.25395,"DOWN":-0.220448,"FLAT":-0.568774}},"executed_at":"2026-07-29T01:00:56","notes":null},{"run_id":"r-turnover-us-sp500-0202","name":"formation_days=40, holding_days=10, n_stocks=20, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":20,"regime_gate":false,"holding_days":10,"formation_days":40},"performance":{"sharpe":-0.42,"max_drawdown_pct":-12,"alpha_annualized_pct":-2.8,"p_value":0.39,"regime_breakdown":{"UP":0.697667,"DOWN":-2.274077,"FLAT":-1.606515}},"executed_at":"2026-07-29T01:00:57","notes":null},{"run_id":"r-turnover-us-sp500-0216","name":"formation_days=40, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":20,"regime_gate":false,"holding_days":20,"formation_days":40},"performance":{"sharpe":-0.8,"max_drawdown_pct":-26.5,"alpha_annualized_pct":-7,"p_value":0.11,"regime_breakdown":{"UP":0.078189,"DOWN":-1.498279,"FLAT":-1.673429}},"executed_at":"2026-07-29T01:00:58","notes":null},{"run_id":"r-turnover-us-sp500-0230","name":"formation_days=40, holding_days=60, n_stocks=10, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":60,"formation_days":40},"performance":{"sharpe":-0.1,"max_drawdown_pct":-38.5,"alpha_annualized_pct":-4.6,"p_value":0.73,"regime_breakdown":{"UP":0.182176,"DOWN":-0.192425,"FLAT":-0.67591}},"executed_at":"2026-07-29T01:00:59","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.56,"max_drawdown_pct":-12.4,"alpha_annualized_pct":-3.1,"p_value":0.26,"regime_breakdown":{"UP":-0.039144,"DOWN":-1.095406,"FLAT":-0.820229}},"executed_at":"2026-07-29T01:00:59","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.63,"max_drawdown_pct":-8.2,"alpha_annualized_pct":-2.2,"p_value":0.2,"regime_breakdown":{"UP":-0.042643,"DOWN":-1.417309,"FLAT":-0.88051}},"executed_at":"2026-07-29T01:01:00","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.58,"max_drawdown_pct":-12.8,"alpha_annualized_pct":-3.5,"p_value":0.000003,"regime_breakdown":{"UP":-2.492906,"DOWN":-4.523641,"FLAT":-2.296924}},"executed_at":"2026-07-29T01:01:00","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.24,"max_drawdown_pct":-14.2,"alpha_annualized_pct":-1.8,"p_value":0.62,"regime_breakdown":{"UP":0.291453,"DOWN":-0.963012,"FLAT":-0.751181}},"executed_at":"2026-07-29T01:01:01","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.88,"max_drawdown_pct":-39.3,"alpha_annualized_pct":-11,"p_value":0.082,"regime_breakdown":{"UP":0.115915,"DOWN":-2.33975,"FLAT":-1.595513}},"executed_at":"2026-07-29T01:01:02","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":-1.06,"max_drawdown_pct":-63.1,"alpha_annualized_pct":-22.1,"p_value":0.037,"regime_breakdown":{"UP":-0.172577,"DOWN":-1.828096,"FLAT":-1.854364}},"executed_at":"2026-07-29T01:01:03","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.25,"max_drawdown_pct":-24.6,"alpha_annualized_pct":-6.7,"p_value":0.014,"regime_breakdown":{"UP":-0.972525,"DOWN":-0.848848,"FLAT":-1.813696}},"executed_at":"2026-07-29T01:01:04","notes":null}],"facts":[{"fact_id":"turnover-us-sp500-fact-best-sharpe","strategy_slug":"turnover-us-sp500","claim":"Best grid Sharpe ratio is 0.51 (p=0.09).","value":0.51,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-05-02–2026-06-01; cost=5bps","supports_verdict":"rejected","source_run_id":"r-turnover-us-sp500-0077","search_tsv":"'-01':15 '-02':12 '-05':11 '-06':14 '0.09':8 '0.51':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.21.","value":-0.21,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 320 parameter combinations.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.21':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.12 across 320 runs.","value":-1.12,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-1.12':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.10 across 320 runs.","value":-1.1,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-1.10':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.76 across 320 runs.","value":0.76,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'0.76':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"}}