🇯🇵

GPIF · Japan Government Pension Investment Fund

Methodology, data pipeline & sources · all figures from public disclosures

bzhmacrobzhmacro.com
Method & sources

How this site is built.

Everything derives from public disclosures. The pipeline (in /scripts of the repo) is reproducible end-to-end; each step below names its source.

01

Data pipeline

① Holdings. GPIF publishes a full securities list (保有全銘柄) once a year, each July, for the fiscal year ended in March. Twelve files (FY2014→FY2025) are parsed into one dataset (~183k rows) by parse_holdings.py. Bonds are issuer-level before FY2019 and ISIN-level from FY2019; foreign-bond names embed coupon and maturity from FY2019 onward.

② Security master. 10,536 bond ISINs (the whole domestic book + foreign lines lacking a maturity in their name) are mapped through the OpenFIGI API (openfigi_enrich.py). The FIGI ticker carries coupon, maturity and — for JGBs — the issue number: JGB 1.5 06/20/35 379. 36 ISINs (private placements) found no match.

③ Risk (v2 — priced from the disclosure). GPIF discloses each line's market value and face quantity. risk_engine.py therefore implies each bond's price directly — price = MV ÷ (face × FX), using ECB reference exchange rates at each fiscal year-end — solves the semi-annual YTM from that price, and evaluates modified duration and DV01 at the implied yield. Portfolio-level implied yields validate against market levels (FY2025: JGB book 2.2%, USTs 4.0%, gilts 4.9%). Lines with no usable quantity, unidentifiable currency (XS-prefix supranationals) or an implausible implied price (outside 40–250, e.g. amortising MBS pools whose current face ≠ original) fall back to the previous par assumption (yield = coupon); the fallback carries 0.4–25% of MV depending on year and is flagged per line in the pipeline output. Floaters 0.15y; perpetuals 60y. DV01 = MV × modDur × 10⁻⁴.

④ Ownership vs outstanding. For JGBs, MOF's 普通国債の銘柄別現在高 (issue-by-issue outstanding, end-Mar 2026) is joined on maturity date + issue number. For US Treasuries, the Treasury FiscalData MSPD "detail of marketable securities" table is joined by CUSIP at each of the seven fiscal year-ends, so UST ownership is a timeseries. GPIF's disclosed quantity is face value in the bond's currency; share = face ÷ outstanding. Lines computing above 100% are suppressed as data errors. Other sovereigns don't publish joinable issue-level outstanding, so their lines show "—".

⑤ Equity comparison. iShares MSCI ACWI ETF holdings (July 2026) proxy MSCI ACWI; ex-Japan weights are renormalized after removing Japan. GPIF holdings join by normalized name (88.8% of MV; GPIF truncates names at ~22 characters, so a unique-prefix fallback is used). Countries come from ISIN prefixes (XS = supranational).

⑥ Allocation & policy. The FY2001→FY2025 asset-mix history is GPIF's own table (file 06 on each fiscal-year page). Policy portfolios and deviation bands: Apr-2006 67/8/11/9(+5 cash) → Jun-2013 60/11/12/12 → Oct-2014 35/15/25/25 (±10/4/9/8) → Apr-2020 25×4 (±7/6/8/7) → Apr-2025 25×4 (±6/5/6/6).

Caveats. Year-end snapshots only — no intra-year turnover. Security-file sums differ from GPIF's official asset mix by up to ~1pp (the official mix folds in short-term assets and, from FY2020, allocates alternatives into the four classes). Foreign-bond DV01 is local-yield risk translated to yen at the disclosure FX rate — not FX-hedged. Duration is a par-assumption estimate, weakest for deep-discount/premium bonds. Index weights are July-2026 ETF holdings vs GPIF's March-2026 book. Nothing here is investment advice.
02

Sources

GPIFFull holdings, annual — latest fiscal year · past fiscal years
GPIFAsset amounts & composition (運用資産額・資産構成割合), FY2001→FY2025
GPIFPolicy portfolio — basic portfolio · Apr 2020 detail · Apr 2025 detail · policy history (capital-markets review No.478)
FIGIOpenFIGI API v3 — ISIN → ticker/name/type security master
MOF普通国債の銘柄別現在高 (JGB outstanding by issue, Excel)
USTFiscalData MSPD — detail of marketable securities by CUSIP (API)
MSCIiShares MSCI ACWI ETF holdings CSV (ACWI proxy)
ECBECB reference exchange rates (SDMX API) — fiscal-year-end FX for implied pricing

Annual update loop: each July, add the new GPIF file, re-run the pipeline (only new ISINs hit OpenFIGI thanks to the cache), refresh the MOF/MSPD joins, and regenerate /data. See the repo README.