* docs(resilience): PR 4a — SWF classification rubric (tiers + precedents, no manifest changes)
PR 4a of cohort-audit plan 2026-04-24-002. First half of the plan's PR 4
(full-manifest re-rate) split into:
- PR 4a (this): pure documentation — central rubric defining tiers
+ concrete precedents per axis. No manifest changes.
- PR 4b (deferred): apply the rubric to revise specific coefficients
in `scripts/shared/swf-classification-manifest.yaml`. Behaviour-
changing; belongs in a separate PR with cohort snapshots and
methodology review.
This split addresses the plan's concern that PR 4 "may not be outcome-
predetermined" by separating the evaluative framework from its
application. PR 4a makes every current manifest value evaluable against
a benchmark; PR 4b applies the benchmark.
Shipped
- `docs/methodology/swf-classification-rubric.md` — new doc.
Sections:
1. Introduction + scope (rubric vs manifest boundary)
2. Access axis: 5 named tiers (0.1, 0.3, 0.5, 0.7, 0.9) w/
concrete precedents per tier, plus edge cases for
fiscal-rule caps (Norway GPFG) and state holding
companies (Temasek)
3. Liquidity axis: 6 tiers (0.1, 0.3, 0.5, 0.7, 0.9, 1.0) w/
precedents + listed-vs-directly-owned real-estate edge case
4. Transparency axis: 6 tiers grounded in LM Transparency
Index + IFSWF membership + annual-report granularity, plus
edge cases for LM=10 w/o holdings-level disclosure and
sealed filings (KIA)
5. Current manifest × rubric alignment — 24 coefficients reviewed;
6 flagged as "arguably higher/lower under the rubric" with
directional-impact analysis marked INFORMATIONAL, not
motivation for revision
6. How-to-use playbook for manifest-edit PRs (add/revise/rubric-
revise workflows)
Findings (informational only — no PR changes)
Six ratings flagged as potentially under-/over-stated against the
rubric. Per the plan's anti-pattern note (rank-targeted acceptance
criteria), the flags are INFORMATIONAL: a future manifest-edit PR
should revise only when the rubric + cited evidence support the
change, not to hit a target ranking.
Flagged (with directional impact if revised upward):
- Mubadala access 0.4 → arguably 0.5; transparency 0.6 → 0.7
(haircut 0.12 → 0.175, +46% access × transparency product)
- PIF access 0.4 → arguably 0.5; liquidity 0.4 → arguably 0.3
(net small effect — opposite directions partially cancel)
- KIA transparency 0.4 → arguably 0.5 (haircut +25%)
- QIA access 0.4 → arguably 0.5; transparency 0.4 → arguably 0.5
(haircut +56%)
- GIC access 0.6 → arguably 0.7 (haircut +17%)
Not flagged: GPFG, ADIA, Temasek (all 9 coefficients align with
their rubric tiers).
Verified
- `npm run test:data` — 6694 pass / 0 fail (unchanged — pure docs PR)
- `npm run typecheck` / `typecheck:api` — green
- `npm run lint:md` — clean
Not in this PR
- Manifest coefficient changes (PR 4b)
- Cohort-sanity snapshot before/after (PR 4b)
- Live-data audit of IFSWF engagement + LM index current values
(requires web fetch — not in scope for a doc PR)
* fix(resilience): PR 4a review — resolve GIC/ADIA rubric contradictions + flag-count
Addresses P1 + 2 P2 Greptile findings on #3376 (draft).
1. **P1 — GIC tier contradiction.** GIC was listed as a canonical 0.7
("Explicit stabilization with rule") precedent AND rated 0.6 in
the alignment table with an "arguably 0.7" note. That inconsistency
makes the rubric unusable as-is for PR 4b review. Removed GIC from
the 0.7 precedent list and explicitly marked it as a 0.7 *candidate*
(pending PR 4b evaluation), not a 0.7 *precedent*. KIA General
Reserve Fund stays as the canonical 0.7 example; Norway GPFG
remains the borderline case for fiscal-rule caps.
2. **P2 — ADIA liquidity midpoint inconsistency.** Methodology text
said the rubric uses "midpoint" for ranged disclosures and cited
ADIA 55-70% → 0.7 tier. But midpoint(55-70) = 62.5%, which sits
in the 0.5 tier band (50-65%). Fixed the methodology to state the
rubric uses the **upper-bound** of a disclosed range (fund's own
statement of maximum public-market allocation), which keeps ADIA
at 0.7 tier (70% upper bound fits 65-85% band). Added forward-
compatibility note: if future ADIA disclosures tighten the range
so the upper bound drops below 65%, the rubric directs the rating
to 0.5.
3. **P2 — Flag-count header.** "(6 of 24 coefficients)" was wrong;
the enumeration below lists 8 coefficients across 5 funds.
Corrected to "8 coefficients across 5 funds" with the fund-by-fund
count inline so the header math is self-verifying.
Verified
- `npm run lint:md` — clean
- `npm run typecheck` — green (pure docs PR, no behaviour change)
This PR remains in draft pending #3380 (PR 3A — net-imports denominator)
merge per the plan's PR 4 → after PR 3A sequencing.
18 KiB
SWF classification rubric (haircut factors for sovereignFiscalBuffer)
Central rubric for classifying sovereign wealth funds under the
resilience sovereignFiscalBuffer dimension. Supports
scripts/shared/swf-classification-manifest.yaml.
Every fund in the manifest has three coefficients in its
classification: block:
classification:
access: 0..1
liquidity: 0..1
transparency: 0..1
These multiply together to form the haircut the scorer applies when computing effective SWF months of reserve coverage:
effectiveMonths = rawSwfMonths × access × liquidity × transparency
score = 100 × (1 − exp(−effectiveMonths / 12))
This doc defines what each coefficient value means with named tiers + concrete precedents, so:
- Every rating in the manifest is defensible by pointing to a tier + precedent.
- Future manifest PRs that add or revise ratings have an explicit benchmark to evaluate against.
- A reviewer can audit the manifest without re-deriving the rubric from first principles each time.
Scope boundary. This is a methodology doc, not a ground-truth table. The coefficient values live in the manifest YAML; the rubric here explains the semantic tiers those values live on. Revising a fund's rating is a manifest-YAML edit cited against a tier here, not a rubric edit.
Axis 1 — Access
"How directly can the state deploy fund assets into budget support during a fiscal shock?"
Operationalized as a combination of legal mechanism (is there a withdrawal rule?), political clarity (who authorizes deployment?), and historical precedent (has deployment actually happened?). Deployment SPEED (weeks vs months vs years) is the core signal.
| Tier | Value | Meaning | Concrete precedents |
|---|---|---|---|
| Nil access | 0.1 | Sanctions, asset freeze, or political paralysis makes deployment effectively impossible within a crisis window | Russia NWF (post-2022 asset freeze), Libya LIA (sanctions + frozen assets), Iran NDFI (sanctions + access concerns). Currently deferred from v1 for this reason. |
| Intergenerational savings | 0.3 | Pure long-horizon wealth-preservation mandate; no explicit stabilization rule; withdrawal requires ruler / head-of-state / parliamentary discretion with no codified trigger | ADIA (Abu Dhabi, intergenerational mandate, ruler-discretionary); Brunei BIA (deferred candidate) |
| Hybrid / constrained | 0.5 | Mandate mixes strategic + savings + partial stabilization; deployment is mechanically possible but constrained by strategic allocation locked to policy objectives (Vision 2030, industrial policy, geopolitical holdings) | PIF (Saudi Arabia, Vision 2030-locked), QIA (Qatar, long-horizon wealth-management with amiri-decree deployment), Mubadala (UAE, strategic + financial hybrid), Ireland ISIF (strategic-development mandate) |
| Explicit stabilization with rule | 0.7 | Legislated or rule-based mechanism for fiscal support during specific shock classes, with historical precedent of actual deployment | KIA General Reserve Fund (legislated finance of budget shortfalls from oil-revenue swings). NO GPFG is BORDERLINE — has a fiscal rule capping withdrawal at ~3% expected real return, which is an access MECHANISM but also an access CONSTRAINT (see below). NOTE: GIC is discussed in the alignment table below as a candidate for this tier based on its NIRC framework, but the current manifest rates it 0.6 — so it's a 0.7 candidate, not a 0.7 precedent. |
| Pure automatic stabilization | 0.9 | Deployment triggers automatically when a named macro signal crosses a threshold; stabilization is the primary mandate; political authorization is post-hoc or symbolic | Chile ESSF (deploys when copper revenue falls below a rule-based target); deferred v1 candidate |
Edge case — fiscal-rule caps
A fiscal rule like Norway's ~3%-of-expected-real-return withdrawal cap creates an ambiguous access signal:
- Positive direction: the rule makes access PREDICTABLE and mechanically available for budget support every year, without political negotiation.
- Negative direction: the rule CAPS how much can be tapped, so in a severe shock the fund cannot be liquidated beyond the rule. The mechanism protects the savings against panic but rate-limits the stabilization function.
Rubric treatment: fiscal-rule-capped funds sit at the 0.5-0.7 boundary. Norway's GPFG at 0.6 (current manifest value) is defensible as "between hybrid-constrained and rule-based stabilization."
Edge case — state holding companies
Temasek-style state-holding-company assets can be deployed for fiscal support only via DIVIDEND FLOW, not via primary-asset liquidation (which would disrupt portfolio companies). This mechanism is slow (dividends are typically annual) and bounded (can't exceed portfolio earnings in a shock year). Rubric treatment: 0.3-0.4 tier, NOT the 0.5 hybrid tier — the mechanical deployment path is materially slower than QIA's amiri-decree route.
Axis 2 — Liquidity
"What share of the fund's AUM is in listed public markets and thus liquidatable within days/weeks without fire-sale discount?"
Operationalized as (public equities + listed fixed income + cash) ÷ total AUM, per the fund's most recent published asset mix. When the disclosure is a range (ADIA publishes 55-70%, not an exact ratio), the rubric uses the upper-bound of the range — the fund's own public statement is that it COULD be up to that figure, and haircut factors are designed to reward disclosed LIQUIDITY CAPACITY, not the conservative worst case. ADIA's 70% upper bound lands in the 0.7 tier (65-85%); if future ADIA disclosures tighten the range so the upper bound drops below 65%, the rubric directs the rating to 0.5.
| Tier | Value | Meaning | Concrete precedents |
|---|---|---|---|
| Illiquid-strategic dominant | 0.1 | Primarily domestic strategic holdings + policy banks + political stakes; < 30% public-market. No v1 fund sits here; reserved for future outliers | — (aspirational floor) |
| Private + illiquid majority | 0.3 | 30-50% public-market; majority in private equity, real estate, infrastructure, or strategic holdings | PIF (estimated ~40% public, dominated by Aramco + domestic megaprojects). Current manifest values PIF liquidity = 0.4 — AT BOUNDARY, defensible under either 0.3 or 0.5 tier |
| Mid-liquid mix | 0.5 | 50-65% public-market with material private sleeve | Mubadala (~50/50 per 2024 annual report); Temasek (~50% listed, ~50% unlisted per Temasek Review 2025); QIA (~60% public) — note current manifest QIA = 0.6, at the boundary of 0.5 and 0.7 tiers |
| Majority public | 0.7 | 65-85% public-market with modest private allocation | ADIA (55-70% public-market range per 2024 review, balance in alternatives + real assets) |
| Predominantly liquid | 0.9 | 85-95% public-market with modest cash + short-duration sleeves | KIA (~75-85% listed equities + fixed income — boundary 0.7/0.9, current manifest = 0.8); GIC (~90% public per 2024/25 annual report) |
| Fully liquid | 1.0 | 100% listed public markets — equities + fixed income + listed real estate. No private at all | GPFG (NBIM 2025 — 100% listed, no private markets) |
Edge case — listed real estate
GPFG's listed real estate counts toward its liquidity score; PIF's direct real estate holdings do NOT. The distinction matters for boundary calls (0.7 vs 0.9): listed = liquidatable daily; directly-owned = months to sell at disclosed valuations.
Axis 3 — Transparency
"How well-documented is the fund's governance + financials?"
Operationalized as the Linaburg-Maduell (LM) Transparency Index score, normalized against IFSWF membership status and the granularity of the fund's annual reporting.
The LM index is a 10-point scale (1 = lowest, 10 = highest). IFSWF membership is binary (member / observer / non-member). Annual-report granularity gates tier promotion independently of LM/IFSWF.
| Tier | Value | Meaning | LM benchmark | Concrete precedents |
|---|---|---|---|---|
| Opaque | 0.1 | No public AUM, no governance reporting, no LM score | LM ≤ 1 | Deferred candidates: BIA (Brunei) if LM pins at the floor post-audit |
| Partial disclosure | 0.3 | Governance structure published but AUM undisclosed; no asset-mix disclosure; LM 2-4 | LM 2-4 | PIF (audited financials but line-item allocation limited; IFSWF observer not full member; LM ~4 per current manifest) |
| Asset-class disclosed | 0.5 | Audited AUM or published ranges, asset-class-level mix, partial IFSWF engagement | LM 5-6 | ADIA (annual review with asset-class ranges, partial IFSWF engagement, LM=6). QIA (limited public disclosure, IFSWF full member with audited filings, LM=5) — QIA currently manifest=0.4 may be marginally under-rated. KIA (LM=6, partial IFSWF engagement) currently manifest=0.4 — arguably under-rated |
| Audited AUM + returns | 0.7 | Audited AUM, asset-mix breakdown, benchmark-relative returns disclosed, IFSWF full member | LM 7-8 | GIC (asset-class breakdown + 20-year rolling returns, IFSWF full member, LM=8). Mubadala (audited AUM + asset-mix, IFSWF member, LM=10) — Mubadala LM=10 argues for 0.9 tier; current manifest=0.6 may be under-rated |
| Holdings-level | 0.9 | Full asset-class + top-holdings disclosure; regular updates; IFSWF full compliance | LM 9-10 | Temasek (audited NPV + benchmarked returns + top-20 holdings + LM=10, current manifest=0.9 ✓) |
| Full holdings-level daily | 1.0 | Daily returns disclosed, holdings-level reporting, full IFSWF compliance | LM=10 | GPFG (NBIM full audited AUM, daily returns, holdings-level reporting, LM=10, IFSWF full compliance) |
Edge case — LM score vs disclosure depth
The LM index measures 10 governance signals (publication of financials, independent audit, public objectives, etc.). A fund can score LM=10 under the index while still publishing only RANGED asset-mix rather than exact holdings (Mubadala, Temasek). The rubric distinguishes these cases: LM=10 + holdings-level disclosure → 0.9-1.0 tier; LM=10 + asset-class-only disclosure → 0.7-0.8 tier. Mubadala's current manifest 0.6 under-rates the LM=10 signal against the rubric.
Edge case — sealed filings
KIA files detailed financials to the Kuwaiti National Assembly but the filings are SEALED from public disclosure. Under the rubric this sits at the 0.5 tier (asset-class disclosed + IFSWF engagement) rather than the 0.3 tier (no AUM), because the AUM is audited and disclosed to the oversight body — just not publicly. Current manifest = 0.4 is at the 0.3/0.5 boundary.
Current manifest × rubric alignment (informational, not PR-changes)
Reviewing each of the 8 current manifest values against the rubric tiers. This PR does NOT edit the manifest. The column "Rubric tier" shows where the rating falls under this rubric; "Manifest value" is the current YAML value; "Aligned?" flags whether the rating fits the rubric or looks off.
| Fund | Axis | Manifest value | Rubric tier | Aligned? | Notes |
|---|---|---|---|---|---|
| GPFG (NO) | access | 0.6 | Rule-constrained stabilization (between 0.5 and 0.7) | ✓ | Fiscal rule caps withdrawal — justifies boundary rating |
| GPFG (NO) | liquidity | 1.0 | Fully liquid | ✓ | NBIM 2025 confirms 100% listed |
| GPFG (NO) | transparency | 1.0 | Full holdings-level daily | ✓ | LM=10 + full IFSWF compliance |
| ADIA (AE) | access | 0.3 | Intergenerational savings | ✓ | No explicit stabilization mandate; ruler-discretionary |
| ADIA (AE) | liquidity | 0.7 | Majority public | ✓ | 55-70% public-market per 2024 review |
| ADIA (AE) | transparency | 0.5 | Asset-class disclosed | ✓ | LM=6; IFSWF partial engagement |
| Mubadala (AE) | access | 0.4 | Hybrid/constrained — below 0.5 tier | ⚠ | Current 0.4 is slightly under the 0.5 tier midpoint; 2024 ADQ merger arguably strengthens case for 0.5 |
| Mubadala (AE) | liquidity | 0.5 | Mid-liquid mix | ✓ | ~50/50 per 2024 report |
| Mubadala (AE) | transparency | 0.6 | Between 0.5 and 0.7 | ⚠ | LM=10 + IFSWF member argues for 0.7 (audited AUM + mix + returns); currently under-rated |
| PIF (SA) | access | 0.4 | Hybrid/constrained — below 0.5 tier | ⚠ | 0.5 tier fits the hybrid-mandate description; 0.4 is conservative. Arguable either way |
| PIF (SA) | liquidity | 0.4 | At 0.3/0.5 boundary | ⚠ | ~40% public-market sits at the top of 0.3 tier rather than middle of 0.5; 0.3 may be more honest |
| PIF (SA) | transparency | 0.3 | Partial disclosure | ✓ | LM ~4 + IFSWF observer-only |
| KIA (KW) | access | 0.7 | Explicit stabilization with rule | ✓ | General Reserve Fund's legislated budget-financing mandate is the canonical 0.7 example |
| KIA (KW) | liquidity | 0.8 | Between 0.7 and 0.9 | ✓ | 75-85% listed; defensible boundary rating |
| KIA (KW) | transparency | 0.4 | At 0.3/0.5 boundary | ⚠ | LM=6 + IFSWF partial-engagement argues for 0.5; current 0.4 is at the boundary; 0.5 may be slightly more accurate |
| QIA (QA) | access | 0.4 | Hybrid/constrained — below 0.5 tier | ⚠ | Long-horizon wealth management with amiri-decree deployment. 0.5 fits the hybrid tier; 0.4 is conservative |
| QIA (QA) | liquidity | 0.6 | Between 0.5 and 0.7 | ✓ | ~60% public-market sits at the tier boundary |
| QIA (QA) | transparency | 0.4 | At 0.3/0.5 boundary | ⚠ | LM=5 + IFSWF full member with audited filings argues for 0.5; current 0.4 is at the boundary |
| GIC (SG) | access | 0.6 | Rule-mechanism with NIRC | ⚠ | NIRC framework is explicit fiscal-contribution — arguably 0.7 tier (rule-based stabilization with historical precedent); current 0.6 is conservative |
| GIC (SG) | liquidity | 0.9 | Predominantly liquid | ✓ | ~90% public per 2024/25 report |
| GIC (SG) | transparency | 0.8 | Audited AUM + returns | ✓ | Asset-class + 20-year rolling returns; LM=8 |
| Temasek (SG) | access | 0.4 | State holding company — dividend-flow only | ✓ | Mechanical deployment is dividend-bound; 0.3-0.4 tier fits |
| Temasek (SG) | liquidity | 0.5 | Mid-liquid mix | ✓ | ~50% listed per 2025 Review |
| Temasek (SG) | transparency | 0.9 | Holdings-level | ✓ | Top-20 exposures + LM=10 |
Summary of rubric-flagged ratings — 8 coefficients across 5 funds (Mubadala ×2, PIF ×2, KIA ×1, QIA ×2, GIC ×1) out of 24 total (8 funds × 3 axes):
- Mubadala access 0.4 (arguably 0.5); transparency 0.6 (arguably 0.7)
- PIF access 0.4 (arguably 0.5); liquidity 0.4 (arguably 0.3)
- KIA transparency 0.4 (arguably 0.5)
- QIA access 0.4 (arguably 0.5); transparency 0.4 (arguably 0.5)
- GIC access 0.6 (arguably 0.7)
None of these changes are made in this PR. The flags are informational — a future manifest-edit PR (PR 4b per the plan) should evaluate each flag, cite the rubric tier, and either confirm the current rating with a stronger rationale or revise it to match the tier.
Directional impact of the flagged ratings (if revised upward)
- Mubadala 0.4 → 0.5 on access, 0.6 → 0.7 on transparency: the access × transparency product moves from 0.24 to 0.35 (+46%). Combined with unchanged liquidity 0.5: haircut multiplier 0.12 → 0.175. UAE gains material SWF-months.
- PIF access 0.4 → 0.5: modest lift. PIF liquidity 0.4 → 0.3: modest dampening. Net: small.
- KIA transparency 0.4 → 0.5: haircut multiplier 0.7×0.8×0.4 = 0.224 → 0.7×0.8×0.5 = 0.28 (+25%). KW already top-quartile.
- QIA access 0.4 → 0.5 + transparency 0.4 → 0.5: QIA haircut 0.096 → 0.15 (+56%). Material lift for QA.
- GIC access 0.6 → 0.7: haircut 0.432 → 0.504 (+17%). SG lift.
The directional impact analysis is INFORMATIONAL and should NOT be treated as a decision to revise. Per the plan's anti-pattern note, rubric flags shouldn't be motivated by a target ranking outcome. A future manifest PR should revise ratings because the rubric + cited precedents support the change, not because the resulting ranking looks better.
How to use this rubric
When adding a new fund to the manifest
- Locate each axis value on the tier table.
- Cite the tier PLUS at least one concrete precedent (annual report page, LM index page, IFSWF profile URL).
- If the fund sits between two tiers, pick the lower tier and
explain the boundary rating in the YAML
rationale:block. - PR review checks: does the rationale's cited evidence actually land the fund at the claimed tier?
When revising an existing fund
- Cite what EVIDENCE changed: new annual report, LM score revision, IFSWF membership change, mandate amendment.
- Map the new evidence to a tier per this rubric.
- Update BOTH the coefficient AND the
rationale:text in the same PR. - For PRs that shift multiple coefficients: run the cohort-
sanity audit (see
docs/methodology/cohort-sanity-release-gate.md) and publish the contribution-decomposition table for the affected countries.
When the rubric itself needs revising
Out of scope for a manifest PR. A rubric revision requires:
- A separate methodology-decision PR citing the construct gap the revision fixes (e.g., "the current rubric doesn't handle state holding companies well — add a dedicated tier").
- Re-evaluation of every existing fund under the new rubric (the rubric and the manifest must stay in lockstep).
- Cohort-sanity audit snapshot before/after.
References
- Manifest:
scripts/shared/swf-classification-manifest.yaml - Scorer:
server/worldmonitor/resilience/v1/_dimension-scorers.tsline 1654 (scoreSovereignFiscalBuffer) - Saturating transform:
score = 100 × (1 − exp(−effectiveMonths / 12)) - Linaburg-Maduell Transparency Index methodology: https://www.swfinstitute.org/research/linaburg-maduell-transparency-index
- IFSWF member directory: https://www.ifswf.org/members
- Santiago Principles self-assessments: https://www.ifswf.org/santiago-principles
- Plan reference:
docs/plans/2026-04-24-002-fix-resilience-cohort-ranking-structural-audit-plan.md§PR 4