{"schema_version":"v1","slug":"calendar-effects-us-sp500","name":"Calendar Effects (US S&P 500)","name_i18n":{},"verdict":"marginal","asset_class":"equity","categories":["anomaly","calendar","seasonal"],"hypothesis":"Tests well-known calendar anomalies: Halloween effect, January effect, Turn-of-Month, and Day-of-Week effects. Applied to S&P 500 constituents.","rejection_reason":{"primary":"regime_dependent","secondary":[],"narrative":"Across 192 grid combinations, median Sharpe=0.20, best=6.18. Primary failure mode: regime_dependent."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":0.2004,"max_drawdown_pct":-14.4,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.35,"backtest_period":{"start":"2022-01-14","end":"2026-09-17"}},"grid_summary":{"sharpe":{"p25":-0.53,"p75":1.22,"best":6.18,"worst":-2.86,"median":0.2},"n_combinations":192},"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-24T02:22:17","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-calendar-effects-us-sp500-0000","name":"effect=halloween, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False","params":{"effect":"halloween","cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1},"performance":{"sharpe":-0.52,"max_drawdown_pct":-65.2,"alpha_annualized_pct":-13.7,"p_value":0.26,"regime_breakdown":{"UP":-0.800821,"DOWN":0.144978,"FLAT":-0.590365}},"executed_at":"2026-09-23T20:39:01","notes":null},{"run_id":"r-calendar-effects-us-sp500-0001","name":"effect=halloween, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True","params":{"effect":"halloween","cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":1},"performance":{"sharpe":-0.43,"max_drawdown_pct":-54.7,"alpha_annualized_pct":-9,"p_value":0.41,"regime_breakdown":{"UP":-0.704283,"DOWN":0.144978,"FLAT":-0.590365}},"executed_at":"2026-09-23T20:39:06","notes":null},{"run_id":"r-calendar-effects-us-sp500-0002","name":"effect=halloween, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False","params":{"effect":"halloween","cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":1},"performance":{"sharpe":-1.47,"max_drawdown_pct":-87.8,"alpha_annualized_pct":-38.8,"p_value":0.0013,"regime_breakdown":{"UP":-1.871577,"DOWN":-0.577441,"FLAT":-1.568411}},"executed_at":"2026-09-23T20:39:10","notes":null},{"run_id":"r-calendar-effects-us-sp500-0003","name":"effect=halloween, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True","params":{"effect":"halloween","cost_bps":10,"n_stocks":5,"regime_gate":true,"holding_days":1},"performance":{"sharpe":-1.33,"max_drawdown_pct":-79.3,"alpha_annualized_pct":-28,"p_value":0.011,"regime_breakdown":{"UP":-1.680618,"DOWN":-0.577441,"FLAT":-1.568411}},"executed_at":"2026-09-23T20:39:14","notes":null},{"run_id":"r-calendar-effects-us-sp500-0011","name":"effect=halloween, holding_days=1, n_stocks=20, cost_bps=10, regime_gate=True","params":{"effect":"halloween","cost_bps":10,"n_stocks":20,"regime_gate":true,"holding_days":1},"performance":{"sharpe":-1.42,"max_drawdown_pct":-73.9,"alpha_annualized_pct":-25.4,"p_value":0.0069,"regime_breakdown":{"UP":-1.874929,"DOWN":-0.117202,"FLAT":-2.045788}},"executed_at":"2026-09-23T20:39:49","notes":null},{"run_id":"r-calendar-effects-us-sp500-0012","name":"effect=halloween, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False","params":{"effect":"halloween","cost_bps":5,"n_stocks":50,"regime_gate":false,"holding_days":1},"performance":{"sharpe":-0.79,"max_drawdown_pct":-62.9,"alpha_annualized_pct":-17.1,"p_value":0.086,"regime_breakdown":{"UP":-1.535895,"DOWN":0.779697,"FLAT":-1.118323}},"executed_at":"2026-09-23T20:39:53","notes":null},{"run_id":"r-calendar-effects-us-sp500-0020","name":"effect=halloween, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=False","params":{"effect":"halloween","cost_bps":5,"n_stocks":10,"regime_gate":false,"holding_days":5},"performance":{"sharpe":0.05,"max_drawdown_pct":-13.8,"alpha_annualized_pct":0.3,"p_value":0.96,"regime_breakdown":{"UP":-0.869558,"DOWN":0.573214,"FLAT":0.529952}},"executed_at":"2026-09-23T20:40:07","notes":null},{"run_id":"r-calendar-effects-us-sp500-0028","name":"effect=halloween, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=False","params":{"effect":"halloween","cost_bps":5,"n_stocks":50,"regime_gate":false,"holding_days":5},"performance":{"sharpe":-0.27,"max_drawdown_pct":-17.8,"alpha_annualized_pct":-1,"p_value":0.77,"regime_breakdown":{"UP":-0.603025,"DOWN":0.721942,"FLAT":-0.682965}},"executed_at":"2026-09-23T20:40:09","notes":null},{"run_id":"r-calendar-effects-us-sp500-0032","name":"effect=halloween, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False","params":{"effect":"halloween","cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":20},"performance":{"sharpe":0.06,"max_drawdown_pct":-30.6,"alpha_annualized_pct":1,"p_value":0.9,"regime_breakdown":{"UP":-0.198629,"DOWN":-0.251661,"FLAT":0.543338}},"executed_at":"2026-09-23T20:40:10","notes":null},{"run_id":"r-calendar-effects-us-sp500-0037","name":"effect=halloween, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True","params":{"effect":"halloween","cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":20},"performance":{"sharpe":0.85,"max_drawdown_pct":-14.4,"alpha_annualized_pct":11.9,"p_value":0.13,"regime_breakdown":{"UP":1.900847,"DOWN":-0.006654,"FLAT":0.945371}},"executed_at":"2026-09-23T20:40:11","notes":null},{"run_id":"r-calendar-effects-us-sp500-0045","name":"effect=halloween, holding_days=20, n_stocks=50, cost_bps=5, regime_gate=True","params":{"effect":"halloween","cost_bps":5,"n_stocks":50,"regime_gate":true,"holding_days":20},"performance":{"sharpe":0.59,"max_drawdown_pct":-18.7,"alpha_annualized_pct":7.2,"p_value":0.28,"regime_breakdown":{"UP":0.625338,"DOWN":0.165206,"FLAT":0.829746}},"executed_at":"2026-09-23T20:40:12","notes":null},{"run_id":"r-calendar-effects-us-sp500-0053","name":"effect=january, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=True","params":{"effect":"january","cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":1},"performance":{"sharpe":2.9,"max_drawdown_pct":-12.5,"alpha_annualized_pct":6.7,"p_value":0.079,"regime_breakdown":{"UP":2.137231,"DOWN":9.469884,"FLAT":2.300614}},"executed_at":"2026-09-23T20:40:15","notes":null},{"run_id":"r-calendar-effects-us-sp500-0061","name":"effect=january, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=True","params":{"effect":"january","cost_bps":5,"n_stocks":50,"regime_gate":true,"holding_days":1},"performance":{"sharpe":2.32,"max_drawdown_pct":-10.3,"alpha_annualized_pct":4.6,"p_value":0.16,"regime_breakdown":{"UP":2.970492,"DOWN":7.534505,"FLAT":0.987663}},"executed_at":"2026-09-23T20:40:18","notes":null},{"run_id":"r-calendar-effects-us-sp500-0069","name":"effect=january, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=True","params":{"effect":"january","cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":5},"performance":{"sharpe":2.46,"max_drawdown_pct":-2.3,"alpha_annualized_pct":1.6,"p_value":0.53,"regime_breakdown":{"UP":5.766861,"FLAT":2.268719}},"executed_at":"2026-09-23T20:40:18","notes":null},{"run_id":"r-calendar-effects-us-sp500-0077","name":"effect=january, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=True","params":{"effect":"january","cost_bps":5,"n_stocks":50,"regime_gate":true,"holding_days":5},"performance":{"sharpe":4.53,"max_drawdown_pct":-0.8,"alpha_annualized_pct":1.8,"p_value":0.29,"regime_breakdown":{"UP":4.408157,"FLAT":3.502109}},"executed_at":"2026-09-23T20:40:18","notes":null},{"run_id":"r-calendar-effects-us-sp500-0085","name":"effect=january, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True","params":{"effect":"january","cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":20},"performance":{"sharpe":5.24,"max_drawdown_pct":0,"alpha_annualized_pct":8.1,"p_value":0.058,"regime_breakdown":{"UP":6.560121,"FLAT":6.177075}},"executed_at":"2026-09-23T20:40:19","notes":null},{"run_id":"r-calendar-effects-us-sp500-0088","name":"effect=january, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=False","params":{"effect":"january","cost_bps":5,"n_stocks":20,"regime_gate":false,"holding_days":20},"performance":{"sharpe":6.18,"max_drawdown_pct":0,"alpha_annualized_pct":6.6,"p_value":0.039,"regime_breakdown":{"UP":7.125343,"FLAT":6.043034}},"executed_at":"2026-09-23T20:40:19","notes":null},{"run_id":"r-calendar-effects-us-sp500-0094","name":"effect=january, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=False","params":{"effect":"january","cost_bps":10,"n_stocks":50,"regime_gate":false,"holding_days":20},"performance":{"sharpe":4.42,"max_drawdown_pct":0,"alpha_annualized_pct":5.7,"p_value":0.086,"regime_breakdown":{"UP":4.459728,"FLAT":6.196341}},"executed_at":"2026-09-23T20:40:19","notes":null},{"run_id":"r-calendar-effects-us-sp500-0096","name":"effect=turn_of_month, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False","params":{"effect":"turn_of_month","cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1},"performance":{"sharpe":-1.68,"max_drawdown_pct":-91.9,"alpha_annualized_pct":-44.1,"p_value":0.00025,"regime_breakdown":{"UP":-1.184934,"DOWN":-0.488263,"FLAT":-2.861806}},"executed_at":"2026-09-23T20:40:23","notes":null},{"run_id":"r-calendar-effects-us-sp500-0102","name":"effect=turn_of_month, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False","params":{"effect":"turn_of_month","cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":1},"performance":{"sharpe":-2.86,"max_drawdown_pct":-97.3,"alpha_annualized_pct":-69.1,"p_value":5.7e-10,"regime_breakdown":{"UP":-3.422626,"DOWN":-0.979342,"FLAT":-3.610541}},"executed_at":"2026-09-23T20:40:49","notes":null},{"run_id":"r-calendar-effects-us-sp500-0104","name":"effect=turn_of_month, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=False","params":{"effect":"turn_of_month","cost_bps":5,"n_stocks":20,"regime_gate":false,"holding_days":1},"performance":{"sharpe":-1.49,"max_drawdown_pct":-85.7,"alpha_annualized_pct":-32.8,"p_value":0.0012,"regime_breakdown":{"UP":-1.333024,"DOWN":-0.320292,"FLAT":-2.41167}},"executed_at":"2026-09-23T20:40:57","notes":null},{"run_id":"r-calendar-effects-us-sp500-0112","name":"effect=turn_of_month, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=False","params":{"effect":"turn_of_month","cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":5},"performance":{"sharpe":1.14,"max_drawdown_pct":-11.4,"alpha_annualized_pct":5.5,"p_value":0.23,"regime_breakdown":{"UP":1.39607,"DOWN":1.231327,"FLAT":0.819355}},"executed_at":"2026-09-23T20:41:27","notes":null},{"run_id":"r-calendar-effects-us-sp500-0120","name":"effect=turn_of_month, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False","params":{"effect":"turn_of_month","cost_bps":5,"n_stocks":20,"regime_gate":false,"holding_days":5},"performance":{"sharpe":1.13,"max_drawdown_pct":-11,"alpha_annualized_pct":4.5,"p_value":0.23,"regime_breakdown":{"UP":1.535288,"DOWN":0.802398,"FLAT":1.078768}},"executed_at":"2026-09-23T20:41:29","notes":null},{"run_id":"r-calendar-effects-us-sp500-0128","name":"effect=turn_of_month, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False","params":{"effect":"turn_of_month","cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":20},"performance":{"sharpe":1.32,"max_drawdown_pct":-15.8,"alpha_annualized_pct":20.9,"p_value":0.007,"regime_breakdown":{"UP":2.04141,"DOWN":2.179361,"FLAT":0.323312}},"executed_at":"2026-09-23T20:41:31","notes":null},{"run_id":"r-calendar-effects-us-sp500-0136","name":"effect=turn_of_month, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=False","params":{"effect":"turn_of_month","cost_bps":5,"n_stocks":20,"regime_gate":false,"holding_days":20},"performance":{"sharpe":1.21,"max_drawdown_pct":-13.5,"alpha_annualized_pct":18.1,"p_value":0.014,"regime_breakdown":{"UP":1.329399,"DOWN":2.779743,"FLAT":0.475116}},"executed_at":"2026-09-23T20:41:32","notes":null},{"run_id":"r-calendar-effects-us-sp500-0144","name":"effect=day_of_week, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False","params":{"effect":"day_of_week","cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1},"performance":{"sharpe":-0.87,"max_drawdown_pct":-44.5,"alpha_annualized_pct":-8.5,"p_value":0.24,"regime_breakdown":{"UP":-1.409604,"DOWN":-1.265837,"FLAT":-0.07529}},"executed_at":"2026-09-23T20:41:35","notes":null},{"run_id":"r-calendar-effects-us-sp500-0145","name":"effect=day_of_week, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True","params":{"effect":"day_of_week","cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":1},"performance":{"sharpe":-0.52,"max_drawdown_pct":-31.3,"alpha_annualized_pct":-4.1,"p_value":0.54,"regime_breakdown":{"UP":-0.671113,"DOWN":-1.265837,"FLAT":-0.07529}},"executed_at":"2026-09-23T20:41:37","notes":null},{"run_id":"r-calendar-effects-us-sp500-0153","name":"effect=day_of_week, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=True","params":{"effect":"day_of_week","cost_bps":5,"n_stocks":20,"regime_gate":true,"holding_days":1},"performance":{"sharpe":-0.03,"max_drawdown_pct":-23.1,"alpha_annualized_pct":-0.2,"p_value":0.97,"regime_breakdown":{"UP":-0.41149,"DOWN":-0.54911,"FLAT":0.471822}},"executed_at":"2026-09-23T20:41:50","notes":null},{"run_id":"r-calendar-effects-us-sp500-0161","name":"effect=day_of_week, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=True","params":{"effect":"day_of_week","cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":5},"performance":{"sharpe":0.04,"max_drawdown_pct":-12.8,"alpha_annualized_pct":0.1,"p_value":0.98,"regime_breakdown":{"UP":2.902211,"DOWN":-1.048025,"FLAT":-1.430664}},"executed_at":"2026-09-23T20:42:01","notes":null},{"run_id":"r-calendar-effects-us-sp500-0169","name":"effect=day_of_week, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=True","params":{"effect":"day_of_week","cost_bps":5,"n_stocks":20,"regime_gate":true,"holding_days":5},"performance":{"sharpe":-0.43,"max_drawdown_pct":-11.2,"alpha_annualized_pct":-0.9,"p_value":0.76,"regime_breakdown":{"UP":2.477623,"DOWN":-2.499856,"FLAT":-1.202136}},"executed_at":"2026-09-23T20:42:02","notes":null}],"facts":[{"fact_id":"calendar-effects-us-sp500-fact-best-sharpe","strategy_slug":"calendar-effects-us-sp500","claim":"Best grid Sharpe ratio is 6.18 (p=0.039).","value":6.18,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-01-14–2026-09-17; cost=5bps","supports_verdict":"marginal","source_run_id":"r-calendar-effects-us-sp500-0088","search_tsv":"'-01':11 '-09':14 '-14':12 '-17':15 '0.039':8 '2022':10 '2026':13 '5bps':17 '6.18':6 'best':1 'cost':16 'grid':2 'p':7 'period':9 'ratio':4 'sharp':3","cite_url":"https://qbuntu.ai/cite/calendar-effects-us-sp500-fact-best-sharpe"},{"fact_id":"calendar-effects-us-sp500-fact-median-sharpe","strategy_slug":"calendar-effects-us-sp500","claim":"Median Sharpe across 192 grid runs is 0.20.","value":0.2,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 192 parameter combinations.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.20':8 '192':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/calendar-effects-us-sp500-fact-median-sharpe"},{"fact_id":"calendar-effects-us-sp500-fact-regime-down","strategy_slug":"calendar-effects-us-sp500","claim":"Median Sharpe in DOWN regime is -0.08 across 192 runs.","value":-0.08,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'-0.08':7 '192':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/calendar-effects-us-sp500-fact-regime-down"},{"fact_id":"calendar-effects-us-sp500-fact-regime-flat","strategy_slug":"calendar-effects-us-sp500","claim":"Median Sharpe in FLAT regime is 0.19 across 192 runs.","value":0.19,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.19':7 '192':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/calendar-effects-us-sp500-fact-regime-flat"},{"fact_id":"calendar-effects-us-sp500-fact-regime-up","strategy_slug":"calendar-effects-us-sp500","claim":"Median Sharpe in UP regime is 0.98 across 192 runs.","value":0.98,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.98':7 '192':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/calendar-effects-us-sp500-fact-regime-up"}],"related_strategies":[{"related_slug":"calendar-effects-jp-all","relation":"same_strategy"},{"related_slug":"calendar-effects-jp-growth","relation":"same_strategy"}],"tags":["calendar","anomaly","seasonal","halloween","january","us-market","sp500","grid-search"],"_links":{"self":"https://qbuntu.ai/v1/strategies/calendar-effects-us-sp500","html":"https://qbuntu.ai/strategies/calendar-effects-us-sp500","markdown":"https://qbuntu.ai/ai/strategies/calendar-effects-us-sp500.md"}}