Portfolio checkup methodology
A structure and risk grade, not a return forecast or investment recommendation. Available diversification, risk-fit, cost and long-run efficiency sub-scores have equal weight. Missing sub-scores are excluded, never replaced by perfect scores.
Grades and limits
| Grade | Minimum score |
|---|---|
| A+ | 98 |
| A | 94 |
| A- | 90 |
| B+ | 87 |
| B | 83 |
| B- | 80 |
| C+ | 77 |
| C | 73 |
| C- | 70 |
| D | 60 |
| F | Below 60 |
The grade is designed to be hard to earn. Most real portfolios land in the B or C range.
A− or better needs every one of these at once: diversification of at least 90 with at least 30% of equity in international or global funds; a weighted expense ratio of 0.10% or less; no known fund overlap; risk fit of at least 90 for the chosen risk level; and long-run efficiency of at least 95.4. An A− needs all four areas to be strong and every criterion to be met; otherwise the score remains below the A range. When every criterion holds, each sub-score point below 100 costs 3 grade points, so an A− needs near-perfect sub-scores and an A or A+ is extremely rare. In our calibration set of 150 realistic portfolios, about 7% earn an A− and none earn an A or A+. A+ also needs all four sub-scores at 95 or above.
When an A− criterion is unmet, each point above 80 counts 0.45 (80–100 maps to 80–89), so strong portfolios still differ within the B range. A missing sub-score (unknown fund, unverified fees, missing risk data or long-run efficiency) caps at 89. Exact fund look-through is not available; it is disclosed as a limitation, and diversification uses issuer-stated fund mandates instead. Diversification has a maximum of 96 using known fund mandates and input weights, not exact look-through, and loses up to 12 points when less than 30% of equity are in international or global funds.
Related fund-category flags (not measured common holdings) or weighted fund expenses of at least 0.5% cap the score at 76 (C). Identified US home bias, or single-company exposure above 30% in total or above 10% in one company, caps at 79 (C+). Large leveraged, crypto, narrow-sector or dominant single-company positions receive stricter caps. Partial input caps at 76; less than twelve monthly returns caps at 80. Cash-only is capped at 75 except Conservative (92, then the unmet A− criteria apply). Conservative without identified defensive assets caps at 75.
Grade factors show how many points each characteristic cost, and "points to next grade" is the gap to the next threshold. When a cap blocks the next grade, we name the cap instead of a number.
Long-run efficiency
Efficiency compares the long-run expected return per unit of risk of your own mix with the best mix of broad US equity, international equity, bond and cash funds at the same risk, using the round-number assumptions below (as of 2026-10). Expense ratios reduce expected return. Single companies, sector funds, leveraged funds and crypto add uncompensated risk (28.000000000000004%, 12%, 10% and 60% extra volatility). Efficiency = 100 × your ratio ÷ the reference ratio, capped at 100. The reference curve is computed on our server and only its return-per-risk values are used; no alternative weights are shown. These are educational assumptions, not forecasts.
| Asset class | Long-run return | Volatility |
|---|---|---|
| US stocks | 6.5% | 16.0% |
| International stocks | 7.0% | 17.0% |
| Investment-grade bonds | 4.3% | 5.5% |
| Cash / Treasury bills | 3.5% | 0.0% |
| Commodities | 4.5% | 18.0% |
Risk-free reference 3.5%. Correlations: US–international 0.8, equity–bonds 0.1.
Risk fit
Risk fit = max(0, 100 − 100 × max(0, volatility / reference − 1, measured drawdown / reference − 1)).
| Profile | Volatility reference | Drawdown reference |
|---|---|---|
| Conservative | 10% | 20% |
| Moderate | 20% | 40% |
| Aggressive | 35% | 60% |
Moderate is the default. Profiles are educational assumptions, not suitability assessments.
Prices and portfolio metrics
Complete calendar months are aligned across holdings. We use the longest complete common monthly history of the selected holdings (up to 30+ years where available); the newest holding sets the start month. Where history covers them, the 2000–02 dot-com bear market and the 2008 financial crisis are shown by name, and rolling 5- and 10-year comparisons count every overlapping period against the selected benchmark. CAGR compounds observed monthly portfolio returns. Annual volatility uses monthly sample standard deviation × √12. Drawdown is the measured peak-to-trough decline in the portfolio wealth series, not a volatility proxy. The historical portfolio assumes monthly rebalancing to input weights and excludes taxes, trading costs and slippage.
Historical risk-adjusted comparisons use the disclosed risk-free reference. Monthly resolution can miss intramonth losses. Provider fallback and adjustment provenance are disclosed in report details; missing or unverified observations are not invented.
Funds, fees and overlap
Issuer-sourced dated references describe fund mandates and expense ratios. Unknown funds remain unavailable. Known mandate overlap is qualitative; exact common holdings, sector/region percentages and underlying company exposure are unavailable without reliable look-through. Cost score = max(0, 100 − expense ratio in percentage points × 100), so 0.03% scores 97 and 0.50% scores 50. Fee illustrations compound fees over a zero-gross-return $100,000 baseline; they are not forecasts.
Hypothetical frontier
Deterministic constrained quadratic optimization solves 81 target-return portfolios, using historical sample means and covariance, long-only allocations summing to 100%. Individual/narrow positions are capped at 40% (or a stricter selected cap); diversified broad funds can reach 100%. Covariance regularization is 1e-10. Interpolation is approximate. Infeasible constraints stay infeasible; no silent relaxation. The optional minimum-holdings setting applies a 0.25% floor to every input. Risk parity remains unavailable; long-run efficiency uses the separate disclosed reference assumptions above.
Out-of-sample robustness
A mix fitted to past data always looks good on that same data, so the Deep Analysis also tests hypothetical alternatives on years they were not built from. Walk-forward: fit on a training window (5 years, or 10 years when 20+ years of shared history exist), hold those weights unchanged for the next 1 year (2 years with longer history), then roll forward so holdouts never overlap and never use training months. We report the hit rate (periods where the alternative beat your mix), the average shortfall when it did not, and return, volatility, worst drop and Sharpe over the unseen months only, next to your mix and SPY. A simple split fits on the first 70% of history and tests on the last 30%. A one-off cost of 0.1% of the amount switched is charged each time weights change.
Estimation-error controls: no holding above 40% (80% with two holdings), so a multi-holding mix never collapses to one asset, plus the trading cost above. On our 22 real-history test portfolios (Tiingo history, up to 30+ years) we compared four methods out of sample: raw past averages and swings, Ledoit-Wolf covariance shrinkage with mean returns pulled halfway toward the group average, lowest swings, and equal risk share. The raw version with position limits had the highest median out-of-sample Sharpe, so it is the one shown; the shrunk version had a slightly shallower average worst drop. In that test, the hypothetical alternatives on average did not beat the test portfolios themselves on unseen years. The interactive frontier chart remains an in-sample picture of past data.
Different start dates show the yearly return from each January to the latest month. The 10-year range reshuffles past 12-month stretches 500 times (a block bootstrap) and shows the middle 80% of outcomes; it is a hypothetical range, never a forecast.
Survivorship bias: you can only enter funds that exist today. Funds that closed or merged after poor results are missing from any history, so past results of surviving funds can look better than what investors actually experienced. Hypothetical and educational; past results don't predict future results.
Source and return basis
Primary source: Tiingo end-of-day data. We use Tiingo's adjusted close, which is adjusted for splits and dividends, so monthly returns are total returns with dividends reinvested. Daily values are reduced to the last trading day of each month on our server; only the resulting returns are used and shown, never the underlying prices. When Tiingo has no series for a holding, the earlier provider path (Polygon split-adjusted bars, then Yahoo adjusted close) is used, and the report says so: a mixed-source result is not described as verified total return. History covers up to 30+ years where a fund has existed that long; every result shows its start month and which holding limits it. Returns and dollar figures are nominal, not inflation-adjusted. Historical weights rebalance monthly; no trading costs or taxes are included. Data provided by Tiingo.
Checkable formulas
Monthly holding return r = P(t) / P(t−1) − 1; portfolio return r(p,t) = Σ weight(i) × r(i,t), with original weights restored each month.
CAGR = [∏(1+r(p,t))]^(12/n) − 1, for n monthly returns.
Volatility = sample standard deviation of monthly returns × √12; sample variance divides squared deviations from the monthly mean by n−1.
Wealth(t) = wealth(t−1) × (1+r(p,t)); maximum drawdown = max[1 − wealth(t) / largest wealth observed up to t]. Starting wealth is 1. Monthly observations can miss losses within a month.
Correlation = sample covariance(r(A),r(B)) / [sample standard deviation(A) × sample standard deviation(B)], measured on identical calendar months. Missing dates or constant-return series show unavailable, not measured zero.
Overlap today: qualitative matching of named broad-US, growth/technology and dividend-equity categories, not common-holding counts or overlapping weights. We no longer label an unmatched category as “Low”. Weight-based overlap would be Σ min(weight(A,i),weight(B,i)) over shared securities; that calculation is not yet available.
Grade: average available diversification, risk-fit, cost and long-run efficiency scores. Missing measurements are omitted, not assigned 100. Structural findings can set a lower ceiling. Unmet A− criteria compress scores above 80 by 0.45; otherwise each sub-score point below 100 costs 3 grade points. The final value respects all structural ceilings and letter thresholds above.
Worked example: 60% VTI / 40% BND
Preserved Yahoo adjusted-close observations, 2007-05-01 to 2026-09-01, 232 monthly returns. Total return with dividends reinvested, nominal figures, monthly rebalanced. Recomputed from the shared metric and grade code when the app is built.
- For each holding and month: return = adjusted close this month ÷ adjusted close last month − 1.
- Restore 60/40 weights every month: portfolio return = 0.60 × VTI return + 0.40 × BND return.
- Compound every month: wealth = ∏(1 + monthly return) = 4.214936. A hypothetical $10,000 becomes $42149.36, excluding taxes and trading costs.
- CAGR = 4.214936^(12/232) − 1 = 7.725%.
- Monthly mean = 0.666%; sample monthly standard deviation = 2.950%. Annual volatility = standard deviation × √12 = 10.218%.
- Sharpe = (12 × 0.00665616 − 0.03) ÷ 0.10217652 = 0.4881.
- Track compounded wealth and its previous peak each month: largest 1 − wealth/peak = 32.196%.
- VTI/BND correlation = 0.2595 from the same intersecting monthly returns.
- Grade = C+, score 79. Sub-scores: diversification: 68.00; riskFit: 100.00; cost: 97.00; efficiency: 89.70. Home bias: 100% of identified equity allocation has a US mandate; no international/global equity fund identified. Not exact issuer revenue exposure.
| Month | VTI return | BND return | 60/40 return |
|---|---|---|---|
| 2007-06-01 | -1.763% | -0.311% | -1.182% |
| 2007-07-01 | -3.535% | 0.922% | -1.752% |
| 2007-08-01 | 1.471% | 1.483% | 1.476% |
Snapshot of real historical data, not a forecast. Rounding applies only to displayed values.
Report dates
A Deep Analysis report bought for $12 is computed once, from the latest complete month of prices, for the exact holdings and weights you buy it for, and then stays fixed. Its date and price month are shown on the report and stamped on PDF/CSV exports. Re-checking with today's prices updates the free grade only. Pro recomputes the Deep Analysis each time; after Pro ends, the last Pro-era view of each portfolio stays readable as a dated snapshot.
Email us within 14 days if it wasn't useful. Refunds and disputes (chargebacks) remove the paid access associated with that purchase. Ordinary Pro cancellation freezes saved reports; it is not a refund or chargeback.
For educational purposes only. Not investment advice. Past performance does not guarantee future results.