{
  "annual": [
    {
      "year": 2018,
      "method": "Buy & Hold",
      "start": "2017-12-29",
      "end": "2018-12-31",
      "days": 251,
      "final": 93.76274026503486,
      "return_pct": -6.237259734965136,
      "max_drawdown_pct": 19.778213767806875,
      "min_value": 87.93728329861119,
      "floor_breached": true,
      "max_shortfall": 2.0627167013888084,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": 0.0
    },
    {
      "year": 2018,
      "method": "SLPI",
      "start": "2017-12-29",
      "end": "2018-12-31",
      "days": 251,
      "final": 87.93728329861119,
      "return_pct": -12.062716701388808,
      "max_drawdown_pct": 19.778213767806875,
      "min_value": 87.93728329861119,
      "floor_breached": true,
      "max_shortfall": 2.0627167013888084,
      "first_exit": "2018-12-24",
      "rebalance_count": 1,
      "risky_turnover": 87.9372832986112
    },
    {
      "year": 2018,
      "method": "CPPI",
      "start": "2017-12-29",
      "end": "2018-12-31",
      "days": 251,
      "final": 97.5476061992414,
      "return_pct": -2.4523938007585997,
      "max_drawdown_pct": 6.162668561206319,
      "min_value": 96.2697634056735,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 250,
      "risky_turnover": 111.94422734394212
    },
    {
      "year": 2018,
      "method": "TIPP",
      "start": "2017-12-29",
      "end": "2018-12-31",
      "days": 251,
      "final": 98.25335423297818,
      "return_pct": -1.7466457670218176,
      "max_drawdown_pct": 5.020906857460094,
      "min_value": 97.21467763285547,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 250,
      "risky_turnover": 88.5634355886223
    },
    {
      "year": 2018,
      "method": "Variable m",
      "start": "2017-12-29",
      "end": "2018-12-31",
      "days": 251,
      "final": 96.67259419632649,
      "return_pct": -3.327405803673514,
      "max_drawdown_pct": 9.075321450367092,
      "min_value": 95.70491398208304,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 250,
      "risky_turnover": 417.6357256569539
    },
    {
      "year": 2018,
      "method": "OBPI (model)",
      "start": "2017-12-29",
      "end": "2018-12-31",
      "days": 251,
      "final": 90.0,
      "return_pct": -10.0,
      "max_drawdown_pct": 28.61189116392273,
      "min_value": 90.0,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": null,
      "option_sigma": 0.06670114253007703,
      "call_premium": 2.6677737538854203,
      "call_units": 3.7484438046651145
    },
    {
      "year": 2019,
      "method": "Buy & Hold",
      "start": "2018-12-31",
      "end": "2019-12-31",
      "days": 252,
      "final": 128.87807407702897,
      "return_pct": 28.87807407702897,
      "max_drawdown_pct": 6.836103916383496,
      "min_value": 97.64804435845784,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": 0.0
    },
    {
      "year": 2019,
      "method": "SLPI",
      "start": "2018-12-31",
      "end": "2019-12-31",
      "days": 252,
      "final": 128.87807407702897,
      "return_pct": 28.87807407702897,
      "max_drawdown_pct": 6.836103916383496,
      "min_value": 97.64804435845784,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": 0.0
    },
    {
      "year": 2019,
      "method": "CPPI",
      "start": "2018-12-31",
      "end": "2019-12-31",
      "days": 252,
      "final": 110.4125408907653,
      "return_pct": 10.4125408907653,
      "max_drawdown_pct": 2.9563210233625625,
      "min_value": 99.29252904089921,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 251,
      "risky_turnover": 126.32073439772489
    },
    {
      "year": 2019,
      "method": "TIPP",
      "start": "2018-12-31",
      "end": "2019-12-31",
      "days": 252,
      "final": 107.4566332387571,
      "return_pct": 7.456633238757107,
      "max_drawdown_pct": 1.9597950036950418,
      "min_value": 99.2950728008607,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 251,
      "risky_turnover": 70.91068030769742
    },
    {
      "year": 2019,
      "method": "Variable m",
      "start": "2018-12-31",
      "end": "2019-12-31",
      "days": 252,
      "final": 111.39858726444045,
      "return_pct": 11.398587264440451,
      "max_drawdown_pct": 6.1462326816024255,
      "min_value": 99.51728724998448,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 228,
      "risky_turnover": 631.619581881268
    },
    {
      "year": 2019,
      "method": "OBPI (model)",
      "start": "2018-12-31",
      "end": "2019-12-31",
      "days": 252,
      "final": 132.50513785173737,
      "return_pct": 32.50513785173737,
      "max_drawdown_pct": 8.822819938499137,
      "min_value": 98.20718281679854,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": null,
      "option_sigma": 0.17050713778154272,
      "call_premium": 6.794019625994125,
      "call_units": 1.4718827072179328
    },
    {
      "year": 2020,
      "method": "Buy & Hold",
      "start": "2019-12-31",
      "end": "2020-12-31",
      "days": 253,
      "final": 116.25892199406964,
      "return_pct": 16.258921994069638,
      "max_drawdown_pct": 33.92495902426057,
      "min_value": 69.2526263007695,
      "floor_breached": true,
      "max_shortfall": 20.747373699230494,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": 0.0
    },
    {
      "year": 2020,
      "method": "SLPI",
      "start": "2019-12-31",
      "end": "2020-12-31",
      "days": 253,
      "final": 85.01228805427795,
      "return_pct": -14.987711945722054,
      "max_drawdown_pct": 18.888413094517364,
      "min_value": 85.01228805427795,
      "floor_breached": true,
      "max_shortfall": 4.9877119457220545,
      "first_exit": "2020-03-09",
      "rebalance_count": 1,
      "risky_turnover": 85.01228805427795
    },
    {
      "year": 2020,
      "method": "CPPI",
      "start": "2019-12-31",
      "end": "2020-12-31",
      "days": 253,
      "final": 100.76190685975524,
      "return_pct": 0.7619068597552427,
      "max_drawdown_pct": 8.663796123536482,
      "min_value": 92.66468468853242,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 252,
      "risky_turnover": 134.88660387266972
    },
    {
      "year": 2020,
      "method": "TIPP",
      "start": "2019-12-31",
      "end": "2020-12-31",
      "days": 253,
      "final": 100.7647573169417,
      "return_pct": 0.7647573169416972,
      "max_drawdown_pct": 7.673677788693977,
      "min_value": 93.59833061334615,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 252,
      "risky_turnover": 117.62124214511326
    },
    {
      "year": 2020,
      "method": "Variable m",
      "start": "2019-12-31",
      "end": "2020-12-31",
      "days": 253,
      "final": 104.20633516513662,
      "return_pct": 4.206335165136622,
      "max_drawdown_pct": 7.003544873205558,
      "min_value": 95.20796780017845,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 230,
      "risky_turnover": 399.2235341885655
    },
    {
      "year": 2020,
      "method": "OBPI (model)",
      "start": "2019-12-31",
      "end": "2020-12-31",
      "days": 253,
      "final": 122.57461686766118,
      "return_pct": 22.574616867661177,
      "max_drawdown_pct": 14.988303041540652,
      "min_value": 90.00202245700409,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": null,
      "option_sigma": 0.12502354411550934,
      "call_premium": 4.991285717994359,
      "call_units": 2.0034917985056335
    },
    {
      "year": 2021,
      "method": "Buy & Hold",
      "start": "2020-12-31",
      "end": "2021-12-31",
      "days": 252,
      "final": 126.89273629085734,
      "return_pct": 26.892736290857343,
      "max_drawdown_pct": 5.212532648585433,
      "min_value": 98.52452164097049,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": 0.0
    },
    {
      "year": 2021,
      "method": "SLPI",
      "start": "2020-12-31",
      "end": "2021-12-31",
      "days": 252,
      "final": 126.89273629085734,
      "return_pct": 26.892736290857343,
      "max_drawdown_pct": 5.212532648585433,
      "min_value": 98.52452164097049,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": 0.0
    },
    {
      "year": 2021,
      "method": "CPPI",
      "start": "2020-12-31",
      "end": "2021-12-31",
      "days": 252,
      "final": 109.39566935252694,
      "return_pct": 9.395669352526937,
      "max_drawdown_pct": 2.4335186199935577,
      "min_value": 99.55735649229115,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 251,
      "risky_turnover": 134.65803930481067
    },
    {
      "year": 2021,
      "method": "TIPP",
      "start": "2020-12-31",
      "end": "2021-12-31",
      "days": 252,
      "final": 106.91208325620306,
      "return_pct": 6.912083256203061,
      "max_drawdown_pct": 1.5276418194605568,
      "min_value": 99.55735649229115,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 251,
      "risky_turnover": 82.61561841501873
    },
    {
      "year": 2021,
      "method": "Variable m",
      "start": "2020-12-31",
      "end": "2021-12-31",
      "days": 252,
      "final": 112.945732342685,
      "return_pct": 12.945732342685005,
      "max_drawdown_pct": 4.859866619457676,
      "min_value": 99.1147129845823,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 208,
      "risky_turnover": 559.5399698496437
    },
    {
      "year": 2021,
      "method": "OBPI (model)",
      "start": "2020-12-31",
      "end": "2021-12-31",
      "days": 252,
      "final": 109.49537243109293,
      "return_pct": 9.495372431092932,
      "max_drawdown_pct": 4.141911103275675,
      "min_value": 99.14656336378566,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": null,
      "option_sigma": 0.34751563663108054,
      "call_premium": 13.794420386638159,
      "call_units": 0.7249307850358403
    },
    {
      "year": 2022,
      "method": "Buy & Hold",
      "start": "2021-12-31",
      "end": "2022-12-30",
      "days": 251,
      "final": 80.55717576759594,
      "return_pct": -19.442824232404064,
      "max_drawdown_pct": 25.42509631902862,
      "min_value": 75.05024988565269,
      "floor_breached": true,
      "max_shortfall": 14.94975011434731,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": 0.0
    },
    {
      "year": 2022,
      "method": "SLPI",
      "start": "2021-12-31",
      "end": "2022-12-30",
      "days": 251,
      "final": 88.65590472873453,
      "return_pct": -11.344095271265473,
      "max_drawdown_pct": 11.90561569124542,
      "min_value": 88.65590472873453,
      "floor_breached": true,
      "max_shortfall": 1.3440952712654735,
      "first_exit": "2022-02-23",
      "rebalance_count": 1,
      "risky_turnover": 88.65590472873453
    },
    {
      "year": 2022,
      "method": "CPPI",
      "start": "2021-12-31",
      "end": "2022-12-30",
      "days": 251,
      "final": 94.3843286709165,
      "return_pct": -5.615671329083497,
      "max_drawdown_pct": 6.498613313140089,
      "min_value": 93.68018220827624,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 250,
      "risky_turnover": 105.8736597785329
    },
    {
      "year": 2022,
      "method": "TIPP",
      "start": "2021-12-31",
      "end": "2022-12-30",
      "days": 251,
      "final": 94.48239020660061,
      "return_pct": -5.517609793399387,
      "max_drawdown_pct": 6.388870645244282,
      "min_value": 93.79013472864828,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 250,
      "risky_turnover": 103.84363111749181
    },
    {
      "year": 2022,
      "method": "Variable m",
      "start": "2021-12-31",
      "end": "2022-12-30",
      "days": 251,
      "final": 94.2525590403308,
      "return_pct": -5.7474409596692055,
      "max_drawdown_pct": 6.401056252458492,
      "min_value": 93.80917179431589,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 250,
      "risky_turnover": 177.55327077147084
    },
    {
      "year": 2022,
      "method": "OBPI (model)",
      "start": "2021-12-31",
      "end": "2022-12-30",
      "days": 251,
      "final": 90.0,
      "return_pct": -10.0,
      "max_drawdown_pct": 10.5482471981038,
      "min_value": 90.0,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": null,
      "option_sigma": 0.13111735628943777,
      "call_premium": 5.219926105605758,
      "call_units": 1.9157359314456288
    },
    {
      "year": 2023,
      "method": "Buy & Hold",
      "start": "2022-12-30",
      "end": "2023-12-29",
      "days": 250,
      "final": 124.23049876285987,
      "return_pct": 24.230498762859867,
      "max_drawdown_pct": 10.276620410724846,
      "min_value": 99.18218518036204,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": 0.0
    },
    {
      "year": 2023,
      "method": "SLPI",
      "start": "2022-12-30",
      "end": "2023-12-29",
      "days": 250,
      "final": 124.23049876285987,
      "return_pct": 24.230498762859867,
      "max_drawdown_pct": 10.276620410724846,
      "min_value": 99.18218518036204,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": 0.0
    },
    {
      "year": 2023,
      "method": "CPPI",
      "start": "2022-12-30",
      "end": "2023-12-29",
      "days": 250,
      "final": 108.21710926812801,
      "return_pct": 8.217109268128013,
      "max_drawdown_pct": 4.438685847127244,
      "min_value": 99.75045784534726,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 249,
      "risky_turnover": 126.97547469962765
    },
    {
      "year": 2023,
      "method": "TIPP",
      "start": "2022-12-30",
      "end": "2023-12-29",
      "days": 250,
      "final": 106.25637436648734,
      "return_pct": 6.256374366487336,
      "max_drawdown_pct": 2.8612126857772258,
      "min_value": 99.75371026368943,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 249,
      "risky_turnover": 81.63084180955325
    },
    {
      "year": 2023,
      "method": "Variable m",
      "start": "2022-12-30",
      "end": "2023-12-29",
      "days": 250,
      "final": 110.93702914440992,
      "return_pct": 10.93702914440992,
      "max_drawdown_pct": 8.341719693211635,
      "min_value": 99.68500136245086,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 227,
      "risky_turnover": 572.2050468768298
    },
    {
      "year": 2023,
      "method": "OBPI (model)",
      "start": "2022-12-30",
      "end": "2023-12-29",
      "days": 250,
      "final": 115.25169413346656,
      "return_pct": 15.251694133466557,
      "max_drawdown_pct": 11.078498311636874,
      "min_value": 99.09670009965333,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": null,
      "option_sigma": 0.24143956924871382,
      "call_premium": 9.595593323279886,
      "call_units": 1.0421450412804576
    },
    {
      "year": 2024,
      "method": "Buy & Hold",
      "start": "2023-12-29",
      "end": "2024-12-31",
      "days": 252,
      "final": 123.30900681994953,
      "return_pct": 23.30900681994953,
      "max_drawdown_pct": 8.485142574816496,
      "min_value": 98.29868150437228,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": 0.0
    },
    {
      "year": 2024,
      "method": "SLPI",
      "start": "2023-12-29",
      "end": "2024-12-31",
      "days": 252,
      "final": 123.30900681994953,
      "return_pct": 23.30900681994953,
      "max_drawdown_pct": 8.485142574816496,
      "min_value": 98.29868150437228,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": 0.0
    },
    {
      "year": 2024,
      "method": "CPPI",
      "start": "2023-12-29",
      "end": "2024-12-31",
      "days": 252,
      "final": 107.85877279018138,
      "return_pct": 7.858772790181376,
      "max_drawdown_pct": 3.7170172043692995,
      "min_value": 99.49510312819616,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 251,
      "risky_turnover": 129.34203425908743
    },
    {
      "year": 2024,
      "method": "TIPP",
      "start": "2023-12-29",
      "end": "2024-12-31",
      "days": 252,
      "final": 106.08787851429426,
      "return_pct": 6.08787851429426,
      "max_drawdown_pct": 2.4029373123866438,
      "min_value": 99.49510312819616,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 251,
      "risky_turnover": 75.30710571325812
    },
    {
      "year": 2024,
      "method": "Variable m",
      "start": "2023-12-29",
      "end": "2024-12-31",
      "days": 252,
      "final": 112.97757371942525,
      "return_pct": 12.977573719425251,
      "max_drawdown_pct": 6.997211689023186,
      "min_value": 99.00656227345125,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 196,
      "risky_turnover": 558.2045163562586
    },
    {
      "year": 2024,
      "method": "OBPI (model)",
      "start": "2023-12-29",
      "end": "2024-12-31",
      "days": 252,
      "final": 134.12340530463777,
      "return_pct": 34.12340530463777,
      "max_drawdown_pct": 14.215478396352088,
      "min_value": 98.3071861743009,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": null,
      "option_sigma": 0.13197293322632964,
      "call_premium": 5.282685381832842,
      "call_units": 1.8929766354040327
    },
    {
      "year": 2025,
      "method": "Buy & Hold",
      "start": "2024-12-31",
      "end": "2025-12-31",
      "days": 250,
      "final": 116.38780406111908,
      "return_pct": 16.387804061119084,
      "max_drawdown_pct": 18.90220779115093,
      "min_value": 84.71750178096892,
      "floor_breached": true,
      "max_shortfall": 5.282498219031083,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": 0.0
    },
    {
      "year": 2025,
      "method": "SLPI",
      "start": "2024-12-31",
      "end": "2025-12-31",
      "days": 250,
      "final": 86.26996257840091,
      "return_pct": -13.730037421599093,
      "max_drawdown_pct": 17.416078709015903,
      "min_value": 86.26996257840091,
      "floor_breached": true,
      "max_shortfall": 3.730037421599093,
      "first_exit": "2025-04-04",
      "rebalance_count": 1,
      "risky_turnover": 86.26996257840092
    },
    {
      "year": 2025,
      "method": "CPPI",
      "start": "2024-12-31",
      "end": "2025-12-31",
      "days": 250,
      "final": 104.23164612063515,
      "return_pct": 4.231646120635148,
      "max_drawdown_pct": 5.425593887993241,
      "min_value": 95.83626726342581,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 249,
      "risky_turnover": 111.94825343957115
    },
    {
      "year": 2025,
      "method": "TIPP",
      "start": "2024-12-31",
      "end": "2025-12-31",
      "days": 250,
      "final": 103.63220836120767,
      "return_pct": 3.632208361207674,
      "max_drawdown_pct": 4.850769923520226,
      "min_value": 96.35967184220355,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 249,
      "risky_turnover": 87.5005489639421
    },
    {
      "year": 2025,
      "method": "Variable m",
      "start": "2024-12-31",
      "end": "2025-12-31",
      "days": 250,
      "final": 103.66857204828764,
      "return_pct": 3.6685720482876434,
      "max_drawdown_pct": 6.4173233947985135,
      "min_value": 95.21442147350047,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 249,
      "risky_turnover": 443.11015800906296
    },
    {
      "year": 2025,
      "method": "OBPI (model)",
      "start": "2024-12-31",
      "end": "2025-12-31",
      "days": 250,
      "final": 122.46573011505211,
      "return_pct": 22.46573011505211,
      "max_drawdown_pct": 13.41523497182907,
      "min_value": 90.53777178742604,
      "floor_breached": false,
      "max_shortfall": 0.0,
      "first_exit": null,
      "rebalance_count": 0,
      "risky_turnover": null,
      "option_sigma": 0.1266121925532293,
      "call_premium": 5.047723862375491,
      "call_units": 1.9810909377467283
    }
  ],
  "summary": [
    {
      "method": "Buy & Hold",
      "mean_annual_return_pct": 13.784619754814404,
      "worst_within_year_drawdown_pct": 33.92495902426057,
      "floor_breach_years": 4,
      "exit_years": 0,
      "mean_rebalance_count": 0
    },
    {
      "method": "SLPI",
      "mean_annual_return_pct": 6.398219326340035,
      "worst_within_year_drawdown_pct": 19.778213767806875,
      "floor_breach_years": 4,
      "exit_years": 4,
      "mean_rebalance_count": 0.5
    },
    {
      "method": "CPPI",
      "mean_annual_return_pct": 4.10119751901874,
      "worst_within_year_drawdown_pct": 8.663796123536482,
      "floor_breach_years": 0,
      "exit_years": 0,
      "mean_rebalance_count": 250.375
    },
    {
      "method": "TIPP",
      "mean_annual_return_pct": 2.9807099366837413,
      "worst_within_year_drawdown_pct": 7.673677788693977,
      "floor_breach_years": 0,
      "exit_years": 0,
      "mean_rebalance_count": 250.375
    },
    {
      "method": "Variable m",
      "mean_annual_return_pct": 5.882372865130272,
      "worst_within_year_drawdown_pct": 9.075321450367092,
      "floor_breach_years": 0,
      "exit_years": 0,
      "mean_rebalance_count": 229.75
    },
    {
      "method": "OBPI (model)",
      "mean_annual_return_pct": 14.55199458795599,
      "worst_within_year_drawdown_pct": 28.61189116392273,
      "floor_breach_years": 0,
      "exit_years": 0,
      "mean_rebalance_count": 0
    }
  ],
  "obpi_sensitivity": [
    {
      "year": 2020,
      "method": "OBPI (model)",
      "return_pct": 17.158415299769246,
      "option_sigma": 0.15,
      "call_premium": 5.9866976090492585,
      "call_units": 1.6703699857638359
    },
    {
      "year": 2020,
      "method": "OBPI (model)",
      "return_pct": 10.383694308835501,
      "option_sigma": 0.2,
      "call_premium": 7.976435354518614,
      "call_units": 1.2536928534542746
    },
    {
      "year": 2020,
      "method": "OBPI (model)",
      "return_pct": 3.617485707209866,
      "option_sigma": 0.3,
      "call_premium": 11.939738615228464,
      "call_units": 0.8375392730327919
    },
    {
      "year": 2022,
      "method": "OBPI (model)",
      "return_pct": -10.0,
      "option_sigma": 0.15,
      "call_premium": 5.970348751257191,
      "call_units": 1.674944030345677
    },
    {
      "year": 2022,
      "method": "OBPI (model)",
      "return_pct": -10.0,
      "option_sigma": 0.2,
      "call_premium": 7.954684509454552,
      "call_units": 1.2571208811756753
    },
    {
      "year": 2022,
      "method": "OBPI (model)",
      "return_pct": -10.0,
      "option_sigma": 0.3,
      "call_premium": 11.907315625640898,
      "call_units": 0.8398198480996225
    },
    {
      "year": 2023,
      "method": "OBPI (model)",
      "return_pct": 30.58472925515025,
      "option_sigma": 0.15,
      "call_premium": 5.970348751257191,
      "call_units": 1.674944030345677
    },
    {
      "year": 2023,
      "method": "OBPI (model)",
      "return_pct": 20.460665956092356,
      "option_sigma": 0.2,
      "call_premium": 7.954684509454552,
      "call_units": 1.2571208811756753
    },
    {
      "year": 2023,
      "method": "OBPI (model)",
      "return_pct": 10.349253790402969,
      "option_sigma": 0.3,
      "call_premium": 11.907315625640898,
      "call_units": 0.8398198480996225
    }
  ],
  "engine_sha256": "88f39d0eab2fb88d2c916a2a45a50f8c69d17931301ec32e2f833f8920e33d4d",
  "source": {
    "provider": "S&P Dow Jones Indices via FRED, SP500",
    "url": "https://fred.stlouisfed.org/series/SP500",
    "retrieved": "2026-09-19",
    "sha256": "dc701c49ac9deecbec444fd6e63a9bb9b77c3e4a49e48cf5eb9292a20d48ceee",
    "first": "2016-10-03",
    "last": "2025-12-31",
    "observations": 2325,
    "measure": "Daily close price index, no dividends; input kept local"
  },
  "assumptions": {
    "years": [
      2018,
      2019,
      2020,
      2021,
      2022,
      2023,
      2024,
      2025
    ],
    "initial": 100,
    "floor": 90,
    "reset": "Each calendar year independently; previous year final trading close to current year final close",
    "safe_rate": 0,
    "costs": 0,
    "dividends": false,
    "constant_m": 3,
    "variable_vol_window": 20,
    "signal_lag": "All volatility estimates end one trading close before execution",
    "variable_rule": "clamp(3*0.20/annualized_sample_log_return_volatility,1,6)",
    "execution": "Idealized observed closing prices; no intraday stop fills; fractional holdings",
    "obpi": "Reserve 90 + European ATM calls, r=q=0; start trailing 252-return volatility fixed through expiry; theoretical premiums and marks, not traded option history"
  }
}
