Japan’s ¥293.6tn Government Pension Investment Fund · allocation vs policy · bond rate-risk · equities vs index
GPIF publishes every security it holds once a year. This page rebuilds the fund from those files: twelve years of allocation against its stated policy portfolio, the bond book's duration and DV01 by country and maturity — now including the JGB book, enriched with coupon & maturity via OpenFIGI — and the equity book against global index weights.
Fiscal-year-end weights of each asset class (solid) against GPIF's basic-portfolio target (dashed) and its permitted deviation band (shaded, shown from the Oct-2014 reform). Three regime changes are visible: the Oct 2014 shift out of JGBs (35/15/25/25), the Apr 2020 move to 25% in everything, and the Apr 2025 plan that kept 25×4 but tightened the bands. Since 2020 GPIF has hugged its targets within ~½pp — the rebalancing machine works.
Every bond line (15,154 ISINs, ¥140.9tn) is assigned a coupon and maturity — foreign bonds from the disclosure itself, the domestic book via OpenFIGI. Each line is then priced from the disclosure: market value ÷ face quantity (ECB FX at year-end) gives an implied price, the yield is solved from it, and duration/DV01 are evaluated at that yield — 97.7% of domestic and 99.6% of foreign MV price this way for FY2025; the rest fall back to a par assumption.
New in this pass: the OpenFIGI join resolves the domestic book (previously ISIN + value only). It is 90% JGBs — ¥61.3tn nominal + ¥0.4tn inflation-linked — plus ¥6.3tn of corporates, munis and agencies. GPIF's JGB holdings sit mostly in the 2–20y belly; average domestic duration 8.4y.
ISIN-level bond disclosure starts with the FY2019 file, giving seven annual snapshots. Both books have been getting shorter — domestic duration drifted from 9.7y to 8.4y and the foreign book shortened sharply after FY2021 (8.0y → 6.4y) — yet total rate risk still climbed with AUM: ¥103.1bn per basis point at FY2025-end, roughly ¥1.03tn per 10bp parallel move. Within foreign bonds, the US now carries a record share of the risk.
GPIF runs its foreign equities against MSCI ACWI ex-Japan and its domestic book against TOPIX — and the passive machine shows: country and sector weights of the ¥71.0tn foreign sleeve sit within about a point of the index everywhere. The active decision is structural: half of GPIF's equity money is in Japan, a market that is ~5% of the global index.
Pipeline. ① Twelve annual full-holdings Excel files (FY2014→FY2025) parsed into one dataset (~183k rows). Bonds are issuer-level before FY2019, ISIN-level from FY2019. ② 10,536 bond ISINs (all domestic + foreign lines lacking a maturity in their name) mapped through the OpenFIGI API — the returned ticker embeds coupon, maturity and JGB issue number; only 36 ISINs found no match. ③ Duration/DV01 computed per line as described above. ④ Equity holdings joined to iShares ACWI holdings by normalized name for sectors; countries from ISIN prefix (GPIF) and fund "Location" (index). ⑤ Official asset-mix history and policy portfolios taken from GPIF's own tables.
Caveats. Year-end snapshots only — no intra-year turnover. Asset-class totals here are the security files' sums; GPIF's official mix additionally folds in short-term assets and (from FY2020) allocates alternatives into the four classes, so shares differ by up to ~1pp. Foreign-bond DV01 is per-bond local-yield risk translated to yen at the disclosure FX rate; it is not an FX-hedged figure. ISIN-prefix country ≈ issuer domicile (XS = supranational/eurobond). Index weights are July-2026 ETF holdings vs GPIF's March-2026 book.
GPIFFull holdings (保有全銘柄), annual, FY2014→FY2025 — latest FY page · past fiscal years
GPIFAsset amounts & composition FY2001→FY2025 (運用資産額・資産構成割合, file 06 on each FY page)
GPIFPolicy portfolio: basic portfolio · Apr 2020 revision · Apr 2025 (5th period) · history via GPIF capital-markets review No.478
FIGISecurity master (coupon/maturity/issue): OpenFIGI API v3, ID_ISIN mapping
MSCIACWI weights proxy: iShares MSCI ACWI ETF holdings CSV (Jul 2026)
The full-holdings file appears each July for the fiscal year ended in March. To extend: download the new file, re-run the parser, feed new ISINs through the OpenFIGI mapper (cached), and refresh this page's embedded JSON.