ErasmusGravity
Refine the view
Flow
Salary
ErasmusGravity · unilife.ellep.it

What pulls a student across a border?

Research question: what explains the size of Erasmus+ Higher Education flows from one country to another? We frame destination choice as a gravity-style model where flows respond to the salary gap, perceived quality of life, institution quality, and language affinity between origin and destination.

KA1 study mobility · cross-border country pairs

The modelA gravity model of student flows

We model each origin–destination flow as a gravity-style regression. This is the project's step-3 design: the specification below describes how the collected text and spatial data would be used to answer the research question. It is documented, not estimated.

log(1 + flowij) = β₁·salary_gapij + β₂·quality_of_lifej + β₃·institution_qualityj
    + controls(gdp_gap, price_level_gap, distance, language_affinity)
    + origin FE + destination FE + εij

Language affinity is a gravity control (a bilateral friction that directly shapes flows), not an instrument. Origin and destination fixed effects absorb broad country-level differences. The estimate is descriptive, not causal.

Explanatory Variables (the βs)

Each term in the model and its data source. built = data already in the processed pipeline; planned = part of the described design (text layer / rankings / language groupings).

β₁ · built
Salary gap

Explanatory – labour-market pull
Source: Eurostat net earnings (earnings_gap, sector_earnings_2018.csv)
Expected: + (higher destination pay attracts flows)

β₂ · built
Quality of life

Explanatory – perceived liveability
Source: Reddit r/Erasmus, sentiment + themes via OpenRouter (DeepSeek) + Pydantic (text layer)
Expected: + (better perceived life attracts flows)

β₃ · built
Institution quality

Explanatory – academic pull
Source: QS World University Rankings 2023, geocoded + snapped to destination city (institution_quality.csv)
Expected: + (stronger universities attract flows)

control · built
Language affinity

Control – origin–destination language affinity (gravity friction)
Source: Shared language-family dummy (geo.py LANGUAGE_FAMILY)
Expected: + for shared/affine language family

control · built
GDP gap

Control – income difference
Source: World Bank GDP per capita (gdp_gap_usd_wb)
Expected: ambiguous

control · built
Price-level gap

Control – cost of living
Source: Eurostat price levels (price_level_gap)
Expected: − (costlier destinations deter flows)

control · built
Distance

Control – gravity friction
Source: Origin-country centroid → destination-city great-circle km (geo.py)
Expected: − (farther destinations deter flows)

Model Results

Every coefficient (β) — headline PPML gravity model

All estimated terms from the cross-sectional PPML model (Poisson on flow level, city-clustered SEs), plus the planned terms not yet built. Significant (p<0.05) in accent. Effect / 1 SD is the % change in flow for a one-standard-deviation rise in each variable — comparable across all betas regardless of their raw units.

Quality-of-life coefficient across specifications

β₂ across all specs. Outcome is log(1+flow) (OLS/WLS) or flow level (PPML); p-values cluster-robust. Headline: the city-level two-stage (panel destination attractiveness explained by Erasmusu rating).

Panel gravity — year fixed effects (2014–2023)

Destination-pull over time from the panel PPML, relative to 2014. The dip at 2020 is the COVID collapse in mobility; recovery follows from 2021.

Selected Country Overview

Use the sending-country selector in the top bar. Main flow definition: Higher Education learners, study mobility activity, age 18+, cross-border flows only.

University Flow Map

smaller flow larger flow One point per university endpoint, sized by students. Zoom out to aggregate nearby universities into clusters; click a cluster to zoom in and pick a university. Universities sit at their city coordinate; cities without a coordinate match fall back to their country centroid.

University-Level Flow Detail

Top Destinations

GDP Gap and Flow Share — control

GDP gap = receiving-country GDP per capita minus sending-country GDP per capita. Flow share = flow to that destination divided by all outgoing flows from the selected sending country.

Selected Country Destination Table

Flow Heatmap

Rows and columns use the same country order: countries are sorted by total Erasmus flow volume among the displayed top countries.

Flow-Weighted Destination Economics

Click column headers to sort. Destination metrics are weighted by each sending country's flow counts.

Expected Earnings by Economic Sector — evidence for β₁ (salary gap)

Mean monthly gross earnings by NACE economic sector, Structure of Earnings Survey 2018. This is a salary-by-sector reference, not salary by field of study (Eurostat does not publish earnings by field of study). Coverage is limited to the 17 countries that report this dataset.

Perceived Quality of Life — evidence for β₂ (Reddit r/Erasmus)

Destination mentions extracted from r/Erasmus posts and comments with OpenRouter (DeepSeek) + Pydantic (city/country, sentiment, themes). Net sentiment = (positive − negative) / mentions. Score-weighted net also weights by extraction confidence and log Reddit score. Per-country counts are small, so read this as a qualitative perception signal, not a precise measure. Click headers to sort.

Data Sources and Measurement Notes