Our idea to map Buffalo's parking tickets originated in a coffee shop where employees shout warnings to customers when they spot a parking enforcement officer. The ritual can render them practically hoarse.

Having coffee with a source for an unrelated story, we heard four warnings in an hour. Meanwhile, the source complained about her eight tickets in two years and $300 in fines.

After that meeting, staff reporter Jay Rey and I - under the supervision of Susan Schulman, head of The News' investigative reporting team - decided to study the hundreds of thousands of parking tickets issued in the city using computer-assisted reporting. (For more details about reporting the story, see the September-October issue of The IRE Journal.)

We filed a state Freedom of Information Law request for an electronic database of all tickets written January 2003 through October 2004. The city provided, at no cost, a Microsoft Access database on CD containing 366,500 parking tickets.

We ran hundreds of queries in Access and analyzed the data using ESRI ArcView 3.2 geographic information system (GIS) software. News researcher Andrew Bailey helped with the data work.

The data was fairly clean. Parking officers issue tickets by using a handheld device capable of scanning a vehicle registration sticker and automatically recording the time and date. The officers enter the location and violation type.

We found inconsistencies in the recorded street addresses. Some officers, for example, entered "Bailey Ave." while others entered "Bailey Avenue." We needed consistency with addresses, because we planned to use ArcView's geocoding function to turn those addresses into points on a map. We wanted one map showing the tickets by neighborhood.

Bailey created a new table from a GroupBy and Count query of street name to identify streets with the most parking tickets.

Mapping patterns

Bailey had a good handle on the geocoder's preference for how street names should be identified (Northrup West, rather than W. Northrup), so that's how he standardized street names.

We found inconsistencies in the recorded street addresses.

Sometimes he used Access' Find and Replace function to standardize addresses, but more often he relied on update queries. When Bailey standardizes addresses, he usually creates a table that has one column containing the variations of the street name and then creates a column that contains the correct, standardized, street name. He then uses this table in the update query.

Bailey geocoded the cleaned-up addresses and we ended up with 290,000 matches out of our original 366,500 records. Complete success is elusive when geocoding. Some ticket addresses couldn't be mapped because officers sometimes failed to record the street number in the violation location field.

We could overcome that for violations on short streets contained in one neighborhood, but not for those on streets that cut through several neighborhoods. Ashton Place, for example, is a one-block street in Buffalo's South Park neighborhood. Tickets written on Ashton Place, but lacking a precise address, could therefore be attributed to South Park.

Bailey calculated the number of tickets for each neighborhood by using ArcView's spatial join. Spatial joins allow you to assign information from one map layer to another. Bailey overlayed the polygon neighborhoods map from City Hall and joined it to a map layer of parking ticket points. Then, after the join, he calculated the number of tickets in each neighborhood. That number was then displayed for each neighborhood as the percentage of all tickets mapped.

We could see downtown had the greatest percentage of all parking tickets. But several Upper West Side neighborhoods, each having 5 percent to 10 percent of the tickets, stood out, too. This indicated the Upper West Side was the most ticketed residential area of the city.

Zooming in

Another map created using ArcView showed the Upper West Side close up. Here, Bailey took the county property parcel map and zeroed in on the residential neighborhood. He grouped individual parcel polygons into street blocks - grouping roughly 3,500 parcels into the roughly 160 blocks in our area and assigning a name for each block. Bailey did this by manually selecting the polygon parcels and then using the Dissolve Feature tool in the Geoprocessing Extension to create the larger polygons. Bailey named these larger polygons with the street name and two cross streets. So the block on Cleveland, intersecting Elmwood and Delaware, was called ClevelandElmwoodDelaware.

Bailey exported the resulting table and then imported it in Access. He ran some basic queries in Access to determine the address range of each block.

Then Bailey queried the database for the 35 or so streets in the heavily ticketed Upper West Side area. This resulted in about 60,000 tickets. Using the address ranges from the block table, Bailey assigned a specific block to each ticket.

A query grouping by the block was used to create a table with the results, and then was imported back into ArcView for the final block map.

We verified addresses of some corner properties in question by walking along blocks in the neighborhood and recording house addresses in each block. The violation locations we could not assign to a block, and thus excluded from this map, represented less than 1 percent of the tickets.

We shaded the map by number of tickets issued in each block. But, of course, not all blocks are created equal. A typical block on Lafayette Avenue, for instance, covers the same distance as three on Ashland Avenue. Our first thought was to group blocks for the streets with smaller blocks, such as those on Ashland. We quickly abandoned this notion because we felt that it would provide an inaccurate depiction of the data by glossing over the variations.

Digging deeper

Most of our maps were not published, but were pivotal in our analysis.

We created maps for each type of parking violation. This showed us the obvious, that meter overtime violations were mostly downtown, but it also alerted us to ask why there were so many more alternate-side-of-street parking violations in a North Park neighborhood and so many more no-standing violations in a South Buffalo neighborhood.

We also mapped violations for certain times of the day. This allowed us to see where the parking officers started their days, and which residents had less time to get away with an alternate-side parking violation than others. We mapped morning violations in 20-minute increments.

The map revealed Ashland Avenue to be the block with the most violations right after 9 a.m., so we knew to take a closer look at that street's data.

Our findings did not surprise those who start their day at the coffee shop in the city's Upper West Side. While downtown and the relatively affluent Upper West Side were prime targets for the city's parking officers, they spent a lot less time in Buffalo's crime-ridden East Side streets. The all-white ticketing force is afraid to go there, we were told.

The data prompted us to ask about deployment. With eight parking officers working the day shift, one covers South Buffalo and most of the East Side. Another works North Buffalo. The rest work downtown or the Upper West Side.

So in Buffalo, your fortune with parking tickets hinges on where you park, we reported in a special report called "Ticketing the city."

Contact Patrick Lakamp by e-mail at plakamp@buffnews.com.