Loading workbench page
Fetching primary parquet sources and computing exhibits.
Fetching primary parquet sources and computing exhibits.
Across a cross-section of 171 countries in 2023, commercial services exports per capita rise roughly 1.52 log points for every one log-point rise in GDP per capita (R2 = 0.81). Countries that sit visibly below that line export fewer services than their income peers, and the distance is the services-trade gap that consulting, ICT, finance and business-services providers can close. The world view below ranks the 30 largest absolute gaps.
Eichengreen & Gupta (2013, Structural Change and Economic Dynamics) documented the 'two waves' of services growth as income rises: traditional services scale early, modern tradable services (ICT, business, finance) scale later but steeply. Mishra, Lundstrom & Anand (2011, 'Service Export Sophistication and Economic Growth,' World Bank Policy Research Working Paper 5606) showed that countries exporting more sophisticated services grow faster than their income peers. The log-linear fit below is the services-income counterpart of the classic Kuznets-structural-transformation regressions.
log(svcpc) = -7.18 + 1.52 · log(gdppc) fit on 171 country observations; it explains 81% of the cross-sectional variance. Points well below the line are the services gap: those countries export less than the income-elasticity benchmark would predict. WITH sv AS (SELECT iso3, value AS services FROM 'wdi_data.parquet'
WHERE indicator='BX.GSR.NFSV.CD' AND year=2023 AND value > 0),
g AS (SELECT iso3, value AS gdppc FROM 'wdi_data.parquet'
WHERE indicator='NY.GDP.PCAP.CD' AND year=2023 AND value > 0),
p AS (SELECT iso3, value AS pop FROM 'wdi_data.parquet'
WHERE indicator='SP.POP.TOTL' AND year=2023 AND value > 0)
SELECT regr_slope(LN(sv.services/p.pop), LN(g.gdppc)) AS b,
regr_intercept(LN(sv.services/p.pop), LN(g.gdppc)) AS a,
regr_r2(LN(sv.services/p.pop), LN(g.gdppc)) AS r2
FROM sv JOIN g USING(iso3) JOIN p USING(iso3);Loungani, Mishra, Papageorgiou & Wang (2017, 'World Trade in Services: Evidence from a New Dataset,' IMF Working Paper 17/77) documented a sharp compositional shift: modern tradable services (ICT, business, finance, insurance) grew 2-3× faster than traditional travel and transport between 2000 and 2015, and middle-income countries that captured that shift converged on rich-country services shares faster than they converged on rich-country GDP. The panel below compares the chosen country's mix against the average mix of its ten closest income peers (by log GDP-per-capita distance).
Pick an ISO3 country (?iso3=BGD, ?iso3=VNM, ?iso3=PHL, etc.) to see its services-export mix against income peers.
For each country with negative residual on the Figure 1 regression, we compute predicted services exports as p̂ = exp(a + b · ln(gdppc)) × population and the gap as services − p̂. Ranked by the most negative absolute gap in 2023, large-population middle-income economies dominate the list, which is the pattern Loungani et al (2017) call the 'services laggard' cohort: their manufacturing-led growth outpaced their services-export catch-up.
The success cases are countries whose services exports have grown faster than their GDP per capita over the 10-year window, which is the empirical signature of services-led convergence documented in Eichengreen & Gupta (2013). For each country we compute the compound annual growth rate (CAGR) of services exports and of GDP per capita, then sort by the positive wedge between them. Countries with less than $2.0B of services exports in 2023 are excluded so the ratio is not driven by very small bases.
Binning the cross-section residuals (log deviations from the income line) shows how fat the tails are: the top 5% of outperformers are the small-island financial centres; the bottom 5% are large middle-income manufacturing-led economies whose services catch-up lags their GDP. Heuser & Mattoo (2017, WTO Staff Working Paper ERSD-2017-08) flag that WDI services aggregates conflate Modes 1-2 (cross-border & consumption abroad) with under-measured Modes 3-4 (commercial presence, movement of natural persons), so the mass on the left tail is partly a measurement artefact in countries where services are delivered through foreign affiliates rather than cross-border.
A complementary cut: instead of benchmarking services per capita against income, benchmark the ratio of services exports to merchandise exports against income. Countries with a high services/goods ratio for their income level are running services-intensive external models (Ireland, India, the UK, the Philippines); countries with a low ratio are running manufacturing-heavy models (Germany, Korea, China, Mexico). Eichengreen-Gupta (2013) and Loungani et al (2017) argue this wedge is structural, tied to language, regulatory openness and human capital endowments, not to cyclical REER movements. We fit log(services/goods) = α + β · log(gdppc) on the same cross-section and rank countries by residual.
Cross-sections are a snapshot. A richer diagnostic re-fits the log services/goods ratio on log GDP-per-capita separately in each year from 2009 to 2023 and tracks each country's residual (its deviation from the income-peer line) across that panel. If a country's residual climbs over time, the country is opening a services-led wedge relative to peers; if it drifts down, its goods-exports base is outrunning its services catch-up. This is the year-by-year country fixed-effect the Loungani et al (2017) dataset lets you see at the aggregate level.
A cleaner way to see the structural shift than the goods/services ratio is the intensity: services exports as a share of total merchandise-plus-services exports. It collapses to a bounded 0-100 scale, so cross-country comparisons are legible even when trade levels differ by orders of magnitude. Baldwin (2019) predicts that tele-migration and the digitisation of service delivery push this intensity up everywhere; Antràs (2020, Econometrica) argues the goods side has plateaued, which would mechanically raise the services intensity even without services acceleration.
Hoekman & Mattoo (2013, 'Liberalizing Trade in Services: Lessons from Regional and WTO Negotiations,' International Negotiation 18(1): 131-151) argue that the gains from services-trade liberalisation are realised only when capacity is built across modes: a country whose services exports come almost entirely from travel (a tourism economy) carries different shock exposure than one balancing ICT, business and financial services. The HHI of mode shares across the five WDI services aggregates (ICT, computer-and-communications, insurance and financial, transport, travel) is a direct concentration measure: 0.20 is perfect diversification across five modes, 1.00 is single-mode dependence. We compute it for the top-30 services exporters in 2023 and rank by HHI ascending (most diversified first).
BX.GSR.NFSV.CD, NY.GDP.PCAP.CD, SP.POP.TOTL, BX.GSR.CMCP.ZS, BX.GSR.CCIS.ZS, BX.GSR.INSF.ZS, BX.GSR.TRAN.ZS, BX.GSR.TRVL.ZS.WITH sv AS (SELECT iso3, value AS services FROM 'wdi_data.parquet'
WHERE indicator='BX.GSR.NFSV.CD' AND year=2023 AND value > 0),
gd AS (SELECT iso3, value AS goods FROM 'wdi_data.parquet'
WHERE indicator='BX.GSR.MRCH.CD' AND year=2023 AND value > 0),
gp AS (SELECT iso3, value AS gdppc FROM 'wdi_data.parquet'
WHERE indicator='NY.GDP.PCAP.CD' AND year=2023 AND value > 0)
SELECT regr_slope(LN(sv.services/gd.goods), LN(gp.gdppc)) AS b,
regr_intercept(LN(sv.services/gd.goods), LN(gp.gdppc)) AS a,
regr_r2(LN(sv.services/gd.goods), LN(gp.gdppc)) AS r2
FROM sv JOIN gd USING(iso3) JOIN gp USING(iso3);WITH sv AS (SELECT year, iso3, value AS services FROM 'wdi_data.parquet'
WHERE indicator='BX.GSR.NFSV.CD' AND value > 0),
gd AS (SELECT year, iso3, value AS goods FROM 'wdi_data.parquet'
WHERE indicator='BX.GSR.MRCH.CD' AND value > 0),
gp AS (SELECT year, iso3, value AS gdppc FROM 'wdi_data.parquet'
WHERE indicator='NY.GDP.PCAP.CD' AND value > 0),
j AS (SELECT sv.year, sv.iso3, LN(sv.services/gd.goods) AS ly, LN(gp.gdppc) AS lx
FROM sv JOIN gd USING(iso3, year) JOIN gp USING(iso3, year)
WHERE sv.services >= 5e8),
f AS (SELECT year, regr_slope(ly, lx) AS b, regr_intercept(ly, lx) AS a
FROM j GROUP BY year)
SELECT j.iso3, j.year, j.ly - (f.a + f.b * j.lx) AS resid
FROM j JOIN f USING(year) ORDER BY j.iso3, j.year;SELECT sv.iso3, sv.year,
sv.services / (sv.services + gd.goods) * 100 AS intensity_pct
FROM (SELECT year, iso3, value AS services FROM 'wdi_data.parquet'
WHERE indicator = 'BX.GSR.NFSV.CD' AND value > 0) sv
JOIN (SELECT year, iso3, value AS goods FROM 'wdi_data.parquet'
WHERE indicator = 'BX.GSR.MRCH.CD' AND value > 0) gd USING (iso3, year)
WHERE sv.iso3 IN ('USA','GBR','IND','PHL','DEU','CHN')
ORDER BY sv.iso3, sv.year;WITH sv AS (SELECT iso3, value AS services FROM 'wdi_data.parquet'
WHERE indicator='BX.GSR.NFSV.CD' AND year=2023 AND value > 0),
m AS (SELECT iso3,
MAX(CASE WHEN indicator='BX.GSR.CMCP.ZS' THEN value END) AS ict,
MAX(CASE WHEN indicator='BX.GSR.CCIS.ZS' THEN value END) AS ccis,
MAX(CASE WHEN indicator='BX.GSR.INSF.ZS' THEN value END) AS insf,
MAX(CASE WHEN indicator='BX.GSR.TRAN.ZS' THEN value END) AS tran,
MAX(CASE WHEN indicator='BX.GSR.TRVL.ZS' THEN value END) AS trvl
FROM 'wdi_data.parquet'
WHERE year=2023
AND indicator IN ('BX.GSR.CMCP.ZS','BX.GSR.CCIS.ZS','BX.GSR.INSF.ZS','BX.GSR.TRAN.ZS','BX.GSR.TRVL.ZS')
GROUP BY iso3)
SELECT sv.iso3, sv.services, m.ict, m.ccis, m.insf, m.tran, m.trvl
FROM sv JOIN m USING(iso3) WHERE sv.services >= 5e9
ORDER BY sv.services DESC LIMIT 30;