{
  "version": "1.0.0",
  "created": "2026-09-17",
  "publisher": "l0g.fr",
  "status": "synthetic_educational_not_historical",
  "currency": "EUR",
  "source": "Original deterministic l0g calculations, not an empirical market dataset.",
  "historical_period": null,
  "forecast": false,
  "probability_model": false,
  "definitions": {
    "return_pct": "Nominal annual total return, dividends included, before additional entered fees.",
    "annual_fee_pct": "Fee applied to assets after the annual return and before the withdrawal.",
    "budget_nominal_eur": "withdrawal * (1 + inflation/100)^(year-1). First payment at end of year 1.",
    "proportional_fraction": "withdrawal / initial, applied to available assets after return and fee.",
    "requested_nominal_eur": "Indexed budget in fixed mode; available assets times fraction in proportional mode.",
    "paid_nominal_eur": "Minimum of requested payment and available assets. No borrowing.",
    "budget_gap_nominal_eur": "max(0, budget minus actual payment), not a guarantee or a measure of total household income.",
    "closing_time0_eur": "Closing nominal capital divided by (1 + inflation/100)^year.",
    "total_paid": "Sum of nominal annual payments without discounting, not a present value."
  },
  "limits": [
    "No future contributions, taxes, changing allocation, separate dividend payout or product guarantees.",
    "No mortality or pension model.",
    "B reverses A exactly; this gives no probability or recommended withdrawal rate.",
    "The 30-year example was deliberately constructed with two early losses in A. It is not representative."
  ],
  "scenarios": [
    {
      "id": "thirty-years",
      "input": {
        "initial": 200000,
        "withdrawal": 10000,
        "inflation": 2,
        "fee": 0,
        "mode": "fixed",
        "returns": [
          -20,
          -10,
          5,
          8,
          12,
          10,
          7,
          15,
          4,
          11,
          6,
          9,
          3,
          14,
          8,
          5,
          12,
          6,
          10,
          7,
          9,
          4,
          13,
          8,
          11,
          5,
          15,
          6,
          12,
          9
        ]
      },
      "returns_b": [
        9,
        12,
        6,
        15,
        5,
        11,
        8,
        13,
        4,
        9,
        7,
        10,
        6,
        12,
        5,
        8,
        14,
        3,
        9,
        6,
        11,
        4,
        15,
        7,
        10,
        12,
        8,
        5,
        -10,
        -20
      ],
      "result": {
        "a": {
          "rows": [
            {
              "year": 1,
              "returnPct": -20,
              "opening": 200000,
              "available": 160000,
              "budget": 10000,
              "requested": 10000,
              "paid": 10000,
              "shortfall": 0,
              "closing": 150000,
              "realClosing": 147058.82352941178
            },
            {
              "year": 2,
              "returnPct": -10,
              "opening": 150000,
              "available": 135000,
              "budget": 10200,
              "requested": 10200,
              "paid": 10200,
              "shortfall": 0,
              "closing": 124800,
              "realClosing": 119953.86389850058
            },
            {
              "year": 3,
              "returnPct": 5,
              "opening": 124800,
              "available": 131040,
              "budget": 10404,
              "requested": 10404,
              "paid": 10404,
              "shortfall": 0,
              "closing": 120636,
              "realClosing": 113677.99715041724
            },
            {
              "year": 4,
              "returnPct": 8,
              "opening": 120636,
              "available": 130286.88,
              "budget": 10612.080000000002,
              "requested": 10612.080000000002,
              "paid": 10612.080000000002,
              "shortfall": 0,
              "closing": 119674.8,
              "realClosing": 110561.01659063788
            },
            {
              "year": 5,
              "returnPct": 12,
              "opening": 119674.8,
              "available": 134035.776,
              "budget": 10824.3216,
              "requested": 10824.3216,
              "paid": 10824.3216,
              "shortfall": 0,
              "closing": 123211.45440000002,
              "realClosing": 111596.41037403377
            },
            {
              "year": 6,
              "returnPct": 10,
              "opening": 123211.45440000002,
              "available": 135532.59984000004,
              "budget": 11040.808032,
              "requested": 11040.808032,
              "paid": 11040.808032,
              "shortfall": 0,
              "closing": 124491.79180800004,
              "realClosing": 110545.14844258544
            },
            {
              "year": 7,
              "returnPct": 7,
              "opening": 124491.79180800004,
              "available": 133206.21723456006,
              "budget": 11261.62419264,
              "requested": 11261.62419264,
              "paid": 11261.62419264,
              "shortfall": 0,
              "closing": 121944.59304192006,
              "realClosing": 106160.10669957496
            },
            {
              "year": 8,
              "returnPct": 15,
              "opening": 121944.59304192006,
              "available": 140236.28199820805,
              "budget": 11486.8566764928,
              "requested": 11486.8566764928,
              "paid": 11486.8566764928,
              "shortfall": 0,
              "closing": 128749.42532171526,
              "realClosing": 109886.3948083443
            },
            {
              "year": 9,
              "returnPct": 4,
              "opening": 128749.42532171526,
              "available": 133899.40233458387,
              "budget": 11716.593810022658,
              "requested": 11716.593810022658,
              "paid": 11716.593810022658,
              "shortfall": 0,
              "closing": 122182.8085245612,
              "realClosing": 102237.1084320373
            },
            {
              "year": 10,
              "returnPct": 11,
              "opening": 122182.8085245612,
              "available": 135622.91746226294,
              "budget": 11950.92568622311,
              "requested": 11950.92568622311,
              "paid": 11950.92568622311,
              "shortfall": 0,
              "closing": 123671.99177603982,
              "realClosing": 101454.10819564844
            },
            {
              "year": 11,
              "returnPct": 6,
              "opening": 123671.99177603982,
              "available": 131092.31128260223,
              "budget": 12189.944199947573,
              "requested": 12189.944199947573,
              "paid": 12189.944199947573,
              "shortfall": 0,
              "closing": 118902.36708265466,
              "realClosing": 95628.77910528172
            },
            {
              "year": 12,
              "returnPct": 9,
              "opening": 118902.36708265466,
              "available": 129603.58012009358,
              "budget": 12433.743083946525,
              "requested": 12433.743083946525,
              "paid": 12433.743083946525,
              "shortfall": 0,
              "closing": 117169.83703614706,
              "realClosing": 92387.61688701673
            },
            {
              "year": 13,
              "returnPct": 3,
              "opening": 117169.83703614706,
              "available": 120684.93214723148,
              "budget": 12682.417945625457,
              "requested": 12682.417945625457,
              "paid": 12682.417945625457,
              "shortfall": 0,
              "closing": 108002.51420160601,
              "realClosing": 83489.456268262
            },
            {
              "year": 14,
              "returnPct": 14,
              "opening": 108002.51420160601,
              "available": 123122.86618983086,
              "budget": 12936.066304537966,
              "requested": 12936.066304537966,
              "paid": 12936.066304537966,
              "shortfall": 0,
              "closing": 110186.7998852929,
              "realClosing": 83507.82367237128
            },
            {
              "year": 15,
              "returnPct": 8,
              "opening": 110186.7998852929,
              "available": 119001.74387611634,
              "budget": 13194.787630628723,
              "requested": 13194.787630628723,
              "paid": 13194.787630628723,
              "shortfall": 0,
              "closing": 105806.95624548761,
              "realClosing": 78616.12702564802
            },
            {
              "year": 16,
              "returnPct": 5,
              "opening": 105806.95624548761,
              "available": 111097.304057762,
              "budget": 13458.6833832413,
              "requested": 13458.6833832413,
              "paid": 13458.6833832413,
              "shortfall": 0,
              "closing": 97638.6206745207,
              "realClosing": 71124.44448718669
            },
            {
              "year": 17,
              "returnPct": 12,
              "opening": 97638.6206745207,
              "available": 109355.2551554632,
              "budget": 13727.857050906125,
              "requested": 13727.857050906125,
              "paid": 13727.857050906125,
              "shortfall": 0,
              "closing": 95627.39810455707,
              "realClosing": 68293.50767220499
            },
            {
              "year": 18,
              "returnPct": 6,
              "opening": 95627.39810455707,
              "available": 101365.0419908305,
              "budget": 14002.414191924248,
              "requested": 14002.414191924248,
              "paid": 14002.414191924248,
              "shortfall": 0,
              "closing": 87362.62779890625,
              "realClosing": 61167.76287503656
            },
            {
              "year": 19,
              "returnPct": 10,
              "opening": 87362.62779890625,
              "available": 96098.89057879688,
              "budget": 14282.462475762733,
              "requested": 14282.462475762733,
              "paid": 14282.462475762733,
              "shortfall": 0,
              "closing": 81816.42810303415,
              "realClosing": 56161.3129044512
            },
            {
              "year": 20,
              "returnPct": 7,
              "opening": 81816.42810303415,
              "available": 87543.57807024654,
              "budget": 14568.111725277988,
              "requested": 14568.111725277988,
              "paid": 14568.111725277988,
              "shortfall": 0,
              "closing": 72975.46634496856,
              "realClosing": 49110.396870355675
            },
            {
              "year": 21,
              "returnPct": 9,
              "opening": 72975.46634496856,
              "available": 79543.25831601574,
              "budget": 14859.473959783549,
              "requested": 14859.473959783549,
              "paid": 14859.473959783549,
              "shortfall": 0,
              "closing": 64683.78435623219,
              "realClosing": 42676.79665557616
            },
            {
              "year": 22,
              "returnPct": 4,
              "opening": 64683.78435623219,
              "available": 67271.13573048147,
              "budget": 15156.663438979222,
              "requested": 15156.663438979222,
              "paid": 15156.663438979222,
              "shortfall": 0,
              "closing": 52114.47229150225,
              "realClosing": 33709.675021371775
            },
            {
              "year": 23,
              "returnPct": 13,
              "opening": 52114.47229150225,
              "available": 58889.35368939754,
              "budget": 15459.796707758804,
              "requested": 15459.796707758804,
              "paid": 15459.796707758804,
              "shortfall": 0,
              "closing": 43429.556981638736,
              "realClosing": 27541.110562892252
            },
            {
              "year": 24,
              "returnPct": 8,
              "opening": 43429.556981638736,
              "available": 46903.92154016984,
              "budget": 15768.992641913981,
              "requested": 15768.992641913981,
              "paid": 15768.992641913981,
              "shortfall": 0,
              "closing": 31134.928898255857,
              "realClosing": 19357.254321493758
            },
            {
              "year": 25,
              "returnPct": 11,
              "opening": 31134.928898255857,
              "available": 34559.771077064004,
              "budget": 16084.372494752262,
              "requested": 16084.372494752262,
              "paid": 16084.372494752262,
              "shortfall": 0,
              "closing": 18475.39858231174,
              "realClosing": 11261.325781233405
            },
            {
              "year": 26,
              "returnPct": 5,
              "opening": 18475.39858231174,
              "available": 19399.168511427328,
              "budget": 16406.059944647306,
              "requested": 16406.059944647306,
              "paid": 16406.059944647306,
              "shortfall": 0,
              "closing": 2993.1085667800216,
              "realClosing": 1788.6196767598783
            },
            {
              "year": 27,
              "returnPct": 15,
              "opening": 2993.1085667800216,
              "available": 3442.0748517970246,
              "budget": 16734.181143540252,
              "requested": 16734.181143540252,
              "paid": 3442.0748517970246,
              "shortfall": 13292.106291743228,
              "closing": 0,
              "realClosing": 0
            },
            {
              "year": 28,
              "returnPct": 6,
              "opening": 0,
              "available": 0,
              "budget": 17068.864766411058,
              "requested": 17068.864766411058,
              "paid": 0,
              "shortfall": 17068.864766411058,
              "closing": 0,
              "realClosing": 0
            },
            {
              "year": 29,
              "returnPct": 12,
              "opening": 0,
              "available": 0,
              "budget": 17410.24206173928,
              "requested": 17410.24206173928,
              "paid": 0,
              "shortfall": 17410.24206173928,
              "closing": 0,
              "realClosing": 0
            },
            {
              "year": 30,
              "returnPct": 9,
              "opening": 0,
              "available": 0,
              "budget": 17758.446902974065,
              "requested": 17758.446902974065,
              "paid": 0,
              "shortfall": 17758.446902974065,
              "closing": 0,
              "realClosing": 0
            }
          ],
          "closing": 0,
          "realClosing": 0,
          "totalPaid": 340151.1320288094,
          "totalShortfall": 65529.66002286763,
          "firstUnfunded": 27,
          "firstBudgetGap": 27,
          "firstExhaustion": 27,
          "arithmetic": 7.133333333333334,
          "cagr": 6.885014213211971,
          "netCagr": 6.885014213211971,
          "fraction": 0.05,
          "years": 30
        },
        "b": {
          "rows": [
            {
              "year": 1,
              "returnPct": 9,
              "opening": 200000,
              "available": 218000.00000000003,
              "budget": 10000,
              "requested": 10000,
              "paid": 10000,
              "shortfall": 0,
              "closing": 208000.00000000003,
              "realClosing": 203921.568627451
            },
            {
              "year": 2,
              "returnPct": 12,
              "opening": 208000.00000000003,
              "available": 232960.00000000006,
              "budget": 10200,
              "requested": 10200,
              "paid": 10200,
              "shortfall": 0,
              "closing": 222760.00000000006,
              "realClosing": 214109.9577085737
            },
            {
              "year": 3,
              "returnPct": 6,
              "opening": 222760.00000000006,
              "available": 236125.60000000006,
              "budget": 10404,
              "requested": 10404,
              "paid": 10404,
              "shortfall": 0,
              "closing": 225721.60000000006,
              "realClosing": 212702.5050696942
            },
            {
              "year": 4,
              "returnPct": 15,
              "opening": 225721.60000000006,
              "available": 259579.84000000005,
              "budget": 10612.080000000002,
              "requested": 10612.080000000002,
              "paid": 10612.080000000002,
              "shortfall": 0,
              "closing": 248967.76000000007,
              "realClosing": 230007.726304067
            },
            {
              "year": 5,
              "returnPct": 5,
              "opening": 248967.76000000007,
              "available": 261416.14800000007,
              "budget": 10824.3216,
              "requested": 10824.3216,
              "paid": 10824.3216,
              "shortfall": 0,
              "closing": 250591.82640000008,
              "realClosing": 226968.73786202975
            },
            {
              "year": 6,
              "returnPct": 11,
              "opening": 250591.82640000008,
              "available": 278156.9273040001,
              "budget": 11040.808032,
              "requested": 11040.808032,
              "paid": 11040.808032,
              "shortfall": 0,
              "closing": 267116.11927200016,
              "realClosing": 237191.46963416968
            },
            {
              "year": 7,
              "returnPct": 8,
              "opening": 267116.11927200016,
              "available": 288485.4088137602,
              "budget": 11261.62419264,
              "requested": 11261.62419264,
              "paid": 11261.62419264,
              "shortfall": 0,
              "closing": 277223.7846211202,
              "realClosing": 241339.98745578754
            },
            {
              "year": 8,
              "returnPct": 13,
              "opening": 277223.7846211202,
              "available": 313262.8766218658,
              "budget": 11486.8566764928,
              "requested": 11486.8566764928,
              "paid": 11486.8566764928,
              "shortfall": 0,
              "closing": 301776.019945373,
              "realClosing": 257562.92727945087
            },
            {
              "year": 9,
              "returnPct": 4,
              "opening": 301776.019945373,
              "available": 313847.06074318796,
              "budget": 11716.593810022658,
              "requested": 11716.593810022658,
              "paid": 11716.593810022658,
              "shortfall": 0,
              "closing": 302130.4669331653,
              "realClosing": 252809.25918689114
            },
            {
              "year": 10,
              "returnPct": 9,
              "opening": 302130.4669331653,
              "available": 329322.20895715023,
              "budget": 11950.92568622311,
              "requested": 11950.92568622311,
              "paid": 11950.92568622311,
              "shortfall": 0,
              "closing": 317371.28327092715,
              "realClosing": 260354.99266050136
            },
            {
              "year": 11,
              "returnPct": 7,
              "opening": 317371.28327092715,
              "available": 339587.2730998921,
              "budget": 12189.944199947573,
              "requested": 12189.944199947573,
              "paid": 12189.944199947573,
              "shortfall": 0,
              "closing": 327397.3288999445,
              "realClosing": 263313.5707320946
            },
            {
              "year": 12,
              "returnPct": 10,
              "opening": 327397.3288999445,
              "available": 360137.06178993895,
              "budget": 12433.743083946525,
              "requested": 12433.743083946525,
              "paid": 12433.743083946525,
              "shortfall": 0,
              "closing": 347703.3187059924,
              "realClosing": 274161.6939267686
            },
            {
              "year": 13,
              "returnPct": 6,
              "opening": 347703.3187059924,
              "available": 368565.517828352,
              "budget": 12682.417945625457,
              "requested": 12682.417945625457,
              "paid": 12682.417945625457,
              "shortfall": 0,
              "closing": 355883.09988272656,
              "realClosing": 275109.2113356616
            },
            {
              "year": 14,
              "returnPct": 12,
              "opening": 355883.09988272656,
              "available": 398589.07186865376,
              "budget": 12936.066304537966,
              "requested": 12936.066304537966,
              "paid": 12936.066304537966,
              "shortfall": 0,
              "closing": 385653.00556411577,
              "realClosing": 292276.7810744519
            },
            {
              "year": 15,
              "returnPct": 5,
              "opening": 385653.00556411577,
              "available": 404935.6558423216,
              "budget": 13194.787630628723,
              "requested": 13194.787630628723,
              "paid": 13194.787630628723,
              "shortfall": 0,
              "closing": 391740.86821169284,
              "realClosing": 291069.2354197789
            },
            {
              "year": 16,
              "returnPct": 8,
              "opening": 391740.86821169284,
              "available": 423080.1376686283,
              "budget": 13458.6833832413,
              "requested": 13458.6833832413,
              "paid": 13458.6833832413,
              "shortfall": 0,
              "closing": 409621.454285387,
              "realClosing": 298387.0335817267
            },
            {
              "year": 17,
              "returnPct": 14,
              "opening": 409621.454285387,
              "available": 466968.45788534125,
              "budget": 13727.857050906125,
              "requested": 13727.857050906125,
              "paid": 13727.857050906125,
              "shortfall": 0,
              "closing": 453240.60083443514,
              "realClosing": 323687.4689050672
            },
            {
              "year": 18,
              "returnPct": 3,
              "opening": 453240.60083443514,
              "available": 466837.8188594682,
              "budget": 14002.414191924248,
              "requested": 14002.414191924248,
              "paid": 14002.414191924248,
              "shortfall": 0,
              "closing": 452835.40466754395,
              "realClosing": 317056.9538943325
            },
            {
              "year": 19,
              "returnPct": 9,
              "opening": 452835.40466754395,
              "available": 493590.5910876229,
              "budget": 14282.462475762733,
              "requested": 14282.462475762733,
              "paid": 14282.462475762733,
              "shortfall": 0,
              "closing": 479308.12861186016,
              "realClosing": 329011.84288708086
            },
            {
              "year": 20,
              "returnPct": 6,
              "opening": 479308.12861186016,
              "available": 508066.6163285718,
              "budget": 14568.111725277988,
              "requested": 14568.111725277988,
              "paid": 14568.111725277988,
              "shortfall": 0,
              "closing": 493498.50460329384,
              "realClosing": 332110.34652971145
            },
            {
              "year": 21,
              "returnPct": 11,
              "opening": 493498.50460329384,
              "available": 547783.3401096562,
              "budget": 14859.473959783549,
              "requested": 14859.473959783549,
              "paid": 14859.473959783549,
              "shortfall": 0,
              "closing": 532923.8661498727,
              "realClosing": 351610.2790666468
            },
            {
              "year": 22,
              "returnPct": 4,
              "opening": 532923.8661498727,
              "available": 554240.8207958676,
              "budget": 15156.663438979222,
              "requested": 15156.663438979222,
              "paid": 15156.663438979222,
              "shortfall": 0,
              "closing": 539084.1573568884,
              "realClosing": 348700.67669540463
            },
            {
              "year": 23,
              "returnPct": 15,
              "opening": 539084.1573568884,
              "available": 619946.7809604217,
              "budget": 15459.796707758804,
              "requested": 15459.796707758804,
              "paid": 15459.796707758804,
              "shortfall": 0,
              "closing": 604486.9842526629,
              "realClosing": 383338.998235015
            },
            {
              "year": 24,
              "returnPct": 7,
              "opening": 604486.9842526629,
              "available": 646801.0731503493,
              "budget": 15768.992641913981,
              "requested": 15768.992641913981,
              "paid": 15768.992641913981,
              "shortfall": 0,
              "closing": 631032.0805084354,
              "realClosing": 392326.20403084916
            },
            {
              "year": 25,
              "returnPct": 10,
              "opening": 631032.0805084354,
              "available": 694135.2885592789,
              "budget": 16084.372494752262,
              "requested": 16084.372494752262,
              "paid": 16084.372494752262,
              "shortfall": 0,
              "closing": 678050.9160645267,
              "realClosing": 413292.9651313079
            },
            {
              "year": 26,
              "returnPct": 12,
              "opening": 678050.9160645267,
              "available": 759417.02599227,
              "budget": 16406.059944647306,
              "requested": 16406.059944647306,
              "paid": 16406.059944647306,
              "shortfall": 0,
              "closing": 743010.9660476227,
              "realClosing": 444007.9617128088
            },
            {
              "year": 27,
              "returnPct": 8,
              "opening": 743010.9660476227,
              "available": 802451.8433314326,
              "budget": 16734.181143540252,
              "requested": 16734.181143540252,
              "paid": 16734.181143540252,
              "shortfall": 0,
              "closing": 785717.6621878922,
              "realClosing": 460322.1555390524
            },
            {
              "year": 28,
              "returnPct": 5,
              "opening": 785717.6621878922,
              "available": 825003.5452972869,
              "budget": 17068.864766411058,
              "requested": 17068.864766411058,
              "paid": 17068.864766411058,
              "shortfall": 0,
              "closing": 807934.6805308759,
              "realClosing": 464057.1208980442
            },
            {
              "year": 29,
              "returnPct": -10,
              "opening": 807934.6805308759,
              "available": 727141.2124777883,
              "budget": 17410.24206173928,
              "requested": 17410.24206173928,
              "paid": 17410.24206173928,
              "shortfall": 0,
              "closing": 709730.970416049,
              "realClosing": 399658.2439296468
            },
            {
              "year": 30,
              "returnPct": -20,
              "opening": 709730.970416049,
              "available": 567784.7763328393,
              "budget": 17758.446902974065,
              "requested": 17758.446902974065,
              "paid": 17758.446902974065,
              "shortfall": 0,
              "closing": 550026.3294298652,
              "realClosing": 303653.5246507034
            }
          ],
          "closing": 550026.3294298652,
          "realClosing": 303653.5246507034,
          "totalPaid": 405680.792051677,
          "totalShortfall": 0,
          "firstUnfunded": null,
          "firstBudgetGap": null,
          "firstExhaustion": null,
          "arithmetic": 7.133333333333334,
          "cagr": 6.885014213211971,
          "netCagr": 6.885014213211971,
          "fraction": 0.05,
          "years": 30
        }
      }
    },
    {
      "id": "two-years",
      "input": {
        "initial": 200000,
        "withdrawal": 10000,
        "inflation": 0,
        "fee": 0,
        "mode": "fixed",
        "returns": [
          -20,
          25
        ]
      },
      "returns_b": [
        25,
        -20
      ],
      "result": {
        "a": {
          "rows": [
            {
              "year": 1,
              "returnPct": -20,
              "opening": 200000,
              "available": 160000,
              "budget": 10000,
              "requested": 10000,
              "paid": 10000,
              "shortfall": 0,
              "closing": 150000,
              "realClosing": 150000
            },
            {
              "year": 2,
              "returnPct": 25,
              "opening": 150000,
              "available": 187500,
              "budget": 10000,
              "requested": 10000,
              "paid": 10000,
              "shortfall": 0,
              "closing": 177500,
              "realClosing": 177500
            }
          ],
          "closing": 177500,
          "realClosing": 177500,
          "totalPaid": 20000,
          "totalShortfall": 0,
          "firstUnfunded": null,
          "firstBudgetGap": null,
          "firstExhaustion": null,
          "arithmetic": 2.5,
          "cagr": 0,
          "netCagr": 0,
          "fraction": 0.05,
          "years": 2
        },
        "b": {
          "rows": [
            {
              "year": 1,
              "returnPct": 25,
              "opening": 200000,
              "available": 250000,
              "budget": 10000,
              "requested": 10000,
              "paid": 10000,
              "shortfall": 0,
              "closing": 240000,
              "realClosing": 240000
            },
            {
              "year": 2,
              "returnPct": -20,
              "opening": 240000,
              "available": 192000,
              "budget": 10000,
              "requested": 10000,
              "paid": 10000,
              "shortfall": 0,
              "closing": 182000,
              "realClosing": 182000
            }
          ],
          "closing": 182000,
          "realClosing": 182000,
          "totalPaid": 20000,
          "totalShortfall": 0,
          "firstUnfunded": null,
          "firstBudgetGap": null,
          "firstExhaustion": null,
          "arithmetic": 2.5,
          "cagr": 0,
          "netCagr": 0,
          "fraction": 0.05,
          "years": 2
        }
      }
    },
    {
      "id": "proportional-two-years",
      "input": {
        "initial": 200000,
        "withdrawal": 10000,
        "inflation": 0,
        "fee": 0,
        "mode": "proportional",
        "returns": [
          -20,
          25
        ]
      },
      "returns_b": [
        25,
        -20
      ],
      "result": {
        "a": {
          "rows": [
            {
              "year": 1,
              "returnPct": -20,
              "opening": 200000,
              "available": 160000,
              "budget": 10000,
              "requested": 8000,
              "paid": 8000,
              "shortfall": 2000,
              "closing": 152000,
              "realClosing": 152000
            },
            {
              "year": 2,
              "returnPct": 25,
              "opening": 152000,
              "available": 190000,
              "budget": 10000,
              "requested": 9500,
              "paid": 9500,
              "shortfall": 500,
              "closing": 180500,
              "realClosing": 180500
            }
          ],
          "closing": 180500,
          "realClosing": 180500,
          "totalPaid": 17500,
          "totalShortfall": 2500,
          "firstUnfunded": null,
          "firstBudgetGap": 1,
          "firstExhaustion": null,
          "arithmetic": 2.5,
          "cagr": 0,
          "netCagr": 0,
          "fraction": 0.05,
          "years": 2
        },
        "b": {
          "rows": [
            {
              "year": 1,
              "returnPct": 25,
              "opening": 200000,
              "available": 250000,
              "budget": 10000,
              "requested": 12500,
              "paid": 12500,
              "shortfall": 0,
              "closing": 237500,
              "realClosing": 237500
            },
            {
              "year": 2,
              "returnPct": -20,
              "opening": 237500,
              "available": 190000,
              "budget": 10000,
              "requested": 9500,
              "paid": 9500,
              "shortfall": 500,
              "closing": 180500,
              "realClosing": 180500
            }
          ],
          "closing": 180500,
          "realClosing": 180500,
          "totalPaid": 22000,
          "totalShortfall": 500,
          "firstUnfunded": null,
          "firstBudgetGap": 2,
          "firstExhaustion": null,
          "arithmetic": 2.5,
          "cagr": 0,
          "netCagr": 0,
          "fraction": 0.05,
          "years": 2
        }
      }
    }
  ]
}
