APAC Open Marketing Database

Download

Version 2026-10-12. Free, no sign-up. Each file has a SHA-256 checksum, and older versions stay available at the same kind of address.

Version 2026-10-12 · free · no sign-up · CC BY 4.0

Files

FileContentsSizeSHA-256
Main database (SQLite)22 tables: countries, population, regions, spending, markets17 MB96f2f150cf58eef0a94f8cf94e8605b5d966e75f0ef1e7a83dc487c0ec5d8a6d
Main database (CSV)Same tables as CSV12 MBe42950f9fc273887ebd1e8f6fde9a1faca20232e327bf6e91490c29507bfb3b6
Cities (SQLite)2 tables for 11,422 cities21 MB0311a3f6f215efa026d669673c546e4830c4e9af6456ba2468ae059a7ea7262a
Cities (CSV)Same tables as CSV15 MBb978b72d886cf4b2cb7acfac518df8636c6b6f2916ed6c84539e958ef001b0ab

SHA256SUMS.txt · Tables and sources

Starter exercises

Start here after downloading.

1. Young and old countries

SELECT name_ja, median_age, internet_users_pct, hh_cons_pc_ppp
FROM v_country_latest_wide
WHERE is_core = 1
ORDER BY median_age;
SQL

2. Where people aged 15–34 grow most by 2035

SELECT a.name_ja, a.pop_15_34 AS y2025, b.pop_15_34 AS y2035,
       ROUND(100.0 * (b.pop_15_34 - a.pop_15_34) / a.pop_15_34, 1) AS change_pct
FROM v_youth_market a
JOIN v_youth_market b ON a.iso3 = b.iso3 AND a.year = 2025 AND b.year = 2035
ORDER BY change_pct DESC;
SQL

3. Regression: income and online shopping

import sqlite3, pandas as pd, numpy as np
con = sqlite3.connect("aomd_2026-10-12.sqlite")
x = pd.read_sql("SELECT iso3, value AS money FROM country_latest WHERE indicator='hh_cons_pc_ppp'", con)
y = pd.read_sql("""SELECT iso3, value AS online FROM v_category_latest_total
                   WHERE measure='online_buy_pct'""", con).groupby("iso3").online.mean()
d = x.set_index("iso3").join(y, how="inner").dropna()
slope, intercept = np.polyfit(np.log(d.money), d.online, 1)
print(f"x2 money -> +{slope*np.log(2):.1f} pt online ({len(d)} countries)")
Python

4. When sources disagree

SELECT indicator, source_a, source_b, pairs, median_ratio_a_over_b, verdict
FROM source_agreement
ORDER BY ABS(median_ratio_a_over_b - 1) DESC;
SQL