{
  "experiment": {
    "alloc": {
      "labels": [
        "2025-08",
        "2025-09",
        "2025-10",
        "2025-11",
        "2025-12",
        "2026-01",
        "2026-02",
        "2026-03",
        "2026-04",
        "2026-05",
        "2026-06",
        "2026-07"
      ],
      "series": [
        {
          "name": "SPY",
          "values": [
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6
          ]
        },
        {
          "name": "CASH",
          "values": [
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4
          ]
        }
      ]
    },
    "alloc_as": null,
    "alloc_monthly_as": null,
    "alloc_monthly_ours": {
      "labels": [
        "2025-08",
        "2025-09",
        "2025-10",
        "2025-11",
        "2025-12",
        "2026-01",
        "2026-02",
        "2026-03",
        "2026-04",
        "2026-05",
        "2026-06",
        "2026-07"
      ],
      "series": [
        {
          "name": "SPY",
          "values": [
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6
          ]
        },
        {
          "name": "CASH",
          "values": [
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4
          ]
        }
      ]
    },
    "alloc_ours": {
      "labels": [
        "2025-08",
        "2025-09",
        "2025-10",
        "2025-11",
        "2025-12",
        "2026-01",
        "2026-02",
        "2026-03",
        "2026-04",
        "2026-05",
        "2026-06",
        "2026-07"
      ],
      "series": [
        {
          "name": "SPY",
          "values": [
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6,
            0.6
          ]
        },
        {
          "name": "CASH",
          "values": [
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4,
            0.4
          ]
        }
      ]
    },
    "alloc_yearly_as": null,
    "alloc_yearly_ours": {
      "labels": [
        "2025"
      ],
      "series": [
        {
          "name": "SPY",
          "values": [
            0.6
          ]
        },
        {
          "name": "CASH",
          "values": [
            0.4
          ]
        }
      ]
    },
    "analysis_page": null,
    "answer": "No blog-fidelity accept for qm-pft.1 (search complete). Catalog registration of a labelled proxy is handled separately in qm-pft.3 as turbulence-index-proxy (search baseline defaults) — still not a Sharpe~2.20 claim. Frozen rejected t352–t356 (OriginalTurbulenceIndex) remains unpublished.",
    "bead_ids": [
      "qm-pft.1"
    ],
    "cost_variants": {},
    "coverage": {
      "alloc_monthly_labels_n": 12,
      "alloc_yearly_labels_n": 0,
      "as_alloc_rows": 0,
      "as_history_start_year": null,
      "as_returns_n": 0,
      "as_yearly_alloc_rows": 0,
      "coverage_generated_at": "2026-07T00:00:00Z",
      "db_path": "data/market.sqlite",
      "db_warm": true,
      "gap_years": null,
      "limiting": {
        "effective_start": "1993-01-29",
        "id": "SPY",
        "kind": "ohlcv",
        "native_start": "1993-01-29",
        "proxied": false,
        "proxy_chain": [],
        "span_basis": "db"
      },
      "macro_meta": [],
      "macros": [],
      "monthly_labels_n": 120,
      "ours_alloc_rows": 120,
      "ours_returns_n": 120,
      "ticker_meta": [
        {
          "end": "2026-07-24",
          "n_rows": 8428,
          "start": "1993-01-29",
          "ticker": "SPY"
        },
        {
          "end": "2026-07-24",
          "n_rows": 6035,
          "start": "2002-07-30",
          "ticker": "IEF"
        },
        {
          "end": "2026-07-24",
          "n_rows": 6035,
          "start": "2002-07-30",
          "ticker": "TLT"
        }
      ],
      "tickers": [
        "SPY",
        "IEF",
        "TLT"
      ]
    },
    "date": "",
    "disposition": "**No blog-fidelity accept** for qm-pft.1 (search complete). Catalog registration of a *labelled proxy* is handled separately in **qm-pft.3** as `turbulence-index-proxy` (search baseline defaults) — still not a Sharpe~2.20 claim. Frozen rejected t352–t356 (`OriginalTurbulenceIndex`) remains unpublished. A reproducible 31-trial experiment matrix around `backtest/turbulence.py::LabelledTurbulenceSearch` was scored against the Portfolio Optimizer article’s rounded April 2009–March 2022 summary stats (~50% average SPY exposure, Sharpe ~2.20, maximum **weekly** drawdown ~6%). No labelled variant recovers those headlines on ETF proxies. Best-by-distance (`broader_zero_fee_quintiles_L52`) reaches we",
    "equity": {
      "experiment": [
        1.0,
        1.0037,
        0.9963,
        0.9974,
        1.0015,
        1.01,
        1.0307,
        1.0332,
        1.0376,
        1.0395,
        1.0411,
        1.0528,
        1.0556,
        1.0667,
        1.0783,
        1.0917,
        1.0951,
        1.1142,
        1.1025,
        1.0849,
        1.0917,
        1.1005,
        1.1063,
        1.1206,
        1.1373,
        1.1352,
        1.1237,
        1.1186,
        1.0929,
        1.1241,
        1.1407,
        1.1536,
        1.17,
        1.1362,
        1.1665,
        1.1747,
        1.1784,
        1.1918,
        1.2,
        1.2174,
        1.2303,
        1.2422,
        1.2056,
        1.2058,
        1.2244,
        1.2421,
        1.2679,
        1.2955,
        1.3313,
        1.3068,
        1.297,
        1.3482,
        1.3871,
        1.384,
        1.3869,
        1.405,
        1.4525,
        1.4624,
        1.469,
        1.4895,
        1.4976,
        1.4597,
        1.5008,
        1.4924,
        1.5112,
        1.4741,
        1.4556,
        1.4423,
        1.4045,
        1.4116,
        1.3652,
        1.4072,
        1.3719,
        1.3186,
        1.3749,
        1.4109,
        1.3823,
        1.4272,
        1.3962,
        1.4117,
        1.4231,
        1.4208,
        1.4571,
        1.4741,
        1.4755,
        1.4354,
        1.4368,
        1.4854,
        1.5266,
        1.5329,
        1.5663,
        1.5898,
        1.5407,
        1.5702,
        1.5952,
        1.629,
        1.6364,
        1.6319,
        1.6156,
        1.6628,
        1.6394,
        1.6559,
        1.655,
        1.6411,
        1.5653,
        1.6218,
        1.6618,
        1.6747,
        1.6827,
        1.7231,
        1.7418,
        1.7328,
        1.7374,
        1.7534,
        1.7458,
        1.7059,
        1.772,
        1.8104,
        1.7984,
        1.791
      ],
      "labels": [
        "2016-08",
        "2016-09",
        "2016-10",
        "2016-11",
        "2016-12",
        "2017-01",
        "2017-02",
        "2017-03",
        "2017-04",
        "2017-05",
        "2017-06",
        "2017-07",
        "2017-08",
        "2017-09",
        "2017-10",
        "2017-11",
        "2017-12",
        "2018-01",
        "2018-02",
        "2018-03",
        "2018-04",
        "2018-05",
        "2018-06",
        "2018-07",
        "2018-08",
        "2018-09",
        "2018-10",
        "2018-11",
        "2018-12",
        "2019-01",
        "2019-02",
        "2019-03",
        "2019-04",
        "2019-05",
        "2019-06",
        "2019-07",
        "2019-08",
        "2019-09",
        "2019-10",
        "2019-11",
        "2019-12",
        "2020-01",
        "2020-02",
        "2020-03",
        "2020-04",
        "2020-05",
        "2020-06",
        "2020-07",
        "2020-08",
        "2020-09",
        "2020-10",
        "2020-11",
        "2020-12",
        "2021-01",
        "2021-02",
        "2021-03",
        "2021-04",
        "2021-05",
        "2021-06",
        "2021-07",
        "2021-08",
        "2021-09",
        "2021-10",
        "2021-11",
        "2021-12",
        "2022-01",
        "2022-02",
        "2022-03",
        "2022-04",
        "2022-05",
        "2022-06",
        "2022-07",
        "2022-08",
        "2022-09",
        "2022-10",
        "2022-11",
        "2022-12",
        "2023-01",
        "2023-02",
        "2023-03",
        "2023-04",
        "2023-05",
        "2023-06",
        "2023-07",
        "2023-08",
        "2023-09",
        "2023-10",
        "2023-11",
        "2023-12",
        "2024-01",
        "2024-02",
        "2024-03",
        "2024-04",
        "2024-05",
        "2024-06",
        "2024-07",
        "2024-08",
        "2024-09",
        "2024-10",
        "2024-11",
        "2024-12",
        "2025-01",
        "2025-02",
        "2025-03",
        "2025-04",
        "2025-05",
        "2025-06",
        "2025-07",
        "2025-08",
        "2025-09",
        "2025-10",
        "2025-11",
        "2025-12",
        "2026-01",
        "2026-02",
        "2026-03",
        "2026-04",
        "2026-05",
        "2026-06",
        "2026-07"
      ],
      "spy": [
        1.0,
        1.0001,
        0.9827,
        1.0189,
        1.0396,
        1.0582,
        1.0998,
        1.1011,
        1.1121,
        1.1278,
        1.1349,
        1.1583,
        1.1617,
        1.1851,
        1.213,
        1.2501,
        1.2652,
        1.3365,
        1.2879,
        1.2526,
        1.2591,
        1.2897,
        1.2971,
        1.3452,
        1.3881,
        1.3964,
        1.2999,
        1.324,
        1.2074,
        1.3041,
        1.3464,
        1.3707,
        1.4267,
        1.3357,
        1.4287,
        1.4503,
        1.426,
        1.4538,
        1.4859,
        1.5397,
        1.5844,
        1.5838,
        1.4584,
        1.2763,
        1.4383,
        1.5069,
        1.5336,
        1.6239,
        1.7373,
        1.6722,
        1.6305,
        1.8079,
        1.8749,
        1.8558,
        1.9074,
        1.994,
        2.0995,
        2.1132,
        2.1606,
        2.2134,
        2.2792,
        2.173,
        2.3255,
        2.3068,
        2.4135,
        2.2862,
        2.2187,
        2.3021,
        2.1001,
        2.1048,
        1.9312,
        2.1091,
        2.023,
        1.836,
        1.9852,
        2.0956,
        1.9748,
        2.099,
        2.0462,
        2.1221,
        2.156,
        2.166,
        2.3063,
        2.3818,
        2.3431,
        2.232,
        2.1835,
        2.383,
        2.4918,
        2.5314,
        2.6635,
        2.7507,
        2.6397,
        2.7733,
        2.8711,
        2.9059,
        2.9738,
        3.0362,
        3.0091,
        3.1886,
        3.1119,
        3.1954,
        3.1549,
        2.9791,
        2.9533,
        3.1389,
        3.3001,
        3.3762,
        3.4454,
        3.5682,
        3.6532,
        3.6603,
        3.6633,
        3.7172,
        3.6851,
        3.5032,
        3.8712,
        4.0749,
        4.0329,
        3.9906
      ],
      "spy_labels": [
        "2016-08",
        "2016-09",
        "2016-10",
        "2016-11",
        "2016-12",
        "2017-01",
        "2017-02",
        "2017-03",
        "2017-04",
        "2017-05",
        "2017-06",
        "2017-07",
        "2017-08",
        "2017-09",
        "2017-10",
        "2017-11",
        "2017-12",
        "2018-01",
        "2018-02",
        "2018-03",
        "2018-04",
        "2018-05",
        "2018-06",
        "2018-07",
        "2018-08",
        "2018-09",
        "2018-10",
        "2018-11",
        "2018-12",
        "2019-01",
        "2019-02",
        "2019-03",
        "2019-04",
        "2019-05",
        "2019-06",
        "2019-07",
        "2019-08",
        "2019-09",
        "2019-10",
        "2019-11",
        "2019-12",
        "2020-01",
        "2020-02",
        "2020-03",
        "2020-04",
        "2020-05",
        "2020-06",
        "2020-07",
        "2020-08",
        "2020-09",
        "2020-10",
        "2020-11",
        "2020-12",
        "2021-01",
        "2021-02",
        "2021-03",
        "2021-04",
        "2021-05",
        "2021-06",
        "2021-07",
        "2021-08",
        "2021-09",
        "2021-10",
        "2021-11",
        "2021-12",
        "2022-01",
        "2022-02",
        "2022-03",
        "2022-04",
        "2022-05",
        "2022-06",
        "2022-07",
        "2022-08",
        "2022-09",
        "2022-10",
        "2022-11",
        "2022-12",
        "2023-01",
        "2023-02",
        "2023-03",
        "2023-04",
        "2023-05",
        "2023-06",
        "2023-07",
        "2023-08",
        "2023-09",
        "2023-10",
        "2023-11",
        "2023-12",
        "2024-01",
        "2024-02",
        "2024-03",
        "2024-04",
        "2024-05",
        "2024-06",
        "2024-07",
        "2024-08",
        "2024-09",
        "2024-10",
        "2024-11",
        "2024-12",
        "2025-01",
        "2025-02",
        "2025-03",
        "2025-04",
        "2025-05",
        "2025-06",
        "2025-07",
        "2025-08",
        "2025-09",
        "2025-10",
        "2025-11",
        "2025-12",
        "2026-01",
        "2026-02",
        "2026-03",
        "2026-04",
        "2026-05",
        "2026-06",
        "2026-07"
      ]
    },
    "errors": "No additional vendor or coverage gaps beyond frozen panel window; see finding for panel dates and synthetic reconstruction limits.",
    "follow_on": [
      {
        "status": "open",
        "title": "Follow-up qm-pft.1"
      },
      {
        "status": "open",
        "title": "Follow-up qm-pft.3"
      },
      {
        "status": "open",
        "title": "Follow-up qm-pft.1.json"
      }
    ],
    "followup_command": "gh issue create --title \"Follow-up Turbulence Index  labelled search vs blogpost qm-pft1\" --body \"Follow-up to qm-pft.1:  Decision\" --label \"priority:p2\" --label \"pipeline:research\" --label \"agent:ready\"",
    "gh_command": "gh issue create --title \"Follow-up Turbulence Index  labelled search vs blogpost qm-pft1\" --body \"Follow-up to qm-pft.1:  Decision\" --label \"priority:p2\" --label \"pipeline:research\" --label \"agent:ready\"",
    "id": "qm-pft.1",
    "issue_ids": [
      "qm-pft.1"
    ],
    "monthly": {
      "as": [
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null
      ],
      "labels": [
        "2016-08",
        "2016-09",
        "2016-10",
        "2016-11",
        "2016-12",
        "2017-01",
        "2017-02",
        "2017-03",
        "2017-04",
        "2017-05",
        "2017-06",
        "2017-07",
        "2017-08",
        "2017-09",
        "2017-10",
        "2017-11",
        "2017-12",
        "2018-01",
        "2018-02",
        "2018-03",
        "2018-04",
        "2018-05",
        "2018-06",
        "2018-07",
        "2018-08",
        "2018-09",
        "2018-10",
        "2018-11",
        "2018-12",
        "2019-01",
        "2019-02",
        "2019-03",
        "2019-04",
        "2019-05",
        "2019-06",
        "2019-07",
        "2019-08",
        "2019-09",
        "2019-10",
        "2019-11",
        "2019-12",
        "2020-01",
        "2020-02",
        "2020-03",
        "2020-04",
        "2020-05",
        "2020-06",
        "2020-07",
        "2020-08",
        "2020-09",
        "2020-10",
        "2020-11",
        "2020-12",
        "2021-01",
        "2021-02",
        "2021-03",
        "2021-04",
        "2021-05",
        "2021-06",
        "2021-07",
        "2021-08",
        "2021-09",
        "2021-10",
        "2021-11",
        "2021-12",
        "2022-01",
        "2022-02",
        "2022-03",
        "2022-04",
        "2022-05",
        "2022-06",
        "2022-07",
        "2022-08",
        "2022-09",
        "2022-10",
        "2022-11",
        "2022-12",
        "2023-01",
        "2023-02",
        "2023-03",
        "2023-04",
        "2023-05",
        "2023-06",
        "2023-07",
        "2023-08",
        "2023-09",
        "2023-10",
        "2023-11",
        "2023-12",
        "2024-01",
        "2024-02",
        "2024-03",
        "2024-04",
        "2024-05",
        "2024-06",
        "2024-07",
        "2024-08",
        "2024-09",
        "2024-10",
        "2024-11",
        "2024-12",
        "2025-01",
        "2025-02",
        "2025-03",
        "2025-04",
        "2025-05",
        "2025-06",
        "2025-07",
        "2025-08",
        "2025-09",
        "2025-10",
        "2025-11",
        "2025-12",
        "2026-01",
        "2026-02",
        "2026-03",
        "2026-04",
        "2026-05",
        "2026-06",
        "2026-07"
      ],
      "ours": [
        0.0,
        0.0037,
        -0.007373,
        0.001104,
        0.004111,
        0.008487,
        0.020495,
        0.002426,
        0.004259,
        0.001831,
        0.001539,
        0.011238,
        0.00266,
        0.010515,
        0.010875,
        0.012427,
        0.003114,
        0.017441,
        -0.010501,
        -0.015964,
        0.006268,
        0.008061,
        0.00527,
        0.012926,
        0.014903,
        -0.001846,
        -0.01013,
        -0.004539,
        -0.022975,
        0.028548,
        0.014767,
        0.011309,
        0.014216,
        -0.028889,
        0.026668,
        0.00703,
        0.00315,
        0.011371,
        0.00688,
        0.0145,
        0.010596,
        0.009672,
        -0.029464,
        0.000166,
        0.015425,
        0.014456,
        0.020771,
        0.021768,
        0.027634,
        -0.018403,
        -0.007499,
        0.039476,
        0.028853,
        -0.002235,
        0.002095,
        0.013051,
        0.033808,
        0.006816,
        0.004513,
        0.013955,
        0.005438,
        -0.025307,
        0.028156,
        -0.005597,
        0.012597,
        -0.02455,
        -0.01255,
        -0.009137,
        -0.026208,
        0.005055,
        -0.032871,
        0.030765,
        -0.025085,
        -0.038851,
        0.042697,
        0.026184,
        -0.020271,
        0.032482,
        -0.021721,
        0.011102,
        0.008075,
        -0.001616,
        0.025549,
        0.011667,
        0.00095,
        -0.027177,
        0.000975,
        0.033825,
        0.027737,
        0.004127,
        0.021789,
        0.015004,
        -0.030884,
        0.019147,
        0.015922,
        0.021189,
        0.004543,
        -0.00275,
        -0.009988,
        0.029215,
        -0.014073,
        0.010065,
        -0.000544,
        -0.008399,
        -0.046189,
        0.036095,
        0.024664,
        0.007763,
        0.004777,
        0.024009,
        0.010853,
        -0.005167,
        0.002655,
        0.009209,
        -0.004334,
        -0.022855,
        0.038748,
        0.02167,
        -0.006628,
        -0.004115
      ]
    },
    "page": "experiments/qm-pft-1-turbulence-index-labelled-search-vs-bl.html",
    "performance": {
      "cagr": 0.03064,
      "max_drawdown": -0.19218,
      "max_drawdown_fallback_rule": "Use daily backtest equity when available; otherwise compound published monthly returns and label the result monthly.",
      "max_drawdown_observation_frequency": "monthly",
      "sharpe": 0.60128,
      "sortino": 0.87692,
      "volatility": null
    },
    "provenance": {
      "artifact": null,
      "code": "research/findings",
      "finding": "research/findings/turbulence-qm-pft.1.md",
      "site_data": "site-data/experiments/qm-pft.1.json",
      "tearsheet": null
    },
    "question": " Decision",
    "safe_withdrawal": null,
    "signalSeries": null,
    "signals": [],
    "slug": "qm-pft-1-turbulence-index-labelled-search-vs-bl",
    "stats": {
      "cagr": 0.03064,
      "maxDD": -0.19218,
      "sharpe": 0.60128,
      "sortino": 0.87692
    },
    "status": "rejected",
    "status_chip": "Rejected",
    "tax_analysis": {
      "ltcg_pct": null,
      "note": "Experiment parity stub: no taxable wrapper; see strategy tax_analysis for methodology",
      "schema_id": "tax-analysis/v1",
      "stcg_pct": null
    },
    "taxable_stats": null,
    "title": "Turbulence Index — labelled search vs blogpost (qm-pft.1)",
    "trading_costs": {
      "avg_daily_turnover": 0.00594,
      "avg_yearly_fees": 0.001497,
      "basis": "daily_engine",
      "cost_bps_one_way": 10.0,
      "fee_bps": 10.0,
      "n_bars": 120,
      "schema_id": "trading-costs/v1",
      "slippage_bps": 0.0,
      "total_costs": 0.000713
    },
    "verify": {
      "as_cagr": null,
      "as_stats": null,
      "cagr_delta": null,
      "gates": null,
      "last_verify_at": null,
      "monthly_bias": null,
      "monthly_corr": null,
      "monthly_mae": null,
      "n_months": null,
      "ours_cagr": 0.03064,
      "ours_stats": {
        "ann_return": 0.03064,
        "sharpe": 0.60128,
        "sortino": 0.87692
      },
      "passed": null,
      "status": "not_applicable",
      "verify_status": null
    },
    "visualizations": [
      {
        "data": {
          "labels": [
            "2016-08",
            "2016-09",
            "2016-10",
            "2016-11",
            "2016-12",
            "2017-01"
          ],
          "note": "Aligned window, both rebased to 1.0 at start for fair comparison"
        },
        "title": "Equity vs S&P (aligned, rebased to 1.0)",
        "type": "equity_vs_spy"
      },
      {
        "data": {
          "note": "Portfolio Optimizer Sharpe 2.20 claim vs labelled proxy"
        },
        "title": "Labelled search matrix (31 trials)",
        "type": "search_matrix"
      }
    ]
  },
  "generated_at": "2026-09-17T04:12:25Z",
  "id": "qm-pft.1",
  "schema_id": "experiments/v1",
  "schema_version": 1
}
