{
  "article": {
    "official_admission": false,
    "required_headings": [
      "Summary",
      "Source",
      "What the source claims",
      "Rules actually disclosed",
      "What had to be inferred",
      "Research questions",
      "Data",
      "Baseline implementation",
      "What the signal looks like",
      "Historical events",
      "State-space exploration",
      "Parameter sensitivity",
      "What worked",
      "What did not work",
      "Why the failures appear to happen",
      "Regime behavior",
      "Timing and cost sensitivity",
      "Combinations",
      "Candidate frontier",
      "Agent assessment",
      "Limitations",
      "What to try interactively",
      "Suggested next research",
      "Promotion status",
      "Trial ledger",
      "Validation protocol",
      "Portfolio contribution"
    ],
    "research_tags": [],
    "sections": {
      "Baseline implementation": {
        "band": 0.02,
        "below_days": 20,
        "claim_kind": "documented_but_incomplete",
        "classification": "exploratory inferred/public-proxy; not native Goodbye Kiss parity",
        "family": "goodbye-kiss-band",
        "id": "kiss-documented-20d-band2p-lag1",
        "lag_bars": 1,
        "metrics": {
          "buy_hold_spy_cagr": 0.11158032501972692,
          "cagr": 0.04500785229816184,
          "end": "2026-07-24",
          "exposure_risk_off": 0.8097447795823666,
          "max_drawdown": -0.4919794277527487,
          "n_bars": 6034,
          "sharpe": 0.2879917740101833,
          "start": "2002-07-31",
          "vol": 0.1562817287155236
        },
        "sma_window": 200,
        "source_fidelity": false
      },
      "Candidate frontier": [
        {
          "category": "simplest_reasonable",
          "reason": "Closest-to-documented 20d gate with 2% band and causal lag 1.",
          "variant_id": "kiss-documented-20d-band2p-lag1"
        },
        {
          "category": "best_sharpe",
          "reason": "Best causal Sharpe among tested variants.",
          "variant_id": "kiss-band25-lag2"
        }
      ],
      "Data": {
        "canonical_fetched_at": "2026-08-22T23:45:19Z",
        "canonical_native_span": "2015-10-22 narrative; no native price observations in crawl",
        "canonical_published_at": "2015-10-22T22:11:52-0400",
        "canonical_sha256": "sha256:ba2d2206a781c607285de8d2de44de176e2543fcb9641cd2d022cb479c730787",
        "canonical_snapshot": "data/recessionalert.sqlite page row for https://recessionalert.com/the-sp-500-200-day-average-kiss-of-death/ opened read-only",
        "causal_execution": "Signal on daily close; positions enter next bar with lag>=1; lag 0 retained as non-causal control",
        "documented_publication_lag": "undisclosed; default lag>=1 for causal overlays",
        "effective_evaluation_span": "2002-07-30 through 2026-07-24 overlay (6034 bars); ^GSPC signal from 1928",
        "proxy_data": "Read-only data/market.sqlite ^GSPC/SPY/IEF daily closes"
      },
      "Limitations": [
        "Native S&P 500 vendor, return definition, and SMA formula absent from crawl snapshot.",
        "200dma slope window and breakout-cluster gap undisclosed (labeled neighbors).",
        "Chart-embedded 13-event catalog not machine-readable; no on-row asset bytes.",
        "Source discloses no portfolio map; SPY/IEF overlays are inferred context only.",
        "Kiss flag is intentionally broad; all causal variants trail buy-hold with ~80% risk-off exposure."
      ],
      "Portfolio contribution": {},
      "Promotion status": "Not promoted \u2014 Research Library only.",
      "Research questions": [
        "What can be learned from the documented S&P 500 vs 200-day average Goodbye Kiss retest family when the native price series, SMA specification, and publication lag are absent from the crawl snapshot?"
      ],
      "Rules actually disclosed": [
        "S&P 500 daily closes versus 200-day moving average as bull/bear separator.",
        "Protracted penetration: 200dma down OR >=20 days below (100-day quiet commencement; 13 events since 1972).",
        "Goodbye Kiss: first retest within 2% or 2-5 day breakout after 23-83 bars; all 13 fail at least once with 3-36% follow-on correction.",
        "Narrative exit/hedge/short/re-enter cluster ladder without portfolio weights."
      ],
      "Source": {
        "database": "data/recessionalert.sqlite opened read-only",
        "fetched_at": "2026-08-22T23:45:19Z",
        "inventory": "research/findings/recessionalert_inventory.md",
        "manifest": "research/artifacts/recessionalert/manifest.json",
        "native_span": "none_in_crawl_snapshot",
        "publication_lag": "undisclosed; default lag>=1 for causal overlays",
        "published_at": "2015-10-22T22:11:52-0400",
        "redacted_url": "https://recessionalert.com/the-sp-500-200-day-average-kiss-of-death/",
        "sha256": "sha256:ba2d2206a781c607285de8d2de44de176e2543fcb9641cd2d022cb479c730787"
      },
      "Suggested next research": [
        "Does a first-kiss-per-commencement event cut exposure and rescue the overlay?",
        "Does requiring the slope-down leg isolate better risk-off episodes?",
        "Does a 3rd/4th-cluster re-entry ladder add value?"
      ],
      "Summary": [],
      "Trial ledger": [
        {
          "iteration_number": 1,
          "objective": "Offline SMA200 protracted/commencement/kiss proxies and labeled SPY/IEF overlay backtests from ^GSPC closes"
        }
      ],
      "Validation protocol": {},
      "What had to be inferred": [
        "^GSPC close-only SMA200 with labeled band/persistence/cluster neighbors and SPY/IEF overlays."
      ],
      "What the source claims": [
        "S&P 500 daily closes versus 200-day moving average as bull/bear separator.",
        "Protracted penetration: 200dma down OR >=20 days below (100-day quiet commencement; 13 events since 1972).",
        "Goodbye Kiss: first retest within 2% or 2-5 day breakout after 23-83 bars; all 13 fail at least once with 3-36% follow-on correction.",
        "Narrative exit/hedge/short/re-enter cluster ladder without portfolio weights.",
        "^GSPC close-only SMA200 with labeled band/persistence/cluster neighbors and SPY/IEF overlays."
      ],
      "What to try interactively": [
        "band",
        "lag_bars",
        "sma_window"
      ]
    },
    "title": "The SP-500 200-day average \u201cGoodbye Kiss\u201d | RecessionAlert \u2014 exploratory campaign"
  },
  "campaign": {
    "campaign_id": "recessionalert-goodbye-kiss-1592",
    "iteration_number": 1,
    "research_tags": [],
    "status": "exploring",
    "title": "The SP-500 200-day average \u201cGoodbye Kiss\u201d | RecessionAlert \u2014 exploratory campaign"
  },
  "candidate_frontier": [
    {
      "category": "simplest_reasonable",
      "reason": "Closest-to-documented 20d gate with 2% band and causal lag 1.",
      "variant_id": "kiss-documented-20d-band2p-lag1"
    },
    {
      "category": "best_sharpe",
      "reason": "Best causal Sharpe among tested variants.",
      "variant_id": "kiss-band25-lag2"
    }
  ],
  "candidate_variants": [
    {
      "band": 0.02,
      "below_days": 20,
      "claim_kind": "documented_but_incomplete",
      "classification": "exploratory inferred/public-proxy; not native Goodbye Kiss parity",
      "family": "goodbye-kiss-band",
      "id": "kiss-documented-20d-band2p-lag1",
      "lag_bars": 1,
      "metrics": {
        "buy_hold_spy_cagr": 0.11158032501972692,
        "cagr": 0.04500785229816184,
        "end": "2026-07-24",
        "exposure_risk_off": 0.8097447795823666,
        "max_drawdown": -0.4919794277527487,
        "n_bars": 6034,
        "sharpe": 0.2879917740101833,
        "start": "2002-07-31",
        "vol": 0.1562817287155236
      },
      "sma_window": 200,
      "source_fidelity": false
    },
    {
      "band": 0.02,
      "below_days": 46,
      "claim_kind": "inferred",
      "classification": "exploratory inferred/public-proxy; not native Goodbye Kiss parity",
      "family": "goodbye-kiss-band",
      "id": "kiss-46d-band2p-lag1",
      "lag_bars": 1,
      "metrics": {
        "buy_hold_spy_cagr": 0.11158032501972692,
        "cagr": 0.04391078651956737,
        "end": "2026-07-24",
        "exposure_risk_off": 0.7998011269472987,
        "max_drawdown": -0.4919794277527485,
        "n_bars": 6034,
        "sharpe": 0.2797599305106887,
        "start": "2002-07-31",
        "vol": 0.15695881264843853
      },
      "sma_window": 200,
      "source_fidelity": false
    },
    {
      "band": 0.02,
      "below_days": 63,
      "claim_kind": "inferred",
      "classification": "exploratory inferred/public-proxy; not native Goodbye Kiss parity",
      "family": "goodbye-kiss-band",
      "id": "kiss-63d-band2p-lag1",
      "lag_bars": 1,
      "metrics": {
        "buy_hold_spy_cagr": 0.11158032501972692,
        "cagr": 0.04215767412402727,
        "end": "2026-07-24",
        "exposure_risk_off": 0.7843884653629433,
        "max_drawdown": -0.5018148178303269,
        "n_bars": 6034,
        "sharpe": 0.2671931262840286,
        "start": "2002-07-31",
        "vol": 0.15777978539467852
      },
      "sma_window": 200,
      "source_fidelity": false
    },
    {
      "band": 0.015,
      "below_days": 20,
      "claim_kind": "inferred",
      "classification": "exploratory inferred/public-proxy; not native Goodbye Kiss parity",
      "family": "goodbye-kiss-band",
      "id": "kiss-band15-lag1",
      "lag_bars": 1,
      "metrics": {
        "buy_hold_spy_cagr": 0.11158032501972692,
        "cagr": 0.05309528895709037,
        "end": "2026-07-24",
        "exposure_risk_off": 0.7974809413324494,
        "max_drawdown": -0.4919794277527484,
        "n_bars": 6034,
        "sharpe": 0.33663652578836284,
        "start": "2002-07-31",
        "vol": 0.15772289959548358
      },
      "sma_window": 200,
      "source_fidelity": false
    },
    {
      "band": 0.025,
      "below_days": 20,
      "claim_kind": "inferred",
      "classification": "exploratory inferred/public-proxy; not native Goodbye Kiss parity",
      "family": "goodbye-kiss-band",
      "id": "kiss-band25-lag2",
      "lag_bars": 2,
      "metrics": {
        "buy_hold_spy_cagr": 0.11158032501972692,
        "cagr": 0.05687349447150947,
        "end": "2026-07-24",
        "exposure_risk_off": 0.8215114352005304,
        "max_drawdown": -0.5196319832638105,
        "n_bars": 6034,
        "sharpe": 0.3720409216879654,
        "start": "2002-07-31",
        "vol": 0.15286892155161863
      },
      "sma_window": 200,
      "source_fidelity": false
    },
    {
      "band": 0.02,
      "below_days": 20,
      "claim_kind": "inferred",
      "classification": "exploratory inferred/public-proxy; not native Goodbye Kiss parity",
      "family": "goodbye-kiss-band",
      "id": "kiss-sma190-lag1",
      "lag_bars": 1,
      "metrics": {
        "buy_hold_spy_cagr": 0.11158032501972692,
        "cagr": 0.04484919249817487,
        "end": "2026-07-24",
        "exposure_risk_off": 0.8097447795823666,
        "max_drawdown": -0.4919794277527486,
        "n_bars": 6034,
        "sharpe": 0.28674066098170076,
        "start": "2002-07-31",
        "vol": 0.15641029892526145
      },
      "sma_window": 190,
      "source_fidelity": false
    },
    {
      "band": 0.02,
      "below_days": 20,
      "claim_kind": "control_only",
      "classification": "exploratory inferred/public-proxy; not native Goodbye Kiss parity",
      "family": "goodbye-kiss-band",
      "id": "kiss-documented-lag0-control",
      "lag_bars": 0,
      "metrics": {
        "buy_hold_spy_cagr": 0.11158032501972692,
        "cagr": -0.0027631982012378264,
        "end": "2026-07-24",
        "exposure_risk_off": 0.8099105071262844,
        "max_drawdown": -0.5812710021111629,
        "n_bars": 6034,
        "sharpe": -0.017442635383209577,
        "start": "2002-07-31",
        "vol": 0.15841632531616776
      },
      "sma_window": 200,
      "source_fidelity": false
    }
  ],
  "event_tables": [],
  "evidence": {},
  "execution_assumptions": {},
  "interactive_specs": [
    "band",
    "lag_bars",
    "sma_window"
  ],
  "limitations": [
    "Native S&P 500 vendor, return definition, and SMA formula absent from crawl snapshot.",
    "200dma slope window and breakout-cluster gap undisclosed (labeled neighbors).",
    "Chart-embedded 13-event catalog not machine-readable; no on-row asset bytes.",
    "Source discloses no portfolio map; SPY/IEF overlays are inferred context only.",
    "Kiss flag is intentionally broad; all causal variants trail buy-hold with ~80% risk-off exposure."
  ],
  "parameter_grids": [],
  "provenance": {
    "canonical_fetched_at": "2026-08-22T23:45:19Z",
    "canonical_native_span": "2015-10-22 narrative; no native price observations in crawl",
    "canonical_published_at": "2015-10-22T22:11:52-0400",
    "canonical_sha256": "sha256:ba2d2206a781c607285de8d2de44de176e2543fcb9641cd2d022cb479c730787",
    "canonical_snapshot": "data/recessionalert.sqlite page row for https://recessionalert.com/the-sp-500-200-day-average-kiss-of-death/ opened read-only",
    "causal_execution": "Signal on daily close; positions enter next bar with lag>=1; lag 0 retained as non-causal control",
    "documented_publication_lag": "undisclosed; default lag>=1 for causal overlays",
    "effective_evaluation_span": "2002-07-30 through 2026-07-24 overlay (6034 bars); ^GSPC signal from 1928",
    "proxy_data": "Read-only data/market.sqlite ^GSPC/SPY/IEF daily closes"
  },
  "regime_tables": [],
  "schema_version": "research-publication/v1",
  "series": {
    "availability": "unavailable",
    "dates": [],
    "reason": "No reproducible underlying price and signal-input series are published for this expression."
  },
  "signals": {
    "spec": null,
    "specs": []
  },
  "trial_ledger": []
}
