← All tools

Free Portfolio Grader

Grade my portfolio: enter your stock holdings to see how diversified your portfolio is — concentration, effective number of holdings, and a structure grade. The grading runs entirely in your browser — your holdings stay on this page unless you choose to import them into Tradune.

Total 100%

C
Diversification grade
63/100

Example — a 6-stock portfolio (AAPL 20%, MSFT 18%, JPM 16%, XOM 16%, JNJ 16%, KO 14%): grade C, 63/100 · 5.9 effective holdings · largest position 20.0% · top 3 54.0%.

What this grade means (and doesn’t)

This tool looks only at the shape of your portfolio — how spread out it is — using the weights you enter. It rewards holding more positions and penalises heavy concentration in one name or one sector.

Two measures do most of the work. Concentration is your largest position and your top-3 combined. The effective number of holdings is 1 ÷ Σ(weightᵢ²) — a diversification score that counts a portfolio with one 90% position as barely more than a single holding, no matter how many tiny ones sit beside it.

It says nothing about whether your holdings are good — a well-diversified portfolio of weak businesses still scores well here. Risk also depends on how your holdings move together (correlation), their volatility, and your goals, which this quick check can’t see.

Educational tool that grades diversification structure only — not investment quality, a rating, or financial advice. It cannot see your correlations, risk tolerance, or goals. The calculation runs entirely in your browser; your figures leave the page only if you choose to import them into Tradune. The page loads standard pageview analytics, which never sees your numbers. For a fuller view (volatility, drawdown, sector tilt, cash reserve), open the Health Score in Tradune.

How the grade is calculated

The whole score is computed from the weights you type — no prices, no market data, nothing fetched. Here is the exact recipe, with the example portfolio above (AAPL 20%, MSFT 18%, JPM 16%, XOM 16%, JNJ 16%, KO 14%) worked through each step.

  1. Clean and rescale. Rows with no ticker or no positive weight are ignored, and at least two holdings are needed. Each weight is then divided by the total, so the weights always sum to 100% inside the formula. The example already totals 100%, so nothing changes.
  2. Effective number of holdings. Square each weight (as a decimal), add the squares, and take the reciprocal: 1 ÷ Σ(weightᵢ²). For the example the squares sum to 0.1688, so it behaves like 5.9 equally weighted positions rather than 6.
  3. Breadth (55 points). Breadth scales from 0 at one effective holding to full marks at 12: (effective − 1) ÷ 11, capped at 1. Example: (5.9 − 1) ÷ 11 = 0.45, worth 24.6 points.
  4. Concentration (45 points). Only your single largest position counts here. At 15% or less it earns full marks; at 50% or more it earns zero; in between it falls in a straight line. Example: the largest position is 20.0%, so (50 − 20.0) ÷ (50 − 15) = 0.86, worth 38.6 points. That gives a name-level score of 63.2 out of 100.
  5. Sector blend (only when every holding has a sector). Sector weights are added up and run through the same effective-number formula, scaled to full marks at 6 effective sectors. The final score is 70% name-level score plus 30% sector score. If even one holding has no sector selected, this step is skipped and the name-level score is the whole score. Example: 5 sectors with Technology the largest at 38% make 4.2 effective sectors, a sector score of 63.1; 70% × 63.2 + 30% × 63.1 rounds to 63.
  6. Letter. The rounded 0–100 score maps to A at 85+, B at 72–84, C at 58–71, D at 42–57, and F below 42. The example’s 63 is a C.

The written findings under the grade use separate, fixed flags: a largest position of 40% or more, top three holdings at 65% or more, fewer than 4 effective holdings, or one sector at 50% or more each add a warning; a largest position of 15% or less is called out as measured.

Two consequences worth knowing. Adding many tiny positions barely moves the grade, because the squares of small weights are tiny — the effective-number formula is built to ignore them. And because each row is one position, a single broad index fund is graded as one holding: the tool sees a 60% fund position as 60% concentration, even if the fund itself holds hundreds of companies.

Looking for a stock grader instead?

This tool grades your portfolio’s structure, not the individual stocks in it. For single names, the Tradune stock Grade ranks a stock against its sector peers on a 0–100 scale across quality, value, momentum and growth, with a fully published methodology. It is descriptive, not a price forecast or a buy signal — open it in Tradune →

Portfolio grader FAQ

Is this portfolio grader free?

Yes. The grader is free, needs no signup and runs entirely in your browser — the holdings and weights you type are not sent to any server or stored by this page. If you choose “Import these holdings into Tradune”, the tickers and weights (not sectors) travel to the Tradune app inside that link’s fragment — the part after #, which browsers do not send to servers — and the app removes it from the address bar on arrival. Nothing is added to a Tradune portfolio until you enter shares and average cost and confirm the import.

Is this a free stock grader?

Not exactly. It grades your portfolio as a whole — how spread out it is across positions and sectors — not the quality of any single stock. For a grade on one company, the Tradune stock Grade ranks a stock against its sector peers on a 0–100 scale across quality, value, momentum and growth, with a published methodology; it is descriptive, not a price forecast or a buy signal. It lives inside the Tradune app, which needs an account. Everything is free for everyone right now — no card, no trial clock, nothing to buy. Paid plans aren’t live yet; when they arrive the Free plan stays free, and we’ll email everyone with a Tradune account or on the product-updates list before anything becomes paid.

How is the portfolio grade calculated?

From your weights only. Breadth (effective number of holdings, 1 ÷ Σ weight², full marks at 12) is worth 55 points; concentration (your largest position: full marks at 15% or less, zero at 50% or more) is worth 45. If every holding has a sector, that score is blended 70/30 with sector breadth (full marks at 6 effective sectors). The 0–100 result maps to A (85+), B (72+), C (58+), D (42+) or F.

Do my weights have to add up to 100%?

No. The grader divides each weight by the total, so 50 / 30 / 20 and 5 / 3 / 2 grade the same. When your total is not 100% the page says so next to the grade and offers a one-click "Normalize to 100%" — a total of 87% or 137% is usually a typo, so it is flagged rather than silently absorbed.

How does it treat ETFs and funds?

Each row is one position. An ETF or mutual fund counts as a single holding, because the grader cannot see inside it — a 60% position in a broad index fund is graded as a 60% position. Picking the "ETF / Fund" sector puts it in its own sector bucket.

Does a good grade mean my portfolio is good?

No. The grade measures structure — breadth and concentration — and nothing else. A well-spread portfolio of weak businesses can score an A. It cannot see correlations between your holdings, volatility, valuation, your goals or your time horizon. It is an educational check, not a rating or financial advice.

This math stops at what you typed in.

Tradune runs it continuously on your real holdings — with your money-weighted return next to a buy-and-hold SPY twin, and SEC insider filings flagged on the stocks you own.

Educational analytics — not investment advice.

Related