| Metric | Portfolio |
|---|---|
| Returns | |
| WTD | -1.3% |
| MTD | +2.8% |
| QTD | +10.4% |
| YTD | +10.1% |
| 1Y | +63.5% |
| 3Y CAGR* | +33.5% |
| 5Y CAGR* | +33.5% |
| Risk Metrics | |
| Sharpe (All)† | +1.67 |
| Volatility (All)† | 17.7% |
| Sortino (All)† | +2.41 |
| Calmar (All)† | +1.72 |
| Drawdowns | |
| Max Drawdown (QTD) | -4.2% |
| Max Drawdown (YTD) | -14.9% |
| Max Drawdown (All)† | -19.4% |
| Interest & Drag | |
| Commission Drag‡ | 3.47% |
| Borrow Cost‡ | 0.91% |
| Margin Interest‡ | 1.67% |
| Total Cost Drag‡ | 6.05% |
*3Y and 5Y are annualized CAGR; if full history unavailable, extrapolated from earliest available data | †Full-period, annualised (risk metrics), peak-to-trough (drawdowns), risk-free rate = 0 | ‡Annualised cost as % of NAV
Near full investment — 3.9% cash remaining.
| Market | Allocation |
|---|---|
| TSX | 34.9% |
| US | 33.9% |
| ASX | 27.3% |
| Cash | 3.9% |
| # | Ticker | Market | Strategy | Alloc % | PnL % |
|---|---|---|---|---|---|
| 1 | AII | ASX | Momentum | 0.02% | +233.5% |
| 2 | TNZ | TSX | Trend | 1.23% | +214.0% |
| 3 | GNP | ASX | Momentum | 4.08% | +213.8% |
| 4 | SDE | TSX | Trend | 1.77% | +181.1% |
| 5 | CVGI | US | Trend | 1.90% | +135.2% |
| 6 | EXE | TSX | Other | 3.02% | +131.8% |
| 7 | WGN | ASX | Trend | 3.97% | +114.1% |
| 8 | SRG | ASX | Trend | 3.00% | +105.9% |
| 9 | MND | ASX | Trend | 1.33% | +100.4% |
| 10 | EIF | TSX | Trend | 1.05% | +90.9% |
| # | Ticker | Market | Strategy | Alloc % | PnL % |
|---|---|---|---|---|---|
| 1 | VTM | ASX | Trend | 0.58% | -34.8% |
| 2 | LYL | ASX | Trend | 0.78% | -20.0% |
| 3 | TSU | TSX | Trend | 0.68% | -17.6% |
| 4 | SVR | ASX | Trend | 0.60% | -15.4% |
| 5 | DUR | ASX | Other | 1.12% | -14.8% |
| 6 | CPH | TSX | Mean Rev | 0.58% | -13.9% |
| 7 | ERM | ASX | Momentum | 0.37% | -13.2% |
| 8 | DOL | TSX | Trend | 0.57% | -12.0% |
| 9 | GOOGL | US | Momentum | 0.50% | -11.7% |
| 10 | BWEN | US | Mean Rev | 0.69% | -11.3% |
These insights are AI-generated and may be incorrect.
Week of 2026-05-11
Cumulative time-weighted return (TWR) since inception, excluding the effect of cash deposits/withdrawals.
Calendar grid of monthly time-weighted returns (%). Rows = years, columns = months. Green = positive, red = negative, intensity = magnitude. Quickly reveals seasonality patterns and which months/years drove performance.
50-day and 100-day rolling compound annual growth rate. Shows the annualised return the portfolio would have earned if the most recent window's performance continued for a full year. Rising lines = accelerating returns; falling = decelerating.
1,000 simulated equity paths by resampling actual daily returns with replacement. The 10 best (green) and 10 worst (red) outcomes are shown alongside the actual path (white). Illustrates the range of outcomes luck alone could produce given the same daily return distribution.
Monte Carlo projection using only prior-year data, anchored at Jan 1 of the current year. The green line shows actual YTD performance building into the projection bands — a live accuracy check of the model.
Each bar = daily return divided by its trailing 25-day rolling volatility (a z-score). Values beyond ±2 are unusually large moves relative to recent vol. Helps spot abnormal days that may signal regime shifts or outsized events.
Histogram of daily % portfolio returns (TWR). VaR 5% (Value at Risk) = the 5th-percentile daily return — on 95% of trading days, the return was better than this value.
Histogram of compounded weekly portfolio returns (%). Smooths out daily noise to show the "real" distribution shape. Green/red bars = positive/negative returns. Normal distribution overlay for reference.
Survival function: P(daily return > x). At any point on the curve, the Y value is the probability that a random trading day had a return exceeding the X value. Steeper drop near zero = most days cluster around flat. Fat right tail = occasional large gains; fat left tail = occasional large losses.
How far below the all-time high the portfolio is at any point. 0% = at a new high. Deeper troughs mean larger peak-to-trough losses. Compare with benchmarks to see if drawdowns are shallower or deeper than the market.
Shows how many consecutive trading days the portfolio has been below its high-water mark during each drawdown episode. Taller bars = longer periods spent underwater before recovering. Useful for understanding the patience required to hold through drawdowns.
Percentage of all trading days spent in drawdown vs at all-time highs. "At Highs" = days where the portfolio set a new all-time high (cumulative return ≥ previous peak).
Probability that a randomly selected day has a drawdown worse than a given level. Read as: "X% of the time, the portfolio was down more than Y%." Steeper drop-offs mean drawdowns are concentrated at shallow levels; a fat tail means deep drawdowns are more common than expected.
Each cell shows how many drawdown episodes of a given depth (rows) took a given number of days to recover (columns). Brighter cells = more frequent. Read across a row to see: "When the portfolio was down X%, how long did recovery typically take?"
When the portfolio is at a given drawdown level, how much further does it typically fall before hitting the trough? Bars show the median additional decline; whiskers show the 25th–75th percentile range. If you're at -5% and the median additional drop is 2%, expect to see -7% before recovery begins.
Heatmap of median forward returns when entering at different drawdown depths. Rows = holding period (1W to 6M), columns = drawdown depth bucket. Warmer colours = higher forward returns. Shows which drawdown levels historically produced the best entry points.
Expected value = probability of reaching a drawdown threshold × median 3-month forward return from that level. The peak of this curve is the optimal drawdown entry point — it balances "good entry price" against "actually happens often enough." The dashed lines show the probability and median return components separately.
Left axis (bars): how many trading days per year the portfolio spends at or beyond each drawdown threshold. Right axis (line): average number of trading days you wait before the threshold is hit. Deeper drawdowns happen less often and require more patience — this quantifies the opportunity cost of waiting.
Median forward returns (5, 10, 20 trading days) after the portfolio posts N consecutive losing days. Longer losing streaks often precede stronger recoveries. Use this to gauge whether adding capital after a rough patch has historically been rewarded. Count labels show sample size for each bucket.
Probability of experiencing a consecutive losing streak of N days or longer. The red dashed line marks your current streak length. Steeper drop-offs mean long streaks are rare; a flat tail means drawdown persistence is a real risk.
Annualised standard deviation of daily returns over rolling windows (10, 50, 100 days). Higher values = more volatile periods. Useful for spotting regime changes — when vol spikes, risk is elevated.
Rolling annualised Sharpe ratio (risk-free rate = 0). Measures return per unit of total risk. Values above 1.0 = strong risk-adjusted returns; below 0 = losing money. Two windows (50-day, 100-day) show short- and medium-term trends.
How extreme the current rolling Sharpe is relative to its own history, shown for 25-day and 50-day windows. Values below −1.5σ signal the portfolio is deeply underperforming its own baseline — historically a mean-reversion point and a potential time to add capital. Uses an expanding window for stable z-scores.
Like Sharpe but only penalises downside volatility (risk-free = 0). A higher Sortino means strong returns with limited downside moves. More relevant than Sharpe for portfolios with asymmetric return profiles (e.g., more small gains than large losses).
Annualised return ÷ max drawdown over 50-day and 100-day rolling windows. Measures how much return is earned per unit of worst-case loss. Higher = better. Unlike Sharpe, Calmar focuses on tail risk (actual losses) rather than overall volatility.
CVaR (Conditional Value at Risk, also called Expected Shortfall) is the average loss on the worst 5% of days within each rolling window — it goes beyond VaR by showing how bad the bad days actually are. CVaG (Conditional Value at Gain) is the mirror image: the average gain on the best 5% of days. The blue "Spread" line shows CVaG − |CVaR| — when it's above zero, the portfolio's best days are larger than its worst days (positive tail asymmetry). When it dips below zero, losses on bad days are dominating gains on good days.
60-day rolling skewness (left axis, blue) and excess kurtosis (right axis, orange). Negative skew = more frequent large losses than gains. Positive skew = fatter right tail. Excess kurtosis > 0 = fatter tails than a normal distribution (more extreme days). Negative skew + rising kurtosis = danger zone (left tail fattening). Background is shaded green when skew > 0 & kurtosis < 3, red when skew < 0 & kurtosis > 3.
Long, short, net, and gross exposure as a percentage of NAV over time. Net = Long − Short (directional bias). Gross = Long + |Short| (total capital at work). Rising gross with flat net = adding hedged positions; rising net = becoming more directionally exposed.
Number of distinct open positions held each day, reconstructed from trade entry/exit history. Shows how concentrated or diversified the portfolio is at any point in time.
Each dot is one trading week. X-axis = 8-week rolling annualized volatility (%), Y-axis = that week's compounded return (%). Green = positive week, red = negative. The regression line and R² show whether higher volatility periods tend to produce larger or smaller returns.
Shannon entropy of the discretized daily return distribution over a rolling 60-day window (purple, left axis), overlaid with cumulative return (green, right axis). High entropy = returns are spread unpredictably across many bins (noisy, random). Low entropy = returns are concentrated in fewer bins (structured, repeatable edge). Entropy dropping while cumulative return rises = the portfolio is finding a narrow, exploitable pattern. Entropy rising while performance flattens = the return process is becoming noisy and unstructured.
60-day rolling Hurst exponent estimated via rescaled range (R/S) analysis. H > 0.5 = trending regime (returns are persistent — up days tend to follow up days). H < 0.5 = mean-reverting regime (returns tend to reverse). H ≈ 0.5 = random walk (no memory). The 0.5 reference line marks the boundary between trending and mean-reverting behavior.
Each dot plots today's return (Y) against yesterday's return (X). The regression line and R² reveal whether returns are serially correlated. A flat line with low R² = returns are roughly independent day-to-day (random). A positive slope = momentum tendency; negative slope = mean-reversion tendency.
Each dot plots the forward 3-day realised vol against the prior 10-day trailing vol (non-overlapping windows, log returns). A positive slope and high R² = volatility is "sticky" — elevated vol regimes predict continued high vol. This is the well-known volatility clustering effect.
Velocity (green) = 10-day EMA of daily returns in bps — are you making money faster or slower? Acceleration (orange) = rate of change of velocity. Jerk (purple dotted) = rate of change of acceleration — spikes flag inflection points where your P&L trajectory is about to shift direction.
Z-score of rolling mean return vs historical grand mean at 10-day (cyan), 30-day (yellow), and 60-day (magenta) windows. Values above +2 or below -2 indicate statistically unusual momentum — your recent performance is significantly different from your long-run average.
Percentage of realized trades that were profitable, computed on rolling 20-trade and 50-trade windows. The dashed line shows the overall win rate across all trades. A win rate above 50% combined with a profit factor > 1 indicates a positive edge. Requires trade data.
Rolling average winning trade size (green) vs average losing trade size (red) as a percentage of position value, across 20-trade and 50-trade windows. When avg win > avg loss, winners are larger than losers — a key edge indicator.
Expected profit per trade as % of position value = (win_rate × avg_win%) − (loss_rate × avg_loss%). Positive expectancy means the portfolio has an edge. Computed on rolling 20-trade and 50-trade windows.
Survival function (exceedance probability) for winning and losing trade sizes as % of position value. Shows the probability that a winner/loser exceeds a given size. Steeper drop = more concentrated around small values; fat tail = occasional large wins/losses.
Overlapping histograms of winning trade sizes (green) vs losing trade sizes (red), both as absolute % of position value. Shows the shape of the win and loss distributions — if the green distribution extends further right than the red, winners are typically larger than losers.
Survival function: P(holding period > N days). Shows the probability that a trade is held longer than N days. Steep early drop = most trades are short-duration. Fat tail = some positions are held for extended periods. Median and mean holding periods marked for reference.
Quantile-quantile plot comparing actual daily returns to a theoretical normal distribution. Each dot represents one quantile. If returns were perfectly normal, all dots would sit on the diagonal reference line. Dots below the line in the left tail = larger losses than a normal distribution predicts (fat left tail). Dots above the line in the right tail = larger gains than expected (fat right tail).
Overlaid line chart comparing the absolute magnitude of the worst 50 days (red) vs best 50 days (green) by rank. Rank 1 = most extreme day for each side. Wherever green is above red = right tail is fatter at that rank.
Survival function for up days (green) and down days (red) separately, based on equity curve daily returns. X-axis = return magnitude %. Y-axis = P(return exceeds x) among that day type. Steeper curve = returns concentrate at small magnitudes. Fat tail = frequent large moves. Comparing the two curves shows whether big up days or big down days are more common at each magnitude threshold.
Cumulative total return of portfolio (cyan) vs SPY (orange) since inception. Both start at 0%. Shows how your portfolio has grown relative to the broad market benchmark over time.
Portfolio returns normalized to 1x leverage by dividing each day's return by that day's gross exposure. If you're running 150% exposure, the day's return is divided by 1.5; at 50% exposure, divided by 0.5. This strips out the leverage effect and shows what your returns would look like at constant 1x exposure — a true apples-to-apples comparison against SPY.
Your daily return minus (rolling 60-day beta × SPY return), cumulated over time. This strips out every dollar the market gave you for free and shows your pure skill equity curve. If this line is flat, your returns are entirely market-driven.
Rolling 60-day OLS regression of portfolio daily returns against SPY. Alpha (green) = annualised intercept (your skill after removing market exposure). Beta (blue, right axis) = market sensitivity. Alpha > 0 means you're generating returns beyond what beta explains.
Rolling Pearson correlation between portfolio and SPY daily returns. The 20-day window (cyan) captures short-term regime shifts. The 50-day window (orange) shows the structural relationship. Correlation near 0 = market-neutral. Spikes toward 1.0 during stress = hidden beta exposure.
Ratio of portfolio cumulative growth to SPY cumulative growth over time. Rising line = outperforming SPY. Falling line = underperforming. A value of 1.10 means the portfolio has grown 10% more than SPY since inception.
Rolling 60-day capture ratios vs SPY. Up-capture (green) = your avg return on SPY-up days as a % of SPY's avg up-day return. Down-capture (red) = same for SPY-down days. Capture ratio (gold, right axis) = up/down. Ideal: high up-capture, low down-capture, ratio > 1.
SPY daily returns bucketed into quintiles (worst 20% to best 20%). Blue bars = your portfolio's average daily return in each regime. Grey bars = SPY's average. Flat portfolio bars = market-neutral. Upward slope = long-biased. Smile shape = convex (ideal).
Standard deviation of your daily returns within each SPY decile. Dashed line = SPY's overall volatility. Lower bars in down regimes = better risk control.
Mean / std dev of your daily returns within each SPY decile. Dashed line = SPY's overall Sharpe. Positive bars in down regimes = risk-adjusted alpha even when the market drops.
Your average daily return across different market environments. X-axis = SPY 20-day rolling volatility quintile. Y-axis = SPY 20-day rolling return quintile. Green = you profit, red = you lose. Reveals which macro regimes suit your strategy best.
Two overlaid histograms of your daily returns: green = days when SPY was up, red = days when SPY was down. Ideally your down-day distribution is tighter (limited losses) and your up-day distribution is fatter (capturing upside).
Scatter of your daily returns vs SPY daily returns. Grey = normal days. Red = worst 10% SPY days (left tail). Green = best 10% SPY days (right tail). Clustering and spread reveal how your portfolio behaves during different SPY regimes.
Rolling 60-day ratio of |95th percentile return| to |5th percentile return|. Values > 1 = positive skew (fatter right tail). Cyan = portfolio, orange = SPY. If your tail ratio consistently exceeds SPY's, you have better upside/downside asymmetry.
Both drawdown series overlaid. When drawdowns coincide = market-driven losses. When your drawdown deepens while SPY is flat = idiosyncratic blowup worth investigating. Cyan = portfolio, Orange = SPY.
Your drawdown minus SPY's drawdown over time. Positive (green fill) = you're in a shallower hole than SPY. Negative (red fill) = you're deeper. Shows active drawdown risk — when this is deeply negative, your losses are exceeding what the market explains.
Exceedance curves comparing portfolio and SPY daily returns. For up-days: P(return > x). For down-days: P(|return| > x). Heavier right tails on up-days (good) and lighter right tails on down-days (good) indicate favorable return asymmetry vs the benchmark.
Exceedance curves of drawdown magnitude. Shows P(drawdown > x%) for portfolio vs SPY. If your curve sits below SPY's, your drawdowns are shallower more often — better risk management. Where they cross reveals the drawdown depth at which one dominates the other.
Heatmap of monthly excess return (portfolio − SPY) by year and month. Green = outperformed, red = underperformed. Shows seasonality patterns and how the magnitude of over/underperformance evolves over time.
Consecutive trading days of outperformance (green, positive) or underperformance (red, negative) vs SPY. Long positive streaks = persistent alpha. Long negative streaks = periods where your strategy diverged unfavorably from the market.
Portfolio (cyan) and SPY (orange) equity curves with background colored by SPY market regime. Regime is determined by SPY price relative to its 50-day and 200-day simple moving averages: green = bull (above both), red = bear (below both), yellow = choppy (mixed). Shows how the portfolio performs across different market environments.
Cumulative commissions as % of NAV. Weekly cost = Σ(commission_$ / NAV_$) × 100 per week. Bars show weekly totals; the red area = running cumulative sum. Annualised = (cumulative / trading_days) × 252.
Cumulative stock borrow / short-selling costs as a percentage of NAV. These fees are charged by the broker for borrowing shares to sell short. Higher costs typically come from hard-to-borrow names or elevated short interest.
Cumulative cost of borrowing on margin from the broker. Monthly charges are shown as bars; the line tracks cumulative cost as a % of NAV. This is the interest paid for using margin (leverage), separate from stock borrow fees.
Cumulative return contribution of each strategy category expressed as % of portfolio NAV.
Peak-to-trough drawdown for each strategy category. Shows the worst decline from the high-water mark within each type — useful for identifying which strategies are driving portfolio drawdowns.
Rolling 20-day cumulative return contribution per strategy category. Shows which strategies are carrying performance at any given time. Positive area = adding to returns, negative = dragging.
Rolling 20-day order count (entries + exits) per strategy category. Each round-trip trade generates at least two orders. Higher turnover strategies are more active — compare with the equity curve to see if more activity translates to better returns.
Rolling 20-day average notional order value (entries + exits) per strategy category as a percentage of portfolio NAV. Includes both buy and sell sides, so this reflects total capital turnover, not net exposure.
Year-to-date return contribution by strategy category as a share of total portfolio return. Shows which strategies are driving overall performance.
Monthly return heatmap showing performance of each strategy category over time. Green = positive, Red = negative. Spot seasonal patterns in strategy performance.
Every trade's PnL as a percentage of position size (cost basis), shown as a dot with jitter. Diamond marks the mean. Shows the full spread and outliers without hiding individual data points.
Gross profits divided by gross losses per strategy category. A profit factor above 1.0 means the strategy is profitable overall. Higher = better risk/reward. The dashed line marks the breakeven threshold at 1.0.
Every trade's holding period shown as a dot. Diamond marks the mean. Reveals clustering patterns and outlier durations across strategies.
Rolling expectancy per strategy (expanding window: 5→10 trades) = (win_rate × avg_win%) − (loss_rate × avg_loss%), where PnL is expressed as % of position value (cost basis). Positive = edge, negative = bleeding. Shows which strategies are currently hot or cold.
Percentage of trades that were profitable per strategy category. The dashed line marks 50%. A high win rate alone doesn't guarantee profitability — compare with profit factor and avg win/loss size.
Average winning trade size vs average losing trade size per strategy (as % of position value / cost basis). Shows payoff asymmetry — ideally avg win exceeds avg loss. Green = avg win, Red = avg loss.
Longest consecutive winning and losing streaks per strategy category. Long loss streaks indicate drawdown persistence. Long win streaks suggest momentum in edge capture.