Loading replication
Fetching primary parquet sources and recomputing the published exhibits.
Fetching primary parquet sources and recomputing the published exhibits.
Eaton & Kortum’s 2002 Econometrica paper gives the Ricardian trade model a parametric form in which country-specific technology distributions and iceberg trade costs combine into a clean gravity equation. The empirical anchor is their Table III, where they use six distance dummies and find bilateral trade falling sharply with distance: their estimated bin coefficients grow more negative as distance rises, from about −3.10 log points for the closest bin to −6.56 for the farthest. We reproduce the distance-gap pattern on 2020 CEPII Gravity and BACI data.
Eaton & Kortum (2002) model bilateral trade as the outcome of Ricardian comparative advantage with a Fréchet-distributed productivity shock. Their bilateral-trade estimating equation (Table III) decomposes the geographic barrier into six binary distance bins plus shared-border, shared-language, and trade-area effects. All six bins are estimated (none is an omitted reference); the coefficients (in log points) are −3.10 (0-375 mi), −3.66 (375-750 mi), −4.03 (750-1500 mi), −4.22 (1500-3000 mi), −6.06 (3000-6000 mi), and −6.56(>6000 mi). The pattern is monotone: the barrier grows steadily more negative with distance, so the farthest bin carries the largest penalty, not the smallest. Eaton & Kortum report an implied elasticity of trade volume with respect to overall geographic barriers of roughly 2 to 3 (their note 45).
We use Legacy gravity_bilateral table (exact release provenance unverified) (distributed on this site as gravity_bilateral) for 2020, including its own tradeflow_baci. For each of the six Eaton-Kortum bins we compute the mean of ln(tradeflow) across all positive-trade pairs in the bin. The bin gap (mean_log − mean_log of the >6000-mi reference bin) is the conditional analog of Eaton-Kortum’s distance-bin dummy, except that we do not absorb origin and destination fixed effects. Our gaps are therefore raw distance gradients, not clean coefficients on distance dummies net of country size. They still reproduce the monotone, sharply-declining pattern that underpins the Ricardian gravity model.
-- Distance-bin mean log(trade), 2020
SELECT
CASE
WHEN dist < 603 THEN '0-375 mi'
WHEN dist < 1207 THEN '375-750 mi'
WHEN dist < 2414 THEN '750-1500 mi'
WHEN dist < 4828 THEN '1500-3000 mi'
WHEN dist < 9656 THEN '3000-6000 mi'
ELSE '>6000 mi'
END AS bin,
COUNT(*) AS n,
AVG(LN(tradeflow_baci)) AS mean_log
FROM gravity_bilateral
WHERE year = 2020 AND tradeflow_baci > 0 AND dist > 0
GROUP BY bin;EK’s model assumes productivity zi(ω) for variety ω in country i is drawn from a Fréchet distribution Fi(z) = exp(−Ti z−θ), where Tiis a technology scale parameter (comparative advantage) and θ (>1) is the trade elasticity. Bilateral trade then satisfies Xni/Xnn = (Ti/Tn) (cidni/cn)−θ, and the importing country’s price index is Pn = γ [ Σi Ti (ci dni)−θ ]−1/θ (EK Equation 10), where γ collects constants. EK estimate θ ≈ 8.28with a price-based method-of-moments estimator (Section 3; summarized in their Table VIII, Summary of Parameters). The distance-bin coefficients in Table III are products of θ and the log-distance gradient: EK divide them by θ and exponentiate (their Table VII) to read off the iceberg cost each bin imposes. The closest bin’s −3.10 under θ = 8.28 implies an iceberg markup of about 45% over a frictionless pair. Converting our 2020 raw bin gap for 0-375 mi of +5.66 into an implied θ-scaled iceberg cost (treating the gap as θ · ln(dfar/dnear) and taking dfar/dnear ≈ 20) gives θ ≈ 1.89. The implied θ is sensitive to the reference-bin choice and the lack of fixed effects, but lands in the same order-of-magnitude as EK’s 8.28.
EK’s aggregate θ ≈ 8.28 (Section 3 price-moment) is a single number across all sectors. That choice was forced by the moment-condition data they had. A decade later, Caliendo-Parro (2015) and Bas-Mayer-Thoenig (2017, JIE) show θ in fact differs by roughly two orders of magnitude across sectors: homogeneous commodities (petroleum, base metals) have very high θ (near-perfect substitution across origins), while differentiated manufactures (vehicles, machinery) have much lower θ. We approximate sectoral θ using the HS6 Kee-Nicita-Olarreaga demand elasticities aggregated to HS Sections.
The EK model predicts that high-θ sectors (where productivity draws have thinner upper tails, products are closer substitutes, and cost differences bite) should also be sectors where a larger share of global absorption crosses borders. We plot sectoral median |σ| (θ-analog, from Figure 2) against each section’s share of world exports in 2019, a revealed tradability metric. A positive slope is the EK / Chaney-style prediction: more substitutable goods travel further.
EK’s Table VI (States of Technology) ranks 19 OECD economies by their estimated technology parameter Ti, the scale of the Fréchet productivity distribution. Ti is not directly observable; EK back it out of the trade equation Xni = Ti (ci dni)−θ Xn / Φn using bilateral trade and prices. A data-only proxy that strips out the unidentified ci term keeps the geography-weighted market access denominator MAi = Σn dni−θ Xn and reads Ti1/θ ∝ (XiW / MAi)1/θ, with θ = 8.28 from EK’s Section 3 price-moment estimate. Because the proxy drops the ci and Φnterms, it does not recover EK’s Table VI ordering: it rewards remote, low market-access economies and so should be read as a geography diagnostic, not a productivity ranking.
source: Eaton and Kortum (2002), Econometrica, Table III distance dummies, p. 1762.
| quantity | published value | replicated value | absolute difference |
|---|---|---|---|
| 0-375 mi | -3.10 | +5.66 | +8.76 |
| 375-750 mi | -3.66 | +4.64 | +8.30 |
| 750-1500 mi | -4.03 | +3.17 | +7.20 |
| 1500-3000 mi | -4.22 | +1.41 | +5.63 |
| 3000-6000 mi | -6.06 | +0.72 | +6.78 |
| >6000 mi | -6.56 | 0.00 | +6.56 |
Our gaps are largerin absolute value than Eaton-Kortum’s bin coefficients. Three reasons. First, no multilateral-resistance controls: Eaton-Kortum absorb exporter and importer fixed effects, so their bin coefficients isolate the distance-only channel. We do not, so our gaps conflate distance with the fact that countries near each other tend to also be large trading partners (Western Europe, East Asia): an omitted-variable bias that inflates the close-range bin. Second, sample period: Eaton-Kortum fit 1990 data on 19 OECD countries; we use 2020 on ~160 BACI trading economies, so the country mix is different and the time is three decades later. Third, functional form: we report raw bin means of log-trade, Eaton-Kortum report fitted dummies from a full log-linear gravity equation with GDP and population on both sides. A faithful replication would (a) absorb country fixed effects, (b) control for log GDP, and (c) estimate via PPML or OLS; the silva-tenreyro-2006page on this site runs that full specification on the same data.
The qualitativepunchline, a monotone distance gradient in bilateral trade, survives the 1990→2020 shift. Eaton-Kortum’s estimated barriers grow with distance; our raw bin gaps fall toward the long-distance reference. Both encode the same fact: distance still depresses trade, even after three decades of falling shipping and communication costs.
@article{eaton_kortum_2002,
author = {Eaton, Jonathan and Kortum, Samuel},
title = {Technology, Geography, and Trade},
journal = {Econometrica},
volume = {70},
number = {5},
pages = {1741--1779},
year = {2002},
doi = {10.1111/1468-0262.00352}
}Gravity in more depth at /gravity. Compare to the PPML fit on the same sample at Silva-Tenreyro (2006). Return to the replication gallery.
WITH te AS (SELECT hs6, ABS(sigma) AS abs_sigma
FROM trade_elasticity WHERE sigma IS NOT NULL)
SELECT p.section,
COUNT(*) AS n,
quantile_cont(abs_sigma, 0.50) AS median_theta,
quantile_cont(abs_sigma, 0.25) AS p25,
quantile_cont(abs_sigma, 0.75) AS p75
FROM te JOIN products p ON p.code = te.hs6
WHERE p.section IS NOT NULL
GROUP BY p.section HAVING COUNT(*) >= 10 ORDER BY p.section;-- Pair sector θ-analog with 2019 world-export share
WITH te AS (SELECT hs6, ABS(sigma) AS abs_sigma FROM trade_elasticity WHERE sigma IS NOT NULL),
theta_sec AS (
SELECT p.section,
quantile_cont(abs_sigma, 0.50) AS med_theta,
COUNT(*) AS n
FROM te JOIN products p ON p.code = te.hs6
WHERE p.section IS NOT NULL GROUP BY p.section HAVING COUNT(*) >= 10
),
trade_sec AS (
SELECT p.section, SUM(cyp.export_value) AS world_value
FROM country_year_product cyp JOIN products p ON p.code = cyp.product_code
WHERE cyp.year = 2019 AND cyp.export_value > 0 GROUP BY p.section
)
SELECT theta_sec.section, theta_sec.med_theta,
trade_sec.world_value / SUM(trade_sec.world_value) OVER () AS share
FROM theta_sec JOIN trade_sec USING(section);-- EK productivity proxy, theta = 8.28
WITH flows AS (
SELECT c_o.iso3 AS exp, c_d.iso3 AS imp, SUM(b.total_value) AS value
FROM bilateral_year b
JOIN countries c_o ON c_o.code = b.exporter_code
JOIN countries c_d ON c_d.code = b.importer_code
WHERE year = 2019 AND c_o.iso3 <> c_d.iso3
GROUP BY c_o.iso3, c_d.iso3
),
d AS (SELECT DISTINCT iso3_o AS exp, iso3_d AS imp, dist
FROM gravity_bilateral WHERE year = 2019 AND dist > 0),
fd AS (SELECT f.exp, f.imp, f.value, d.dist FROM flows f JOIN d USING(exp, imp)),
xw AS (SELECT exp AS iso3, SUM(value) AS x_world FROM fd GROUP BY exp),
xn AS (SELECT imp AS iso3, SUM(value) AS x_n FROM fd GROUP BY imp),
ma AS (SELECT fd.exp AS iso3,
SUM(POWER(fd.dist, -8.28) * xn.x_n) AS ma
FROM fd JOIN xn ON xn.iso3 = fd.imp GROUP BY fd.exp)
SELECT xw.iso3,
POWER(xw.x_world / ma.ma, 1.0/8.28) AS ti_over_theta,
RANK() OVER (ORDER BY xw.x_world / ma.ma DESC) AS rank
FROM xw JOIN ma ON ma.iso3 = xw.iso3
WHERE xw.x_world > 0 AND ma.ma > 0
ORDER BY ti_over_theta DESC LIMIT 15;