Citizenship by investment

Programmes that grant citizenship for an investment or donation: applications, approvals, money raised, prices and rule changes.

Numbers
32,718
Programmes
44
Countries
35
Sources
610

Updated 11 Oct 2026·CC BY 4.0·By Oscar Leo

About this data

Numbers, rules and events about programmes that give people citizenship in return for an investment or a donation: how many applied and were approved, how much money came in, what it costs and how the rules changed, taken from the documents we collected. Each row points to the document, the page and the exact words it comes from, with a label saying what kind of figure it is (a final figure, an estimate, a budget target, a claim…). Sources that disagree are kept side by side; nothing is corrected or filled in by us.

Who made it and how

Collected and checked by Oscar Leo from official documents (laws, government reports, budgets, IMF and EU documents), with news and industry sources only where nothing official exists, clearly labelled. Every row carries its document, page and verbatim quote.

What you see here

  • Numbers we would have had to work out ourselves are left out.
  • Sums we calculated from official records are labelled “calculated by us from official records”.
  • Numbers a document states only in words are shown in words (“stated as none”).
  • Numbers whose unit is not printed carry a warning.

Citizenship and residence by investment are built from the same tables; sources, the review ledger and the change history are shared.

Tables

Explore a table in the browser, or download it whole. Filtered downloads are on each table’s page.

Large tables download as compressed CSV (.csv.gz). To open one in a spreadsheet, unpack it first: double-click it on a Mac, or use 7-Zip on Windows. pandas, R and most data tools read it as it is.

Where sources disagree

In 1,313 cases documents give different figures for the same thing (4,409 figures in all). They are kept side by side, not resolved: each figure keeps its source, its label and the exact words.

  • Publishers disagree 65
  • Revised by the publisher 326
  • Forecast vs outcome 870
  • Two values in one document 52

See where sources disagree

Coverage and known gaps

These are the programmes and numbers taken from the documents we collected. That is not everything that exists, and not every document has been fully extracted: a ledger records, document by document, how much has been taken and what is left, so nothing is presented as complete when it isn’t.

  • Fully extracted: 578
  • Partly extracted: 22
  • Context only: 8
  • Not reviewed: 2

Documents cited by this dataset, by how fully they have been extracted.

Where the whole collection stands (as of 2026-10-11, evening)
  • Sources: 1,686, of which 1,681 have a stored copy (news and industry copies are kept locally for checking and not published). Data: 133,546 numbers, 6,563 rules, 1,604 events; 186 programmes in scope (44 citizenship, 142 residence) in 107 countries and territories. Programmes marked out of scope (METHODOLOGY decisions 15 and 18) are kept and not shown.
  • Stored documents reviewed: 1,681 of 1,681 (1,615 complete, 36 not applicable, 30 partial). Of the 30 partial documents, 29 are partial only for things that can never be extracted (to_do starts "Not extractable:", METHODOLOGY decision 17: charts without printed values, pages missing from the only copy, paywalls, unreadable scans), and 1 has an optional extra calculation left.
  • Sources with no stored copy: 5 (a CAPTCHA or bot check we don't get around, a dead site, a refused connection). They stay not_reviewed.
  • Quote check (11 October, 141,713 quoted rows): 100,209 match the document word for word, 21,476 as a table row, 3,131 cell for cell in spreadsheets; 12,573 rows whose quote isn't verbatim were confirmed by a blind second reading and 327 by eye on the page; 3,989 are calculated figures (decision 1) whose recipe was recalculated. 7 rows come from sources we don't store and 1 document has no readable text.
  • Blind second reading: 40,036 of 133,546 numbers (30%): all headline totals without a split, the top three in every nationality, route and category table, every newsletter number, every number whose quote couldn't be matched, and samples of the rest. 39,036 agreed at once; the other 1,000 were ruled after a third look at the page (data/second_read_resolutions.csv). 4,639 rules (minimum amounts, fees, periods) were read the same way (data/second_read_terms.csv). Where the first reading was wrong it was corrected through data/corrections.csv.
  • Limit: for scanned documents the stored text is itself OCR, so a matching quote confirms the wording but not every digit; the second reading covers the scans the checks lean on, not all of them.
  • Recurring publications: data/recurring.csv lists 87 report series and when each is due; docs/UPDATES.md describes the routine.

What this does and doesn’t mean

  • complete means everything in scope was extracted. partial documents still hold things we didn't extract; the to_do says what.
  • The dataset holds every programme we found, not every programme in the world. Leads still open are in docs/GAPS.md and the research inbox files.
  • Documents we don't store are not reviewed, so the dataset says nothing about what they contain.
Documents with contents that can never be extracted (22)

Charts without printed values, missing pages, paywalls or unreadable scans. We never estimate values from a picture.

Documents we could not store or review (2)

How often it is updated

Checked against the publication calendar of every report series the data relies on; new editions are added as they come out.

The data relies on 40 report series: 31 published yearly, 3 published monthly, 2 published twice a year, 2 published quarterly and 2 published irregularly. 9 are past the date the next edition was expected.

Next editions expected

Licence and how to cite

CC BY 4.0: Free to use, share and adapt, also commercially, as long as you credit the source. Read the licence.

Oscar Leo (2026). Citizenship by investment [dataset], version 2026-10-11. https://data.oscarleo.com/datasets/citizenship-by-investment/. Licensed under CC BY 4.0.

Changes

Every change to the tables is recorded. Showing the latest 60 of 149; first published 29 Sep 2026.

  1. Finish partly extracted documents, status and start dates, new programmes, new editions, extended independent second reading, update routine, method rules 17-18

    timeline: +149 −2numbers: +4,942 −659rules and prices: +1,265 −66programmes: +56 −34sources: +132 −1

  2. Antigua NDF lists: 12 lines missed by the first pass added (11 in 2024 H1, 1 in 2018 H1; read by eye by two readers, lists now add up to the printed totals); 550 line positions corrected; ledger updated

    numbers: +562 −550

  3. Launch dates after the launch-post fact check: St Lucia 2015-08-24 (founding Act; 1 Jan 2016 is applications_open), Vanuatu CIIP year 2014, Seychelles not established

    timeline: +4 −3programmes: +3 −3

  4. Launch dates for 29 programmes from founding texts (two research passes, independent second reading; Nicaragua and Peru set to in-force dates); 50 sources, 57 rules, 49 events; notes updated

    timeline: +51 −1rules and prices: +64 −6programmes: +29 −29sources: +50

  5. 30 programmes from the search for uncovered countries (after independent review: 12 dropped under method rule 15, fixes applied); 117 counts, 144 rules, 36 events, 67 sources

    timeline: +36 numbers: +117 rules and prices: +144 programmes: +30 sources: +67

  6. Method rule 15 refined (business-running routes, company money, property without minimum, unset amounts); Croatia business residence marked out of scope

    programmes: +1 −1

  7. Mauritius retired permit marked out of scope (method rule 15: income route); methodology precedent corrected

    programmes: +1 −1

  8. Method rule 14 rules applied: 50 confirmed fixes (in-force dates, legal bases, applications_open events, UK 1994 investor route and Vanuatu 2014-15 route as own programmes)

    timeline: +44 −32programmes: +46 −44

Older changes (52)
  1. St Kitts hurricane relief spending recorded under method rule 16 (8 rows; 5 audit reports complete)

    numbers: +8

  2. Decisions: rounded figures without a hedge are digits (58 rows); launch-date rules; method rule 16 on spending financed through a CBI option; Panama 'Inversionista o Empresario' left out pending evidence

    numbers: +58 −58

  3. OECD November 2018 list: Panama schemes were moved to a card-specific table, not removed (events, programme note and source description corrected after independent check)

    timeline: +2 −2programmes: +1 −1sources: +1 −1

  4. Panama film-industry investor added (method rule 15)

    timeline: +2 rules and prices: +3 programmes: +1

  5. UAE resolution quotes checked by OCR (15/15 match)

  6. Method rule 15 applied: 12 programmes added (Panama investor categories, UAE green and retiree residence, Sierra Leone GO-FOR-GOLD, PEI investor stream, France exceptional contribution); 27 existing rows assigned; quotes of the new numbers all found

    timeline: +22 −5numbers: +101 −4rules and prices: +74 −18programmes: +12

  7. Fetched sources checked: 454 independent readings (2 Thai OCR misreads corrected), 23 quotes by eye, 55 confirmed fixes to existing rows from the stored copies; coverage page updated

    timeline: +19 −19numbers: +26 −26rules and prices: +8 −8

  8. Stored copies of 171 cited sources (news and industry kept locally in raw/local/, not published); 1,110 new numbers, 614 rules, 136 events; 10 indicators reviewed - checks running

    timeline: +136 numbers: +1,110 rules and prices: +627 −13sources: +171 −171

  9. Ledger: same-date extraction files now apply in the order written (an older entry was overwriting a newer one); 6 Antigua reports now correctly complete

  10. Antigua payment lines: all 1,874 unchecked lines read independently from page images, 3 more misread amounts and a cheque number corrected; coverage page updated with final figures and the OCR limit of the quote check

    numbers: +4 −4

  11. Antigua: passport charts, 11 skipped payment rows, unreadable lines, 2015 NDF payment list, 2016 escrow and NDF lists (569 rows; 11 reports now complete) - independent check of all payment lines running

    numbers: +569

  12. Antigua line items: every unmatched line read independently (1,295); 6 misread amounts, one cheque reference and one date corrected after checking the page image

    numbers: +8 −8

  13. Corrections round 3: 3 confirmed fixes (EB-5 page numbers and notes, Malta malformed amounts flagged)

    numbers: +15 −15

  14. Restated figures (St Lucia, Greece, Spain, Philippines; 1,651 numbers, 7 rules, 1 event): every row not matched automatically read independently (1,086 of 1,086 agree); 2 indicators reviewed

  15. Thailand member table: 271 more cells read by eye (independent sample 60/60 agree); Indonesia Platinum corrected 18 -> 15; row numbers fixed

    timeline: +1 numbers: +1,933 −11rules and prices: +7

  16. EB-5 integrity rule Table 14: 593 cells read by eye, independent sample 60/60 agree

    numbers: +593

  17. Thailand row 115: blurred nationality label recorded as unclear (not Haitian)

    numbers: +2 −2

  18. Image readings (St Lucia, Thailand, Ireland, Dominica, Philippines): 589 independent second readings, all agree after review; second_read.py reads bracketed negatives and >= bounds

  19. Added image readings for St Lucia, Thailand, Ireland, Dominica, Philippines (1,205 numbers; 8 indicators reviewed) - independent check running

    numbers: +1,205

  20. Remaining Malta items: independent sample of 57 agrees after review

  21. Remaining Malta items merged (430 numbers, 191 restated rules, all quotes found); 8 indicators reviewed; removed 2,240 duplicate Antigua NDF rows left by renaming their indicator in the research files (each had an identical twin), readings re-pointed

    numbers: +430 −2,240rules and prices: +199 −8

  22. Antigua line items: independent sample of 450 across 18 reports, all agree after review

  23. Whistleblowing: 497 FCA settlements as not_stated cases (method rule 10); the merge script tolerates deleting an already-removed row (fixes a stop after the indicator review); held moves now in effect

    numbers: +2,294

  24. Antigua 2020-2024: NDF lines moved to application_investment_amount (route=ndf_contribution); private individuals' names removed from payment purposes

    numbers: +2,245 −5

  25. Malta image readings: 174 independent second readings, all agree after review; 9 indicators reviewed

  26. Added: Malta report images and tables (1,561 numbers, 22 rules), Antigua line items 2020-2024 (3,165) - checks pending

    numbers: +4,726 rules and prices: +22

  27. Whistleblowing correction fix-ups (60 changes after independent check); duplicate CFTC cases made identical; CBI new-category rows checked (322 of 335 agree, rest resolved)

    numbers: +643 rules and prices: +1

  28. All CBI quotes confirmed: last 129 checked by eye; Canadian full-copy sample agrees

  29. Decisions 13 and 14 applied across the dataset: countries on 32 region events, launch and legal-basis dates checked for all programmes

    timeline: +76 −59programmes: +18 −18

  30. Corrections round 2 (13 confirmed fixes), full copies of three truncated documents

    timeline: +1 numbers: +724 −378rules and prices: +19 −6sources: +3

  31. Quote checks: cell-level check for spreadsheet rows, derived result, independent second reading of 7,811 unmatched rows (all agree after review)

  32. Apply Oscar's answers: Malta 2018 period, method rule 14 (launch and legal basis), new indicators and TCA Home Owner's Permit

    timeline: +4 −3numbers: +14 −14rules and prices: +3 −3programmes: +130 −129

  33. Method rule 13: one event per joint action (countries column); Grenada 2015 fees page stored

    timeline: +1,188 −1,191rules and prices: +9 −1sources: +2 −1

  34. Corrections run (method rule 12) and Malta zeros gap-fill

    timeline: +39 −43numbers: +1,782 −457rules and prices: +137 −128programmes: +1 −1sources: +12 −21

  35. Indicator review: correct definitions of applicant_share and processing_time

  36. Method rule 8: 242 CBI rules added (rs-cbi-6); restated-rules pass complete

    rules and prices: +250 −8

  37. Method rule 11 applied to CBI: 267 indicators reviewed, 29 merged and 2 renamed (238 left, none proposed); 9,888 rows moved via corrections

    numbers: +9,888 −9,888

  38. Method rule 8: 63 CBI rules added (rs-cbi-5)

    rules and prices: +65 −2

  39. Method rule 8: 200 CBI rules added (rs-cbi-4)

    rules and prices: +201 −1

  40. Method rule 8: 34 CBI rules added (rs-cbi-7)

    rules and prices: +47 −13

  41. Method rule 8: 139 CBI rules added from 40 documents (rs-cbi-2)

    rules and prices: +147 −8

  42. Method rule 8: 217 CBI rules added from 40 documents (rs-cbi-3)

    rules and prices: +223 −6

  43. Method rule 8: 195 CBI rules added from 40 documents (rs-cbi-1)

    rules and prices: +219 −24

  44. Method rule 7 applied: 255 IMF statuses corrected from their column headings

    numbers: +263 −263

  45. Method rule 8: CBI restatement review applied (921 linked); whistleblowing rs-3 restated rules added (48)

    rules and prices: +733 −733

  46. Methodology method rule 8 (restated rules): restates column with exact-match linking; review and re-extraction under way

    rules and prices: +3,150 −3,150

  47. 10,591 more printed zeros (Latvia, New Zealand); NZ 2024 '.' cells tagged implied; method rule 6 applied

    numbers: +10,591

  48. 18,926 printed zeros added (Canada IRCC workbooks, Malta 2021) under methodology method rule 6

    numbers: +18,926

  49. Methodology method rule 6 (store printed zeros); unit_basis 'guessed' level; 10 Antigua contribution totals marked guessed USD with reasoning

    numbers: +10 −10

  50. Method rule 5 applied: 122 unspecified currencies settled from their documents (flagged inferred); 63 stay unspecified

    numbers: +122 −122

  51. Methodology method rule 5 (bare $): 356 CBI and 21 whistleblowing rows recorded in the issuing government's dollar now flagged unit inferred

    numbers: +356 −356

  52. Inferred numbers restored as hidden (45 rows, reading inferred); methodology: display rules table

    numbers: +39

Counts are lines added and removed in the source tables; a changed row counts once each way.