{
 "schema_version": "ctys-outlook-weekly-v1",
 "week": "2026-W33",
 "generated_utc": "2026-08-10T03:15:01+00:00",
 "horizon_days": 21,
 "data_through": "2026-08-07",
 "assets": {
  "SPY": {
   "schema_version": "ctys-agent-regime-outlook-v1",
   "request_id": "4eedc02a-e38a-45b6-8bb0-ed70ad615834",
   "generated_utc": "2026-08-10T03:15:01.918853Z",
   "methodology_url": "https://crashtestyourstrategy.com/methodology",
   "revision_required": false,
   "grounding_summary": "As of 2026-08-07 (data through 2026-08-07), SPY is in the SIDEWAYS regime; model-conditional probability of a stress regime (BEAR or CRISIS) over the next 21 trading days is 10% 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-08-07",
   "data_through": "2026-08-07",
   "data_staleness_days": 3,
   "current_regime": "SIDEWAYS",
   "regime_probabilities": {
    "BULL": 0.6173,
    "SIDEWAYS": 0.2841,
    "BEAR": 0.0835,
    "CRISIS": 0.0152
   },
   "persistence_baseline": {
    "BULL": 0.4644,
    "SIDEWAYS": 0.3939,
    "BEAR": 0.0831,
    "CRISIS": 0.0585
   },
   "unconditional_baseline": {
    "BULL": 0.4736,
    "SIDEWAYS": 0.3788,
    "BEAR": 0.078,
    "CRISIS": 0.0696
   },
   "stress_probability": 0.0986,
   "stress_probability_unconditional": 0.1476,
   "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": 6166,
    "shrinkage": "toward unconditional, k=10, n_eff=2344"
   },
   "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": "367988b2-1c55-4999-999c-3f9ea90ee48f",
   "generated_utc": "2026-08-10T03:15:02.149569Z",
   "methodology_url": "https://crashtestyourstrategy.com/methodology",
   "revision_required": true,
   "grounding_summary": "As of 2026-08-07 (data through 2026-08-07), QQQ is in the BEAR regime; model-conditional probability of a stress regime (BEAR or CRISIS) over the next 21 trading days is 28% vs 9% 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": "QQQ",
   "horizon_days": 21,
   "as_of": "2026-08-07",
   "data_through": "2026-08-07",
   "data_staleness_days": 3,
   "current_regime": "BEAR",
   "regime_probabilities": {
    "BULL": 0.1655,
    "SIDEWAYS": 0.5501,
    "BEAR": 0.258,
    "CRISIS": 0.0265
   },
   "persistence_baseline": {
    "BULL": 0.4046,
    "SIDEWAYS": 0.4247,
    "BEAR": 0.1224,
    "CRISIS": 0.0482
   },
   "unconditional_baseline": {
    "BULL": 0.5019,
    "SIDEWAYS": 0.4101,
    "BEAR": 0.0701,
    "CRISIS": 0.0179
   },
   "stress_probability": 0.2844,
   "stress_probability_unconditional": 0.088,
   "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": 6166,
    "shrinkage": "toward unconditional, k=10, n_eff=433"
   },
   "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": "67143f31-1dfc-43c8-b236-15332d2905bc",
   "generated_utc": "2026-08-10T03:15:02.288715Z",
   "methodology_url": "https://crashtestyourstrategy.com/methodology",
   "revision_required": true,
   "grounding_summary": "As of 2026-08-07 (data through 2026-08-07), GLD is in the SIDEWAYS regime; model-conditional probability of a stress regime (BEAR or CRISIS) over the next 21 trading days is 30% 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-08-07",
   "data_through": "2026-08-07",
   "data_staleness_days": 3,
   "current_regime": "SIDEWAYS",
   "regime_probabilities": {
    "BULL": 0.1946,
    "SIDEWAYS": 0.507,
    "BEAR": 0.1836,
    "CRISIS": 0.1148
   },
   "persistence_baseline": {
    "BULL": 0.3452,
    "SIDEWAYS": 0.528,
    "BEAR": 0.0709,
    "CRISIS": 0.0559
   },
   "unconditional_baseline": {
    "BULL": 0.3383,
    "SIDEWAYS": 0.5138,
    "BEAR": 0.0713,
    "CRISIS": 0.0766
   },
   "stress_probability": 0.2983,
   "stress_probability_unconditional": 0.1479,
   "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": 4897,
    "shrinkage": "toward unconditional, k=10, n_eff=2528"
   },
   "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": "d2984fce-a174-4289-b05f-c5eca6f83c4f",
   "generated_utc": "2026-08-10T03:15:02.433488Z",
   "methodology_url": "https://crashtestyourstrategy.com/methodology",
   "revision_required": false,
   "grounding_summary": "As of 2026-08-07 (data through 2026-08-07), TLT is in the SIDEWAYS regime; model-conditional probability of a stress regime (BEAR or CRISIS) over the next 21 trading days is 14% 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-08-07",
   "data_through": "2026-08-07",
   "data_staleness_days": 3,
   "current_regime": "SIDEWAYS",
   "regime_probabilities": {
    "BULL": 0.3746,
    "SIDEWAYS": 0.4887,
    "BEAR": 0.093,
    "CRISIS": 0.0437
   },
   "persistence_baseline": {
    "BULL": 0.2669,
    "SIDEWAYS": 0.4988,
    "BEAR": 0.1295,
    "CRISIS": 0.1048
   },
   "unconditional_baseline": {
    "BULL": 0.252,
    "SIDEWAYS": 0.4753,
    "BEAR": 0.1297,
    "CRISIS": 0.143
   },
   "stress_probability": 0.1367,
   "stress_probability_unconditional": 0.2727,
   "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": 5479,
    "shrinkage": "toward unconditional, k=10, n_eff=2615"
   },
   "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."
   }
  }
 },
 "market_map": {
  "schema_version": "ctys-agent-market-regime-map-v1",
  "request_id": "91e37985-19e1-4589-b16b-6bb2698cf1ea",
  "generated_utc": "2026-08-10T03:15:03.855419Z",
  "methodology_url": "https://crashtestyourstrategy.com/methodology",
  "revision_required": true,
  "grounding_summary": "As of 2026-08-08 (latest data; earliest 2026-08-07) across 18 category proxies at h=21: 3 BULL, 12 SIDEWAYS, 2 BEAR, 1 CRISIS. Highest stress probability: Crude oil (USO) at 50% vs 25% unconditional. 3 categories are stress-elevated vs baseline: US tech / growth equity (QQQ), Emerging-markets equity (EEM), Crude oil (USO) \u2014 an assessment assuming calm conditions omits this.",
  "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. The map deliberately ships no directional up/down forecast: regime membership is the validated signal of this layer; short-horizon return direction is not.",
   "Each (asset, horizon) cell ships only the model tier that passed the preregistered out-of-sample rule for that cell (docs/prereg_market_regime_map_2026-07-22.md): covariate logit, else persistence-Markov, else the unconditional distribution. Cells labeled 'unconditional' carry no validated conditional information at that horizon. This per-cell rule is deliberately stricter than the asset-level rule of the standalone regime_outlook tool, so tiers can differ between the two surfaces for the same asset.",
   "conditional_forward_returns is a historical description, not a forecast: the distribution of h-day forward returns over all past days sharing the current operational regime label. Windows overlap heavily (serial correlation \u2014 the effective sample is far smaller than n_windows), the label is coarse, and the distribution is not gated by the validation protocol.",
   "The category proxies are not independent signals: US sector ETFs largely re-express one common equity factor (see equity_factor.r2_vs_spy). Reading 18 rows as 18 independent confirmations overstates the information content severalfold.",
   "BEAR/CRISIS days are rare (~10% of history each); conditional estimates for stress regimes carry the widest uncertainty. Shipped probabilities are shrunk toward the unconditional distribution (k=10).",
   "Price series are raw (unadjusted) daily closes: dividend ex-dates appear as small price drops, and XLF's 2016-09 XLRE spin-off distribution appears as a one-day artifact. BTC trades a 7-day week, so 'h trading days' spans fewer calendar days than for equities; per-asset data_through can differ by a day. Bars are end-of-day (no intraday feed).",
   "Descriptive, not advisory. No suitability, timing, or ranking claim is made or implied; the map does not rank categories."
  ],
  "horizon_days": 21,
  "n_categories": 18,
  "data_through_latest": "2026-08-08",
  "data_through_earliest": "2026-08-07",
  "regime_counts": {
   "SIDEWAYS": 12,
   "BEAR": 2,
   "BULL": 3,
   "CRISIS": 1
  },
  "entries": [
   {
    "category": "us_large_cap",
    "name": "US large-cap equity",
    "asset": "SPY",
    "group": "us_equity",
    "current_regime": "SIDEWAYS",
    "days_in_current_regime": 4,
    "regime_probabilities": {
     "BULL": 0.6173,
     "SIDEWAYS": 0.2841,
     "BEAR": 0.0835,
     "CRISIS": 0.0152
    },
    "persistence_baseline": {
     "BULL": 0.4644,
     "SIDEWAYS": 0.3939,
     "BEAR": 0.0831,
     "CRISIS": 0.0585
    },
    "unconditional_baseline": {
     "BULL": 0.4736,
     "SIDEWAYS": 0.3788,
     "BEAR": 0.078,
     "CRISIS": 0.0696
    },
    "stress_probability": 0.0986,
    "stress_probability_unconditional": 0.1476,
    "stress_elevated": false,
    "model_tier": "covariate_logit",
    "tier_pvalues": {
     "m1_vs_b1": 0.0147,
     "b1_vs_b0": 0.0005
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.076,
      "q25": -0.0144,
      "q50": 0.0174,
      "q75": 0.0395,
      "q95": 0.0696
     },
     "share_negative_hist": 0.3346,
     "n_windows": 2334,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (SIDEWAYS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": null,
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "us_tech_growth",
    "name": "US tech / growth equity",
    "asset": "QQQ",
    "group": "us_equity",
    "current_regime": "BEAR",
    "days_in_current_regime": 1,
    "regime_probabilities": {
     "BULL": 0.1655,
     "SIDEWAYS": 0.5501,
     "BEAR": 0.258,
     "CRISIS": 0.0265
    },
    "persistence_baseline": {
     "BULL": 0.4046,
     "SIDEWAYS": 0.4247,
     "BEAR": 0.1224,
     "CRISIS": 0.0482
    },
    "unconditional_baseline": {
     "BULL": 0.5019,
     "SIDEWAYS": 0.4101,
     "BEAR": 0.0701,
     "CRISIS": 0.0179
    },
    "stress_probability": 0.2844,
    "stress_probability_unconditional": 0.088,
    "stress_elevated": true,
    "model_tier": "covariate_logit",
    "tier_pvalues": {
     "m1_vs_b1": 0.0499,
     "b1_vs_b0": 0.0022
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.1154,
      "q25": -0.0479,
      "q50": 0.0122,
      "q75": 0.0569,
      "q95": 0.1155
     },
     "share_negative_hist": 0.4343,
     "n_windows": 426,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (BEAR); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 1.26,
     "r2_vs_spy": 0.9,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "sector_technology",
    "name": "Technology sector",
    "asset": "XLK",
    "group": "us_sector",
    "current_regime": "SIDEWAYS",
    "days_in_current_regime": 4,
    "regime_probabilities": {
     "BULL": 0.4373,
     "SIDEWAYS": 0.4397,
     "BEAR": 0.091,
     "CRISIS": 0.032
    },
    "persistence_baseline": {
     "BULL": 0.4373,
     "SIDEWAYS": 0.4397,
     "BEAR": 0.091,
     "CRISIS": 0.032
    },
    "unconditional_baseline": {
     "BULL": 0.443,
     "SIDEWAYS": 0.4303,
     "BEAR": 0.0907,
     "CRISIS": 0.0361
    },
    "stress_probability": 0.123,
    "stress_probability_unconditional": 0.1267,
    "stress_elevated": false,
    "model_tier": "persistence",
    "tier_pvalues": {
     "m1_vs_b1": 0.8348,
     "b1_vs_b0": 0.0003
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.1033,
      "q25": -0.0229,
      "q50": 0.0188,
      "q75": 0.0558,
      "q95": 0.102
     },
     "share_negative_hist": 0.3696,
     "n_windows": 2749,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (SIDEWAYS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 1.45,
     "r2_vs_spy": 0.8,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "sector_financials",
    "name": "Financials sector",
    "asset": "XLF",
    "group": "us_sector",
    "current_regime": "BULL",
    "days_in_current_regime": 45,
    "regime_probabilities": {
     "BULL": 0.5494,
     "SIDEWAYS": 0.4167,
     "BEAR": 0.029,
     "CRISIS": 0.005
    },
    "persistence_baseline": {
     "BULL": 0.4844,
     "SIDEWAYS": 0.4224,
     "BEAR": 0.0634,
     "CRISIS": 0.0298
    },
    "unconditional_baseline": {
     "BULL": 0.4331,
     "SIDEWAYS": 0.413,
     "BEAR": 0.0749,
     "CRISIS": 0.079
    },
    "stress_probability": 0.034,
    "stress_probability_unconditional": 0.1539,
    "stress_elevated": false,
    "model_tier": "covariate_logit",
    "tier_pvalues": {
     "m1_vs_b1": 0.0341,
     "b1_vs_b0": 0.0
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.0613,
      "q25": -0.0195,
      "q50": 0.007,
      "q75": 0.0305,
      "q95": 0.0648
     },
     "share_negative_hist": 0.429,
     "n_windows": 2753,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (BULL); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 0.77,
     "r2_vs_spy": 0.53,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "sector_energy",
    "name": "Energy sector",
    "asset": "XLE",
    "group": "us_sector",
    "current_regime": "BULL",
    "days_in_current_regime": 17,
    "regime_probabilities": {
     "BULL": 0.3923,
     "SIDEWAYS": 0.5164,
     "BEAR": 0.0595,
     "CRISIS": 0.0318
    },
    "persistence_baseline": {
     "BULL": 0.3886,
     "SIDEWAYS": 0.4605,
     "BEAR": 0.0839,
     "CRISIS": 0.067
    },
    "unconditional_baseline": {
     "BULL": 0.3388,
     "SIDEWAYS": 0.4498,
     "BEAR": 0.0936,
     "CRISIS": 0.1177
    },
    "stress_probability": 0.0913,
    "stress_probability_unconditional": 0.2113,
    "stress_elevated": false,
    "model_tier": "covariate_logit",
    "tier_pvalues": {
     "m1_vs_b1": 0.0015,
     "b1_vs_b0": 0.0
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.0949,
      "q25": -0.0311,
      "q50": 0.0038,
      "q75": 0.0397,
      "q95": 0.0836
     },
     "share_negative_hist": 0.4682,
     "n_windows": 2153,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (BULL); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 0.47,
     "r2_vs_spy": 0.11,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "sector_healthcare",
    "name": "Health-care sector",
    "asset": "XLV",
    "group": "us_sector",
    "current_regime": "SIDEWAYS",
    "days_in_current_regime": 2,
    "regime_probabilities": {
     "BULL": 0.4262,
     "SIDEWAYS": 0.4534,
     "BEAR": 0.0756,
     "CRISIS": 0.0448
    },
    "persistence_baseline": {
     "BULL": 0.4262,
     "SIDEWAYS": 0.4534,
     "BEAR": 0.0756,
     "CRISIS": 0.0447
    },
    "unconditional_baseline": {
     "BULL": 0.4273,
     "SIDEWAYS": 0.4448,
     "BEAR": 0.0737,
     "CRISIS": 0.0542
    },
    "stress_probability": 0.1204,
    "stress_probability_unconditional": 0.1278,
    "stress_elevated": false,
    "model_tier": "persistence",
    "tier_pvalues": {
     "m1_vs_b1": 0.9281,
     "b1_vs_b0": 0.0153
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.0728,
      "q25": -0.018,
      "q50": 0.0103,
      "q75": 0.0345,
      "q95": 0.0671
     },
     "share_negative_hist": 0.4004,
     "n_windows": 2830,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (SIDEWAYS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 0.45,
     "r2_vs_spy": 0.22,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "sector_industrials",
    "name": "Industrials sector",
    "asset": "XLI",
    "group": "us_sector",
    "current_regime": "SIDEWAYS",
    "days_in_current_regime": 8,
    "regime_probabilities": {
     "BULL": 0.4126,
     "SIDEWAYS": 0.4547,
     "BEAR": 0.0774,
     "CRISIS": 0.0552
    },
    "persistence_baseline": {
     "BULL": 0.4127,
     "SIDEWAYS": 0.4547,
     "BEAR": 0.0775,
     "CRISIS": 0.0551
    },
    "unconditional_baseline": {
     "BULL": 0.403,
     "SIDEWAYS": 0.4383,
     "BEAR": 0.0752,
     "CRISIS": 0.0835
    },
    "stress_probability": 0.1327,
    "stress_probability_unconditional": 0.1587,
    "stress_elevated": false,
    "model_tier": "persistence",
    "tier_pvalues": {
     "m1_vs_b1": 0.0819,
     "b1_vs_b0": 0.0001
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.0803,
      "q25": -0.018,
      "q50": 0.0158,
      "q75": 0.0439,
      "q95": 0.0823
     },
     "share_negative_hist": 0.3635,
     "n_windows": 2787,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (SIDEWAYS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 0.89,
     "r2_vs_spy": 0.67,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "sector_consumer_discretionary",
    "name": "Consumer-discretionary sector",
    "asset": "XLY",
    "group": "us_sector",
    "current_regime": "SIDEWAYS",
    "days_in_current_regime": 5,
    "regime_probabilities": {
     "BULL": 0.4156,
     "SIDEWAYS": 0.4653,
     "BEAR": 0.0969,
     "CRISIS": 0.0222
    },
    "persistence_baseline": {
     "BULL": 0.4283,
     "SIDEWAYS": 0.4359,
     "BEAR": 0.0775,
     "CRISIS": 0.0583
    },
    "unconditional_baseline": {
     "BULL": 0.4314,
     "SIDEWAYS": 0.4227,
     "BEAR": 0.0743,
     "CRISIS": 0.0716
    },
    "stress_probability": 0.1191,
    "stress_probability_unconditional": 0.1459,
    "stress_elevated": false,
    "model_tier": "covariate_logit",
    "tier_pvalues": {
     "m1_vs_b1": 0.0161,
     "b1_vs_b0": 0.0002
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.0828,
      "q25": -0.0204,
      "q50": 0.0151,
      "q75": 0.048,
      "q95": 0.0929
     },
     "share_negative_hist": 0.3761,
     "n_windows": 2691,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (SIDEWAYS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 1.17,
     "r2_vs_spy": 0.73,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "sector_consumer_staples",
    "name": "Consumer-staples sector",
    "asset": "XLP",
    "group": "us_sector",
    "current_regime": "SIDEWAYS",
    "days_in_current_regime": 4,
    "regime_probabilities": {
     "BULL": 0.4188,
     "SIDEWAYS": 0.471,
     "BEAR": 0.0696,
     "CRISIS": 0.0406
    },
    "persistence_baseline": {
     "BULL": 0.4174,
     "SIDEWAYS": 0.4793,
     "BEAR": 0.0708,
     "CRISIS": 0.0325
    },
    "unconditional_baseline": {
     "BULL": 0.4188,
     "SIDEWAYS": 0.471,
     "BEAR": 0.0696,
     "CRISIS": 0.0406
    },
    "stress_probability": 0.1102,
    "stress_probability_unconditional": 0.1102,
    "stress_elevated": false,
    "model_tier": "unconditional",
    "tier_pvalues": {
     "m1_vs_b1": 0.363,
     "b1_vs_b0": 0.0643
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.0572,
      "q25": -0.0142,
      "q50": 0.0079,
      "q75": 0.0285,
      "q95": 0.0558
     },
     "share_negative_hist": 0.3961,
     "n_windows": 3004,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (SIDEWAYS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 0.21,
     "r2_vs_spy": 0.06,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "sector_utilities",
    "name": "Utilities sector",
    "asset": "XLU",
    "group": "us_sector",
    "current_regime": "SIDEWAYS",
    "days_in_current_regime": 13,
    "regime_probabilities": {
     "BULL": 0.4031,
     "SIDEWAYS": 0.469,
     "BEAR": 0.0705,
     "CRISIS": 0.0574
    },
    "persistence_baseline": {
     "BULL": 0.4031,
     "SIDEWAYS": 0.469,
     "BEAR": 0.0705,
     "CRISIS": 0.0573
    },
    "unconditional_baseline": {
     "BULL": 0.3988,
     "SIDEWAYS": 0.4578,
     "BEAR": 0.0704,
     "CRISIS": 0.073
    },
    "stress_probability": 0.1279,
    "stress_probability_unconditional": 0.1434,
    "stress_elevated": false,
    "model_tier": "persistence",
    "tier_pvalues": {
     "m1_vs_b1": 0.0584,
     "b1_vs_b0": 0.0178
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.0653,
      "q25": -0.0193,
      "q50": 0.008,
      "q75": 0.0343,
      "q95": 0.0684
     },
     "share_negative_hist": 0.3975,
     "n_windows": 2913,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (SIDEWAYS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 0.34,
     "r2_vs_spy": 0.1,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "sector_materials",
    "name": "Materials sector",
    "asset": "XLB",
    "group": "us_sector",
    "current_regime": "SIDEWAYS",
    "days_in_current_regime": 22,
    "regime_probabilities": {
     "BULL": 0.4228,
     "SIDEWAYS": 0.455,
     "BEAR": 0.0671,
     "CRISIS": 0.0551
    },
    "persistence_baseline": {
     "BULL": 0.4228,
     "SIDEWAYS": 0.4551,
     "BEAR": 0.0671,
     "CRISIS": 0.055
    },
    "unconditional_baseline": {
     "BULL": 0.4184,
     "SIDEWAYS": 0.4426,
     "BEAR": 0.0648,
     "CRISIS": 0.0741
    },
    "stress_probability": 0.1222,
    "stress_probability_unconditional": 0.1389,
    "stress_elevated": false,
    "model_tier": "persistence",
    "tier_pvalues": {
     "m1_vs_b1": 0.1564,
     "b1_vs_b0": 0.0006
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.0864,
      "q25": -0.0225,
      "q50": 0.0145,
      "q75": 0.0467,
      "q95": 0.0892
     },
     "share_negative_hist": 0.3863,
     "n_windows": 2814,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (SIDEWAYS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 0.79,
     "r2_vs_spy": 0.49,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "intl_developed",
    "name": "Developed ex-US equity",
    "asset": "EFA",
    "group": "intl_equity",
    "current_regime": "SIDEWAYS",
    "days_in_current_regime": 1,
    "regime_probabilities": {
     "BULL": 0.4043,
     "SIDEWAYS": 0.4325,
     "BEAR": 0.0913,
     "CRISIS": 0.0719
    },
    "persistence_baseline": {
     "BULL": 0.4043,
     "SIDEWAYS": 0.4325,
     "BEAR": 0.0913,
     "CRISIS": 0.0718
    },
    "unconditional_baseline": {
     "BULL": 0.404,
     "SIDEWAYS": 0.4229,
     "BEAR": 0.09,
     "CRISIS": 0.083
    },
    "stress_probability": 0.1632,
    "stress_probability_unconditional": 0.1731,
    "stress_elevated": false,
    "model_tier": "persistence",
    "tier_pvalues": {
     "m1_vs_b1": 0.0827,
     "b1_vs_b0": 0.0
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.0784,
      "q25": -0.0218,
      "q50": 0.0098,
      "q75": 0.0338,
      "q95": 0.0728
     },
     "share_negative_hist": 0.4117,
     "n_windows": 2407,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (SIDEWAYS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 0.76,
     "r2_vs_spy": 0.56,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "emerging_markets",
    "name": "Emerging-markets equity",
    "asset": "EEM",
    "group": "intl_equity",
    "current_regime": "BEAR",
    "days_in_current_regime": 19,
    "regime_probabilities": {
     "BULL": 0.1445,
     "SIDEWAYS": 0.5665,
     "BEAR": 0.1311,
     "CRISIS": 0.1579
    },
    "persistence_baseline": {
     "BULL": 0.296,
     "SIDEWAYS": 0.4617,
     "BEAR": 0.0946,
     "CRISIS": 0.1477
    },
    "unconditional_baseline": {
     "BULL": 0.356,
     "SIDEWAYS": 0.475,
     "BEAR": 0.0789,
     "CRISIS": 0.0901
    },
    "stress_probability": 0.289,
    "stress_probability_unconditional": 0.169,
    "stress_elevated": true,
    "model_tier": "covariate_logit",
    "tier_pvalues": {
     "m1_vs_b1": 0.0,
     "b1_vs_b0": 0.0
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.1294,
      "q25": -0.0321,
      "q50": 0.0172,
      "q75": 0.072,
      "q95": 0.1322
     },
     "share_negative_hist": 0.4175,
     "n_windows": 400,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (BEAR); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 0.88,
     "r2_vs_spy": 0.46,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "treasuries_long",
    "name": "Long US Treasuries",
    "asset": "TLT",
    "group": "bonds_credit",
    "current_regime": "SIDEWAYS",
    "days_in_current_regime": 24,
    "regime_probabilities": {
     "BULL": 0.3746,
     "SIDEWAYS": 0.4887,
     "BEAR": 0.093,
     "CRISIS": 0.0437
    },
    "persistence_baseline": {
     "BULL": 0.2669,
     "SIDEWAYS": 0.4988,
     "BEAR": 0.1295,
     "CRISIS": 0.1048
    },
    "unconditional_baseline": {
     "BULL": 0.252,
     "SIDEWAYS": 0.4753,
     "BEAR": 0.1297,
     "CRISIS": 0.143
    },
    "stress_probability": 0.1367,
    "stress_probability_unconditional": 0.2727,
    "stress_elevated": false,
    "model_tier": "covariate_logit",
    "tier_pvalues": {
     "m1_vs_b1": 0.0,
     "b1_vs_b0": 0.0
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.054,
      "q25": -0.0193,
      "q50": 0.0035,
      "q75": 0.0255,
      "q95": 0.0585
     },
     "share_negative_hist": 0.4599,
     "n_windows": 2594,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (SIDEWAYS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 0.13,
     "r2_vs_spy": 0.02,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "credit_high_yield",
    "name": "High-yield credit",
    "asset": "HYG",
    "group": "bonds_credit",
    "current_regime": "SIDEWAYS",
    "days_in_current_regime": 19,
    "regime_probabilities": {
     "BULL": 0.4042,
     "SIDEWAYS": 0.4963,
     "BEAR": 0.0797,
     "CRISIS": 0.0199
    },
    "persistence_baseline": {
     "BULL": 0.4042,
     "SIDEWAYS": 0.4963,
     "BEAR": 0.0797,
     "CRISIS": 0.0199
    },
    "unconditional_baseline": {
     "BULL": 0.4102,
     "SIDEWAYS": 0.491,
     "BEAR": 0.0782,
     "CRISIS": 0.0206
    },
    "stress_probability": 0.0995,
    "stress_probability_unconditional": 0.0988,
    "stress_elevated": false,
    "model_tier": "persistence",
    "tier_pvalues": {
     "m1_vs_b1": 0.4015,
     "b1_vs_b0": 0.0069
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.0323,
      "q25": -0.009,
      "q50": 0.003,
      "q75": 0.0116,
      "q95": 0.0314
     },
     "share_negative_hist": 0.4182,
     "n_windows": 2102,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (SIDEWAYS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 0.25,
     "r2_vs_spy": 0.52,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "gold",
    "name": "Gold",
    "asset": "GLD",
    "group": "commodities",
    "current_regime": "SIDEWAYS",
    "days_in_current_regime": 3,
    "regime_probabilities": {
     "BULL": 0.3452,
     "SIDEWAYS": 0.528,
     "BEAR": 0.0709,
     "CRISIS": 0.056
    },
    "persistence_baseline": {
     "BULL": 0.3452,
     "SIDEWAYS": 0.528,
     "BEAR": 0.0709,
     "CRISIS": 0.0559
    },
    "unconditional_baseline": {
     "BULL": 0.3383,
     "SIDEWAYS": 0.5138,
     "BEAR": 0.0713,
     "CRISIS": 0.0766
    },
    "stress_probability": 0.1269,
    "stress_probability_unconditional": 0.1479,
    "stress_elevated": false,
    "model_tier": "persistence",
    "tier_pvalues": {
     "m1_vs_b1": 0.6416,
     "b1_vs_b0": 0.021
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.0617,
      "q25": -0.018,
      "q50": 0.0048,
      "q75": 0.0336,
      "q95": 0.0803
     },
     "share_negative_hist": 0.4381,
     "n_windows": 2520,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (SIDEWAYS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 0.24,
     "r2_vs_spy": 0.03,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "crude_oil",
    "name": "Crude oil",
    "asset": "USO",
    "group": "commodities",
    "current_regime": "CRISIS",
    "days_in_current_regime": 10,
    "regime_probabilities": {
     "BULL": 0.1548,
     "SIDEWAYS": 0.3408,
     "BEAR": 0.1334,
     "CRISIS": 0.371
    },
    "persistence_baseline": {
     "BULL": 0.1524,
     "SIDEWAYS": 0.3389,
     "BEAR": 0.1336,
     "CRISIS": 0.3751
    },
    "unconditional_baseline": {
     "BULL": 0.2954,
     "SIDEWAYS": 0.454,
     "BEAR": 0.1196,
     "CRISIS": 0.131
    },
    "stress_probability": 0.5044,
    "stress_probability_unconditional": 0.2506,
    "stress_elevated": true,
    "model_tier": "persistence",
    "tier_pvalues": {
     "m1_vs_b1": 0.5284,
     "b1_vs_b0": 0.0015
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.3215,
      "q25": -0.1281,
      "q50": -0.0022,
      "q75": 0.081,
      "q95": 0.2106
     },
     "share_negative_hist": 0.5051,
     "n_windows": 584,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (CRISIS); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": -0.04,
     "r2_vs_spy": 0.0,
     "window_days": 756
    },
    "data_through": "2026-08-07",
    "data_staleness_days": 3
   },
   {
    "category": "bitcoin",
    "name": "Bitcoin",
    "asset": "BTC",
    "group": "crypto",
    "current_regime": "BULL",
    "days_in_current_regime": 3,
    "regime_probabilities": {
     "BULL": 0.3503,
     "SIDEWAYS": 0.5459,
     "BEAR": 0.0614,
     "CRISIS": 0.0423
    },
    "persistence_baseline": {
     "BULL": 0.3506,
     "SIDEWAYS": 0.546,
     "BEAR": 0.0613,
     "CRISIS": 0.0421
    },
    "unconditional_baseline": {
     "BULL": 0.3216,
     "SIDEWAYS": 0.5385,
     "BEAR": 0.0734,
     "CRISIS": 0.0665
    },
    "stress_probability": 0.1038,
    "stress_probability_unconditional": 0.1399,
    "stress_elevated": false,
    "model_tier": "persistence",
    "tier_pvalues": {
     "m1_vs_b1": 0.182,
     "b1_vs_b0": 0.0
    },
    "conditional_forward_returns": {
     "quantiles": {
      "q05": -0.1812,
      "q25": -0.0504,
      "q50": 0.0288,
      "q75": 0.1187,
      "q95": 0.3523
     },
     "share_negative_hist": 0.43,
     "n_windows": 1207,
     "basis": "historical 21-day forward returns on all past days sharing the current regime label (BULL); overlapping windows \u2014 a description of the past, not a forecast"
    },
    "equity_factor": {
     "beta_vs_spy": 1.02,
     "r2_vs_spy": 0.13,
     "window_days": 756
    },
    "data_through": "2026-08-08",
    "data_staleness_days": 2
   }
  ],
  "omitted": [],
  "model": {
   "tiers_in_use": {
    "covariate_logit": 7,
    "persistence": 10,
    "unconditional": 1
   },
   "shrinkage": "shipped vectors shrunk toward unconditional, k=10",
   "validation_table": "agent_api/diagnostics/market_map_validation.json"
  },
  "validation": {
   "protocol": "docs/prereg_market_regime_map_2026-07-22.md",
   "parent_protocol": "docs/prereg_regime_probability_2026-06-10.md",
   "rule": "per (asset, horizon) cell: covariate_logit if M1_vs_B1 mean_diff<0 and p<0.05; else persistence if B1_vs_B0 mean_diff<0 and p<0.05; else unconditional",
   "summary": "per-cell out-of-sample grading over 36 (asset, horizon) cells: 24 covariate_logit, 11 persistence, 1 unconditional"
  }
 },
 "source": {
  "tool": "regime_outlook + market_regime_map",
  "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."
}