Explore

Pick a dataset, choose a measure, filter it, and run — the query is pushed down to Socrata, so a 21-million-row dataset costs the same as a small one. Nothing is downloaded and nothing is copied.

First time here? The guide walks two questions through this page, or use Show me around below.

How to use this page

Pick a dataset — Use the sidebar, or type an alias in the Dataset box — 311, collisions, inspections. Aliases exist because a Socrata id like erm2-nwe9 is unguessable; the id is still shown, and still works.

Choose a measure and a grouping — countanswers “how many”. Group by a categorical column to break that down. Only columns that group into meaningful buckets are offered — grouping by a timestamp gives one bucket per row, which is a list, not an aggregate.

Filter from observed values — Filter values autocomplete from what the column actually contains. This matters more than it looks: a guessed spelling returns zero rows and reads as “nothing happens here” rather than as a mistake. Community boards, for instance, are spelled 04 MANHATTAN, not 104 MANHATTAN.

Read the connections carefully — Row join means both datasets carry the same real-world identifier — a tax lot, a building, a restaurant — so records correspond. Same area means they can only be compared once aggregated to a borough or district; it does not match individual records. No key means related subject matter and no way to join at all.

Nothing is downloaded — Every query is pushed to Socrata, which aggregates server-side and returns kilobytes. A first run over a very large dataset can take ten seconds or so; the result is cached, so a repeat is quick.