{"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.23, best=6.18. Primary failure mode: regime_dependent."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":0.2296,"max_drawdown_pct":-14.4,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.33,"backtest_period":{"start":"2022-01-14","end":"2026-06-09"}},"grid_summary":{"sharpe":{"p25":-0.52,"p75":1.18,"best":6.18,"worst":-2.91,"median":0.23},"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-07-29T01:08:35","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-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.43,"max_drawdown_pct":-65.2,"alpha_annualized_pct":-11.6,"p_value":0.36,"regime_breakdown":{"UP":-0.800821,"DOWN":0.144978,"FLAT":-0.36126}},"executed_at":"2026-07-29T01:06:06","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.31,"max_drawdown_pct":-53.2,"alpha_annualized_pct":-6.6,"p_value":0.57,"regime_breakdown":{"UP":-0.704283,"DOWN":0.144978,"FLAT":-0.36126}},"executed_at":"2026-07-29T01:06: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.37,"max_drawdown_pct":-85.8,"alpha_annualized_pct":-36.7,"p_value":0.0036,"regime_breakdown":{"UP":-1.871577,"DOWN":-0.577441,"FLAT":-1.299019}},"executed_at":"2026-07-29T01:06:07","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.2,"max_drawdown_pct":-76.6,"alpha_annualized_pct":-25.2,"p_value":0.029,"regime_breakdown":{"UP":-1.680618,"DOWN":-0.577441,"FLAT":-1.299019}},"executed_at":"2026-07-29T01:06:07","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.31,"max_drawdown_pct":-69,"alpha_annualized_pct":-23.6,"p_value":0.017,"regime_breakdown":{"UP":-1.874929,"DOWN":-0.117202,"FLAT":-1.875776}},"executed_at":"2026-07-29T01:06:12","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.81,"max_drawdown_pct":-62.5,"alpha_annualized_pct":-17.8,"p_value":0.088,"regime_breakdown":{"UP":-1.535895,"DOWN":0.779697,"FLAT":-1.207012}},"executed_at":"2026-07-29T01:06:12","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.09,"max_drawdown_pct":-13.8,"alpha_annualized_pct":0.4,"p_value":0.93,"regime_breakdown":{"UP":-0.869558,"DOWN":0.573214,"FLAT":0.681444}},"executed_at":"2026-07-29T01:06:14","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.78,"regime_breakdown":{"UP":-0.603025,"DOWN":0.721942,"FLAT":-0.743499}},"executed_at":"2026-07-29T01:06:14","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.16,"max_drawdown_pct":-30.6,"alpha_annualized_pct":2.8,"p_value":0.74,"regime_breakdown":{"UP":-0.145658,"DOWN":-0.251661,"FLAT":0.819898}},"executed_at":"2026-07-29T01:06:15","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":1,"max_drawdown_pct":-14.4,"alpha_annualized_pct":14.6,"p_value":0.078,"regime_breakdown":{"UP":1.900847,"DOWN":-0.006654,"FLAT":1.293706}},"executed_at":"2026-07-29T01:06:15","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.63,"max_drawdown_pct":-18.7,"alpha_annualized_pct":8.2,"p_value":0.26,"regime_breakdown":{"UP":0.625338,"DOWN":0.165206,"FLAT":0.942174}},"executed_at":"2026-07-29T01:06:15","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-07-29T01:06: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-07-29T01:06:16","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-07-29T01:06:16","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-07-29T01:06:16","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-07-29T01:06:16","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-07-29T01:06:16","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-07-29T01:06:16","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.75,"max_drawdown_pct":-91.7,"alpha_annualized_pct":-46.6,"p_value":0.00022,"regime_breakdown":{"UP":-1.184934,"DOWN":-0.488263,"FLAT":-3.207745}},"executed_at":"2026-07-29T01:06:17","notes":null},{"run_id":"r-calendar-effects-us-sp500-0099","name":"effect=turn_of_month, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True","params":{"effect":"turn_of_month","cost_bps":10,"n_stocks":5,"regime_gate":true,"holding_days":1},"performance":{"sharpe":-2.91,"max_drawdown_pct":-93.3,"alpha_annualized_pct":-54.3,"p_value":5.8e-7,"regime_breakdown":{"UP":-2.430631,"DOWN":-1.209649,"FLAT":-4.154616}},"executed_at":"2026-07-29T01:06:18","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.51,"max_drawdown_pct":-85.7,"alpha_annualized_pct":-33.8,"p_value":0.0014,"regime_breakdown":{"UP":-1.333024,"DOWN":-0.320292,"FLAT":-2.576897}},"executed_at":"2026-07-29T01:06:21","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.02,"max_drawdown_pct":-11.4,"alpha_annualized_pct":5,"p_value":0.3,"regime_breakdown":{"UP":1.39607,"DOWN":1.231327,"FLAT":0.446988}},"executed_at":"2026-07-29T01:06:25","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.16,"max_drawdown_pct":-11,"alpha_annualized_pct":4.6,"p_value":0.23,"regime_breakdown":{"UP":1.535288,"DOWN":0.802398,"FLAT":1.130003}},"executed_at":"2026-07-29T01:06:25","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.26,"max_drawdown_pct":-15.8,"alpha_annualized_pct":20.6,"p_value":0.012,"regime_breakdown":{"UP":2.022259,"DOWN":2.179361,"FLAT":0.13916}},"executed_at":"2026-07-29T01:06:25","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.18,"max_drawdown_pct":-13.5,"alpha_annualized_pct":18.3,"p_value":0.019,"regime_breakdown":{"UP":1.361092,"DOWN":2.779743,"FLAT":0.352957}},"executed_at":"2026-07-29T01:06:26","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.77,"max_drawdown_pct":-42,"alpha_annualized_pct":-7.7,"p_value":0.31,"regime_breakdown":{"UP":-1.409604,"DOWN":-1.265837,"FLAT":0.289962}},"executed_at":"2026-07-29T01:06:26","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.38,"max_drawdown_pct":-29.9,"alpha_annualized_pct":-3.1,"p_value":0.66,"regime_breakdown":{"UP":-0.671113,"DOWN":-1.265837,"FLAT":0.289962}},"executed_at":"2026-07-29T01:06:26","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.07,"max_drawdown_pct":-23.1,"alpha_annualized_pct":0.4,"p_value":0.94,"regime_breakdown":{"UP":-0.41149,"DOWN":-0.54911,"FLAT":0.765972}},"executed_at":"2026-07-29T01:06:28","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.17,"max_drawdown_pct":-12.8,"alpha_annualized_pct":-0.4,"p_value":0.91,"regime_breakdown":{"UP":2.902211,"DOWN":-1.048025,"FLAT":-2.102767}},"executed_at":"2026-07-29T01:06:29","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.67,"max_drawdown_pct":-11.2,"alpha_annualized_pct":-1.3,"p_value":0.64,"regime_breakdown":{"UP":2.477623,"DOWN":-2.499856,"FLAT":-1.797789}},"executed_at":"2026-07-29T01:06:29","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-06-09; cost=5bps","supports_verdict":"marginal","source_run_id":"r-calendar-effects-us-sp500-0088","search_tsv":"'-01':11 '-06':14 '-09':15 '-14':12 '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.23.","value":0.23,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 192 parameter combinations.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.23':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.28 across 192 runs.","value":0.28,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.28':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.96 across 192 runs.","value":0.96,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.96':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"}}