{
  "tool_id": "efficient-frontier-builder",
  "slug": "efficient-frontier-builder",
  "path": "/efficient-frontier-builder/",
  "mode": "client_side",
  "usage": "Client-side calculator. Open https://aifinhub.io/efficient-frontier-builder/ and paste a multi-asset returns CSV. Markowitz frontier + min-var + tangency portfolios render in-browser.",
  "methodology": "https://aifinhub.io/methodology/efficient-frontier-builder/",
  "sample_input": {
    "tool": "efficient-frontier-builder",
    "name": "",
    "returns": [
      0.01,
      0.02,
      -0.005,
      0.015,
      -0.01
    ],
    "risk_free_annual": 0.04,
    "steps": 60,
    "assets": [
      {
        "name": "US Equities",
        "returns": [
          -0.026084,
          -0.009339,
          0.022423,
          0.024265,
          -0.00407,
          -0.032333,
          -0.00286,
          -0.013928,
          0.011828,
          0.020775,
          0.011517,
          0.006625,
          0.003477,
          0.00601,
          -0.008305,
          -0.01288,
          -0.013881,
          0.015359,
          0.011678,
          -0.016119,
          -0.003055,
          0.010377,
          -0.010538,
          -0.022867,
          0.001126,
          0.004041,
          -0.019115,
          -0.020235,
          0.016568,
          -0.005748,
          -0.011775,
          0.032105,
          0.002526,
          -0.000716,
          0.021207,
          0.005723,
          -0.002615,
          0.014075,
          0.017308,
          0.012199,
          0.014812,
          -0.024036,
          -0.007398,
          -0.009666,
          0.034898,
          -0.00267,
          -0.008985,
          0.013844,
          0.006004,
          -0.012636,
          0.00792,
          -0.001344,
          -0.033702,
          0.010719,
          -0.009275,
          -0.002554,
          -0.001274,
          -0.004542,
          0.009619,
          0.003683,
          0.00918,
          0.008551,
          0.003124,
          -0.04027,
          -0.004669,
          0.022377,
          0.027628,
          0.008361,
          0.000285,
          -0.010508,
          0.010258,
          -0.003251,
          0.015045,
          -0.007165,
          -0.004979,
          0.020983,
          0.008768,
          0.012502,
          1e-06,
          0.020556,
          -0.021939,
          0.018329,
          -0.001071,
          -0.004927,
          0.005116,
          -0.019207,
          -0.01628,
          -0.016438,
          -0.013193,
          0.011414,
          0.005628,
          -0.02627,
          -0.030247,
          0.015763,
          -0.006258,
          0.023799
        ]
      },
      {
        "name": "Intl Equities",
        "returns": [
          -0.01789,
          -0.016342,
          0.011449,
          0.013527,
          0.002128,
          -0.000148,
          -0.003973,
          -0.005458,
          0.004932,
          0.012879,
          9e-05,
          -0.004105,
          0.004944,
          0.005493,
          0.012637,
          0.016019,
          -0.011988,
          0.012194,
          0.008298,
          -0.00734,
          -0.002411,
          -0.01554,
          -0.003597,
          -0.026939,
          0.014074,
          0.001976,
          -0.001698,
          5.3e-05,
          -0.002408,
          0.015902,
          -0.007393,
          0.009357,
          -0.004008,
          0.001894,
          0.013792,
          -0.000589,
          0.00913,
          0.007222,
          0.003309,
          0.016436,
          0.006723,
          -0.009458,
          -0.000424,
          -0.036102,
          0.020203,
          -0.001423,
          0.006391,
          0.0019,
          -0.011855,
          -0.008596,
          -5.1e-05,
          -0.020171,
          -0.002348,
          0.008743,
          0.002821,
          0.013084,
          0.024959,
          0.005673,
          -0.01992,
          0.01727,
          0.007925,
          0.025043,
          0.019246,
          -0.018409,
          0.007818,
          -0.012283,
          0.005164,
          -0.000647,
          0.000651,
          0.016975,
          -0.016459,
          0.010047,
          0.011959,
          0.008598,
          0.008194,
          -0.020397,
          0.016703,
          0.000529,
          0.008447,
          0.008478,
          -0.025,
          0.011464,
          0.007115,
          -0.003013,
          -0.003825,
          -0.030416,
          -0.001629,
          -0.007607,
          -0.009038,
          -0.011127,
          0.004869,
          -0.014431,
          -0.003256,
          0.011009,
          -0.000182,
          0.030479
        ]
      },
      {
        "name": "Aggregate Bonds",
        "returns": [
          0.003383,
          -0.005414,
          -0.000468,
          0.003312,
          0.001429,
          0.005737,
          -0.005907,
          -0.000994,
          -0.002542,
          0.004991,
          -0.004859,
          0.00201,
          0.001642,
          0.000324,
          -0.003314,
          -0.002803,
          0.00019,
          -0.000551,
          -0.007022,
          -0.000428,
          -0.001826,
          0.005103,
          0.00709,
          -0.002827,
          -0.002037,
          0.00013,
          0.004804,
          0.005379,
          0.002667,
          -0.00091,
          -0.003758,
          -0.007383,
          0.001706,
          0.000864,
          0.005508,
          -0.007142,
          0.004368,
          -0.004738,
          -0.007385,
          0.001689,
          -0.004507,
          -0.000357,
          -0.000415,
          0.005325,
          0.004308,
          -0.000416,
          0.00277,
          -0.007876,
          0.001166,
          -0.006418,
          -0.005774,
          -0.001906,
          0.0091,
          -0.002563,
          -0.002665,
          -0.001689,
          -0.005174,
          -0.003989,
          0.00354,
          0.001622,
          0.001807,
          -0.008514,
          0.007035,
          0.010241,
          -0.001968,
          -0.000503,
          -0.005232,
          -0.000794,
          0.009881,
          -0.001286,
          0.006395,
          -0.002523,
          0.004048,
          0.00066,
          -0.003002,
          0.003417,
          -0.000537,
          -0.00362,
          0.003066,
          -0.005197,
          -0.00165,
          -0.005964,
          -0.001629,
          -0.007396,
          -0.003472,
          -0.001102,
          0.005919,
          -0.000683,
          0.001568,
          -0.000526,
          0.004182,
          -0.002288,
          0.008541,
          -0.002672,
          0.00223,
          -0.000601
        ]
      },
      {
        "name": "Commodities",
        "returns": [
          0.010693,
          -0.014358,
          0.001653,
          0.026449,
          0.036177,
          -0.024715,
          -0.01015,
          0.003149,
          -0.004191,
          0.008498,
          0.006201,
          0.006443,
          0.007429,
          0.001224,
          0.008414,
          0.004634,
          -0.026895,
          0.014692,
          -0.009684,
          0.003576,
          0.01979,
          -0.013675,
          0.006075,
          -0.006749,
          0.017848,
          -0.024232,
          0.006072,
          -0.00843,
          -0.005465,
          -0.010567,
          0.005011,
          -0.00479,
          -0.002642,
          -0.006506,
          0.005338,
          -0.015151,
          -0.010684,
          -0.02011,
          -0.017681,
          -0.01455,
          -0.014944,
          0.003162,
          0.015392,
          -0.015318,
          0.009544,
          -0.000737,
          -0.01655,
          -0.003292,
          0.013558,
          0.007808,
          -0.010701,
          0.006641,
          -0.014237,
          -0.022369,
          0.011828,
          -0.004968,
          0.008261,
          0.019919,
          0.00125,
          -0.009036,
          -0.003743,
          0.00962,
          -0.012011,
          0.025194,
          0.006848,
          0.037353,
          0.011328,
          -0.021955,
          -0.00327,
          -0.007504,
          -0.0303,
          0.008215,
          -0.000348,
          -0.012391,
          0.007949,
          -0.002983,
          -0.013971,
          -0.009568,
          -0.009759,
          -0.009918,
          -0.013714,
          -0.022232,
          -0.013597,
          0.016836,
          -0.003036,
          -0.004977,
          -0.024345,
          -0.024586,
          0.002842,
          0.014054,
          0.005342,
          -0.004593,
          -0.010622,
          -0.018985,
          0.012889,
          0.014289
        ]
      }
    ]
  },
  "input_schema": {
    "type": "object",
    "properties": {
      "tool": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "returns": {
        "type": "array",
        "items": {
          "type": "number"
        }
      },
      "risk_free_annual": {
        "type": "number"
      },
      "steps": {
        "type": "number"
      }
    },
    "required": [
      "tool",
      "name",
      "returns",
      "risk_free_annual",
      "steps"
    ]
  },
  "output_schema": {
    "type": "object",
    "properties": {
      "min_variance_portfolio": {
        "type": "object",
        "properties": {
          "weights": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "expected_return_annual": {
            "type": "number"
          },
          "volatility_annual": {
            "type": "number"
          },
          "sharpe_annual": {
            "type": "number"
          }
        }
      },
      "tangency_portfolio": {
        "type": "object",
        "properties": {
          "weights": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "expected_return_annual": {
            "type": "number"
          },
          "volatility_annual": {
            "type": "number"
          },
          "sharpe_annual": {
            "type": "number"
          }
        }
      },
      "frontier_points": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "expected_return_annual": {
              "type": "number"
            },
            "volatility_annual": {
              "type": "number"
            }
          }
        }
      }
    }
  }
}
