Glossary
The words BoardStat uses, how each number on a district page is counted, and where to find the data yourself.
Places and district lines
- Community district
-
One of New York City's 59 community districts. Each one has a community board. BoardStat numbers them the way the Department of City Planning does: the first digit is the borough (1 Manhattan, 2 Bronx, 3 Brooklyn, 4 Queens, 5 Staten Island) and the last two are the district. So 306 is Brooklyn Community District 6.
- Council district
-
One of the 51 City Council districts. Some council districts cross a borough line.
- Joint Interest Area
-
A large park or airport that the Department of City Planning keeps outside every community district, such as Central Park (164). BoardStat lists these as their own "districts", because requests made there are not in any neighboring community district.
- District lines (boundary release)
-
The district shapes come from the Department of City Planning. The city updates them a few times a year, and each update has a release name, like 26c. BoardStat uses today's lines for every request, including old ones.
- Placed in a district (re-mapped)
-
BoardStat does not use the district written on each request. It takes the request's map location and checks which district shape contains that point. This is called a point-in-polygon check: "which shape is this dot inside?"
We do this because the city's own council district field keeps the old, pre-2023 lines on older requests. Re-mapping puts every request on the same map. If a point sits exactly on a line between two districts, it goes to the district with the lower number, so the result is always the same.
- Located / no usable location
-
A request is located if it has a latitude and longitude inside New York City. A request with no location, or with one far outside the city, has no usable location. Those requests are counted citywide but are not on any district page. A few requests with a location also fall outside every district's lines. The About page shows how many.
- Agreement with the city's district fields
-
How often BoardStat's district matches the district the city wrote on the request.
Agreement = requests where both match ÷ requests where both have a districtSmall differences are normal near a boundary line. The current numbers are on the About page.
- Borough (for comparisons)
-
For a community district, its own borough. For a council district, the borough where most of that district's requests are.
What a 311 request contains
Each row in the city's 311 data is one service request: one report to 311 by phone, app, text or website. These are the fields BoardStat shows.
- Request (service request)
One report to 311. One problem can lead to several requests if several people report it.
- Problem (formerly "Complaint Type")
-
The kind of problem, like Noise - Residential or Illegal Parking. The city's field is
complaint_type.The city sometimes spells the same problem in different ways, like PLUMBING and Plumbing. BoardStat groups spellings that differ only in capital letters or spaces, and shows the most common spelling that is not in ALL CAPS. It does not merge problems with different words. The original spelling is kept in the CSV download as
complaint_type_raw. - Description (formerly "Descriptor")
-
More detail about the problem, like Loud Music/Party under Noise - Residential. The city's field is
descriptor. When a request has no description, BoardStat shows (none). The city's second description field,descriptor_2, is in the CSV download but cannot be filtered. - Agency
The city agency the request was sent to, shown by its short code (like NYPD or DSNY) and full name.
- Status
Where the request stands, as the city reports it: for example Open, In Progress, Assigned or Closed.
- Created date
When the request was made. Every date filter, and every month, uses the created date.
- Closed date
When the agency closed the request. Some requests have no closed date. A few have an impossible one: before the request was made, or in the future.
- Address
-
The street address the city recorded (
incident_address). When there is none, the request list shows the two cross streets instead.To count requests by address, BoardStat cleans the address a little: extra spaces are removed and letters are made capitals. It does not fix spellings, so
5 AVENUEandFIFTH AVENUEcount as two different addresses. - Address lookup
The address box on the first page: choose An address in Step 1. Selecting a match (or pressing Enter for the first one) opens its address page. It is not a geocoder (a tool that finds any address on a map). It only finds addresses that already appear in 311 requests in this data, spelled the city's way, and needs at least 4 characters. It accepts common short forms: it drops the city, state and comma part, uses a ZIP code if you give one, turns
Ave,St,Blvdand similar at the end into the full word,5thinto5, andEorWafter the house number intoEASTorWEST.- 311 number
The request's unique number (
unique_key). You can look it up on 311's own site to see its full history.
How the numbers are counted
Every number is counted directly from the 311 data by ordinary code, in your browser, for the filters you chose. Nothing is estimated or predicted.
- Requests
- Requests = how many requests match every filter
- Closed
A request whose status is exactly Closed. A few requests have a closed date but a status like Open; BoardStat does not count those as closed.
- Not yet closed
-
Any status other than Closed, including a missing status.
Not yet closed = requests − closed requests - Time to close (days to close)
-
How long one request took to close, in days, including parts of a day.
Days to close = (closed date and time − created date and time) ÷ 24 hoursA request closed 36 hours after it was made took 1.5 days. Time to close only counts requests that are Closed and have a usable closed date. Requests with no closed date, closed before they were made, or closed in the future are left out.
- Median time to close
-
Line up every closed request from fastest to slowest. The median is the one in the middle: half closed faster, half closed slower. It is the best single "typical" number, because a few very slow requests do not pull it up.
- Average time to close
-
Average = total days to close ÷ number of closed requests
A few requests that took months can pull the average far above the median. When the average is much bigger than the median, most requests closed fast but some took a long time.
- Days open
-
For a request that is not yet closed: how long it has been open.
Days open = (time this data was built − created date and time) ÷ 24 hoursIt is counted to when the data was built, not to today, so it does not grow while the data sits still.
-
Share = requests about one problem ÷ all located requests in that place
Used in the Compare panel. Shares let you compare a district with its borough and the city, even though they have very different numbers of requests.
- What 311 counts can and cannot tell you
311 counts show who reports problems and how, not only how many problems exist. A higher count can mean more engaged neighbors, not a worse block.
Each part of a district page
- Filters
From and To dates, Problem, Description (you can also exclude descriptions), Agency, Status and Address. Filters apply to every panel unless a panel says otherwise. They are saved in the page's web address, so you can bookmark or share a filtered view.
- At a glance
Four numbers for the filtered requests: Requests, Not yet closed, Median and Average time to close. Times under 10 days show one decimal; longer times are rounded to whole days.
- Top 10 problems
The 10 problems with the most requests. Ties are sorted A to Z. Select a problem to see its 15 most common descriptions.
- Requests per month
-
Requests counted by the month they were created.
A partial month is a month where only some days are counted: because your From or To date falls inside it, or because the data has not reached the end of it yet. (The newest month is usually partial, because the city publishes 311 data a day or more late.) Partial months are drawn as hollow dots with the word "partial", and are not joined to the line, so a short month never looks like a sudden drop. The table says which days they cover.
One line per year. When the dates cover more than 13 months, the chart draws one line for each calendar year, with January to December along the bottom. The newest year is the thickest, darkest line. The table still lists every month.
Same month a year earlier (in the table, and on the chart for shorter date ranges) uses the same filters on exactly the same days, 12 months before. For a partial month it covers the same partial days. It only appears where the data reaches back that far.
- Agency responsiveness
One row per agency, most requests first: requests, not yet closed, closed, and median and average days to close (closed requests only). The chart below it splits the 8 agencies with the most requests by status.
- Still open from before this period
-
Requests created between the start of the data and the day before your From date that were still not closed when the data was built. Every filter applies except dates and status.
Statuses of older months can lag. To save time, the build reuses its download of any month that ended more than 60 days ago, so some of these may have closed since.
- Map of requests
Each dot is a request. Circles group requests that are close together. Bigger, darker circles hold more requests (light: under 100, middle: 100 to 999, dark: 1,000 or more). Select a circle to zoom in. The map shows at most the 60,000 most recent matching requests.
- Addresses with the most requests
The 15 addresses with the most matching requests, with the problem reported most often at each one. Requests with only cross streets are not in this list.
- Address page
Every request at one address, over the whole data window. Open it by selecting an address in the address lookup. It has the same filters and panels as a district page, plus Problems over time: one bar per month, split into the five most common problems at that address, with the rest grouped. Compare with its districts puts the address's 10 biggest problems, as a share of its requests, next to the same share in its community district and council district, with buttons to open either district. As in Compare, only the dates apply there, and the districts use whole months. It matches the address exactly as the city spelled it, so requests that gave only a cross street are not included. A link at the top opens the address on the BetaNYC Boundaries Map (code on GitHub), which lists the political and administrative districts at that spot. It uses the middle of the locations 311 recorded for the address.
- Compare
This district's 10 biggest problems, as a share of its located requests, next to the same share in its borough and the whole city. It uses whole months from your From and To dates. Only the dates apply: problem, description, agency, status and address filters do not.
- Every request (and the CSV download)
The matching requests, newest first, 50 at a time. Download CSV gives every matching request as a spreadsheet file, with the city's original fields plus BoardStat's district numbers (
cd,cc),days_to_close, andclose_flag, which says why a time to close was left out.
Dates and how fresh the data is
- Data as of
When BoardStat last downloaded the data and rebuilt its files.
- What changed since …
BoardStat updates every night. The city changes old requests as well as adding new ones: a request closes, a status changes, a date is fixed. So each night BoardStat asks NYC Open Data for every request that changed since the last update, not just new ones, and swaps in the new version. This line counts, since the last update: new requests, updated requests (ones BoardStat already had), and closed requests (now Closed and not Closed before, including new requests that arrive already closed). On a district page it also shows that district; on an address page, the address's community district. Once a week BoardStat also compares its monthly counts with the city's and downloads any month that does not match, which catches requests the city removed.
- Portal last updated
When the city last updated the 311 dataset on NYC Open Data.
- Data window
The dates BoardStat covers: from January 1, 2020, to the newest request the city has published. A page opens on the last 12 full months plus the current month; you can move the From date back to 2020. Requests from 2010 to 2019 are planned.
- Publishing delay
The city publishes 311 data a day or more after requests are made, so the newest request is always a little older than the build date.
- Out-of-date warning
A yellow notice appears when the data was built more than 48 hours ago.
- Time zone
All dates and times are New York City local time, as the city publishes them.
Datasets and where to find them
All of these are free and public. You can open them, filter them and download them yourself.
- 311 Service Requests from 2020 to Present
On NYC Open Data, dataset ID
erm2-nwe9. Every request on BoardStat comes from here. Open the dataset.- 311 Service Requests, 2010 to 2019
Dataset ID
76ig-c548on NYC Open Data. Older requests are in this separate dataset. BoardStat does not use it yet. Open the dataset.- Community Districts
Publisher: Department of City Planning, on NYC Open Data. Dataset ID
5crt-au7u. The community district shapes. Open the dataset.- City Council Districts
Publisher: Department of City Planning, on NYC Open Data. Dataset ID
872g-cjhh. The council district shapes. Open the dataset.- Street map
The City's own NYC basemap, from the Office of Technology and Innovation. If it cannot load, the map switches to a street map built from OpenStreetMap data with Protomaps. The street map is only a background; no number on BoardStat comes from it.
- BoardStat's code
The program that downloads the data, places requests in districts and writes the files is open source, on GitHub. You can read every calculation on this page in the code.