← all projects

recommendation system · vu amsterdam

Tourist Flow Optimisation

Nudging Amsterdam visitors away from the crowded spots. 1.9M City Card transactions, a context-aware recommender, and a counterfactual simulation to measure the effect.

type
Recommendation system
context
VU Amsterdam
stack
Python, Recommendation systems, Counterfactual simulation

Key numbers

  • 1.9MCity Card transactions
  • 3,617fewer visits at peak locations
  • −0.054Gini change in spatial spread

what i did

What I did

  1. Analysed 1.9M Amsterdam City Card transactions (2022 to 2024) to map visitor flows and pressure on peak locations by district and time.

  2. Built a context-aware recommendation system combining novelty, weather, district pressure and distance signals.

  3. Quantified policy impact with counterfactual simulation, showing 3,617 fewer visits at peak locations and a Gini change of −0.054 in spatial spread.

  4. Shipped an interactive Streamlit dashboard with heatmaps and before-and-after comparisons for crowd-management review.

How it works.

(01)

The problem

City Card data shows where and when visitors concentrate, and which locations feel the pressure at peak times. The question: can context-aware recommendations spread that pressure out across the city?

(02)

Mapping the flows

1.9M Amsterdam City Card transactions from 2022 to 2024, used to map visitor flows and the pressure on peak locations by district and time.

(03)

A recommender with context

The recommender blends four signals: novelty, weather, current district pressure and distance, so suggestions stay relevant to the visitor while nudging them away from crowded spots.

(04)

Measuring the effect

A counterfactual simulation of the policy against the baseline showed 3,617 fewer visits at peak locations and a Gini change of −0.054 in spatial spread, meaning visits were distributed more evenly across the city.

(05)

What's next

I'm adding a natural-language layer on top of the dashboard: ask a question in plain English, a query is generated and run, and an answer comes back. It uses a text-to-SQL and function-calling setup, and it's in progress.

  • Python
  • Recommendation systems
  • Counterfactual simulation
  • Streamlit
  • Dashboards
next projectExpedia Hotel Booking Analytics