Simulated population at year 0, after a 70-year burn-in. Darker cells hold more people; the line is the median, the dashed lines the 10th and 90th percentiles. Income on a log scale.
Simulated moments (points) against the targets (lines). They agree up to sampling noise whatever the mobility, because \(\mu_a\) and \(\sigma_a\) are calibrated from the targets.
People by age at year 0 (bars) and at year 40 (line), with cohort sizes changing from year 0 at the rate you set.
Individual paths of income from 25 to 90 drawn from the same model, over the 10–90 percentile band. With high persistence people keep their rank; with low persistence they jump around while the band stays put.
Correlation between log income at 30 and at later ages, measured on the simulated panel (points) and from the model, \(\prod q\cdot s_{30}/s_a\) (line).
Persistence \(q_a\), drift \(\mu_a\) (right axis) and shock size \(\sigma_a\). Drift is large when persistence is low because it has to carry the whole mean.
Contributions from people aged 65 or under and pensions paid to people over 65, both per head of the whole population. A shrinking cohort size ages the population and opens a gap.
People over 65 per person aged 25 to 65, and the contribution rate that would balance the system each year.
The model
Let \(y_{i,a}\) be the log income of person \(i\) at age \(a\). From one year of age to the next,
$$y_{i,a+1}=q_a\,y_{i,a}+\mu_a+\sigma_a\,\eta_{i,a},\qquad \eta_{i,a}\sim\mathcal N(0,1).$$\(q_a\) is the persistence of income (the inverse of mobility), \(\mu_a\) the drift and \(\sigma_a\) the size of the yearly shock, all depending on age. This is the working model of Ozhamaratli, Kitov and Barucca, a special case of a general form in which the mean and scale functions also depend on individual parameters.
Calibration to a stable cross-section
The paper finds that the joint distribution of age and income is stable over time in both the UK and the US. Asking the model to preserve the mean \(\bar y_a\) and standard deviation \(s_a\) of log income at each age gives
$$\mu_a=\bar y_{a+1}-q_a\,\bar y_a,\qquad \sigma_a^2=s_{a+1}^2-q_a^2\,s_a^2 .$$So once the cross-sectional profiles are known, persistence is the one free function. The paper estimates it in two ways: a method of moments that matches the first three moments of each age (giving a cubic in \(q_a\)) and a least-squares fit to consecutive years of each person in a panel, which is more accurate and is the one that shows the jump in \(q_a\) between 25 and 30. On this page you set \(\bar y_a\), \(s_a\) and \(q_a\) directly. If a target spread falls faster than persistence allows, \(\sigma_a^2\) would be negative; it is then set to zero and the page warns you.
The population
Each year a new cohort enters at 25 with log incomes drawn from \(\mathcal N(\bar y_{25},s_{25}^2)\). People die with the one-year death probabilities of a real life table (below), independently of income, and everyone is gone by 100. The longevity slider shifts the table along the age axis. The simulation runs 70 years to fill every age (year 0), then 40 more, in which cohort size changes at the rate you set to show population ageing.
Pensions
As a first illustration the paper sets up a pay-as-you-go balance: inflow \(\alpha\sum_{a\le65}\text{income}\), outflow \(p\times\#\{a>65\}\), with \(\alpha\) between 7.75% and 20% (the OECD range) and \(p=\pounds16{,}368\), the 2008/09 median net pensioner income in the UK. The balancing rate is outflow divided by insured income.
Data in the paper
- UK: British Household Panel Survey, waves 1–18 (1991–2009), with labour and total income.
- US: IPUMS Current Population Survey, annual cross-sections. Without a panel, the US uses the method of moments only.
Data behind the presets
The paper's own data (BHPS and IPUMS microdata) need registration, so the UK and US presets use the latest published tables instead. Each anchor gives the median income and the spread of log income at an age; the model interpolates between anchors. They are plotted as black squares on the Population tab.
- UK, ages 25–64. Gross annual pay of full-time employees by age band (22–29, 30–39, 40–49, 50–59, 60+), ONS ASHE Table 6.7a, 2025 provisional. Median and spread are fitted to a log-normal through the 80th and 90th percentiles of each band: medians £30.7k, £37.4k, £38.6k, £37.5k, £31.7k; spreads 0.41 to 0.67.
- UK, 75 and over. Single pensioners' net income after housing costs, £332 a week (£17,264 a year), DWP Pensioners' Incomes, FYE 2025. The same figure is the default pension \(p\), the updated counterpart of the paper's £16,368.
- US, ages 25–64. Salary and wage income of workers by single year of age, CPS ASEC 2025 (income year 2024) from IPUMS CPS, as tabulated by DQYDJ. The spread is the log-normal value implied by mean and median, \(s=\sqrt{2\ln(\text{mean}/\text{median})}\), and both are smoothed over five years of age.
- US, 75 and over. Median income of people 75 and over, $27,840 (2024), Census CPS table PINC-01, as reported by the Pension Rights Center. The default pension \(p\) is the median income of people 65+ without earnings, $26,770. The default contribution rate is the Social Security payroll tax, 12.4%.
- Mortality. SSA period life table 2023 (2026 Trustees Report), averaging male and female \(q(x)\). For the UK the male and female curves are rescaled to the ONS 2022–24 life expectancy at 65 (18.7 and 21.2 years).
What is not data. The spread of log income after 75 (0.45 UK, 0.8 US) is an assumption, shown as hollow squares. Persistence \(q_a\) is set by hand: the paper shows its fitted profile only in figures, with a jump between 25 and 30. Cohort growth and the UK contribution rate are illustrative. Mixing full-time earnings before 65 with pensioners' income after 75 exaggerates the drop at retirement compared with the paper's total income for everyone.
Reference
F. Ozhamaratli, O. Kitov, P. Barucca, A generative model for age and income distribution, EPJ Data Science (2022) · arXiv:2108.00848.