About
RTFP (Read The Fine Print) is a cross-platform comparison of the largest platforms' EU Digital Services Act transparency reports. We load each platform's published filing into one normalised database and surface the comparisons that no one provider reports alone. RTFP is run independently and is not commercial.
Why now
The DSA has required the largest platforms to publish transparency reports twice a year since 2023. For the first two years, each platform reported in its own format, with its own categories and its own definitions, so comparison across platforms was close to impossible. From the H2 2025 reporting cycle (the filings published in February 2026), every platform must use the harmonised template defined by Commission Implementing Regulation (EU) 2024/2835 of 4 November 2024. For the first time, every platform is required to answer the same questions in the same template. That does not guarantee that the templates were interpreted in the same way, but it ensures the platforms are all spinning their narratives on the exact same piece of paper. RTFP exists to reproduce said papers, best we can.
Lists of where these reports live already exist. The Commission publishes one, and so do others. What none of them does is make the data itself queryable. RTFP loads the filings, normalises them, and opens the result up for anyone to read, compare, and check.
Every chart on this site is downstream of somebody else's spreadsheet.
What's covered
The dataset currently holds the H2 2025 filings of 22platforms, specifically the VLOPs, grouped below by the kind of service they provide.
Social media: Facebook, Instagram, Pinterest, Snapchat, TikTok and X.
Video sharing: YouTube.
Professional network: LinkedIn.
Marketplace: AliExpress, Amazon Store, Google Shopping, Shein, Temu and Zalando.
App store: Apple App Store and Google Play.
Travel: Booking.com.
Knowledge: Wikipedia.
Adult content: Pornhub, XNXX and XVideos.
Other: Google Maps.
The category labels are our own grouping, based on general usage rather than any category in the regulation. It's a work in progress. We'll add more platforms and future reporting cycles as we get to them. The next cycle, covering H1 2026, is due in August 2026, and any amendments to past filings will be added as soon as we can.
How the data is built, and how to read it
Each platform publishes its H2 2025 report as a bundle of CSV files laid out according to Annex II of the Implementing Regulation. We load those files as filed, preserving the original figures, and link every row back to the exact filing it came from (which platform, which reporting period, which publication date and version). Nothing is recomputed. Every number traces to a cell in a published CSV.
"Harmonised" means "using the same form" rather than "doing the same thing". Platforms fill the same template differently. Some leave whole sections blank, some invent sub-categories the template doesn't define, some report the same country or language under different codes. Where it is needed to make platforms comparable, we normalise these surface differences. For example, Greece is reported as both GR and EL across platforms, and a few platforms write a country code where a language code is expected. These normalisations are applied transparently in database views, and the underlying raw figures are never overwritten. Anything that does not fit neatly into the template is recorded as a data-quality observation rather than swept under the rug. The rug is already crowded enough.
Standardising the form is not the same as standardising the measurement. Sometimes two numbers appear under one column heading because they belong there. Sometimes they appear under it because everyone was told to put them there. So a spike in one platform's figures is not evidence that it is doing better, worse, more, or less. It may reflect a different user base, different internal processes, different definitions, or simply a different reading of the instructions. "Lies, damned lies, and statistics." Exercise caution.
What this is not
This is not an audit. Every number on the site is what a platform reported about itself. The European Commission built a massive regulatory framework... but left the data collection to the honour system. Where platforms disagree on methodology, and they do, that disagreement is surfaced as a finding, not resolved. If a filing contains an error, we will reproduce that error and point back to where it came from. We are custodians of the numbers, not their parents.
RTFP does not include the EU's Statements of Reasons database, which is a separate, sprawling dataset covering individual moderation decisions. We are considering bridging with the SoR data in a future phase.
We currently load only the CSV templates corresponding to Tables 1–11. Some providers also publish consolidated spreadsheets, written reports, appendices, and other supporting material. Those may contain useful context. They also contain corporate poetry. For now, we stick to the tables.
How the numbers reconcile
Every finding links to the database view behind it. Every view is publicly queryable on the explore page without writing any code, or directly via the API. And every filing the site draws from is listed on the sources page, linked to the provider's own published report, so any number here can be checked against the original. If a figure on RTFP disagrees with a provider's filing, assume the filing is right and we are wrong. Let us know and we'll fix it.
Finding your way around
The Platforms pages show the filings for any one platform. The Explore page lets you query the whole database yourself. Sources traces everything back to the originals, and the API is for anyone who wants the data as data.
Who built this
RTFP is built by Oscar (@pushkinoxt) and Sune (@westphalen). Mostly with SQL, tea, and an unhealthy familiarity with csv files.