Hello!

I'm Will. I tell stories with data. If you have any questions about my journalism, editing, or coding experience, download my CV or drop me a message: william.d.jarrett@gmail.com.

March 2024 election
March 2024 election

Maps and graphics showing precinct-level results of the March 2024 primary, with candidate races and props.

Mapbox, JavaScript, CSS
Big money in SF politics
Big money in SF politics

Months-long investigation with Guardian US into 'grey money' political spending by tech billionaires in San Francisco.

D3, Python
Hill bomb arrests
Hill bomb arrests

Interactive timeline of the Dolores Park Hill Bomb, where 117 people were arrested during a purported riot.

Mapbox, JavaScript
Fatal SFPD shootings
Fatal SFPD shootings

An interactive database with details on everyone killed in San Francisco police shootings since 2000.

JavaScript, illustrations
San Francisco budget
San Francisco budget

Created an interactive budget explorer for the 2023-25 period, with detailed explanations and breakdowns.

JavaScript, D3, Datawrapper
Web of corruption
Web of corruption

See how all the major players in San Francisco's ongoing city corruption scandal are connected.

Python, D3
Bomb-armed police robots
Bomb-armed police robots

Broke the news that SFPD was planning to explicitly authorize robot lethal force. The policy was reversed after protests.

Plain old reporting
$70 million in cop settlements
$70 million in cop settlements

Explore the cash that has been paid out in all the San Francisco law enforcement settlements since 2010.

Python, Illustrator, D3
Weekly news quiz
Weekly news quiz

An interactive quiz format to recap the week's news, with backend development from Craig Mautner.

JavaScript, PHP
Boudin recall funding
Boudin recall funding

Interactive beeswarms and donut charts show donors for and against the recall of Chesa Boudin.

Python, D3, Illustrator
Your neighborhood in data
Your neighborhood in data

A JavaScript web app that allows users to compare data on a custom area in San Francisco with the city at large.

JavaScript, Mapbox, Python
SF's redistricting debacle
SF's redistricting debacle

Deeply covered the city's redistricting process, and broke the news that Chair Townsend felt pressured by the mayor.

JavaScript, Mapbox
Trip in a driverless car
Trip in a driverless car

Contributed a dynamic scrollytelling map to Yujie Zhou's story about a trip through SF in a driverless cab.

Mapbox, JavaScript
Crime change in 2022
Crime change in 2022

Maps and scrollytelling charts to show how different types of crime changed from 2017 to 2022.

Python, Illustrator, JavaScript
How did your neighbors vote?
How did your neighbors vote?

An interactive that shows users how their neighborhood voted on Nov. 8 compared to the rest of the city.

Mapbox, Google API, JavaScript
Rise in scooter collisions
Rise in scooter collisions

Interactive mapping and graphics to show the 31% increase in scooter collisions in the past year.

Mapbox, Python, Illustrator
Nov. 8 donor web
Nov. 8 donor web

An exploration and explanation of the complex web of donors giving millions in SF's local election.

Python, D3
Mission Local crossword
Mission Local crossword

Created a New York Times-style crossword app and wrote a spooky(ish) puzzle for Halloween.

JavaScript
State climate partisanship
State climate partisanship

In state climate votes, partisanship has been steadily increasing over the past five years. But why?

JavaScript, Altair, Datawrapper
Community internet networks
Community internet networks

When Covid struck, millions of children couldn't go to class. NYC community groups rushed to improve their access.

Python, Illustrator, JavaScript
Green roof policy
Green roofs in NYC

Green roofs have many benefits, but adoption has been slow. New NYC laws hope to change that.

Photography, QGIS