The technical approach behind returns, dividends, volatility, and portfolio projections — so you can read every number with context.
Fund Compare is a research tool for placing stocks, ETFs, and robo-advisor portfolios side by side. You pick a time period and an investment amount; the app then shows price performance, estimated dividend income, and how bumpy the ride has been.
The Canada Robo vs ETF page groups Canadian robo advisors with all-in-one ETFs (VBAL, VGRO, and similar) by conservative, balanced, growth, and aggressive styles.
It is built to make comparisons consistent: the same date range, the same dollar amount, and the same formulas for every holding. It is not a brokerage, tax engine, or recommendation service.
Each fund’s price return uses the closest available closing prices on or before the start and end of the selected period:
Price return = (end price − start price) / start price × 100
That number is capital gain or loss only. It does not include cash you would have received as dividends.
The figure labelled Total return adds an estimated dividend contribution for the same window:
Dividend return = annual yield × (days in period / 365.25)
Total return = price return + dividend return
Example: a fund that rose 8% in six months with a 4% annual yield is shown as about +10% (8% price + 2% dividends).
Projected value applies that total return to the investment amount you entered:
Projected value = investment × (1 + total return / 100)
On the portfolio table, that projected value does include dividends, because it uses each fund’s total return, not price return alone.
Yield and payout frequency come from stored fund fundamentals (refreshed from Yahoo Finance and Eulerpool in admin). Period dollar estimates still prorate the current annual yield — we do not replay each historical ex-dividend date inside the selected window.
For a single fund, estimated cash at each payout is:
Payout $ = investment × (yield / 100) / payouts per year
Frequency mapping: monthly = 12, quarterly = 4, semi-annual = 2, annual = 1. If frequency is unknown, the annual amount is shown instead.
Portfolios treat holdings equally — the same approach used for average return. The investment is split evenly across the portfolio’s funds, then each fund’s prorated yield is summed:
Period dividends = investment × average(fund dividend returns)
Annual dividends = investment × average(fund yields)
The portfolio column shows the period estimate in dollars, with the annual run-rate underneath.
Standard deviation (std. dev.) is a measure of volatility: how much daily returns have bounced around their average. A higher number means a wider typical range of outcomes — more uncertainty, not necessarily a worse investment.
We compute it from daily closing prices in the selected period:
(today − yesterday) / yesterdaydaily σ × √252 × 100252 is the usual count of US trading days in a year. The result is a percent, such as 18.40%.
Highlights are a simple reading aid, not a risk rating from a regulator or a fund fact sheet:
A low-volatility fund can still lose money. A high-volatility fund can still compound well over long periods. Use the colour as a scan cue, then read it next to return and dividend income.
The portfolio figure is the average annualized std. dev. of its funds, equally weighted. It describes how volatile the holdings have been, not a full portfolio risk model. It does not adjust for correlation (diversification can make a real portfolio less volatile than this average).
The separate Risk /10 pill is different — see portfolio risk.
The Risk /10 column on the home page is calculated from the portfolio’s composition — the funds listed for that portfolio in admin. It answers a different question from std. dev.: not “how jumpy is each holding day to day?”, but “how far apart did those holdings finish over this period?”
We take each holding’s total return for the selected period, then measure how spread out those returns are:
σ = standard deviation of the funds’ period returns
Risk /10 = min(10, round(σ / 2))
A portfolio whose funds all returned about the same number gets a low score. A mix where one holding surged and another fell gets a high score — the composition is less even over that window.
Composition weights affect average return, std. dev., and dividend estimates. The Risk /10 spread currently treats each holding’s period return equally, so a small sleeve that behaved very differently can still move the score.
Each visible robo-advisor portfolio is summarised from the funds assigned to it:
Return averages still come from the portfolio composition list in admin — those are the sleeves used for performance. If you set weights, averages are weight-based; otherwise each fund is treated equally. A fund can belong to more than one portfolio. The Canada Robo vs ETF page uses the same weighted averages for robos and the fund’s own return for all-in-one ETFs, grouped by risk style.
Click a portfolio name on the home page to open composition details. That page lists every sleeve, lets you change the investment amount and performance period, shows each fund’s weight and contribution to the portfolio return (those contribution percentages add up to the portfolio total), and charts daily prices for the window.
The Backtest page runs historical simulations on monitored funds through Eulerpool. Pick a date range, a starting amount, one or more funds, a strategy, and an optional benchmark. Results are not a forecast. They omit taxes, account fees, and most trading costs.
Eulerpool only changes the path for three strategies. Other template names (value, quality, low volatility, and similar) accept the request but come back as equal-weight rebalance on a small custom universe.
The benchmark dropdown is optional (default none). When you pick a ticker such as SPY or XIU.TO, a dashed buy-and-hold line of the same starting amount is drawn on the equity chart.
Run sends the same strategy and funds to Eulerpool once for each rebalance Eulerpool actually honors: none, weekly, monthly, and daily. Quarterly and annual are ignored by the API. A single fund looks the same at every frequency because there is nothing to re-weight.
The table shows total return, CAGR, max drawdown, annualized volatility from the equity curve, Sharpe, and ending value. Volatility can be well above 100% for concentrated momentum paths — that is annualized standard deviation, not a formatting leftover. The chart overlays every rebalance and the benchmark when one is set.
Optimize runs that same rebalance grid, then ranks the paths by the Optimize for objective:
Changing Optimize for re-ranks the same four runs. It does not start a new Eulerpool parameter search. The winner strip updates immediately; you do not have to press the button again.
Walk-forward splits the date range into repeating train and test windows so you can see whether a setup held up out of sample.
The page reports each window plus an aggregated row. Empty extras (trades, monthly returns, drawdowns) mean Eulerpool did not send them for that call.
The Famous Fortunes page loads live from Eulerpool: Superinvestors 13F-style books and recent Congress Trading STOCK Act disclosures. Superinvestor share counts come from Eulerpool and are marked to the latest Yahoo price on the detail page. Congressional lines use reported amount ranges (midpoints for weights). The list shows each person’s latest reported add, reduce, buy, or sale — not a complete return history.
The return is a weighted mix of the names we list, using the same live Yahoo prices as the rest of the site. It is a research proxy for that disclosed book — not the person’s actual profit and loss, and not a complete picture of cash, private companies, options, or trades made after the filing date.
When this feature is on, the Compare home page adds tiles for average return and best performer across every monitored holding, equally weighted. Those figures are a scan of the watchlist — not a market index and not a portfolio you can buy.
Issuer or ticker logos appear next to fund and stock names on Compare, Monitored funds, Canada Robo vs ETF, and related pages. They come from Eulerpool (or a fallback issuer map) when a fund is refreshed in admin. Turn the feature off to show names only.
Short Eulerpool blurbs sit under fund names where space allows. They are a reading aid from the latest admin refresh, not the official prospectus wording.
Monitored funds can show the latest monthly ETF net-flow column from Eulerpool. The API only supplies about one month of flows. Stocks and funds without flow data show a dash.
Monitored funds can show which major index a stock belongs to: S&P 500, Dow, Nasdaq-100, S&P/TSX Composite, or FTSE 100. A stock in more than one index lists every membership. ETFs and other symbols stay blank unless an admin sets the value. Turn the column off in Admin → Features.
On Monitored funds, Eulerpool can supply recent payouts, fiscal-year totals, upcoming dates, and quality or safety badges for equities. Those extras sit beside the prorated yield used in return math. They are a reading aid, not a substitute for the fund fact sheet, and they do not change the period dividend dollar estimate.
Composition details and Canada Robo vs ETF can show Eulerpool’s book: top holdings plus sector and country pies. A robo’s book is a look-through — each sleeve’s holdings scaled by its admin weight. An all-in-one ETF such as VBAL uses that fund’s own book. Refresh the fund in admin if the book is empty.
If a fund has too few daily prices in the window (fewer than three closes), std. dev. is shown as a dash. If yield has not been filled in, dividend estimates are omitted rather than guessed.
Figures are for illustration and comparison only. They are not financial advice. Check official fund documents and a qualified advisor before investing.