{
  "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",
      "interesting_negative_result",
      "parameter_sensitive",
      "insufficient_events",
      "needs_more_research",
      "uninvestable"
    ],
    "sections": {
      "Agent assessment": [
        "Research-only exploratory campaign; no official RecessionAlert indicator registration or promotion is proposed."
      ],
      "Baseline implementation": {
        "claim_kind": "inferred",
        "equity_signal_path": "research/campaigns/recessionalert-rfd/lab-series.json variant_signals[]",
        "exploratory": true,
        "family": "public_macro_diffusion",
        "id": "recessionalert.1346.public_diffusion.lb1.avail1.t5p0",
        "metrics": {
          "benchmark_spy_total_return": 11.39742578500792,
          "primary_spy_ief_total_return": 4.174145746380111,
          "risk_off_events": 25,
          "risk_off_fraction": 0.3231357552581262,
          "secondary_spy_bil_total_return": 2.3835958571066675
        },
        "parameters": {
          "availability_lag_months": 1,
          "execution_lag_bars": 1,
          "lookback": 1,
          "threshold": 5.0
        },
        "status": "exploratory_negative_or_sensitivity"
      },
      "Candidate frontier": [
        {
          "category": "best_return",
          "claim_kind": "inferred",
          "id": "recessionalert.1346.public_diffusion.lb6.avail1.t6p0",
          "metric": "SPY/IEF total return 5.1588 versus aligned SPY 11.3974",
          "status": "exploratory_candidate",
          "why": "Best causal primary overlay result, still benchmark-dominated and not native RFD."
        },
        {
          "category": "simplest_reasonable",
          "claim_kind": "inferred",
          "id": "recessionalert.1346.public_diffusion.lb1.avail1.t5p0",
          "metric": "SPY/IEF total return 4.1741; 25 events",
          "status": "exploratory_control",
          "why": "Nearest transparent count-like analogue to documented >5, with explicit proxy mismatch."
        },
        {
          "category": "best_long_history",
          "claim_kind": "inferred",
          "id": "recessionalert.1346.public_diffusion.lb21.avail1.t5p0",
          "metric": "SPY/IEF total return 4.6227; 5 events",
          "status": "insufficient_events",
          "why": "Longest smoothing sensitivity but too few transitions for a reliable conclusion."
        },
        {
          "category": "best_recent",
          "claim_kind": "inferred",
          "id": "recessionalert.1346.public_diffusion.lb6.avail0.t5p0",
          "metric": "SPY/IEF total return 5.7128",
          "status": "research_only_sensitivity",
          "why": "Lag 0 is not a causal publication assumption."
        }
      ],
      "Combinations": [
        "Fifteen pairwise state correlations are retained for transparency; no combination is promoted as native RFD."
      ],
      "Data": {
        "canonical_source": "sha256:e705e5996621202e0e72744fdf229c4a15a8d85d1de3eff8427c7ac76bd99066",
        "commands": [
          "python3 -m research.research_campaign.recessionalert_1346 --run --output-dir research/campaigns/recessionalert-rfd",
          "python3 -m research.reports notebooks --id 1346",
          "python3 -m research.reports research-library",
          "python3 research/scripts/check_static_reports.py docs"
        ],
        "input_hashes": {
          "recessionalert_page": "sha256:e705e5996621202e0e72744fdf229c4a15a8d85d1de3eff8427c7ac76bd99066"
        },
        "proxy_datastore": "data/market.sqlite opened through SQLite mode=ro",
        "proxy_sources": [
          "FRED INDPRO",
          "FRED UNRATE",
          "FRED DGS10",
          "FRED DGS3MO",
          "FRED HOUST",
          "cached SPY",
          "cached IEF",
          "cached BIL"
        ],
        "public_boundary": "Derived IDs, scores, signals, normalized equity, aggregate metrics, spans, and hashes only; no raw cached source payloads, credentials, cookies, or private account data.",
        "source_fetched_at": "2026-08-22T23:48:08Z",
        "source_snapshot": "data/recessionalert.sqlite read-only; research/findings/1346.md; research/artifacts/recessionalert/manifest.json",
        "source_url": "https://recessionalert.com/a-recession-forecasting-diffusion-rfd/"
      },
      "Historical events": [
        "Event rows in diagnostics.json list every inferred risk-off transition and six-month forward SPY/IEF comparison; these are proxy events, not native RFD alerts."
      ],
      "Limitations": [
        "No source-linked native RFD observations, component formulas, proprietary workbook, synchronized release clock, vintage policy, or exact publication lag are captured.",
        "The four-state FRED diffusion is an inferred analogue, not the disclosed fifteen proprietary model count; its 0\u201315 scaling and >5 threshold neighborhood do not establish source fidelity.",
        "FRED histories are revised snapshots rather than point-in-time vintages, and daily Treasury inputs are reduced to last available monthly observations.",
        "SPY/IEF/BIL are inferred overlay sleeves; RecessionAlert discloses no target, sizing, rebalance, hold, exit, re-entry, cost, or slippage rule.",
        "Lag 0 is a same-available-period research-only sensitivity; published-facing interpretation uses one available-month lag plus one engine execution bar.",
        "All six overlays trail aligned SPY in this exploratory window; no official indicator registry entry or investment recommendation is made."
      ],
      "Parameter sensitivity": [
        "Lookbacks 1/3/6/12/21, scaled thresholds 4/5/6, and available lags 0/1/2 were tested. Lag 0 is research-only; lag 1 is causal default."
      ],
      "Portfolio contribution": {},
      "Promotion status": "Not promoted \u2014 Research Library only.",
      "Regime behavior": [
        "Diagnostics split outcomes into 2002\u20132009, 2010\u20132019, and 2020\u20132026 regimes without claiming source-level stability."
      ],
      "Research questions": [
        "What can be learned from the SHA-verified RecessionAlert RFD warning rule using transparent public macro proxies when its observation series, publication lag, and portfolio semantics are incomplete?"
      ],
      "Rules actually disclosed": [
        "The March 18, 2022 RecessionAlert page describes a diffusion count of fifteen diversified recession models and says RFD ranges from 0 to 15.",
        "The page states an optimum actionable warning trigger of RFD > 5, meaning at least six models are in recession territory.",
        "The page claims approximately six months of lead time, about two months of variability, and a 4.5\u20137.5-month Golden Lead Zone, but the source-linked probability table and validation history are not captured.",
        "The chart is updated and subscribers alerted whenever RFD rises, and historical values are said to be in a Monthly PRO Excel Data File; no release clock or workbook is captured.",
        "The fifteen named model families are disclosed, but their formulas, thresholds, directions, state encodings, missing-input rules, and revisions are not."
      ],
      "Source": {
        "article_timestamp": "2022-03-18T11:27:57-0400",
        "fetched_at": "2026-08-22T23:48:08Z",
        "kind": "RecessionAlert inventory row",
        "native_span": "Narrative page snapshot only; no source-linked RFD observation span",
        "publication_lag": "Unknown; monthly PRO context without synchronized release clock",
        "redacted_url": "https://recessionalert.com/a-recession-forecasting-diffusion-rfd/",
        "sha256": "sha256:e705e5996621202e0e72744fdf229c4a15a8d85d1de3eff8427c7ac76bd99066",
        "source_fidelity": "documented fifteen-model count and >5 warning only; no executable native series or portfolio rule",
        "title": "MODELS: A Recession Forecasting Diffusion (RFD) | RecessionAlert"
      },
      "State-space exploration": [
        "Six inferred variants were executed across the longest common local macro window, with primary SPY/IEF and secondary SPY/BIL overlays."
      ],
      "Suggested next research": [
        "Can an authorized, redistributable Monthly PRO workbook or native RFD observation export be obtained?",
        "What are the exact component thresholds, directions, state encodings, exclusions, and revision/vintage rules?",
        "What recurring publication timestamps make the native RFD signal point-in-time executable?",
        "Can the documented six-month lead and 6/12/18/24-month probability mappings be tested on native vintages?",
        "If a market overlay is desired, what target, sizing, persistence, costs, and exit semantics should a researcher explicitly approve?"
      ],
      "Summary": [
        "RFD is documented as a fifteen-model 0\u201315 recession-warning count with a strict trigger above five, but the checked-in snapshot has no observation-level native series.",
        "A transparent FRED proxy diffusion was executable over a 1982-09 to 2026-06 feature window, with six lag/lookback/threshold variants and causal SPY/IEF overlays.",
        "All primary proxy overlays trailed aligned SPY; timing changed results materially, so this is an interesting negative and fidelity-mismatch result rather than a promotion candidate."
      ],
      "Timing and cost sensitivity": [
        "Timing materially changes results. Native release lag and source costs are unknown, so no source transaction-cost claim is fabricated."
      ],
      "Trial ledger": [
        {
          "iteration": 1,
          "status": "published",
          "summary": "Offline public-proxy exploration with six executed variants; no native admission."
        }
      ],
      "Validation protocol": {},
      "What did not work": [
        "No tested public proxy overlay beat aligned SPY, and the native RFD series cannot be validated from the snapshot."
      ],
      "What had to be inferred": [
        "INDPRO, UNRATE, DGS10, DGS3MO, and HOUST form a transparent public macro diffusion analogue; SPY/IEF/BIL overlays are inferred research harnesses, not RecessionAlert rules."
      ],
      "What the signal looks like": [
        "The interactive lab plots the inferred monthly public diffusion score and lets readers vary threshold, lag, and smoothing; all six variant overlays remain in the sidecar."
      ],
      "What the source claims": [
        "The March 18, 2022 RecessionAlert page describes a diffusion count of fifteen diversified recession models and says RFD ranges from 0 to 15.",
        "The page states an optimum actionable warning trigger of RFD > 5, meaning at least six models are in recession territory.",
        "The page claims approximately six months of lead time, about two months of variability, and a 4.5\u20137.5-month Golden Lead Zone, but the source-linked probability table and validation history are not captured.",
        "The chart is updated and subscribers alerted whenever RFD rises, and historical values are said to be in a Monthly PRO Excel Data File; no release clock or workbook is captured.",
        "The fifteen named model families are disclosed, but their formulas, thresholds, directions, state encodings, missing-input rules, and revisions are not.",
        "No source-linked RFD observations, component histories, native date span, exact publication lag, buy/sell/hold mapping, target, sizing, rebalance, costs, or execution state machine is present in the checked-in snapshot.",
        "INDPRO, UNRATE, DGS10, DGS3MO, and HOUST form a transparent public macro diffusion analogue; SPY/IEF/BIL overlays are inferred research harnesses, not RecessionAlert rules."
      ],
      "What to try interactively": [
        {
          "default": 5.0,
          "label": "Proxy warning threshold (scaled 0\u201315)",
          "name": "threshold",
          "source_fidelity": "inferred neighbor around documented native RFD >5",
          "values": [
            4.0,
            5.0,
            6.0
          ]
        },
        {
          "default": 1,
          "label": "Available-month lag",
          "name": "availability_lag_months",
          "source_fidelity": "native publication lag unknown; lag 0 is research-only",
          "values": [
            0,
            1,
            2
          ]
        },
        {
          "default": 1,
          "label": "Trailing monthly smoothing",
          "name": "lookback",
          "source_fidelity": "inferred",
          "values": [
            1,
            3,
            6,
            12,
            21
          ]
        }
      ],
      "What worked": [
        "The runner is reproducible offline, preserves missing/warm-up states, exposes source hashes and spans, and makes the proxy assumptions inspectable."
      ],
      "Why the failures appear to happen": [
        "The true fifteen-model basket and publication timing are unavailable; revised proxy data and defensive states can lag or remain active through recoveries."
      ]
    },
    "title": "RecessionAlert RFD \u2014 inferred public diffusion proxy campaign"
  },
  "campaign": {
    "campaign_id": "recessionalert-rfd",
    "iteration_number": 1,
    "research_tags": [
      "data_limited",
      "fidelity_mismatch",
      "interesting_negative_result",
      "parameter_sensitive",
      "insufficient_events",
      "needs_more_research",
      "uninvestable"
    ],
    "status": "published",
    "title": "RecessionAlert RFD \u2014 inferred public diffusion proxy campaign"
  },
  "candidate_frontier": [
    {
      "category": "best_return",
      "claim_kind": "inferred",
      "id": "recessionalert.1346.public_diffusion.lb6.avail1.t6p0",
      "metric": "SPY/IEF total return 5.1588 versus aligned SPY 11.3974",
      "status": "exploratory_candidate",
      "why": "Best causal primary overlay result, still benchmark-dominated and not native RFD."
    },
    {
      "category": "simplest_reasonable",
      "claim_kind": "inferred",
      "id": "recessionalert.1346.public_diffusion.lb1.avail1.t5p0",
      "metric": "SPY/IEF total return 4.1741; 25 events",
      "status": "exploratory_control",
      "why": "Nearest transparent count-like analogue to documented >5, with explicit proxy mismatch."
    },
    {
      "category": "best_long_history",
      "claim_kind": "inferred",
      "id": "recessionalert.1346.public_diffusion.lb21.avail1.t5p0",
      "metric": "SPY/IEF total return 4.6227; 5 events",
      "status": "insufficient_events",
      "why": "Longest smoothing sensitivity but too few transitions for a reliable conclusion."
    },
    {
      "category": "best_recent",
      "claim_kind": "inferred",
      "id": "recessionalert.1346.public_diffusion.lb6.avail0.t5p0",
      "metric": "SPY/IEF total return 5.7128",
      "status": "research_only_sensitivity",
      "why": "Lag 0 is not a causal publication assumption."
    }
  ],
  "candidate_variants": [
    {
      "claim_kind": "inferred",
      "equity_signal_path": "research/campaigns/recessionalert-rfd/lab-series.json variant_signals[]",
      "exploratory": true,
      "family": "public_macro_diffusion",
      "id": "recessionalert.1346.public_diffusion.lb1.avail1.t5p0",
      "metrics": {
        "benchmark_spy_total_return": 11.39742578500792,
        "primary_spy_ief_total_return": 4.174145746380111,
        "risk_off_events": 25,
        "risk_off_fraction": 0.3231357552581262,
        "secondary_spy_bil_total_return": 2.3835958571066675
      },
      "parameters": {
        "availability_lag_months": 1,
        "execution_lag_bars": 1,
        "lookback": 1,
        "threshold": 5.0
      },
      "status": "exploratory_negative_or_sensitivity"
    },
    {
      "claim_kind": "inferred",
      "equity_signal_path": "research/campaigns/recessionalert-rfd/lab-series.json variant_signals[]",
      "exploratory": true,
      "family": "public_macro_diffusion",
      "id": "recessionalert.1346.public_diffusion.lb3.avail1.t5p0",
      "metrics": {
        "benchmark_spy_total_return": 11.39742578500792,
        "primary_spy_ief_total_return": 4.813825686685753,
        "risk_off_events": 11,
        "risk_off_fraction": 0.31669865642994244,
        "secondary_spy_bil_total_return": 1.8499398771972095
      },
      "parameters": {
        "availability_lag_months": 1,
        "execution_lag_bars": 1,
        "lookback": 3,
        "threshold": 5.0
      },
      "status": "exploratory_negative_or_sensitivity"
    },
    {
      "claim_kind": "inferred",
      "equity_signal_path": "research/campaigns/recessionalert-rfd/lab-series.json variant_signals[]",
      "exploratory": true,
      "family": "public_macro_diffusion",
      "id": "recessionalert.1346.public_diffusion.lb6.avail1.t6p0",
      "metrics": {
        "benchmark_spy_total_return": 11.39742578500792,
        "primary_spy_ief_total_return": 5.158800218806764,
        "risk_off_events": 7,
        "risk_off_fraction": 0.3030888030888031,
        "secondary_spy_bil_total_return": 2.4852421963843616
      },
      "parameters": {
        "availability_lag_months": 1,
        "execution_lag_bars": 1,
        "lookback": 6,
        "threshold": 6.0
      },
      "status": "exploratory_negative_or_sensitivity"
    },
    {
      "claim_kind": "inferred",
      "equity_signal_path": "research/campaigns/recessionalert-rfd/lab-series.json variant_signals[]",
      "exploratory": true,
      "family": "public_macro_diffusion",
      "id": "recessionalert.1346.public_diffusion.lb12.avail2.t4p0",
      "metrics": {
        "benchmark_spy_total_return": 11.39742578500792,
        "primary_spy_ief_total_return": 3.2668331731652156,
        "risk_off_events": 7,
        "risk_off_fraction": 0.4207436399217221,
        "secondary_spy_bil_total_return": 1.3502552205152392
      },
      "parameters": {
        "availability_lag_months": 2,
        "execution_lag_bars": 1,
        "lookback": 12,
        "threshold": 4.0
      },
      "status": "exploratory_negative_or_sensitivity"
    },
    {
      "claim_kind": "inferred",
      "equity_signal_path": "research/campaigns/recessionalert-rfd/lab-series.json variant_signals[]",
      "exploratory": true,
      "family": "public_macro_diffusion",
      "id": "recessionalert.1346.public_diffusion.lb6.avail0.t5p0",
      "metrics": {
        "benchmark_spy_total_return": 11.39742578500792,
        "primary_spy_ief_total_return": 5.712838432859892,
        "risk_off_events": 8,
        "risk_off_fraction": 0.3352601156069364,
        "secondary_spy_bil_total_return": 2.4737984140429323
      },
      "parameters": {
        "availability_lag_months": 0,
        "execution_lag_bars": 1,
        "lookback": 6,
        "threshold": 5.0
      },
      "status": "exploratory_negative_or_sensitivity"
    },
    {
      "claim_kind": "inferred",
      "equity_signal_path": "research/campaigns/recessionalert-rfd/lab-series.json variant_signals[]",
      "exploratory": true,
      "family": "public_macro_diffusion",
      "id": "recessionalert.1346.public_diffusion.lb21.avail1.t5p0",
      "metrics": {
        "benchmark_spy_total_return": 11.39742578500792,
        "primary_spy_ief_total_return": 4.622738266645174,
        "risk_off_events": 5,
        "risk_off_fraction": 0.32803180914512925,
        "secondary_spy_bil_total_return": 1.8972443308913594
      },
      "parameters": {
        "availability_lag_months": 1,
        "execution_lag_bars": 1,
        "lookback": 21,
        "threshold": 5.0
      },
      "status": "exploratory_negative_or_sensitivity"
    }
  ],
  "event_tables": [],
  "evidence": {},
  "execution_assumptions": {},
  "interactive_specs": [
    {
      "default": 5.0,
      "label": "Proxy warning threshold (scaled 0\u201315)",
      "name": "threshold",
      "source_fidelity": "inferred neighbor around documented native RFD >5",
      "values": [
        4.0,
        5.0,
        6.0
      ]
    },
    {
      "default": 1,
      "label": "Available-month lag",
      "name": "availability_lag_months",
      "source_fidelity": "native publication lag unknown; lag 0 is research-only",
      "values": [
        0,
        1,
        2
      ]
    },
    {
      "default": 1,
      "label": "Trailing monthly smoothing",
      "name": "lookback",
      "source_fidelity": "inferred",
      "values": [
        1,
        3,
        6,
        12,
        21
      ]
    }
  ],
  "limitations": [
    "No source-linked native RFD observations, component formulas, proprietary workbook, synchronized release clock, vintage policy, or exact publication lag are captured.",
    "The four-state FRED diffusion is an inferred analogue, not the disclosed fifteen proprietary model count; its 0\u201315 scaling and >5 threshold neighborhood do not establish source fidelity.",
    "FRED histories are revised snapshots rather than point-in-time vintages, and daily Treasury inputs are reduced to last available monthly observations.",
    "SPY/IEF/BIL are inferred overlay sleeves; RecessionAlert discloses no target, sizing, rebalance, hold, exit, re-entry, cost, or slippage rule.",
    "Lag 0 is a same-available-period research-only sensitivity; published-facing interpretation uses one available-month lag plus one engine execution bar.",
    "All six overlays trail aligned SPY in this exploratory window; no official indicator registry entry or investment recommendation is made."
  ],
  "parameter_grids": [],
  "provenance": {
    "canonical_source": "sha256:e705e5996621202e0e72744fdf229c4a15a8d85d1de3eff8427c7ac76bd99066",
    "commands": [
      "python3 -m research.research_campaign.recessionalert_1346 --run --output-dir research/campaigns/recessionalert-rfd",
      "python3 -m research.reports notebooks --id 1346",
      "python3 -m research.reports research-library",
      "python3 research/scripts/check_static_reports.py docs"
    ],
    "input_hashes": {
      "recessionalert_page": "sha256:e705e5996621202e0e72744fdf229c4a15a8d85d1de3eff8427c7ac76bd99066"
    },
    "proxy_datastore": "data/market.sqlite opened through SQLite mode=ro",
    "proxy_sources": [
      "FRED INDPRO",
      "FRED UNRATE",
      "FRED DGS10",
      "FRED DGS3MO",
      "FRED HOUST",
      "cached SPY",
      "cached IEF",
      "cached BIL"
    ],
    "public_boundary": "Derived IDs, scores, signals, normalized equity, aggregate metrics, spans, and hashes only; no raw cached source payloads, credentials, cookies, or private account data.",
    "source_fetched_at": "2026-08-22T23:48:08Z",
    "source_snapshot": "data/recessionalert.sqlite read-only; research/findings/1346.md; research/artifacts/recessionalert/manifest.json",
    "source_url": "https://recessionalert.com/a-recession-forecasting-diffusion-rfd/"
  },
  "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": []
}
