{
  "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": [
      "data_limited",
      "fidelity_mismatch",
      "parameter_sensitive",
      "regime_dependent",
      "interesting_negative_result",
      "needs_more_research"
    ],
    "sections": {
      "Baseline implementation": {
        "family": "mayer",
        "id": "recessionalert-bitcoin-mayer-documented-lag1",
        "kind": "inferred_proxy",
        "metrics": {
          "cagr": 0.06520616834604165,
          "max_drawdown": -0.17057248960936966,
          "sharpe": 1.0142546075459904
        },
        "parameters": {
          "lag_bars": 1,
          "lookback": 200,
          "threshold": 1.0
        },
        "status": "executed",
        "text": "public-proxy exploratory variant"
      },
      "Candidate frontier": [
        {
          "assessment": "Closest near-benchmark causal exploratory proxy in this run; not native fidelity.",
          "category": "most_stable",
          "variant_id": "recessionalert-bitcoin-momentum12-lag1"
        },
        {
          "assessment": "Small return edge is offset by materially worse drawdown and inferred semantics.",
          "category": "best_return",
          "variant_id": "recessionalert-bitcoin-mayer-floor06-lag2"
        },
        {
          "assessment": "Transparent correction neighbor, but cannot reproduce the source technical overlay.",
          "category": "simplest_reasonable",
          "variant_id": "recessionalert-bitcoin-correction10-lag1"
        }
      ],
      "Data": {
        "canonical_sha256": "sha256:48ab3995ad8abafa4060fa4a72dd658607ddd205dd28dc1e040abe7ab38b2139",
        "canonical_source": "research/artifacts/recessionalert/manifest.json + research/findings/recessionalert_inventory.md + read-only data/recessionalert.sqlite",
        "overlay_cache": "data/market.sqlite via mode=ro/query_only",
        "proxy_data_path": "research/campaigns/recessionalert-bitcoin-1361/data/btc-priceusd.csv",
        "proxy_data_sha256": "sha256:3625f614441c68525ab325015a0613561ce720bc86e95cac0500277b22f4a58f",
        "proxy_native_span": [
          "2010-07-18",
          "2026-07-25"
        ],
        "proxy_provider": "Coin Metrics Community API v4",
        "redistribution": "Derived public proxy metrics only; no raw source payloads, credentials, cookies, or private account data."
      },
      "Limitations": [
        "All five candidates are inferred public proxies, not RecessionAlert native observations.",
        "The frozen BTC aggregate is a provider aggregate and does not identify an executable venue.",
        "SPY/BIL sleeves and causal lag are explicit research assumptions."
      ],
      "Portfolio contribution": {},
      "Promotion status": "Not promoted \u2014 Research Library only.",
      "Research questions": [
        "Can the incomplete RecessionAlert Bitcoin context suite yield transparent, causally timed exploratory public proxies without claiming native source fidelity?"
      ],
      "Rules actually disclosed": [
        "The source discloses Mayer Multiple as BTC price divided by 200-day average with MM=1 bounce BUY, MM<0.6 cyclical BUY context, MM>2.4 overbought, and MM>3.6 near a cyclical top.",
        "The source describes daily BOCA, exchange-balance, Puell, ETF-flow, probability, and 30-minute technical context, but not one executable state machine."
      ],
      "Source": {
        "fetched_at": "2026-08-22T23:39:03Z",
        "native_span": "undisclosed; narrative history claims since 2010",
        "publication_lag": "unknown; article fetch is archival, not economic release timing",
        "sha256": "sha256:48ab3995ad8abafa4060fa4a72dd658607ddd205dd28dc1e040abe7ab38b2139",
        "title": "CHARTS > Bitcoin | RecessionAlert",
        "url": "https://recessionalert.com/bitcoin/"
      },
      "Suggested next research": [
        "Can authorized source refresh map a native Bitcoin workbook and release clock?",
        "Can independent post-2026 holdout and venue-aware costs test the near-benchmark momentum proxy?",
        "Which persistence, precedence, exits, and cash semantics does the publisher intend?"
      ],
      "Summary": [
        "Five public proxy variants are reproducible over the longest frozen BTC history, but no candidate establishes native RecessionAlert fidelity.",
        "Causal lag-1 and lag-2 results are retained; lag-zero is control-only."
      ],
      "Trial ledger": [
        {
          "artifacts": [
            "research/campaigns/recessionalert-bitcoin-1361/state-space.json",
            "research/campaigns/recessionalert-bitcoin-1361/diagnostics.json",
            "research/campaigns/recessionalert-bitcoin-1361/synthesis.json"
          ],
          "iteration": 1,
          "status": "published"
        }
      ],
      "Validation protocol": {},
      "What had to be inferred": [
        "This campaign tests labeled BTC price, momentum, and correction proxies with explicit SPY/BIL sleeve and lag assumptions."
      ],
      "What the source claims": [
        "The source discloses Mayer Multiple as BTC price divided by 200-day average with MM=1 bounce BUY, MM<0.6 cyclical BUY context, MM>2.4 overbought, and MM>3.6 near a cyclical top.",
        "The source describes daily BOCA, exchange-balance, Puell, ETF-flow, probability, and 30-minute technical context, but not one executable state machine.",
        "This campaign tests labeled BTC price, momentum, and correction proxies with explicit SPY/BIL sleeve and lag assumptions."
      ],
      "What to try interactively": [
        {
          "name": "variant",
          "options": [
            "recessionalert-bitcoin-mayer-documented-lag1",
            "recessionalert-bitcoin-mayer-floor06-lag2",
            "recessionalert-bitcoin-mayer-floor10-lag0-control",
            "recessionalert-bitcoin-momentum12-lag1",
            "recessionalert-bitcoin-correction10-lag1"
          ]
        },
        {
          "name": "lag_bars",
          "options": [
            0,
            1,
            2
          ]
        }
      ]
    },
    "title": "RecessionAlert Bitcoin \u2014 inferred public-proxy campaign"
  },
  "campaign": {
    "campaign_id": "recessionalert-bitcoin-1361",
    "iteration_number": 1,
    "research_tags": [
      "data_limited",
      "fidelity_mismatch",
      "parameter_sensitive",
      "regime_dependent",
      "interesting_negative_result",
      "needs_more_research"
    ],
    "status": "published",
    "title": "RecessionAlert Bitcoin \u2014 inferred public-proxy campaign"
  },
  "candidate_frontier": [
    {
      "assessment": "Closest near-benchmark causal exploratory proxy in this run; not native fidelity.",
      "category": "most_stable",
      "variant_id": "recessionalert-bitcoin-momentum12-lag1"
    },
    {
      "assessment": "Small return edge is offset by materially worse drawdown and inferred semantics.",
      "category": "best_return",
      "variant_id": "recessionalert-bitcoin-mayer-floor06-lag2"
    },
    {
      "assessment": "Transparent correction neighbor, but cannot reproduce the source technical overlay.",
      "category": "simplest_reasonable",
      "variant_id": "recessionalert-bitcoin-correction10-lag1"
    }
  ],
  "candidate_variants": [
    {
      "family": "mayer",
      "id": "recessionalert-bitcoin-mayer-documented-lag1",
      "kind": "inferred_proxy",
      "metrics": {
        "cagr": 0.06520616834604165,
        "max_drawdown": -0.17057248960936966,
        "sharpe": 1.0142546075459904
      },
      "parameters": {
        "lag_bars": 1,
        "lookback": 200,
        "threshold": 1.0
      },
      "status": "executed",
      "text": "public-proxy exploratory variant"
    },
    {
      "family": "mayer",
      "id": "recessionalert-bitcoin-mayer-floor06-lag2",
      "kind": "inferred_proxy",
      "metrics": {
        "cagr": 0.09109958747458746,
        "max_drawdown": -0.21601302849539594,
        "sharpe": 0.9633050511508512
      },
      "parameters": {
        "lag_bars": 2,
        "lookback": 200,
        "threshold": 0.6
      },
      "status": "executed",
      "text": "public-proxy exploratory variant"
    },
    {
      "family": "mayer",
      "id": "recessionalert-bitcoin-mayer-floor10-lag0-control",
      "kind": "control_only",
      "metrics": {
        "cagr": 0.08667449734056776,
        "max_drawdown": -0.15124937231139135,
        "sharpe": 1.2954779564855747
      },
      "parameters": {
        "lag_bars": 0,
        "lookback": 200,
        "threshold": 1.0
      },
      "status": "executed",
      "text": "same-close control; never causal"
    },
    {
      "family": "momentum",
      "id": "recessionalert-bitcoin-momentum12-lag1",
      "kind": "inferred_proxy",
      "metrics": {
        "cagr": 0.09186886241776238,
        "max_drawdown": -0.2114296662698114,
        "sharpe": 1.097069229902187
      },
      "parameters": {
        "lag_bars": 1,
        "lookback": 365,
        "threshold": 0.0
      },
      "status": "executed",
      "text": "public-proxy exploratory variant"
    },
    {
      "family": "correction",
      "id": "recessionalert-bitcoin-correction10-lag1",
      "kind": "inferred_proxy",
      "metrics": {
        "cagr": 0.05582716891774053,
        "max_drawdown": -0.10776216046230802,
        "sharpe": 1.530190760392435
      },
      "parameters": {
        "lag_bars": 1,
        "lookback": 365,
        "threshold": -0.1
      },
      "status": "executed",
      "text": "public-proxy exploratory variant"
    }
  ],
  "event_tables": [],
  "evidence": {},
  "execution_assumptions": {},
  "interactive_specs": [
    {
      "name": "variant",
      "options": [
        "recessionalert-bitcoin-mayer-documented-lag1",
        "recessionalert-bitcoin-mayer-floor06-lag2",
        "recessionalert-bitcoin-mayer-floor10-lag0-control",
        "recessionalert-bitcoin-momentum12-lag1",
        "recessionalert-bitcoin-correction10-lag1"
      ]
    },
    {
      "name": "lag_bars",
      "options": [
        0,
        1,
        2
      ]
    }
  ],
  "limitations": [
    "All five candidates are inferred public proxies, not RecessionAlert native observations.",
    "The frozen BTC aggregate is a provider aggregate and does not identify an executable venue.",
    "SPY/BIL sleeves and causal lag are explicit research assumptions."
  ],
  "parameter_grids": [],
  "provenance": {
    "canonical_sha256": "sha256:48ab3995ad8abafa4060fa4a72dd658607ddd205dd28dc1e040abe7ab38b2139",
    "canonical_source": "research/artifacts/recessionalert/manifest.json + research/findings/recessionalert_inventory.md + read-only data/recessionalert.sqlite",
    "overlay_cache": "data/market.sqlite via mode=ro/query_only",
    "proxy_data_path": "research/campaigns/recessionalert-bitcoin-1361/data/btc-priceusd.csv",
    "proxy_data_sha256": "sha256:3625f614441c68525ab325015a0613561ce720bc86e95cac0500277b22f4a58f",
    "proxy_native_span": [
      "2010-07-18",
      "2026-07-25"
    ],
    "proxy_provider": "Coin Metrics Community API v4",
    "redistribution": "Derived public proxy metrics only; no raw source payloads, credentials, cookies, or private account data."
  },
  "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": []
}
