Docs/ Field reference
Field reference
Every key of the data object: identity, profile, breakdowns, performance, metrics, freshness.The data object has the same shape for every fund. Breakdown arrays contain { label, weight } with weights in percent; metric strings keep the unit / format as published ("0.20%", "USD 151.7bn"). Missing values are empty strings, empty arrays or null, never absent keys. Every term links to the glossary.
Identity & key facts
Who issues the fund, what it invests in, how large it is and how it is structured.| Field | Type | Description |
|---|---|---|
investmentObjective | string | The fund's stated investment objective / strategy paragraph.e.g. "The Fund seeks to track the performance of an index composed of developed market companies." |
securityType | string | Security-type label of the share class.e.g. "ETF" | "Open-End Fund" |
structure | string | Normalized structure token derived from securityType.e.g. "ETF" | "UCITS Fund" |
shareClass | string | undefined | Share-class letter/label when it can be inferred (e.g. from the fund name).e.g. "A" | "I" | "USD Acc" |
keyFacts.assetClass | string | Broad asset class.e.g. "Equity" | "Fixed Income" | "Money Market" | "Allocation" |
keyFacts.subAsset | string | FundFacts category, identical to profile.category (composed from the disclosed exposures; see the profile group).e.g. "Global Blend Equity" |
keyFacts.currency | string | Share-class base currency (ISO 4217).e.g. "USD" |
keyFacts.aum | string | Fund size / net assets, formatted as reported, with unit and currency.e.g. "USD 105.4 bn" |
keyFacts.inception | string | Inception date of the share class.e.g. "25/09/2009" |
keyFacts.distribution | string | Income treatment.e.g. "Accumulating" | "Distributing" |
keyFacts.holdings | string | number | Number of holdings in the portfolio.e.g. 1355 |
keyFacts.manager | string | Portfolio manager(s) or management company.e.g. "BlackRock Asset Management Ireland" |
managerTenure | string | Tenure of the longest-serving manager, when disclosed.e.g. "5.3 years" |
benchmarkName | string | Primary prospectus benchmark / index tracked.e.g. "MSCI World NR USD" |
Risk rating & profile
The regulatory risk indicator, plus the FundFacts profile: a classification derived from the fund's own disclosed data with fixed, published rules, so every value can be recomputed from the same payload. Rules are versioned in profile.rules.| Field | Type | Description |
|---|---|---|
riskRating | number | null | SRRI / SRI risk indicator on a 1 (lowest) to 7 (highest) scale. Falls back to an asset-class heuristic when not disclosed.e.g. 6 |
profile.kind | "equity" | "fixedIncome" | "moneyMarket" | "allocation" | "alternative" | "other" | Broad kind, derived from keyFacts.assetClass.e.g. "equity" |
profile.category | string | Composed label: region + valuation (or sector for sector funds) for equity; currency + credit grade + duration for bonds; equity share for allocation funds.e.g. "Global Blend Equity" | "EUR High-Grade Bond, Extensive Duration" | "Balanced Allocation (58% equity)" |
profile.riskBand | "low" | "medium" | "high" | null | SRRI 1–2 low, 3–4 medium, 5–7 high.e.g. "medium" |
profile.concentration | "concentrated" | "balanced" | "diversified" | null | Weight of the ten largest holdings: ≥50% concentrated, 30–50% balanced, <30% diversified.e.g. "diversified" |
profile.regionFocus | string | null | Largest region (or country) when it is ≥80% of the portfolio; otherwise "Global".e.g. "Global" |
profile.regionTilt | string | null | For Global funds, the largest region when it is 50–80% of the portfolio.e.g. "North America" |
profile.sectorTilt | string | null | Equity only. Largest sector when ≥30%, otherwise "Broad". A fund with ≥50% in one sector is categorised as a sector fund.e.g. "Technology" |
profile.valuation | "value" | "blend" | "growth" | null | Equity only, from the portfolio P/E: <15 value, 15–22 blend, >22 growth.e.g. "blend" |
profile.creditQuality | "high" | "medium" | "low" | null | Bonds and money market, from the credit buckets: AAA–A ≥60% high; investment grade (≥BBB) ≥80% medium; otherwise low.e.g. "high" |
profile.rateSensitivity | "limited" | "moderate" | "extensive" | null | Bonds, from effective or modified duration: <3.5 years limited, 3.5–6 moderate, >6 extensive.e.g. "moderate" |
profile.equityShare | number | null | Allocation funds: equity weight of the asset allocation, in percent.e.g. 58 |
profile.rules | string | Version of the rule set that produced the profile.e.g. "fundfacts-profile/1" |
Portfolio breakdowns
Every breakdown is an array of { label, weight } where weight is a percentage (0–100). Arrays are empty when the panel does not apply to the asset class.| Field | Type | Description |
|---|---|---|
topHoldings | Array<{ name: string; weight: number }> | Largest positions with their portfolio weight in percent.e.g. [{ "name": "NVIDIA Corp", "weight": 5.1 }, …] |
geography | Array<{ label: string; weight: number }> | Country exposure.e.g. [{ "label": "United States", "weight": 71.8 }, …] |
region | Array<{ label: string; weight: number }> | Regional exposure. Mirrors geography when no distinct regional panel exists.e.g. [{ "label": "North America", "weight": 75.4 }, …] |
sector | Array<{ label: string; weight: number }> | Sector exposure (GICS-style for equity; instrument type for fixed income).e.g. [{ "label": "Technology", "weight": 27.5 }, …] |
creditQuality | Array<{ label: string; weight: number }> | Credit-rating buckets for fixed income and money-market funds.e.g. [{ "label": "AAA", "weight": 12.3 }, …] |
assetAllocation | Array<{ label: string; weight: number }> | Asset-class split (equity / bond / cash / other) for allocation funds.e.g. [{ "label": "Equity", "weight": 60.2 }, …] |
instrument | Array<{ label: string; weight: number }> | Instrument-type breakdown, mostly for money-market funds.e.g. [{ "label": "Commercial paper", "weight": 41 }, …] |
maturity | Array<{ label: string; weight: number }> | Maturity buckets for fixed income / money-market funds.e.g. [{ "label": "1-3 years", "weight": 35.2 }, …] |
strategy | Array | Strategy allocation (e.g. for multi-strategy / alternative funds). Usually empty.e.g. [] |
exposure | Array | Additional exposure panel when available. Usually empty.e.g. [] |
Performance
Calendar-year, cumulative, indexed and annualised returns. When the issuer publishes a NAV history, the series and the returns are computed from it (monthly, last observation of each month); otherwise the figures are the ones stated in the factsheet. Series can be empty for funds whose issuer does not publish a NAV history.| Field | Type | Description |
|---|---|---|
calendarReturns.years | string[] | Calendar years covered, oldest first, clamped to the inception year. Partial (current) years are excluded.e.g. ["2020", "2021", "2022", "2023", "2024"] |
calendarReturns.fund | number[] | Fund total return per calendar year, in percent, aligned with years.e.g. [15.9, 22.9, -17.7, 23.8, 18.9] |
calendarReturns.benchmark | (number | null)[] | Benchmark return per calendar year, in percent, when the factsheet states it (null otherwise).e.g. [15.9, 21.8, -18.1, 23.8, 18.7] |
cumulativePerformance | Array<{ date: string; fund: number | null; benchmark: number | null }> | Monthly cumulative return series (percent from the first point, rebased at the share-class inception).e.g. [{ "date": "2024-12", "fund": 112.4, "benchmark": null }, …] |
indexedPerformance.points | Array<{ date: string; fund: number | null; index: number | null }> | Same series rebased to 100 at the first point, ready to plot.e.g. [{ "date": "2020-01", "fund": 100, "index": null }, …] |
indexedPerformance.hasIndex | boolean | Whether the index series is populated.e.g. false |
annualisedReturns | Array<{ label: string; fund: number | null; index: number | null }> | Trailing returns: 1 Year, 3/5/10 Years p.a. and Since Inception. Multi-year figures are annualised.e.g. [{ "label": "1 Year", "fund": 18.2, "index": 18.0 }, { "label": "3 Years p.a.", … }] |
Headline metrics & risk statistics
Values are strings formatted as published (with % or units) so nothing is lost in conversion. Fields that do not apply to the asset class are empty strings. Volatility, Sharpe ratio and maximum drawdown are computed from the issuer's NAV history over the trailing 3 years (monthly returns, 0% risk-free rate) when it is published, otherwise taken from the factsheet.| Field | Type | Description |
|---|---|---|
headlineMetrics.ter | string | Total expense ratio / ongoing charge, as stated in the KID or factsheet.e.g. "0.20%" |
headlineMetrics.aum | string | Fund size (duplicate of keyFacts.aum for factsheet layouts).e.g. "USD 105.4 bn" |
headlineMetrics.volatility3y | string | 3-year annualised standard deviation of monthly returns.e.g. "14.2%" |
headlineMetrics.sharpe3y | string | 3-year Sharpe ratio (annualised return over annualised volatility, 0% risk-free rate).e.g. "0.85" |
headlineMetrics.yieldToMaturity | string | Yield to maturity (fixed income).e.g. "4.1%" |
headlineMetrics.modifiedDuration | string | Modified duration in years (fixed income).e.g. "6.2" |
metrics.peRatio | string | Portfolio price/earnings ratio (equity).e.g. "21.4" |
metrics.incomeYield | string | Distribution / dividend yield.e.g. "1.6%" |
metrics.volatility3y | string | 3-year volatility (per-asset-class metric slot).e.g. "14.2%" |
metrics.sharpe3y | string | 3-year Sharpe ratio (per-asset-class metric slot).e.g. "0.85" |
metrics.yieldToMaturity | string | Yield to maturity (fixed income slot).e.g. "4.1%" |
metrics.effectiveDuration | string | Effective duration in years.e.g. "5.9" |
metrics.effectiveMaturity | string | Effective / average maturity in years.e.g. "8.4" |
metrics.averageRating | string | Average credit rating of the portfolio.e.g. "AA-" |
metrics.sevenDayYield | string | 7-day yield (money market).e.g. "3.9%" |
metrics.wam | string | Weighted average maturity in days (money market).e.g. "38" |
metrics.wal | string | Weighted average life in days (money market).e.g. "61" |
metrics.maxDrawdown | string | Maximum peak-to-trough drawdown over the trailing 3 years.e.g. "-25.4%" |
metrics.equityCorrelation | string | Correlation to equities (alternatives / allocation).e.g. "0.62" |
metrics.equityBondSplit | string | Equity/bond split summary for allocation funds.e.g. "60/40" |
Costs & sustainability
The PRIIPs KID cost table and the SFDR classification, read from the KID (deterministically where the regulated layout allows) and the factsheet. Strings keep the format printed in the document; empty when the document does not state the line.| Field | Type | Description |
|---|---|---|
sfdrArticle | number | null | SFDR classification stated in the fund's documents: 6 (no sustainability objective), 8 (promotes E/S characteristics) or 9 (sustainable investment objective). null when not disclosed.e.g. 8 |
costs.entry | string | Entry costs (one-off), as printed in the KID.e.g. "0.00%" |
costs.exit | string | Exit costs (one-off).e.g. "0.00%" |
costs.ongoing | string | Management fees and other administrative or operating costs per year (the KID's ongoing-cost line). Falls back to headlineMetrics.ter.e.g. "0.20%" |
costs.transaction | string | Portfolio transaction costs per year.e.g. "0.05%" |
costs.performanceFee | string | Performance fee, when the fund charges one.e.g. "0.00%" |
costs.riy1y | string | Annual cost impact if you exit after one year (reduction in yield).e.g. "0.35%" |
costs.riyRhp | string | Annual cost impact at the recommended holding period.e.g. "0.25%" |
costs.recommendedHoldingPeriod | string | Recommended holding period stated in the KID.e.g. "5 years" |
Freshness
When the underlying figures are dated and when the payload was produced.| Field | Type | Description |
|---|---|---|
dataAsOf | string | 'As of' date of the underlying figures: the latest NAV observation when a NAV history is used, otherwise the factsheet's reporting date.e.g. "2026-07-31" |
generatedAt | string (ISO 8601) | Timestamp of the refresh that produced this payload. Payloads are refreshed when older than 24 hours.e.g. "2026-09-02T13:41:07.112Z" |