# TicketDodge

> A map that scores parking-ticket risk street by street from real NYC violation data, for how long you plan to park.

One-day hackathon · I built the map app, the data pipeline, and the risk score · Jul 2026

Recognition: Best Use of Cursor · Ramp Builders Cup

## Results

- Best Use of Cursor, Ramp Builders Cup
- 1 day from idea to live

## The problem

Drivers in Manhattan guess whether a spot is safe and pay $65 to $115 when they guess wrong. NYC publishes every parking violation as open data, but raw records don't answer 'is this street risky right now, for as long as I'll park?'

## What I built

- The map app: a full-screen Leaflet map with geolocation, street search or map click, and a parking-duration picker.
- A data script that queries NYC's Parking Violations dataset and builds street, weekday and hour profiles, with fines from the city's official schedule.
- The risk score: normalized hourly citation intensity, compounded over the planned stay, with a breakdown of what drove it.

## The hard part

Turning sparse, bursty citation records into a number a driver can act on without overclaiming. The city's API does the aggregation into weekday and hour profiles per street, and each hour's normalized intensity becomes an exposure rate compounded over the stay as 1 - (1 - p)^hours. The score is labeled a heuristic, not a probability of getting a ticket.

## How it fits together

- NYC Open Data -> Aggregate script (queries)
- Aggregate script -> Risk model (profiles)
- Where + how long -> Risk model
- Risk model -> Map UI (0 to 100)

Parts David built: Aggregate script, Where + how long, Risk model, Map UI.

The score is labeled a heuristic, not a probability of getting a ticket.

## Decisions

- The city's API does the aggregation into street, day and hour profiles, so the app never downloads raw violation records.
- The score is labeled a heuristic with a breakdown, not presented as a probability, because the data can't support one.

Tech: Next.js, TypeScript, Leaflet, Open data. Links: [live](https://ticketdodge.vercel.app) · [code](https://github.com/Alienware2000/ticketdodge)

Page: https://davidantwi.vercel.app/work/ticketdodge
