Six panels of analytics over the Committee to Protect Journalists' open caselist — annual arrest curves, the countries doing the jailing, the outlets paying the price, and the charges they keep reaching for. Each chart is computed live; the inputs are shown so the math can be audited.
Yearly arrests by recorded arrest_date. Cases with no recorded year are excluded from this chart only — they're still counted in every other panel.
On the left, the regimes accumulating the deepest caselist over two decades. On the right, the publications whose newsrooms keep showing up on CPJ's jailed list.
Country bars are scaled to #1 (Turkey, 390). Outlet bars are scaled to #1 (Özgür Gündem, 30).
Each cell is the number of journalists arrested in that country during that calendar year, on record.
Darker = more arrests. Square-root scaling so a single hot cell doesn't drown out the rest.
Each category below is a CPJ-standardized charge tag. "Anti-state" sweeps in sedition, espionage, terrorism, and similar — the workhorse charge of repressive regimes.
Where the curve is moving. A country with +5 this year vs. +1 last year is more newsworthy than one with stable high volume.
These are the deltas, not the absolutes.
All counts are over the Committee to Protect Journalists' imprisoned- and missing-journalists dataset, mirrored locally and refreshed daily.
CPJ's open dataset is the currently-jailed list — they drop cases when a journalist is released — so every row in the underlying corpus represents an active detention. The headline "108 missing" tally surfaces the subset CPJ has flagged as disappeared rather than detained.
"Last year" is a rolling 365-day window from the moment this page was generated, computed against each row's arrest_date.
RSF rank and Freedom House status come from a curated country-context table (RSF 2024 / FH 2024). Some countries have no data and appear without those tags.
The country × year heatmap uses square-root scaling so a single hot cell doesn't drown out smaller signals in adjacent years.