Pension directory — field reference
Schema version 1.0.0 · JSON · CSV
Fields
| Field | Type | Meaning |
|---|---|---|
| country | string | The country's name in English. |
| country_code | string | ISO 3166-1 alpha-2, uppercase. Stable — this is the key to join on. |
| continent | string | One of americas, europe, asia, oceania, africa. |
| currency | string | The currency the country's pensions are denominated in. Human-written: usually an ISO 4217 code, occasionally prose. |
| retirement_age_early | number | null | The earliest age a pension can normally be drawn, where the country allows early claiming. Null where it doesn't. |
| retirement_age_full | number | The age at which an unreduced pension is normally payable. |
| retirement_age_max | number | null | The latest age to which claiming can be deferred for an increase, where the country allows it. |
| pension_system_summary | string | A paragraph describing how the country's system works. |
| has_totalization_treaties | boolean | Whether the country has social-security agreements allowing periods abroad to count. |
| official_portals | { name, url }[] | Government portals where a person can reach their own record or the authority. The free official route. |
| depth_pattern | string | null | What PensionChart can establish for this country, as a descriptive category — never a ranking. Null until a human has attested it. |
| statement_guide_url | string | null | Our published step-by-step guide to retrieving your own statement, where one exists. Null where none is published. |
| last_verified | string | null | The date a person checked this entry against the named official source. Null means not yet human-verified. |
| verification_status | string | null | Our threshold applied to last_verified: Current under 180 days, Review due at 180+, Outdated at 365+. |
| pensionchart_country_page | string | The public page this record is drawn from. |
| system_type | string | null | How the first pillar is organised — contributory, residence-based, provident fund, and so on. Human-written prose, not a fixed vocabulary. |
| pillar_structure | string | null | What the country's pillars are and what each one covers. |
| replacement_rate_gross | string | null | Gross pension as a share of prior earnings, as published by the country or the OECD. A national average, not a personal estimate. |
| min_qualifying_period | string | null | The minimum contribution or residence period before any pension is payable. |
| min_qualifying_partial | string | null | The shorter period that earns a reduced pension, where the country pays one. |
| aggregation_rules | string | null | How periods worked in other countries count towards this country's qualifying period. |
| totalization_partners | string[] | Countries this one has a social-security agreement with. Empty where we hold none. |
| contribution_rates | object | null | Employee, employer and self-employed contribution rates, with the earnings ceiling where one applies. |
| voluntary_contributions | object | null | Whether gaps can be filled voluntarily, on what terms, and by when. |
| adjustment_rates | object | null | What claiming early or late does to the amount. |
| access_options | object | null | The forms the pension can be taken in — annuity, lump sum, drawdown — and any conditions. |
| tax | object | null | How the pension is taxed in-country, and the withholding position for non-residents. |
| indexation | object | null | Whether payments rise after they start, against what, and how often. |
| portability | object | null | Whether the pension can be paid to an address abroad, to whom, and with what conditions. |
| claiming | object | null | How to claim from outside the country: lead time, documents, proof-of-life requirements, contact routes. |
| schemes | object[] | The named schemes operating in the country, with the authority or provider that holds each. |
| cross_border_notes | string[] | Points that only matter to someone who worked in more than one country. |
| retrieval_guide | object | null | The full step-by-step guide to retrieving your own statement, including what to have ready and what to do when the usual route fails. Present only where a person has walked it and dated it. |
What a verification date means
last_verified is the date a person checked this entry against the named official source. verification_status applies our own thresholds to that date: Current (under 180 days), Review due (180+), Outdated (365+). An absent date means the entry has not yet been human-verified.
This is the field worth comparing against any other pension dataset. Ours says when a person last looked, per country, and applies the same thresholds everywhere.
Stability
The schema is versioned. Fields are added in a minor version; a field is never removed or repurposed without a major one. country_code is the key to join on and will not change.
Citation
PensionChart (2026). PensionChart Pension Directory. Retrieved from https://pensionchart.com/pension-directory.json (CC BY 4.0)