{
 "schema_version": "ctys-outlook-weekly-v1",
 "week": "2026-W29",
 "generated_utc": "2026-07-15T09:03:05+00:00",
 "horizon_days": 21,
 "data_through": "2026-07-14",
 "assets": {
  "SPY": {
   "schema_version": "ctys-agent-regime-outlook-v1",
   "request_id": "93896315-0d13-49b7-86e1-f01a16d849b9",
   "generated_utc": "2026-07-15T09:03:05.616839Z",
   "methodology_url": "https://crashtestyourstrategy.com/methodology",
   "revision_required": false,
   "grounding_summary": "As of 2026-07-14 (data through 2026-07-14), SPY is in the BULL regime; model-conditional probability of a stress regime (BEAR or CRISIS) over the next 21 trading days is 8% vs 15% unconditional.",
   "methodological_limitations": [
    "Probabilities are model-conditional statements about membership in operationally defined regime classes (trailing 21-day volatility/drift quantile labels) \u2014 not predictions of returns or market direction, and not a claim about future market behavior.",
    "Validated out-of-sample under a preregistered protocol (expanding-window, 2013-2025): the covariate model beat the persistence baseline at p<0.05 on SPY/QQQ/TLT; on GLD at h=21 the improvement was directional but not significant. Only horizons of 5 and 21 trading days and the four listed assets are validated \u2014 other inputs are rejected rather than extrapolated.",
    "The model mildly underpredicts the two stress classes (e.g. realized CRISIS share 5.6% vs predicted 4.4%, SPY h=21 test window); treat stress probabilities as slightly conservative.",
    "BEAR/CRISIS days are rare (~10% of history each); conditional estimates for stress regimes carry the widest uncertainty. Probabilities are shrunk toward the unconditional distribution.",
    "Annual seasonality terms were tested and falsified out-of-sample; calendar patterns are deliberately not part of this model.",
    "The underlying price history is refreshed daily with end-of-day bars (no intraday feed): the outlook is computed at the end of the stored series (see data_through / data_staleness_days), which typically lags the present by one trading day.",
    "Descriptive, not advisory. No suitability, timing, or ranking claim is made or implied."
   ],
   "asset": "SPY",
   "horizon_days": 21,
   "as_of": "2026-07-14",
   "data_through": "2026-07-14",
   "data_staleness_days": 1,
   "current_regime": "BULL",
   "regime_probabilities": {
    "BULL": 0.5825,
    "SIDEWAYS": 0.341,
    "BEAR": 0.0601,
    "CRISIS": 0.0164
   },
   "persistence_baseline": {
    "BULL": 0.5302,
    "SIDEWAYS": 0.3714,
    "BEAR": 0.0644,
    "CRISIS": 0.034
   },
   "unconditional_baseline": {
    "BULL": 0.4734,
    "SIDEWAYS": 0.3786,
    "BEAR": 0.0782,
    "CRISIS": 0.0698
   },
   "stress_probability": 0.0765,
   "stress_probability_unconditional": 0.1481,
   "model": {
    "tier": "covariate_logit_v1",
    "features": [
     "reg_0",
     "reg_1",
     "reg_2",
     "reg_3",
     "log_vol21",
     "drift21",
     "drawdown",
     "vol_trend"
    ],
    "regularization_c": 0.01,
    "n_training_pairs": 6148,
    "shrinkage": "toward unconditional, k=10, n_eff=2921"
   },
   "validation": {
    "protocol": "docs/prereg_regime_probability_2026-06-10.md (preregistered, criteria frozen pre-fit)",
    "result": "Out-of-sample 2013-2025, expanding-window yearly refits: covariate logit beat the persistence-Markov baseline (DM p<0.05) on SPY/QQQ/TLT at h=5 and h=21; GLD h=21 direction-only. Persistence baseline beat the unconditional distribution in 8/8 cells.",
    "seasonality": "Annual Fourier seasonality terms were tested and FALSIFIED out-of-sample (0/8 cells improved; significantly worse on GLD and SPY h=21) \u2014 excluded from this model."
   }
  },
  "QQQ": {
   "schema_version": "ctys-agent-regime-outlook-v1",
   "request_id": "985d4e87-5cbd-44de-813c-e22da6f74593",
   "generated_utc": "2026-07-15T09:03:05.629349Z",
   "methodology_url": "https://crashtestyourstrategy.com/methodology",
   "revision_required": false,
   "grounding_summary": "As of 2026-07-14 (data through 2026-07-14), QQQ is in the SIDEWAYS regime; model-conditional probability of a stress regime (BEAR or CRISIS) over the next 21 trading days is 10% vs 9% unconditional.",
   "methodological_limitations": [
    "Probabilities are model-conditional statements about membership in operationally defined regime classes (trailing 21-day volatility/drift quantile labels) \u2014 not predictions of returns or market direction, and not a claim about future market behavior.",
    "Validated out-of-sample under a preregistered protocol (expanding-window, 2013-2025): the covariate model beat the persistence baseline at p<0.05 on SPY/QQQ/TLT; on GLD at h=21 the improvement was directional but not significant. Only horizons of 5 and 21 trading days and the four listed assets are validated \u2014 other inputs are rejected rather than extrapolated.",
    "The model mildly underpredicts the two stress classes (e.g. realized CRISIS share 5.6% vs predicted 4.4%, SPY h=21 test window); treat stress probabilities as slightly conservative.",
    "BEAR/CRISIS days are rare (~10% of history each); conditional estimates for stress regimes carry the widest uncertainty. Probabilities are shrunk toward the unconditional distribution.",
    "Annual seasonality terms were tested and falsified out-of-sample; calendar patterns are deliberately not part of this model.",
    "The underlying price history is refreshed daily with end-of-day bars (no intraday feed): the outlook is computed at the end of the stored series (see data_through / data_staleness_days), which typically lags the present by one trading day.",
    "Descriptive, not advisory. No suitability, timing, or ranking claim is made or implied."
   ],
   "asset": "QQQ",
   "horizon_days": 21,
   "as_of": "2026-07-14",
   "data_through": "2026-07-14",
   "data_staleness_days": 1,
   "current_regime": "SIDEWAYS",
   "regime_probabilities": {
    "BULL": 0.4522,
    "SIDEWAYS": 0.448,
    "BEAR": 0.0943,
    "CRISIS": 0.0056
   },
   "persistence_baseline": {
    "BULL": 0.4921,
    "SIDEWAYS": 0.4199,
    "BEAR": 0.0727,
    "CRISIS": 0.0153
   },
   "unconditional_baseline": {
    "BULL": 0.5033,
    "SIDEWAYS": 0.4095,
    "BEAR": 0.0692,
    "CRISIS": 0.018
   },
   "stress_probability": 0.0998,
   "stress_probability_unconditional": 0.0872,
   "model": {
    "tier": "covariate_logit_v1",
    "features": [
     "reg_0",
     "reg_1",
     "reg_2",
     "reg_3",
     "log_vol21",
     "drift21",
     "drawdown",
     "vol_trend"
    ],
    "regularization_c": 0.01,
    "n_training_pairs": 6148,
    "shrinkage": "toward unconditional, k=10, n_eff=2527"
   },
   "validation": {
    "protocol": "docs/prereg_regime_probability_2026-06-10.md (preregistered, criteria frozen pre-fit)",
    "result": "Out-of-sample 2013-2025, expanding-window yearly refits: covariate logit beat the persistence-Markov baseline (DM p<0.05) on SPY/QQQ/TLT at h=5 and h=21; GLD h=21 direction-only. Persistence baseline beat the unconditional distribution in 8/8 cells.",
    "seasonality": "Annual Fourier seasonality terms were tested and FALSIFIED out-of-sample (0/8 cells improved; significantly worse on GLD and SPY h=21) \u2014 excluded from this model."
   }
  },
  "GLD": {
   "schema_version": "ctys-agent-regime-outlook-v1",
   "request_id": "6b7516fd-a904-44af-9c0f-9e7c75a13e61",
   "generated_utc": "2026-07-15T09:03:05.641165Z",
   "methodology_url": "https://crashtestyourstrategy.com/methodology",
   "revision_required": true,
   "grounding_summary": "As of 2026-07-14 (data through 2026-07-14), GLD is in the BEAR regime; model-conditional probability of a stress regime (BEAR or CRISIS) over the next 21 trading days is 28% vs 15% unconditional. An assessment assuming calm conditions omits this elevated stress probability.",
   "methodological_limitations": [
    "Probabilities are model-conditional statements about membership in operationally defined regime classes (trailing 21-day volatility/drift quantile labels) \u2014 not predictions of returns or market direction, and not a claim about future market behavior.",
    "Validated out-of-sample under a preregistered protocol (expanding-window, 2013-2025): the covariate model beat the persistence baseline at p<0.05 on SPY/QQQ/TLT; on GLD at h=21 the improvement was directional but not significant. Only horizons of 5 and 21 trading days and the four listed assets are validated \u2014 other inputs are rejected rather than extrapolated.",
    "The model mildly underpredicts the two stress classes (e.g. realized CRISIS share 5.6% vs predicted 4.4%, SPY h=21 test window); treat stress probabilities as slightly conservative.",
    "BEAR/CRISIS days are rare (~10% of history each); conditional estimates for stress regimes carry the widest uncertainty. Probabilities are shrunk toward the unconditional distribution.",
    "Annual seasonality terms were tested and falsified out-of-sample; calendar patterns are deliberately not part of this model.",
    "The underlying price history is refreshed daily with end-of-day bars (no intraday feed): the outlook is computed at the end of the stored series (see data_through / data_staleness_days), which typically lags the present by one trading day.",
    "Descriptive, not advisory. No suitability, timing, or ranking claim is made or implied."
   ],
   "asset": "GLD",
   "horizon_days": 21,
   "as_of": "2026-07-14",
   "data_through": "2026-07-14",
   "data_staleness_days": 1,
   "current_regime": "BEAR",
   "regime_probabilities": {
    "BULL": 0.1817,
    "SIDEWAYS": 0.5413,
    "BEAR": 0.1334,
    "CRISIS": 0.1435
   },
   "persistence_baseline": {
    "BULL": 0.2975,
    "SIDEWAYS": 0.5056,
    "BEAR": 0.0899,
    "CRISIS": 0.107
   },
   "unconditional_baseline": {
    "BULL": 0.3395,
    "SIDEWAYS": 0.5141,
    "BEAR": 0.0695,
    "CRISIS": 0.0769
   },
   "stress_probability": 0.277,
   "stress_probability_unconditional": 0.1464,
   "model": {
    "tier": "covariate_logit_v1",
    "features": [
     "reg_0",
     "reg_1",
     "reg_2",
     "reg_3",
     "log_vol21",
     "drift21",
     "drawdown",
     "vol_trend"
    ],
    "regularization_c": 0.01,
    "n_training_pairs": 4879,
    "shrinkage": "toward unconditional, k=10, n_eff=340"
   },
   "validation": {
    "protocol": "docs/prereg_regime_probability_2026-06-10.md (preregistered, criteria frozen pre-fit)",
    "result": "Out-of-sample 2013-2025, expanding-window yearly refits: covariate logit beat the persistence-Markov baseline (DM p<0.05) on SPY/QQQ/TLT at h=5 and h=21; GLD h=21 direction-only. Persistence baseline beat the unconditional distribution in 8/8 cells.",
    "seasonality": "Annual Fourier seasonality terms were tested and FALSIFIED out-of-sample (0/8 cells improved; significantly worse on GLD and SPY h=21) \u2014 excluded from this model."
   }
  },
  "TLT": {
   "schema_version": "ctys-agent-regime-outlook-v1",
   "request_id": "73cb2727-2fee-4225-bc38-09a96e983078",
   "generated_utc": "2026-07-15T09:03:05.652175Z",
   "methodology_url": "https://crashtestyourstrategy.com/methodology",
   "revision_required": false,
   "grounding_summary": "As of 2026-07-14 (data through 2026-07-14), TLT is in the SIDEWAYS regime; model-conditional probability of a stress regime (BEAR or CRISIS) over the next 21 trading days is 13% vs 27% unconditional.",
   "methodological_limitations": [
    "Probabilities are model-conditional statements about membership in operationally defined regime classes (trailing 21-day volatility/drift quantile labels) \u2014 not predictions of returns or market direction, and not a claim about future market behavior.",
    "Validated out-of-sample under a preregistered protocol (expanding-window, 2013-2025): the covariate model beat the persistence baseline at p<0.05 on SPY/QQQ/TLT; on GLD at h=21 the improvement was directional but not significant. Only horizons of 5 and 21 trading days and the four listed assets are validated \u2014 other inputs are rejected rather than extrapolated.",
    "The model mildly underpredicts the two stress classes (e.g. realized CRISIS share 5.6% vs predicted 4.4%, SPY h=21 test window); treat stress probabilities as slightly conservative.",
    "BEAR/CRISIS days are rare (~10% of history each); conditional estimates for stress regimes carry the widest uncertainty. Probabilities are shrunk toward the unconditional distribution.",
    "Annual seasonality terms were tested and falsified out-of-sample; calendar patterns are deliberately not part of this model.",
    "The underlying price history is refreshed daily with end-of-day bars (no intraday feed): the outlook is computed at the end of the stored series (see data_through / data_staleness_days), which typically lags the present by one trading day.",
    "Descriptive, not advisory. No suitability, timing, or ranking claim is made or implied."
   ],
   "asset": "TLT",
   "horizon_days": 21,
   "as_of": "2026-07-14",
   "data_through": "2026-07-14",
   "data_staleness_days": 1,
   "current_regime": "SIDEWAYS",
   "regime_probabilities": {
    "BULL": 0.371,
    "SIDEWAYS": 0.4968,
    "BEAR": 0.0902,
    "CRISIS": 0.0421
   },
   "persistence_baseline": {
    "BULL": 0.2678,
    "SIDEWAYS": 0.497,
    "BEAR": 0.1299,
    "CRISIS": 0.1052
   },
   "unconditional_baseline": {
    "BULL": 0.2528,
    "SIDEWAYS": 0.4736,
    "BEAR": 0.1301,
    "CRISIS": 0.1435
   },
   "stress_probability": 0.1323,
   "stress_probability_unconditional": 0.2736,
   "model": {
    "tier": "covariate_logit_v1",
    "features": [
     "reg_0",
     "reg_1",
     "reg_2",
     "reg_3",
     "log_vol21",
     "drift21",
     "drawdown",
     "vol_trend"
    ],
    "regularization_c": 0.01,
    "n_training_pairs": 5461,
    "shrinkage": "toward unconditional, k=10, n_eff=2597"
   },
   "validation": {
    "protocol": "docs/prereg_regime_probability_2026-06-10.md (preregistered, criteria frozen pre-fit)",
    "result": "Out-of-sample 2013-2025, expanding-window yearly refits: covariate logit beat the persistence-Markov baseline (DM p<0.05) on SPY/QQQ/TLT at h=5 and h=21; GLD h=21 direction-only. Persistence baseline beat the unconditional distribution in 8/8 cells.",
    "seasonality": "Annual Fourier seasonality terms were tested and FALSIFIED out-of-sample (0/8 cells improved; significantly worse on GLD and SPY h=21) \u2014 excluded from this model."
   }
  }
 },
 "source": {
  "tool": "regime_outlook",
  "mcp_endpoint": "https://mcp.crashtestyourstrategy.ai/mcp",
  "docs": "https://crashtestyourstrategy.com/interop",
  "archive": "https://crashtestyourstrategy.com/outlook/archive/"
 },
 "descriptive_disclaimer": "Model-conditional probabilities of membership in operationally defined regime classes \u2014 descriptive, not a market prediction, not investment advice. Fields follow the ctys-agent schema family (snake_case); the live source of truth is the regime_outlook tool on the open MCP server."
}