Run Markowitz optimization on J.P. Morgan's published forward-looking capital market assumptions and watch it fail. Expected returns are noisy and correlation matrices are unstable, so the optimizer behaves as an estimation-error maximizer: it concentrates the portfolio in whichever asset classes happen to carry the most favorable forecast error. The last tab builds the standard fixes.
Universe presets
Selected
10 asset classes
Choose asset classes (all 58 investable J.P. Morgan classes)
Numbers are the expected return and annualized volatility under the input selected above. Adding near-duplicate classes — U.S. Large Cap next to the U.S. value, quality and dividend factors, or U.S. Aggregate Bonds next to U.S. Securitized — is the fastest way to see the optimizer pick corners.
Minimum-variance frontier
Each point solves min w′Σw subject to w′μ = r̄ and Σwi = 1, traced out by sweeping the risk-aversion parameter. Returns and volatilities are annualized percentages taken directly from the J.P. Morgan assumptions; Σ is built from their published volatilities and their 59×59 correlation matrix. The dots are the individual asset classes. Switch on the 2025 overlay to see how much the frontier — and the allocations below — move on one year of forecast revisions.
Allocations across the frontier
Idzorek's efficient-frontier asset allocation area graph. Every vertical slice is one portfolio on the frontier above; band thickness is that class's weight. Dashed lines mark corner portfolios, where a class enters or leaves the allocation. Read the right-hand edge: the highest-return portfolio is always 100% in a single asset class. Steep vertical bands mean a tiny change in risk tolerance swings the allocation — the instability the lecture warns about.
The same optimizer, the 2025-edition assumptions
One year of revisions to the same forecasts, the same volatilities and the same correlation matrix. This is Idzorek's Figures 2 and 4 side by side: the allocations that were optimal under last year's assumptions are not the ones optimal under this year's, and no investor would have held either.
How diversified is this frontier?
Averages taken over the 101 frontier portfolios. Classes in the allocation counts weights above 0.5%. Weight dispersion is √Σ(wi − 1/N)², Idzorek's frontier-variability idea: it is zero for an equally weighted portfolio and 1 for a single-asset portfolio, so lower means more evenly spread. Effective number of classes is 1/Σwi², the number of equally weighted positions that would give the same concentration.
Portfolio at a chosen risk level
The frontier portfolio closest to the target volatility, with each class's weight, its share of total portfolio variance, and its marginal contribution to risk. At the maximum-Sharpe portfolio the ratio of excess return to marginal risk contribution is equal across every class that is held — that is the condition the optimizer is enforcing.
Shock the forecasts
Chopra and Ziemba (1993) found that at a moderate risk tolerance, mean-variance optimization is about 11 times more sensitive to estimation error in expected returns than in variances, and about 2 times more sensitive to variances than to covariances. Shift any forecast below and watch the weights move. One standard error of an expected return is σ/√T, so the slider is denominated in standard errors for an assumed sample length.
Shock everything at once
Draws one common direction: each class is shifted by this many of its own standard errors, scaled by a fixed pseudo-random sign so the shock is a plausible error pattern rather than a parallel shift.
Expected-return shocks, in standard errors
Weights before and after
Which input is the optimizer most sensitive to?
Each row perturbs one kind of input by one standard error's worth of noise, holding the others at the J.P. Morgan values, and reports how far the target-volatility portfolio moves. Turnover is ½Σ|Δwi|, the fraction of the portfolio that would have to be traded. Averaged over many independent noise draws.
Expected returns are perturbed by σi/√T, volatilities by their own standard error σi/√(2T), and correlations by the standard error of a sample correlation, (1−ρ²)/√T, with the shocked correlation matrix repaired to the nearest valid one. If returns move the portfolio far more than the other two, the lecture's point stands: the optimizer is mostly reacting to the input we estimate worst.
Frontiers you might have drawn instead
Each faint line is the frontier you would have computed if your expected returns had been drawn once from N(μJPM, σ²/T) — that is, if your forecast had been wrong by a perfectly ordinary amount. The solid line is the J.P. Morgan frontier. The spread is the honest uncertainty in the frontier's location; the allocation chart underneath shows that the uncertainty in the frontier's composition is far worse.
Weight ranges at the target volatility
For the target-volatility portfolio, the 5th to 95th percentile range of each class's weight across those draws, with the J.P. Morgan answer marked. Wide bars on classes that the baseline excludes entirely are the clearest statement of the problem: the data cannot tell these classes apart.
Reference portfolio for reverse optimization
The Black-Litterman anchor is the set of expected returns implied by a portfolio you are willing to call efficient: Π = δΣwref. The J.P. Morgan file has no market capitalizations, so pick a reference portfolio below — a policy benchmark works just as well, and Idzorek notes this is how the model is used in practice.
Resampling
Implied equilibrium returns vs. the J.P. Morgan forecasts
Reverse optimization spreads the estimation error in the volatilities and correlations across the return forecasts, producing returns that are a clean linear function of beta risk. Classes sitting far from the 45-degree line are where the J.P. Morgan view disagrees most with equilibrium — and in a traditional optimizer, those are exactly the classes that would dominate the allocation.
Security market line
Idzorek's Figure 5. By construction the implied excess returns are exactly proportional to beta against the reference portfolio, so every class has the same ratio of implied excess return to beta. Changing the risk premium rotates this line and changes the frontier's shape, but it does not change the resulting allocations.
Add views
A view states an expected total return for one class. Confidence 100% replaces the equilibrium return outright; lower confidence shrinks the posterior back toward equilibrium, which is what keeps the allocations diversified.
Five ways to build the allocation
All frontiers use the same J.P. Morgan volatilities and correlation matrix; only the expected returns and the optimizer change. Risk parity and minimum variance are single portfolios, not frontiers, because they use no expected returns at all — the lecture's first suggested fix.
Allocations, method by method
Diversification scorecard
Idzorek's Table 2, recomputed on these assumptions and this universe. The pattern he reports should reproduce: equilibrium returns raise the number of classes held, resampling raises it further, and the combination of the two is the most diversified.
The portfolio at the target volatility
Idzorek's Figures 14 to 16: the same risk level, five different ways of getting there. Move the target-volatility slider to compare the conservative, moderate and aggressive ends of the risk spectrum.