Abstract Are differences in per capita income between countries really the main cause of migratory flows? Mainstream economic thinking would give an affirmative answer. In the light of the heterodox literature, in this article, the authors critically evaluate this view and then they conduct an empirical test (applying panel and dynamic panel models) on data relating to the stocks of migrants on 232 countries from 1990 to 2019, trying to explain migration trends based on social-political, cultural, demographic and economic variables (obtained by integrating 4 official datasets). The results reveal a non-unique influence of differences in per capita income on migratory flows: up to a certain threshold (around $27,000) migration appears to be directly related to per capita GDP of migrants’ country of origin. Furthermore, the pre-existing stock of migrants in the country of destination takes on an important role, in line with the findings of the literature on migratory chains. These empirical findings could contribute to improve migration policies.