Methodology

How PORTIQA evaluates a portfolio.

A portfolio score is a starting point for reviewing your holdings. PORTIQA combines concentration, risk balance and available evidence into a 0–100 score, then shows the components and limitations that explain it.

Use the score to investigate, not predict

The free portfolio analyzer is designed to help you examine the structure of a stock portfolio. A higher score does not guarantee a higher return or a smaller loss. Check which components drive the result and how much evidence is available before drawing a conclusion.

1. Normalise the portfolio

Enter each ticker with its current market value, using a single currency for all holdings and cash. Positive market values are converted to weights using total invested value. Cash is tracked separately. Tickers that cannot be resolved are reported as missing instead of silently receiving invented values.

2. Measure concentration

Position concentration begins with maximum position weight and the Herfindahl-Hirschman Index:

ConcentrationHHI = Σ wᵢ²    effective positions = 1 / HHI

The same weighting logic is applied to sector groupings. Effective positions answers a more useful question than holding count: how many equally weighted positions would have the same concentration as this portfolio? The concentration guide gives a worked example.

For example, a two-stock portfolio split 60% and 40% has an HHI of 0.6² + 0.4² = 0.52, so its effective position count is 1 / 0.52 ≈ 1.92. This measures the distribution of capital. It does not establish how independently those two stocks behave.

Funds and underlying holdings

ETFs and other recognised funds are treated as individual positions. The engine does not expand their underlying securities, calculate overlap between funds, or reconstruct their underlying issuer and sector exposures. For example, a 60/40 allocation to two funds has 1.92 effective fund positions; that number does not mean it holds only 1.92 underlying companies or is necessarily poorly diversified.

Fund weights still affect the engine's composite score. A fund's own classification is not the sector allocation of its underlying holdings. When the website recognises a fund, it labels this limitation and withholds sector totals, underlying-diversification interpretations, allocation targets, market-context and trajectory displays, and suggestions that depend on those unsupported inferences. These display safeguards do not add fund look-through analysis or change the API's raw calculations.

3. Build component evidence

The engine calculates separate components for diversification, risk, quality, signal, and trend. It also measures classification confidence, factor-evidence confidence, market-regime alignment, and input coverage. Keeping these components separate is deliberate: a high-quality group of holdings can still be dangerously concentrated, and one blended number should not conceal that disagreement.

4. Apply the risk profile

Low, medium and high risk profiles use different targets, including different effective-position expectations and exposure ranges. They are selectable comparison settings, not an assessment of your personal capacity to take risk. The same portfolio can receive a different exposure plan under a different risk setting.

5. Produce the verdict

Component evidence is combined into a 0–100 health score and a readable status. The response also contains the component scores, trajectory, holding-level analysis, exposure plan, diagnostics, insights, and prioritised suggestions. Treat the top-line score as triage; use the components and diagnostics for decisions. See how to interpret a portfolio score.

Coverage and uncertainty

Missing beta, grade, dividend, trend, macro, classification, or factor evidence reduces what the engine can support. The response exposes coverage percentages, confidence measures, low-confidence weight, missing-factor weight, and a data_gaps list. Integrations should display or act on those fields rather than presenting weak evidence as certain.

How to check and compare a result

  1. Check that the tickers, market values, cash and selected risk level match what you intended to enter.
  2. Recalculate the largest position weight and HHI from the displayed inputs. Read any missing-ticker or coverage warnings.
  3. Record the evaluation date and engine version alongside the inputs. The raw JSON below a result provides detail for anyone checking the calculations.
  4. Compare component evidence before interpreting a change in the overall score. Updated market data, changed holdings or a new engine version can all change the result.

The evaluator is deterministic: identical inputs, risk setting, engine version and data snapshot produce the same result. A later check may use a newer snapshot, so repeating the same holdings later does not guarantee an identical score. See the data and freshness notes.

A free account lets you save holdings for another check. It saves your inputs, not a history of past scores. Material methodology changes are reflected in this page's review date; engine versions distinguish changes to the calculation.

Limitations

For an introduction with sample inputs, explore the example portfolios. Developers can use the API field reference for the response contract.

Check your own stock portfolio.

Enter up to 25 holdings for a free analysis of concentration, risk balance and the available evidence. No account or broker connection required.

A free account saves up to 10 sets of holdings for your next check. Results are recalculated when you run another analysis.