KIDRegulationFundamentals

The UCITS KID / PRIIPs KID explained for developers: every field you can extract

What the PRIIPs KID is, how it replaced the UCITS KIID, every section it contains (SRI, scenarios, costs, holding period) and which fields map to API paths.Published 4 September 2026 · 6 min read · by FundFacts API

Every UCITS fund sold to retail investors in the EU must publish a Key Information Document, and it is the most standardised document a fund house produces: fixed sections, fixed order, a three-page limit and regulated wording. This guide walks through it section by section, explains what changed when the PRIIPs KID replaced the UCITS KIID, and shows which fields you can extract and where they land in a FundFacts API response.

KIID, KID and PRIIPs: which one are we talking about?

Two documents share almost the same name.

  • The UCITS KIID (Key Investor Information Document) was introduced by the UCITS IV directive. Two pages, a seven-step SRRI risk scale and past-performance bar charts.
  • The PRIIPs KID (Key Information Document) comes from the PRIIPs Regulation and covers every "packaged" retail product: structured products, insurance wrappers and, since 1 January 2023, UCITS funds sold to EU retail investors. Three pages, a seven-step SRI risk scale and forward-looking performance scenarios.

Until the end of 2022 UCITS funds were exempt from PRIIPs and kept producing the KIID. That exemption ended, so an EU UCITS fund you look up today should have a PRIIPs KID. The United Kingdom is the important exception. After leaving the EU, the UK retained the PRIIPs rules but extended the UCITS exemption, so UK UCITS funds have continued to publish a UCITS KIID while the UK designs its own retail disclosure regime. If your product covers both markets, expect to parse both documents and treat the UK position as something to re-check, not a fixed fact. The glossary has short definitions of KID and PRIIPs.

The sections of a PRIIPs KID

The regulation prescribes the headings and their order. That consistency is exactly what a parser wants.

SectionWhat it containsStructured value you can extract
ProductName, ISIN, manufacturer, regulator, date of the documentisin, name, manufacturer, document date
Comprehension alertOptional warning for complex productsBoolean flag
What is this product?Type, term, objectives, intended retail investorObjective text, legal structure, target investor
What are the risks and what could I get in return?SRI on a 1–7 scale plus performance scenariosriskRating, scenario table
What happens if the manufacturer is unable to pay out?Depositary and compensation-scheme wordingRarely structured
What are the costs?Costs over time and composition of costsEntry, exit, ongoing, transaction and performance fees
How long should I hold it and can I take money out early?Recommended holding periodInteger number of years
Other relevant informationLinks to past performance and previous scenariosURLs

"Purpose" and "How can I complain?" are fixed wording and contact details; skip them. The rest deserve a closer look.

Objectives

The "What is this product?" section states the investment objective in plain language, the benchmark if there is one, whether the fund is active or tracks an index, the replication method for ETFs, and the distribution policy. In a FundFacts API response this arrives as investmentObjective, with the benchmark in benchmarkName and the policy in keyFacts.distribution.

Summary Risk Indicator (SRI)

The SRI is a single integer from 1 (lowest risk) to 7 (highest). It is printed as a row of seven boxes with one highlighted, and the document must say which recommended holding period it assumes. The API exposes it as riskRating.

Performance scenarios

The KIID showed a bar chart of up to ten calendar years of realised returns. The PRIIPs KID replaced that with a table of four scenarios — stress, unfavourable, moderate and favourable — each showing what a fixed investment (commonly 10,000 in the fund currency) might be worth after one year and after the recommended holding period, plus the annualised percentage. These are not forecasts; they are computed from historical data using a prescribed method, and can change materially between annual updates. Past performance moved out of the KID into a separate document that the KID links to. FundFacts API reads realised performance from the factsheet and performance pages instead, and returns it as calendarReturns, cumulativePerformance and annualisedReturns — see fund performance data explained.

Costs over time and reduction in yield

The cost section has two tables. Costs over time shows total costs in currency and as an annual percentage impact if you exit after one year and after the recommended holding period. In the original 2018 PRIIPs templates this percentage was labelled reduction in yield (RIY); the revised templates that arrived with the UCITS switch call it the annual cost impact, but it is the same idea: how much lower your yearly return is because of costs. Composition of costs then breaks the total down into one-off entry and exit costs, ongoing management and administrative costs, transaction costs and incidental costs such as performance fees.

The ongoing-cost line is the closest cousin of the TER or ongoing charges figure on the factsheet, but not always identical, because PRIIPs includes transaction costs that the UCITS ongoing charges figure excludes. When you store headlineMetrics.ter from the API next to a KID cost line, label each with its source. See TER vs ongoing charges.

A single number of years, chosen by the manufacturer. It drives the scenario horizon and the cost projection, so two funds' KID costs are only comparable if they share the same holding period.

Comprehension alert

If a product is considered complex the KID must carry the sentence "You are about to purchase a product that is not simple and may be difficult to understand." Most plain UCITS index funds do not carry it. Treat it as a boolean.

SRI vs SRRI: not the same scale

Both indicators run from 1 to 7; the similarity ends there.

AspectSRRI (UCITS KIID)SRI (PRIIPs KID)
InputFive years of historical return volatilityA market-risk measure derived from a VaR-equivalent volatility over the holding period, combined with a credit-risk measure
Credit riskNot includedIncluded
HorizonFixed look-backDepends on the recommended holding period
Typical result for a broad equity index fundOften 6Often 4
LiquidityNot coveredCan trigger an additional liquidity warning

The practical consequence: a 6 from a UK KIID and a 4 from an EU KID can describe the same portfolio. Never mix the two in one column without a scale indicator. The API's riskRating is the indicator published in the fund's current document, so store the document type alongside it if you serve both regimes. The older scale is covered in SRRI explained.

Mapping KID fields to API paths

KID fieldAPI path
ISIN and fund nameisin, name
Objectives textdata.investmentObjective
Benchmarkdata.benchmarkName
Distribution policydata.keyFacts.distribution
Fund currencydata.keyFacts.currency
Legal structure / typedata.structure, data.securityType
Summary Risk Indicatordata.riskRating (1–7)
Ongoing costsdata.headlineMetrics.ter
Document datedata.dataAsOf

A short TypeScript helper that fetches a fund and returns a KID-shaped summary:

typescript
type KidSummary = {
isin: string;
name: string;
objective: string;
sri: number;
ongoingCostPct: number | null;
distribution: string | null;
asOf: string;
};
export async function kidSummary(isin: string): Promise<KidSummary> {
const res = await fetch(`https://fundfactsapi.com/api/v1/funds/${isin}`, {
headers: { Authorization: `Bearer ${process.env.FUNDFACTS_API_KEY}` },
});
if (!res.ok) throw new Error(`FundFacts API ${res.status}`);
const { data, name } = await res.json();
return {
isin,
name,
objective: data.investmentObjective,
sri: data.riskRating,
ongoingCostPct: data.headlineMetrics?.ter ?? null,
distribution: data.keyFacts?.distribution ?? null,
asOf: data.dataAsOf,
};
}

Example output for IE00B4L5Y983 (example values, shape only):

json
{
"isin": "IE00B4L5Y983",
"name": "iShares Core MSCI World UCITS ETF USD (Acc)",
"objective": "The Fund aims to achieve a return on your investment, through a combination of capital growth and income, which reflects the return of the MSCI World Index.",
"sri": 4,
"ongoingCostPct": 0.2,
"distribution": "Accumulating",
"asOf": "2026-08-31"
}

Things that trip up parsers

  • Language versions. A fund distributed in ten countries has ten KIDs with identical numbers and translated text. Pick one language for text fields and record which.
  • Annual refresh. KIDs are reviewed at least yearly and re-issued when scenarios or the SRI change materially. Keep the document date.
  • One KID per share class. Costs, and sometimes the SRI, differ between classes of the same fund, so key everything by ISIN.
  • UK vs EU. A GB-domiciled fund and its Irish sibling may carry different indicators for the same strategy purely because of the SRRI/SRI difference.

FundFacts API handles the reading, the refresh and the share-class keying and returns the structured result in one call, refreshed every 24 hours. Create a free key to try it on a KID you have in front of you.

Try it on your own ISINs

One request returns key facts, holdings, risk and performance as JSON. Free plan, no card.