Protected access

Access to this tool is restricted. Enter the password provided by SAGORA.

Incorrect password.

Accessible, useful and human finance · sagora.eu
Teaching tool. It helps you understand how a portfolio is built and where the model reaches its limits. It is neither investment advice nor a decision-making tool: the data end in August 2026. The frontier assumes weights restored every month, with no costs; the Projection and Actual history tabs do deduct adjustable transaction costs at each rebalancing (0.15% by default). Neither taxation nor currency risk is modelled. The assets are denominated in dollars.
Advanced Portfolio Management Simulator
Daily data · 2002-2026
Frontier
Sharpe: low high Mean-variance efficient frontier Capital allocation line Benchmarks: 1/N and 60/40 equities-bonds Tangency portfolio (maximum Sharpe)
Simple returns: the method of the Frontier page

From daily returns to monthly returns. Everything starts from the daily returns of the 6,043 trading days. For each asset, the returns of each period of 21 consecutive trading days are compounded day by day: this gives 6,023 simple monthly returns, and every trading day of the period is included. Why 21: the New York Stock Exchange is open about 252 days a year, i.e. 252 ÷ 12 = 21 per month. The tool’s month is therefore a trading month of 21 days: it lasts roughly one calendar month without following its boundaries. Throughout the tool, “month” means this trading month. The months are rolling: each one starts one trading day after the previous one, so two neighbouring months share 20 days out of 21. They therefore contain only about 287 non-overlapping months. Working by month rather than by day is not a mere detail: daily returns are not independent (markets partly correct their excesses from one day to the next). Annualised directly, times 252 and the square root of 252, they overstate, over the full 2002-2026 history, volatility by up to 5 points and expected return by up to 0.9 points. On this page, the tail measures (VaR, CVaR, worst monthly return, Omega) are based on these trading months; in the “Horizons” tab, they are based on paths simulated over 1, 5, 10, 15 and 20 years (annualised growth or terminal return) and their values cannot be compared with those on this page.

A constant-weight portfolio. The weights are restored every month: the portfolio’s monthly return is then exactly the weighted average of those of its assets. Its mean m is the weighted average of the assets’ means; its variance s² is calculated with their covariance matrix.

Rebalancing. As in Markowitz and Sharpe, the model covers a single period, here the trading month: the weights are set at the start and the quantities held are then kept until the end, which gives exactly the weighted average of the month’s returns. To keep the same optimum period after period, the portfolio returns to its target weights every trading month, 12 times a year, without being aligned with calendar months. The seven criteria assume this rebalancing, since each one is measured on the portfolio’s monthly returns. With this annualisation, the annual Sharpe is exactly the square root of 12 times the monthly Sharpe: it ranks portfolios in the same way as the monthly Sharpe. The Sortino is annualised in the same way by convention only, not because of any mathematical property; minimum variance is measured by annual volatility; Omega, MV VaR, CVaR and Maxi-min are read monthly. Over the full 2002-2026 history, measured on returns actually compounded over 5 or 20 years, all the criteria would select other portfolios: the Sharpe slightly (at most 9 weight points), minimum variance barely (at most 2.3 points), Sortino and Omega strongly (20 to 35 points over 5 years, about 65 over 20 years, when almost no path falls below the risk-free rate any more), as the “Horizons” tab shows.

Textbook annualisation. The expected annual return is μ = 12 m (without compounding the monthly returns) and the annual volatility σ = s × the square root of 12, monthly returns being assumed independent. The annual risk-free rate Rf counts as Rf / 12 per month. The vertical axis shows μ, the horizontal axis σ.

The Sharpe, the frontier and the capital market line. The Sharpe ratio is (μ − Rf) / σ: it is the monthly Sharpe, (m − Rf / 12) / s, multiplied by the square root of 12. The efficient frontier is Markowitz’s, traced by exact quadratic programming on the monthly returns and then scaled to annual terms. The tangency portfolio is calculated exactly: between two neighbouring points of the frontier, the weights vary in a straight line and the maximum Sharpe is obtained there by a direct formula. Combined with the risk-free asset, it gives the capital market line, an exact straight line: μ = Rf + a (μT − Rf) and σ = a σT for an exposure a.

One unit per ratio. Each ratio relates a return and a risk measured over the same period. Measures based on the mean and the standard deviation move from month to year by a simple rule (12 times the mean, the square root of 12 times the standard deviation, applied by convention to the semi-deviation as well): the panel shows them annualised (expected return, volatility, semi-deviation, Sharpe, Sortino). Tail and distribution measures have no such rule: they remain monthly (CVaR, STARR ratio, VaR, worst monthly return, Omega). This is the usual presentation in fund factsheets. Each tooltip gives the calculation in its own unit.

Tail measures are read monthly. Omega, VaR, CVaR and Maxi-min depend on the shape of the distribution of monthly returns: moving from month to year requires the distribution of annual returns. Even under a normal assumption, it is not a multiplication by the square root of 12. They are therefore measured monthly, as is customary for these ratios, on the exact distribution of the 6,023 monthly returns, without simulation, with the monthly risk-free rate Rf / 12. The MV VaR, which selects on the frontier the portfolio whose monthly 95% VaR, the 5th percentile of monthly returns, is the highest, is also read monthly. The Sortino, which, like the Sharpe, relates an excess average return to a measure of dispersion (the semi-deviation instead of the standard deviation), is annualised by convention in the same way, times the square root of 12: the two ratios can be compared.

Expected return and CAGR. The panel also shows the CAGR actually achieved, the rate at which capital grew along a single path: 100 invested at the start of the period (first daily return on 31 July 2002), weights restored every trading month (287 rebalancings, with no costs), until 27 August 2026. Over these 6,043 trading days, i.e. 23.98 years of 252 trading days, CAGR = (final value / 100) to the power (252 / 6,043) minus 1. It differs from the expected return μ = 12 m mainly for two reasons: compounding the monthly returns over a year pulls the CAGR above μ, while volatility pulls it below, by about half the annual variance.

Resampling. With the “Resampled” setting, the tool draws 2,000 fictitious histories of 287 months, taken at random, with replacement, from the actual months (bootstrap), the same for all assets; on each one, it recalculates exactly the frontier and the optimum of the chosen criterion. The Michaud frontier (Michaud, 1998) is the thick curve: on each frontier, 100 portfolios evenly spaced in expected return are taken, from the least risky to the highest-returning; their weights are averaged rank by rank, and these average portfolios are then evaluated with the historical parameters. It lies slightly below the historical efficient frontier, drawn as a thin line: this is the price of estimation uncertainty. At each level of volatility, the band contains 80% of the estimated frontiers (10th-90th percentiles) and its dotted line is their median. Each estimated frontier is evaluated with the parameters of its own draw, which flatter it: the median of the band therefore lies above the historical frontier. For the Sharpe, the selected portfolio is the maximum Sharpe point of the Michaud frontier, in the manner of Michaud. For minimum variance, the selected portfolio is the left end of the Michaud frontier: the average of the 2,000 minimum variance portfolios of the draws. For the five criteria that measure risk differently, which Michaud’s theory does not cover (it deals with mean-variance), the selected portfolio is the average of the 2,000 optima of the criterion: an extension of his principle, known as bagging (Breiman, 1996). The only difference from Michaud’s procedure: he draws his histories from a normal distribution, whereas drawing from the actual months keeps the tails measured by Omega, Sortino, CVaR and Maxi-min; over the full 2002-2026 history, this shifts the Michaud frontier by at most 2 weight points. For each asset, the panel gives the range of its weight across the 2,000 draws (10th and 90th percentiles): it shows how much the allocation depends on the observed history. For the Sharpe, this range covers the portfolios of the 2,000 frontiers at the same rank as the selected point.

Verification. Each optimum is checked against an exhaustive search over a grid of portfolios: no portfolio on the grid does better.

Limitations. These are historical estimates over a single period, not forecasts. Non-overlapping monthly returns, from one trading month to the next, are assumed to be independent: crises that run on over several months and mean reversion from one month to the next are not taken into account here or in the “Horizons” tab, which also draws its months at random; the “Actual history” and “Crisis risk” tabs show what they change along the path actually experienced. Monthly rebalancing is assumed to be cost-free. The risk-free rate is a constant annual rate, equal by default to 12 times the average monthly return of the 13-week T-Bill over the sample, the same convention as for the assets.

Where the data come from

Full history: daily total returns over 6,043 trading days, from 31 July 2002 to 27 August 2026, compounded day after day. Default risk-free rate 1.70%, 12 times the average monthly return of the 13-week T-Bill over the selected period (2002-2026).

One series is an index (S&P 500 total return), three are index funds (QQQ as a proxy for the Nasdaq-100, IEF for 7-10 year Treasuries, IYR for listed real estate) and the last one is a COMEX gold futures contract, which is not the spot price. Fund returns include distributions, splits and management fees.

Gold is not measured like the other four. The first four series are in total return: they reinvest dividends and coupons. Gold is a futures contract price, so a series with no income, which does not penalise it: gold distributes nothing, so there is no missing income to reinvest. An investor holding it through collateralised contracts would earn the return on the collateral; they would also pay the roll cost built into the price of futures contracts; for gold, the two roughly offset each other.

Checking the gold series. Over the full 2002-2026 history, the compounded daily returns come to 15.178 and the ratio of contract prices between the two end points to 15.203, a 0.16% difference: the series does follow the price path, from $303.20 to $4,609.70 an ounce. The largest daily moves are identifiable market events (April 2013, September 2008, March 2020) rather than contract-roll jumps; on average, the return of a COMEX expiry month is no different from that of other months: no roll discontinuity appears in the data.

Costs and roll. The series deducts no fees or storage costs: it slightly flatters gold compared with a physical fund, whose fees are around 0.40% a year. The source does not publish its method for rolling the contracts: this is a limitation of provenance, even though it does not show in the data.

Additional asset: bitcoin. BTC-USD series from Yahoo Finance (adjusted close, identical to the close: bitcoin pays nothing), collected on 15 October 2026, available since 18 September 2014. Unticked by default. Ticking it brings all the series, the dates and the default risk-free rate back to the common period, which is shorter: over the full history, about 12 years instead of 24, with fewer non-overlapping months and therefore less precise estimates. Two limitations are specific to bitcoin, which trades seven days a week. The weekend: returns follow the New York Stock Exchange calendar, so Monday’s return covers Friday evening to Monday evening. Nothing is lost (the product of the returns gives back exactly the price change); Monday, however, is more turbulent: over 2014-2026, its standard deviation is about 1.4 times that of the other days and Mondays account for 25% of bitcoin’s 5% worst days, whereas they represent only 19% of trading days. Monthly returns, the basis of the frontier, the ratios, the CAPM and the simulations, do not depend on this. Nor do cumulative returns over an episode: they do include weekends. Only the day-by-day measures in the “Crisis risk” tab (worst days, daily correlations, panic days) give Monday the weight of three market days. The closing time: Yahoo takes bitcoin’s closing price at midnight UTC, three to four hours after the New York close; as with gold, moving to monthly data reduces this lag.

Data source: Yahoo Finance, collected on 29 August 2026. It is a working source, good enough to learn with, not good enough to certify an analysis or make an investment decision.