Written and maintained by CASRAI Editorial Board
Published · Last updated
On this page
The Penn World Table (PWT) is a free database of relative levels of income, output, input and productivity for 185 countries over 1950 to 2023 (version 11.0, published 7 October 2025), maintained by the Groningen Growth and Development Centre at the University of Groningen. This page is for researchers and students who have downloaded the file and need to know which variable to use, how to turn it into per-capita, per-worker or per-hour figures, and how to compute that in Excel, R or Python.
What is the Penn World Table?
PWT expresses national accounts in a common set of international prices (purchasing power parities, PPPs) so that real income and productivity can be compared across countries and across time. Its standard reference is Feenstra, Inklaar and Timmer (2015), “The Next Generation of the Penn World Table”, American Economic Review 105(10), 3150-3182. It is a complement to the national-accounts series in World Bank data, and it is the kind of cross-country panel used in growth and development accounting. Related country-level indicators appear in military expenditure by country, and US macroeconomic series are covered in the FRED database guide. Panel data like PWT is often modelled with time-series methods such as vector autoregression.
Current version and coverage
- PWT 11.0: 185 countries, 1950-2023, published 7 October 2025. It uses World Bank International Comparison Program (ICP) 2021 PPPs, with revisions for 2017, and newer national accounts to 2023. China is now the official national series rather than the Maddison/Wu adjusted series. Data DOI: 10.34894/FABVLR; hosted on DataverseNL with Excel and Stata files.
- PWT 10.0: 183 countries, 1950-2019, base year 2017, 52 variables, DOI 10.15141/S5Q94M.
- Licence: CC BY 4.0.
Sources: Groningen Growth and Development Centre PWT 11.0 page and its version 11.0 announcement, and the PWT 10.0 documentation in the CRAN pwt10 package, all read 8 November 2026.
Variable lookup table
Definitions and units below are from the PWT 10.0 documentation (the pwt10 package, read 8 November 2026). Check the User Guide to PWT 11.0 for current labels, base years and any renamed variables before citing a 11.0 value.
| Variable | Meaning | Unit | Typical use |
|---|---|---|---|
rgdpe |
Expenditure-side real GDP at chained PPPs | millions of 2017 USD (PWT 10.0) | Comparing living standards across countries and over time |
rgdpo |
Output-side real GDP at chained PPPs | millions of 2017 USD (PWT 10.0) | Comparing productive capacity across countries and over time |
cgdpe |
Expenditure-side real GDP at current PPPs | millions of 2017 USD (PWT 10.0) | Comparing relative income levels across countries in a single year |
cgdpo |
Output-side real GDP at current PPPs | millions of 2017 USD (PWT 10.0) | Comparing relative output levels across countries in a single year |
rgdpna |
Real GDP at constant 2017 national prices | millions of 2017 national currency units | Growth within one country |
pop |
Population | millions | Per-capita denominators |
emp |
Number of persons engaged | millions | Per-worker denominators |
avh |
Average annual hours worked by persons engaged | hours | Per-hour productivity |
hc |
Human capital index | index | Growth and development accounting |
cn |
Capital stock at current PPPs | millions of 2017 USD | Capital intensity |
ctfp |
TFP level at current PPPs | USA = 1 | Cross-country productivity comparison |
labsh |
Share of labour compensation in GDP at current national prices | share | Factor shares |
xr |
Exchange rate, national currency per USD | national currency units per USD | Price-level calculation |
pl_gdpo |
Price level of output-side GDP | USA GDPo in 2017 = 1 | Relative price levels |
csh_c, csh_i, csh_g, csh_x, csh_m, csh_r |
Shares of household consumption, capital formation, government consumption, exports, imports and residual | share of GDP at current PPPs | Expenditure composition |
Two distinctions matter most. Current PPP variables (cgdpe, cgdpo) compare countries within a single year; chained PPP variables (rgdpe, rgdpo) are built to follow real growth over time. Expenditure-side (e) measures are based on spending, output-side (o) measures. The i_* columns flag the quality of individual series.
Formulas
- Real GDP per capita =
rgdpo / pop(orrgdpe / pop); result in millions of USD per million people, i.e. USD per person. - Real GDP per worker =
rgdpo / emp. - Real GDP per hour worked =
rgdpo / (emp × avh);empis in millions andavhin hours per year, so multiply by 106 only if you need USD rather than millions of USD per hour. - Price level = PPP /
xr, the definition behindpl_gdpo(USA = 1 in 2017). - Continuously compounded growth rate = ln(xt / xt-1); multiply by 100 for a percentage.
Worked examples (hypothetical numbers)
The numbers below are invented to show the arithmetic; they are not figures for any real country.
Example 1: GDP per capita and per worker
Suppose a country-year has rgdpo = 600,000 (millions of USD), pop = 40 (millions) and emp = 18 (millions). GDP per capita = 600,000 / 40 = 15,000 USD per person. GDP per worker = 600,000 / 18 ≈ 33,333 USD per worker.
Example 2: growth rate
If GDP per capita is 15,000 in year t-1 and 15,450 in year t, the log growth rate is ln(15,450 / 15,000) = ln(1.03) ≈ 0.0296, or about 2.96% a year.
Compute it in Excel, R and Python
Excel (columns: C = rgdpo, D = pop, E = emp, rows sorted by year within a country):
GDP per capita: =C2/D2
GDP per worker: =C2/E2
Log growth rate: =LN(F3/F2) (F = GDP per capita)
R (package pwt10, data set pwt10.0):
library(pwt10)
data("pwt10.0")
pwt10.0$gdp_pc <- pwt10.0$rgdpo / pwt10.0$pop
pwt10.0$gdp_pw <- pwt10.0$rgdpo / pwt10.0$emp
Python (pandas; download the Excel file from the Groningen page first):
import pandas as pd, numpy as np
sheets = pd.read_excel("pwt_file.xlsx", sheet_name=None) # list sheets, pick the data sheet
df = next(iter(sheets.values())) # replace with the data sheet
df["gdp_pc"] = df["rgdpo"] / df["pop"]
df = df.sort_values(["countrycode", "year"])
df["g"] = df.groupby("countrycode")["gdp_pc"].transform(lambda s: np.log(s).diff())
Citation and licence
Cite both the paper (Feenstra, Inklaar and Timmer 2015) and the version-specific data DOI, and state which PWT version you used. Mixing values from PWT 10.0 and 11.0 in one series is unsafe because the PPP benchmark, country coverage and the China series changed between them.
FAQ
Which PWT version is current?
PWT 11.0, published 7 October 2025, covering 185 countries from 1950 to 2023.
Is the Penn World Table free to use?
Yes. The Groningen page lists the licence as CC BY 4.0, so attribution is required.
How do I calculate GDP per capita from PWT?
Divide a real GDP variable such as rgdpo or rgdpe by pop, as shown above.







