Methodology & caveats
Everything on this site is computed from official European Parliament data, with the exact rules below. If anything looks wrong, report an error — the full pipeline is open source.
The disclosure obligation
Under Article 7 of the Code of Conduct for Members of the European Parliament, MEPs must publish online all scheduled meetings with interest representatives falling under the Transparency Register’s scope, and with representatives of public authorities of non-EU countries. This obligation applied to rapporteurs, shadow rapporteurs and committee chairs from July 2019, and was extended to all MEPs in November 2023. Today every MEP is covered; we highlight shadow rapporteurs because they directly shape legislation and each declared meeting is tagged with the capacity it was held in. There is no oversight body actively policing these declarations.
Scope of this site: the 10th parliamentary term (2024–2029), i.e. meetings dated 16 Jul 2024 onwards. Earlier terms are out of scope.
Data sources
- Declared meetings — the Parliament’s official Search MEP meetings tool (CSV export). Each record carries the MEP, date, capacity, subject, organisation(s) met, an EU Transparency Register identifier when the counterpart is registered, and a legislative procedure reference when the MEP supplied one. The export returns at most 1,000 rows per query, so we pull the term in adaptively-bisected date windows and verify that no window was truncated. Currently 65,092 meetings.
- MEPs, groups, countries, committees — the European Parliament Open Data Portal API (CC BY 4.0). Political groups are read from the API on every refresh, never hardcoded. Currently 718 sitting MEPs.
- Shadow-rapporteur assignments — per-procedure participation records from the
same Open Data API (roles
RAPPORTEUR_SHADOWandRAPPORTEUR_SHADOW_OPINION, filtered to participations tagged with the 10th parliamentary term). We enumerate the Parliament’s full procedure registry and scan every file registered since 2021 — plus any older file referenced by a declared meeting — to catch carry-overs from before the term. Procedure pages on the Legislative Observatory (OEIL) are the human-readable reference for each file.
View A — disclosure volume
- meetings_total
- All meetings the MEP has published for the current term, any capacity.
- by capacity
- Split across shadow rapporteur / rapporteur / committee chair / member / other, exactly as tagged in the official record. Meetings held by the MEP’s staff fall under “other”.
- distinct organisations
- Unique organisation strings met (case- and accent-insensitive).
- % registered
- Share of meetings whose counterpart links to an EU Transparency Register entry. Not all legitimate counterparts must register (e.g. representatives of non-EU public authorities).
More published meetings means more disclosure — it can also reflect more lobbying access. Read it as a transparency signal, not a virtue score.
View B — shadow-rapporteur compliance lower confidence
- files_shadowed
- Procedures where the MEP holds a term-10 shadow-rapporteur appointment (report or committee opinion).
- files_with_related_meeting
- How many of those files have at least one declared meeting by that MEP whose procedure reference matches — counting meetings of any capacity, to be fair to MEPs who tag meetings differently.
- coverage
- files_with_related_meeting ÷ files_shadowed, shown as “has a related meeting on record for X of Y files shadowed (Z%)”.
Ranking ties break by matched files, then shadow-capacity meetings, then name — fully deterministic.
- Matching uses the structured procedure code only. A meeting declared as free text (“CSRD implementation chat”) without a code will not match, undercounting the MEP.
- A low or 0% figure can simply mean no lobby meetings happened on those files — absence of declared meetings is not evidence of wrongdoing.
- Assignment data follows the Parliament’s open-data records, which can lag committee decisions.
“MEP of the Week” & Watchlist
- The featured MEP is the top of the selected leaderboard among current shadow rapporteurs, computed deterministically from the data and the ISO week number.
- Nobody is featured twice within 8 weeks (rotation); the pick for a given week is frozen once published.
- The Watchlist lists the bottom 5 of View B, restricted to MEPs shadowing at least 3 files so the statement is meaningful and fair.
- Manual overrides (a forced feature or a Watchlist exclusion) are possible via a public configuration file in the repository and are labelled “editor’s pick” when used.
General caveats
- Absence of declared meetings is not proof of wrongdoing. An MEP may have held no meetings in scope, or declared them in ways that don’t parse cleanly.
- Declarations are self-reported and can be added, edited or removed retroactively; we refresh weekly and re-fetch recent windows on every run.
- The meetings export does not include meeting place or committee fields, so those are not shown.
- MEPs who joined or left mid-term are handled: only current MEPs are ranked, and meetings by since-departed members are kept in the dataset but excluded from the leaderboards (14 such declarants currently).
- A March 2022 format change affects older meeting data; it is irrelevant here because the site only covers the term starting July 2024.
Update cadence & corrections
Data refreshes automatically every Monday morning (UTC) and the site is rebuilt from scratch; “data updated” timestamps appear in the footer of every page. Generated 4 Jun 2026. Corrections: email us or open an issue on GitHub — we aim to fix verified errors in the next weekly build.
Attribution & licence
Source data © European Union / European Parliament, reused under Creative Commons Attribution 4.0. This site’s own datasets and code are open source. See also Transparency International EU’s Integrity Watch EU, which tracks the same declarations and is useful for cross-checking.