Jason Kao

Visualization ; Analysis ; Journalism

Hi! I am a freelance data analysis and data visualization practitioner. I used to publish interactive data journalism in newsrooms.

Previously The New York Times, ProPublica, Bloomberg News Currently The Pudding (Polygraph), The DataFace, CUNY AAARI

Open to new projects

Bloomberg News, Aug. 2024
Visualizing Rubble in Gaza

The Zionist bombardment is leaving millions of tonnes of debris to clean up.

CUNY, freelance, 2026
State of AANHPI Communities in New York: Report

Over thirty original analyses of Census & voting data. Extensive validation and factchecking.

Tools: R; mapshaper; reading documentation; agents

Bloomberg News, April 2024
Mapping Refugees and Airstrike Damage in Rafah

Mapping how crowded and damaged Rafah was through satellite imagery tent detection.

Photo by Ahmad Salem.

Bloomberg News, March 2025
Satellite Imagery Shows Gaza’s Destruction and Resilience With War Unresolved

Mapping tents and refugee resettlement after the March 2025 "ceasefire".

Photo by Ahmad Salem.

CUNY, freelance, 2025–2026
Localized History Project

Hosts exhibits from NYC high schoolers that uplift decolonial, solidarity-oriented, working-class AANHPI histories.

Bloomberg News, Nov. 2024
Paralyzing Curbs on West Bank Obstruct Path to Palestinian State

Mapping the Zionist occupation’s physical enforcement of apartheid in the West Bank.

Photo by Sergey Ponomarev/Getty Images.

The New York Times
Where New York’s Asian American Neighborhoods Shifted to the Right

An analysis of decades of Census data and voting records revealed a major shift.

Tools: Python & R; QGIS, mapshaper, Svelte, and Illustrator for mapping

Bloomberg News, April 2024
Satellite Analysis on Mass Graves Found by Gaza Hospitals

The Zionist state attacked two hospitals in Gaza, leaving mass graves in the courtyards.

Photo by Ahmad Salem.

Blomberg News
Trump Mass-Deportation Push Overcrowds Miami Krome ICE Center

Role: Scraping to break data-driven stories about ICE detention.

Tools: Python for scraping; R for analysis; traditional investigative reporting

ProPublica
Body Cameras Were Sold as a Tool of Police Reform. Ten Years Later, Most of the Footage Is Kept From Public View.

Role: Interactive data visualization of the obfuscation of body cam footage.

Tools: Svelte/Javascript; ffmpeg

Bloomberg News
IDF Invades Rafah, Closes Critical Aid Routes

Role: Analyzing UN data to assess the impact of the Zionist military’s aid blockade.

Tools: R for data analysis and exploration

ProPublica
The Rising Cost of the Oil Industry’s Slow Death

Role: Data analysis and data visualization throughout the story.

Tools: R; communication and collaboration with non-technical reporters and editors

ProPublica & The New York Times Magazine
When the Coast Guard Intercepts Unaccompanied Kids

Role: Tracing datasets, interviewing government data officials, FOIA-ing records for an investigation about Coast Guard interdictions.

ProPublica
A Memorial for the Children Lost to Stillbirth

Role: Assisted with the coding of Zisiga’s designs.

The New York Times
Hungry, Scared and Sick: Inside the Migrant Detention Center in Clint, Tex.

Role: Investigative reporting and annotation on top of Jeremy White’s 3D models.

Tools: OSINT; traditional investigative reporting; Illustrator for presentation

Redistricting Advocacy, NYC 2021

Building tools to communicate, organize, and research redistricting objectives.

React Scrollama: A library for clean scrollytelling in React

Role: Creating and maintaining the React version of Scrollama, a JavaScript library for scrollytelling.

Texas’ new race and social studies law prompts McKinney school officials to cancel Youth and Government class

Role: An original investigation into how the "critical race theory" laws affected Texas schools.

Tools: Traditional investigative reporting; FOIA requests. Photo by Eric Lee.

Work with me

If you're reading this, I am taking new projects! My rate is $160-$190/hr for established companies and philanthropy-backed non-profits. Happy to have a 30-min intro call.