FY 2025 / NYC Parking Enforcement DTU A DTU Social Visualization Final Project · Group 60

The Uneven Curb

New York City wrote more than sixteen million parking tickets last fiscal year. About half came from cameras that nobody saw. The other half came from officers walking 78 precincts — and the rules they enforced changed completely depending on the block.

16,250,291
tickets issued in NYC, July 2024 – June 2025
46.3%
came from automated cameras, not officers
78
real mappable precincts in the analysis
27.2%
of officer-written tickets sit in just the top 10% of precincts
Read

One city, two enforcement systems.

A parking ticket looks simple from the outside. A car broke a rule, someone wrote it up. The FY2025 data behaves nothing like that.

Once the records are cleaned and separated, NYC's parking enforcement splits into two distinct machines. One runs on cameras — school-zone speed sensors, bus-lane systems, red-light intersections, MTA bus-mounted lenses. Their tickets land in an administrative slot the dataset calls Precinct 0: a code used for any violation not issued by a real street officer.

The other system belongs to 78 real precincts, where officers enforce street cleaning, meters, hydrants, and no-standing zones on foot.

Even within those 78 precincts, the picture isn't the same everywhere. The curb changes depending on where — and when — you're standing on it. This story follows that uneven geography.

Two enforcement systems diagram A schematic showing FY2025 parking tickets splitting into two paths: 46.3% to Precinct 0 (automated cameras) and 53.7% to 78 real precincts (street officers). FY2025 ISSUED TICKETS 16,250,291 SYSTEM A — AUTOMATED 46.3% of all tickets 7,524,683 records Precinct 0 — the catch-all School-zone speed cameras (63.8%) Bus-lane / bus-stop cameras (21.0%) Red-light + MTA bus cameras (15.0%) SYSTEM B — OFFICERS 53.7% of all tickets 8,725,608 records · 78 mappable precincts On-foot enforcement Street cleaning · Meters · Hydrants No-standing · Double parking Registration / inspection stickers The two systems peak at different hours, target different vehicles, and produce different rule mixes.
Fig 0. Before the maps make sense, the data splits in two. The story that follows takes each branch in turn.

What this story covers

This is about where tickets were issued and what types they were. It does not claim to show who was actually breaking rules, what final payments were made, or whether enforcement was fair or unfair.

What the data actually contains.

The dataset is NYC's FY2025 Parking Violations Issued file — 16,250,291 records from July 1, 2024 through June 30, 2025, after basic cleaning.

Each row is an issued ticket, not a paid one. Whether a ticket got paid, reduced, or dismissed is a different question — and one this dataset doesn't answer. Past audits suggest a sizable share of NYC parking and camera fines remain uncollected from year to year.

NYC uses more than 90 distinct violation codes. For this project, they've been grouped into readable families: street cleaning, meters, hydrant, no-standing, sticker, double parking, and the camera groups. That grouping is what makes the patterns across neighborhoods legible at all.

The first thing those patterns reveal is a category that takes up almost half the data — but doesn't behave like a real place.

An NYC parking violation summons, showing fields for plate, violation code, and issuing officer.
One ticket. Each of the 16.25 million rows in the file is one of these. Source: NYT.
Figure 1 Data: family_totals.csv · Plotly

The biggest violation families, citywide

Bars show total issued tickets per violation family across the full FY2025 dataset. Street cleaning and camera-related families dominate. These are citywide totals — they mix camera records and real-precinct records together. The neighborhood-level breakdown comes in later sections.

If the figure doesn't load, open it in a new tab.

The place that isn't a place.

Precinct 0 is not a real police precinct. It's the code NYC's parking system assigns to every ticket that wasn't issued by a street officer — a catch-all label for automated camera enforcement.

In the FY2025 data it holds 7,524,683 tickets, or 46.3% of all records. Nearly half the dataset sits in a single administrative label that has no street address, no map boundary, and no officer behind it.

Bus-lane cameras, red-light cameras, and the MTA's bus-mounted cameras (which photograph vehicles blocking bus stops and automatically trigger fines) make up most of the rest.

The timing confirms the split. Real-precinct tickets peak at 9 in the morning — when officers walk alternate-side parking windows ahead of the street sweepers. Precinct 0 peaks at 3 in the afternoon, when bus-lane and bus-stop cameras are busiest during the afternoon rush.

Set Precinct 0 aside, and the real geography of enforcement becomes much clearer.

Figure 2 Data: family_channel_summary.csv

Precinct 0 vs the real precincts

The camera families that dominate Precinct 0 — school-zone speed, bus-lane, red-light — barely appear in real precincts at all. Hover for raw counts and percentages.

If the figure doesn't load, open it in a new tab.

Don't call it fake data

Precinct 0 is real in the records but not real in the city. It belongs in any honest accounting of NYC parking enforcement — but not in a neighborhood map. Separating it is the first analytical step before any geography makes sense.

The ticket load isn't spread equally.

With Precinct 0 set aside, the 78 real mappable precincts contain 8,724,635 tickets. They don't share the load evenly.

The top 10% of precincts hold 27.2% of all real-precinct tickets. The top quarter holds nearly half — 49.9%. One precinct alone, the 19th, is responsible for 447,142 tickets, or roughly 5% of the entire mapped total.

The next places on the list have similar profiles: Precinct 14 (Midtown South — Times Square, Penn Station, Madison Square Garden), Precinct 13 (Gramercy, Stuyvesant Town, Madison Square Park), Precinct 6 (the West Village), Precinct 1 (Tribeca and the Financial District). Manhattan precincts dominate the top of the list — five of the top six.

That pattern follows curb economics, not curb behavior. More densely metered streets, more commercial loading, more taxis, more delivery vans, more enforcement officers. Higher numbers in some precincts doesn't mean worse drivers there. It means enforcement was concentrated there.

Figure 3 Data: real_precinct_concentration_metrics.csv

How concentrated is it?

The straight diagonal is a perfectly even distribution. The further the curve bends away from it, the more concentrated enforcement is. Top 10% of precincts: 27.2% of tickets. Top 25%: 49.9%.

If the figure doesn't load, open it in a new tab.

Figure 4 Data: real_precinct_map_profile.csv + NYC Police Precincts GeoJSON

Where the tickets are

Darker precincts hold a larger share of real-precinct tickets. Hover for ticket count, share, and the dominant violation family. Not adjusted for population, car ownership, or parking supply.

If the figure doesn't load, open it in a new tab.

Concentration ≠ bad parking

Concentration of issued tickets is not the same as concentration of illegal parking. The exposure side of that equation — curb length, parking demand, traffic — isn't in this dataset.

It's not just where. It's who.

The geography is one half of the unevenness. The other half is the cars themselves.

56.6%
of vehicles in the data got more than one ticket during FY2025.
89.2%
of all tickets went to that repeat group.
14.9%
of tickets went to just the top 1% of vehicles.

The single most-ticketed anonymous vehicle key in the dataset collected 1,088 tickets across the year — about three a day, every day. The top tail is fleet-shaped: commercial and carrier plates have the highest average ticket counts per vehicle, which points squarely at delivery trucks, livery cars, and rideshare fleets working the same blocks again and again.

That is part of why ticket volume concentrates in dense Manhattan precincts. It's not random drivers being unlucky on the same blocks. A relatively small population of high-mileage commercial vehicles is generating most of the system's output.

Figure 5 Data: repeat_vehicle_distribution.csv

Tickets per vehicle, by plate class

Average tickets per anonymized vehicle key, broken out by plate class. Commercial and carrier plates pull the average up sharply. Plate class is not a demographic field; the chart describes vehicle category, not the driver.

If the figure doesn't load, open it in a new tab.

Each neighborhood has its own parking problem.

Volume is one layer. The other is which rule dominates each precinct.

Across the 78 real precincts, street cleaning is the top family in 44. No-standing or no-parking leads in 12. Meters lead in another 12. Five precincts are dominated by registration-and-inspection sticker enforcement, and another five by everything else combined.

The specialization ratios reveal local flavor more sharply. A score above 1 means a violation family appears more in that precinct than the citywide average. Some of those signals are striking.

5.54×
Precinct 123
South Shore, Staten Island

Tottenville · Huguenot · Annadale · Eltingville. The highest registration-sticker specialization in the dataset. Car-dependent, far from transit, and inspection-sticker enforcement runs hot.

3.00×
Precinct 34
Washington Heights · Inwood

Three times the citywide rate of double-parking tickets. Narrow blocks, a wave of small commercial deliveries, and not a lot of legal curb to spread them across.

2.82×
Precinct 44
South Bronx · Yankee Stadium

Same double-parking signal, a different cause: stadium pulses, dense commerce on E. 161st, and the curb pressed by traffic with nowhere else to go.

The specialization story doesn't align cleanly with borough. Manhattan precincts dominate volume, but Staten Island wins sticker enforcement, the Bronx and Upper Manhattan win double parking. Each precinct is shaped by what it has too much of and what it has too little of.

Figure 6 Data: real_precinct_map_profile.csv

Which rule dominates each precinct

Each precinct is colored by its single largest violation family. Hover for the top families and their share of that precinct's tickets.

If the figure doesn't load, open it in a new tab.

Figure 7 Data: family_borough.csv

What gets ticketed in each borough

Each group is one borough. The bars show what share of that borough's tickets fall into each violation family. Manhattan leans on meters and no-standing. The Bronx and Brooklyn show heavier street-cleaning shares. Staten Island stands out for sticker offences — a sign of how car-dependent the borough is.

If the figure doesn't load, open it in a new tab.

"More prominent" ≠ "targeted"

A specialization above 1 means tickets of that type appear at a higher rate in this precinct than citywide. It does not say drivers there break the rules more, or that officers chose to target them. It says the data records that mix.

Not every ticket costs the same.

Counting tickets treats them as equal. They aren't.

Across the 78 real precincts, the estimated fine value of FY2025 issued tickets adds up to $612,808,346 — averaging about $70.24 per ticket. The number sits comfortably inside the historical range NYC's parking-enforcement system has produced for years; past fiscal years have routinely seen $600–700M+ in parking-related fine activity.

High-volume precincts are usually also high fine-value precincts — but not always. Double parking carries the highest average officer-written fine, at $115 per ticket, so precincts heavy on double-parking enforcement punch above their weight in dollars. A precinct full of cheaper street-cleaning tickets can rank lower than one with fewer but more expensive hydrant or no-standing violations.

Precinct 33 climbs 9 ranks when switching from ticket count to estimated fine value. Precinct 78 drops 10. The shape of the city's enforcement footprint changes when you count dollars instead of paper.

Figure 8 Data: real_precinct_estimated_fine_value.csv

Ticket count vs estimated fine value

Each point is one precinct. Points sitting noticeably above or below the main cluster are places where fine value tells a different story than ticket count alone. Hover for precinct details.

If the figure doesn't load, open it in a new tab.

Estimated, not collected

These are estimated fine values from issued tickets — not money actually banked by the city. Dismissals, reductions, payment plans, and uncollectable accounts all sit outside this dataset. Past city audits have flagged more than a billion dollars in unpaid parking and camera fines on the books at any given time.

Different rules, different hours.

The uneven curb has a clock attached to it. Each rule family runs on its own daily schedule.

06:00Hydrant tickets peakearly shifts begin; overnight violators get caught
08:00Sticker / inspection tickets peakofficers begin rounds before traffic builds
09:00Street cleaning peaksalternate-side windows; sweepers come through
13:00Meter / no-standing / double parking peakmidday foot enforcement
15:00MTA double-parking cameras peakafternoon rush begins
16:00Bus-lane / bus-stop cameras peakcommuter bus traffic intensifies

There is no single "parking ticket hour." Mornings belong to street cleaning. Midday is meter and no-standing. Late afternoon is the cameras. Knowing the rule means knowing the hour.

Figure 9 Data: violation_family_hourly_profiles.csv

When each rule family peaks

Each line is one violation family. The y-axis shows that family's share of its own daily tickets at each hour — comparing timing patterns, not raw volume.

If the figure doesn't load, open it in a new tab.

An NYC alternate-side parking schedule sign, showing days and times when a particular block is swept.
NYC's official Alternate Side Parking schedule. The posted windows explain directly why street-cleaning violations peak at 9. Source: NYC DOT.

Issue time isn't always violation time

Issue time is when the ticket was recorded. Camera records can include processing delays between the moment of the violation and the timestamp. Some hourly patterns reflect those administrative pipelines as much as on-street behavior.

An enforcement footprint, not a fairness verdict.

This project maps an enforcement footprint — where tickets landed, what kinds they were, when, and at what estimated dollar value. The geography is real: some precincts see far more tickets than others; some rule families dominate specific parts of the city; the patterns are consistent enough to be worth knowing.

The honest limit is that a ticket footprint is not an illegal-parking footprint. Both halves of that distinction matter. The data has the issued side. It does not have the exposure side — how much curb exists, how much demand there is, how many violations slip past unticketed — so drawing fairness conclusions from it alone would be overreaching.

What this analysis covers

  • where issued tickets appear in the FY2025 records
  • how Precinct 0 and the real precincts differ in rule mix and timing
  • which violation families dominate each precinct
  • how a small share of repeat vehicles produces a large share of tickets
  • how ticket timing differs by rule family
  • how estimated fine value compares to raw count

What it can't answer

  • violations that happened but weren't ticketed
  • whether enforcement was fair or targeted
  • actual revenue collected by the city
  • why specific precincts look different from others
  • risk adjusted for curb supply, population, or car ownership
  • driver demographics or identity

The strongest reading of this dataset is also the simplest: NYC's parking enforcement has a geography, and that geography is not uniform. Camera systems and on-foot officers run in parallel, on different clocks, hitting different vehicles, with different mixes of rules in different neighborhoods. The "average ticket" is a fiction. There are at least two cities behind the data — and inside each, dozens more.

The explainer notebook holds the full technical trail — cleaning, grouping logic, all 50+ figures, and diagnostic checks.

The receipts.

The website is the short version. The explainer notebook covers the full process: data loading and cleaning, violation-family grouping, Precinct 0 treatment, precinct filtering and GeoJSON joins, fine estimation from published violation-code tables, and hourly timing analysis.

Method in brief. Keep FY2025 issued-ticket records. Separate Precinct 0 from real precincts. Group violation codes into readable families. Map only records that join to real precinct geography. Compare patterns by precinct, rule type, fine value, and hour.

Project group
Group 60
  • S.T. Hassans250112
  • M. Abbas Khans250145

Primary data & official sources

  1. Parking Violations Issued — Fiscal Year 2025 NYC Open Data / Data.gov Source for all issued ticket records used in this project.
  2. Police Precincts NYC Open Data, Department of City Planning Precinct boundary GeoJSON used for all maps.
  3. Annual Report of NYC Parking Tickets and Camera Violations: FY2025 NYC Department of Finance, 2025 Official city-level totals for parking and camera violations.
  4. Violation Codes, Fines, Rules & Regulations NYC Department of Finance Violation-code meanings and fine tables used in fine estimation.

Rule context

  1. Street Cleaning & Alternate Side Parking NYC Department of Sanitation
  2. Parking Meters NYC Department of Transportation
  3. Automated Camera Enforcement Metropolitan Transportation Authority MTA bus-mounted cameras → Precinct 0 records.
  4. Speed Cameras: FAQ NYC Department of Transportation
  5. Red Light Cameras NYC311

Framing & methodology

  1. What Parking Ticket Data Can & Cannot Tell Us Urban Institute, 2020 Framing for the data's limits and avoiding overclaiming.
  2. Curb Management NACTO Background on the curb as a managed city resource.
  3. Look for Inequities in Parking Tickets Dan Levine Careful wording for geographic ticket analysis.
  4. Upper East Side / Precinct 19 Wikipedia + NYPD precinct pages Neighborhood context for top-volume precincts.

Project files

  1. Project explainer notebook Group 60, DTU Social Visualization, 2026 Full technical trail for cleaning, processing, and all numbers.
  2. GitHub repository Source code & site assets
  3. Data dictionary NYC OpenData field reference