Portfolio Mix
How mixing assets that do not move together raises return per unit of risk.
All figures are in today's money: every rate on this page is real, i.e. above inflation. Why?
Settings
Used to score the Sharpe ratio (return earned per unit of risk).
Sampled long-only allocations behind the cloud. They are also the set of points a drag on the chart can snap to, so this controls drag resolution too. Reroll draws a new random cloud from a fresh seed; it never changes the 30-year data itself.
Your Allocation
100%| Metric | Value |
|---|---|
| your mix: return expected per year (real) | 4.9% |
| your mix: risk volatility (±1σ) | 10.1% |
| your mix: Sharpe return per unit risk | 0.46 |
| cloud percentile of random portfolios beaten on Sharpe | 68% |
Risk vs. return: the efficient frontier
Each dot is one random long-only allocation (greener = better Sharpe). The dark curve is the efficient frontier: no other mix in the cloud offers more return at the same or lower risk. ◆ = individual asset classes. Hover or tap a marker for details. Drag or touch-drag anywhere on the plot to snap Your Allocation to the nearest sampled dot (dashed ring).
- Max Sharpe: best risk-adjusted return
- Min Variance: lowest possible risk
- Equal Weight: naive 1/N diversification
- Inverse-Vol: inverse-volatility weighting
- Your Allocation: your custom mix
If you invest €10,000 today
Each line is the median of 10,000 possible 30-year futures. Every future draws its years at random (with replacement) from the calculator's stylised 30-year table and rebalances each strategy to its fixed weights once a year; all strategies see the same draws. The table is shaped like recent markets, with a tech bust, a financial crisis and an inflation shock, but it is not actual historical data and not a forecast. This chart uses the calculator's own table, not the site's global Market Return / Volatility settings.
Pick whose spread (P10 to P90) to show. Only one fan is drawn at a time, because five overlapping ribbons cannot be read.
- Your Allocation P10–P90 · 80% of scenarios: The middle 80% of simulated futures: 1 run in 10 ends above this ribbon and 1 in 10 below it.
- Your Allocation P25–P75 · middle half: The middle half of simulated futures: a quarter end above it, a quarter below.
What each strategy pays out after 30 years
Where the €10,000 ends up across the same 10,000 futures, one panel per strategy. All panels share the same buckets and x axis, so compare where each hump sits and how wide it is: a narrow one means a predictable result, a wide one more upside and more downside. Each panel is scaled to its own tallest bar (the spreads differ too much for one scale), so read actual shares off each panel's own % axis.
- Max Sharpe: The share of scenarios in which max sharpe finishes in each range.
- Min Variance: The share of the same scenarios in which min variance finishes in each range. Both panels use exactly the same buckets, x axis and y axis, so a bar here compares directly with the bar above it.
- Equal Weight: The share of the same scenarios in which equal weight finishes in each range, on the same buckets and scales as every other panel.
- Inverse-Vol: The share of the same scenarios in which inverse-vol finishes in each range, on the same buckets and scales as every other panel.
- Your Allocation: The share of the same scenarios in which your allocation finishes in each range, on the same buckets and scales as every other panel.
- point at the chart: Hovering or tapping anywhere on the chart names the bucket under the pointer and, for each side, the share of scenarios that finish inside it, below it and above it (the three add to 100%). Dragging across the chart with the mouse zooms to what you selected.
- clipped tail: The ‹ and › percentages at the ends of the axis are the largest share of any panel's scenarios finishing outside the drawn range. Up to 1.0% of one side's scenarios sit outside it; they are counted in every number on this page, just not drawn here.
Per-class statistics
Estimated from a stylised 30-year sequence of annual real returns.
| Asset class | Expected return | Volatility | Variance (%²) |
|---|---|---|---|
| Global stocks | 7.4% | 16.6% | 277 |
| Emerging-market stocks | 6.3% | 28.1% | 790 |
| Government bonds | 1.5% | 4.9% | 24 |
| Gold | 5.6% | 13.9% | 194 |
| Cash | 0.3% | 1.6% | 2 |
Covariance matrix (%²)
How each pair of asset classes moves together. Positive means they tend to rise and fall in sync. The diagonal is each class's own variance.
| Global | EM | Bonds | Gold | Cash | |
|---|---|---|---|---|---|
| Global | 277 | 299 | -20 | 15 | -4 |
| EM | 299 | 790 | -44 | 196 | -5 |
| Bonds | -20 | -44 | 24 | 17 | 1 |
| Gold | 15 | 196 | 17 | 194 | 2 |
| Cash | -4 | -5 | 1 | 2 | 2 |
- The idea, known as Modern Portfolio Theory (Markowitz, 1952): when assets do not move in lockstep, a mix of them can offer a better return for the same risk, or the same return for less risk, than any of them alone. Portfolio risk depends not just on each asset's own swings but on how those swings correlate.
- Portfolio risk is smaller than the weighted average of the parts' own risk whenever the assets aren't perfectly correlated.
- The cloud is 3000 random long-only allocations (weights ≥ 0, summing to 100%). The frontier keeps only the non-dominated ones: no other mix offers more return at the same or lower risk.
- Min Variance minimises risk; Equal Weight holds 20% of each class; Inverse-Vol weights each class by the inverse of its own volatility.
- This calculator does not use the site's global Market Return / Volatility settings. It runs entirely off its own 30-year illustrative table.
- The growth lines, the fan and the payout histograms resample whole years from the same table, with replacement, 10,000 times. They show how much the order and mix of good and bad years matters, not a forecast of the future. Each year is drawn independently, so real-world momentum and multi-year drawdowns are not reproduced.
- Data & provenance: a stylised 30-year sequence (no calendar dates) of annual REAL (inflation-adjusted) returns, standing in for a broad developed-market equity index (Global stocks), a broad emerging-market equity index (Emerging-market stocks), a long-duration developed-market government bond index (Government bonds), spot gold (Gold), and a short-term deposit/T-bill rate (Cash). The figures are illustrative, shaped like the last three decades rather than copied from them. They are not historical index returns.
Expected return per asset class
- μᵢ: asset i's expected annual return
- n: number of years of data (30)
- rᵢ,y: asset i's return in year y
Variance / covariance between asset classes
- Covᵢⱼ: covariance between assets i and j (the variance when i = j)
A portfolio's expected return and risk
- R: portfolio's expected annual return
- wᵢ: asset i's weight (0 to 1, weights sum to 1)
- σ: portfolio's risk (standard deviation)
Sharpe ratio: return per unit of risk
Sharpe = (R − 0.25) ÷ σ
- R: see A portfolio's expected return and risk above
- σ: same
- riskFree: the Risk-Free Rate input
The random cloud
N = max(100, ⌊3,000⌋)
- N: number of long-only allocations actually sampled
- numPortfolios: the Random Portfolios input
Portfolio growth, rebalanced yearly
V(0) = 10,000 V(y) = V(y−1) × (1 + R_y ÷ 100)
- initial: Starting Capital
- V(y): portfolio value after y years
- R_y: portfolio's return in year y, same weighted-average formula using that year's asset returns
Assumptions behind every figure: how this site models the market →
Every model leaves things out. Here is what this one does not see:
- The covariance matrix is estimated from one 30-year illustrative sample. Correlations are not fixed constants, and they tend to rise exactly in the crashes when diversification is needed most (assets that looked uncorrelated in calm years often fall together in a panic).
- Mean-variance optimisation is notoriously sensitive to the estimated means: a small change to a single asset's average return can swing the "optimal" weights sharply, so the Max Sharpe mix is far less reliable than its clean line on the chart suggests.
- No taxes, bid/ask spreads, or rebalancing costs are modelled, and the optimizer is long-only with no leverage. Real portfolios pay to trade, pay tax on gains, and sometimes borrow to size a position beyond 100%.
- Like every simulation on this site, the underlying model understates real-world tail risk: the standard fat-tail objection applies here too: a normal-ish return model structurally cannot produce crashes as severe or as frequent as history actually has.
- The bootstrap fan draws each year independently (i.i.d.), which destroys autocorrelation. Real bull and bear markets cluster into multi-year runs, so the fan understates how long a real drawdown or rally can persist.