---
title: "SRRI and SRI explained: the 1–7 fund risk indicator and how to display it"
description: "What the SRRI / SRI risk indicator on a KIID or PRIIPs KID means, how it is calculated from volatility, how funds move between classes, and how to render it from API data."
canonical: https://fundfactsapi.com/blog/srri-risk-indicator-explained
published: 2026-09-02
updated: 2026-09-28
publisher: FundFacts API
---

# SRRI and SRI explained: the 1–7 fund risk indicator and how to display it

> What the SRRI / SRI risk indicator on a KIID or PRIIPs KID means, how it is calculated from volatility, how funds move between classes, and how to render it from API data.

Every European fund document carries a row of seven boxes with one highlighted. That is the **synthetic risk indicator**, and it is the single most recognisable risk signal retail investors see. This article explains what the number means, how it is computed, why it moves, and how to render it correctly from the `riskRating` field of a fund data API.

## SRRI vs SRI: two names, one idea

- **SRRI** (Synthetic Risk and Reward Indicator) is the scale on the UCITS **KIID**. It is based purely on the volatility of weekly returns over the last five years.
- **SRI** (Summary Risk Indicator) is the scale on the **PRIIPs KID** that replaced the KIID for most retail products from 2023. It combines a market-risk measure (again volatility-based, with a slightly different mapping) with a credit-risk measure of the issuer.

Both run from **1 (lowest risk) to 7 (highest risk)**. For plain funds and ETFs the two scales usually agree; where they differ, the KID's SRI is the one investors now see.

## How the number is derived

The market-risk class comes from annualised volatility:

| Class | SRRI volatility (KIID) | Typical funds |
| --- | --- | --- |
| 1 | 0 % – 0.5 % | Money-market funds |
| 2 | 0.5 % – 2 % | Short-term bond funds |
| 3 | 2 % – 5 % | Aggregate bond, cautious multi-asset |
| 4 | 5 % – 10 % | Balanced multi-asset, some global equity |
| 5 | 10 % – 15 % | Most equity funds and ETFs |
| 6 | 15 % – 25 % | Emerging markets, single sectors, small caps |
| 7 | > 25 % | Leveraged, highly concentrated, crypto-linked |

Under PRIIPs the bands are defined in terms of VaR-equivalent volatility and the category boundaries shift somewhat, which is why a global equity ETF may show **4** on a KID while its five-year volatility of ~12 % would have been a **5** under the KIID mapping. Read the number as a class, not as a precise volatility.

## Why the indicator moves

Funds migrate between classes when their trailing volatility crosses a boundary and stays there long enough (16 consecutive weeks under UCITS rules). Practically:

- After a calm bull market, equity funds drift down a class; after a crash, they move up.
- Newly launched funds without a five-year history use a proxy (benchmark or model portfolio) until they have their own.
- A change in strategy or hedging policy can move a fund immediately.

If you display the indicator, refresh it. A fund data API that refreshes within 24 hours — as [FundFacts API](https://fundfactsapi.com/) does — keeps you aligned with the latest published document.

## What the API returns

```json
{
  "data": {
    "riskRating": 4,
    "headlineMetrics": { "volatility3y": "11.9%", "sharpe3y": "1.21" },
    "metrics": { "maxDrawdown": "-9.29%", "equityCorrelation": "0.98" }
  }
}
```

`riskRating` is an integer 1–7, or `null` when no document the API read discloses it: the indicator is never estimated from the asset class or from volatility. Pair it with the realised statistics in `headlineMetrics` and `metrics` when you want to show *why* a fund sits where it does.

## Rendering the ladder

The familiar visual is seven segments with the active one emphasised. In React, with no chart library:

```tsx
const COLORS = ["#2ECC71", "#27AE60", "#16A085", "#F1C40F", "#E67E22", "#E74C3C", "#C0392B"];

export function RiskLadder({ value }: { value: number | null }) {
  return (
    <div role="img" aria-label={value ? `Risk indicator ${value} of 7` : "Risk indicator not available"}
         style={{ display: "flex", gap: 4 }}>
      {[1, 2, 3, 4, 5, 6, 7].map((lvl) => {
        const active = lvl === value;
        return (
          <div key={lvl} style={{
            flex: 1, height: active ? 40 : 28, alignSelf: "flex-end", borderRadius: 6,
            background: active ? COLORS[lvl - 1] : "#EEF2FA",
            color: active ? "#fff" : "#667", display: "grid", placeItems: "center",
            fontWeight: active ? 700 : 500,
          }}>{lvl}</div>
        );
      })}
    </div>
  );
}
```

Accessibility matters here: colour alone must not carry the meaning, so keep the numbers visible and give the group an `aria-label`.

## Communicating it honestly

- Say **"lower/higher risk"**, not "safe/unsafe". Class 1 money-market funds still carry credit and inflation risk.
- Mention that the class is **based on past volatility** and can change.
- For multi-asset or fund-of-funds products, show the indicator of the product the client actually holds, not an average of the underlying funds.

## Going further

Combine `riskRating` with `metrics.maxDrawdown` and the [performance series](https://fundfactsapi.com/blog/fund-performance-data-explained) to give clients a concrete picture: "class 4, worst peak-to-trough −9.3 %, 3-year volatility 11.9 %". All three come back in the same response — [get a free key](https://fundfactsapi.com/signup) and try it on your own funds.

## About FundFacts API

FundFacts turns any fund or ETF ISIN into one dated factsheet (fees and KID costs, the 1–7 risk indicator, holdings, sector and country exposure, returns) read from the fund house's own documents: as a client-ready PDF under your firm's name for advisers and wealth managers, as JSON through its API for developers, or inside ChatGPT and Claude through its MCP server.

FundFacts works inside ChatGPT and Claude as a connector (a remote MCP server): ask about any fund or ETF by ISIN, ticker or name and the assistant answers from FundFacts' dated figures, fees, risk, holdings, exposure and returns, with fund cards, side-by-side comparisons, holdings overlap and portfolio look-through.

- Free API key, no card: https://fundfactsapi.com/signup
- Documentation: https://fundfactsapi.com/docs (OpenAPI: https://fundfactsapi.com/openapi.json)
- MCP server: https://fundfactsapi.com/api/mcp (set-up for every client: https://fundfactsapi.com/mcp-server)
- Pricing: https://fundfactsapi.com/pricing
- Site index for AI assistants: https://fundfactsapi.com/llms.txt
- Informational data, not investment advice.
