{"id":2723,"date":"2025-01-06T19:46:56","date_gmt":"2025-01-07T03:46:56","guid":{"rendered":"https:\/\/mathewkiangcom.local\/?p=2723"},"modified":"2025-01-14T16:58:40","modified_gmt":"2025-01-15T00:58:40","slug":"analyzing-san-franciscos-parking-citation-data","status":"publish","type":"post","link":"https:\/\/mathewkiangcom.local\/2025\/01\/06\/analyzing-san-franciscos-parking-citation-data\/","title":{"rendered":"Analyzing San Francisco’s parking citation data"},"content":{"rendered":"S<\/span>an Francisco issues about 5,000 parking citations per day, resulting in over 21.4 million parking citations to over 5.2 million unique license plates since January 2008. That’s a pretty astounding number of parking citations when you consider San Francisco is home to less than a million people, less than half a million registered cars, and covers an area that’s just 7 miles by 7 miles. Parking citations are handled by San Francisco MTA while moving violations are handled by the San Francisco Police Department, which has a well<\/a>–documented<\/a> habit<\/a> of not enforcing (even dangerous) vehicle violations \u2014 resulting in about a 90% drop in citations since 2019.<\/p>\n

Last week, I nearly got killed by a person running a (blatantly) red light. Ironically, it happened in front of where I live \u2014 literally one block from a police station. Thankfully, the person had a fairly memorable license plate so I went home and found the person had over two dozen parking citations in 2024 alone.<\/p>\n

I decided to take a closer look at the data (helpfully provided by DataSF<\/a>) and ended up going down a little rabbit hole. Come join me.<\/p>\n

<\/p>\n

Overall trends in parking citations<\/h2>\n

The majority of parking citations are for street cleaning (8.1M) or meter violations (6.6M), which account for about 70% of all parking citations from 2008 through 2024. A couple of things to note: (1) the plot (as do all plots in this post) starts in 2009 because data in 2008 does not appear complete and (2) November 2009 is missing (and this is verified to be missing in the raw data as well)).<\/p>\n

\"\"<\/a><\/p>\n

Note how the COVID-19 pandemic massively dropped enforcement and\/or citations. I don’t show it here but the drop begins the week of March 16th, 2020 (the day of the Bay Area shelter-in-place order). On March 16th, 2020, there were about 4,200 citations and by March 19th it dropped to 971, continuing to drop until it hit 98 on March 29th.<\/p>\n

Temporal patterns in parking citations<\/h2>\n

Most parking citations happen between 12pm and 1pm on weekdays and there are substantially fewer citations on weekends. Whether or not this is due to lower enforcement, fewer violations, or a mix of both is unclear from the data, but if you had to pick a time and day to park illegally, it would be Sunday at 5am.<\/p>\n

\"\"<\/a><\/p>\n

In my opinion, the most interesting thing about this plot is what happens\u00a0within<\/span> the hour. It’s less in clear in some hours (e.g., 2am), but very clear in the afternoon hours that enforcement officers like to round the time to the nearest 0 or 5. This is (I assume) the same phenomenon that occurs with age heaping when people in the US like to round their age to a number that ends in 0 or 5. (Side note, interestingly, other countries age heap around other numbers.)<\/p>\n

The other interesting thing that occurs is it seems like for most hours, you are much more likely to get a ticket earlier in the hour. There is no clear mechanism I can think of for this to occur (e.g., more possible violations earlier in an hour). If I aggregate across all days and hours (focusing only on the minute of the hour), this trend is much clearer \u2014 you’re most likely to get a ticket at the 10 minute mark and then it steadily (and linearly) decreases from there.<\/p>\n

\"\"<\/a>Parking citations are unequally distributed<\/h2>\n

Below, I plot the proportion of vehicles (on the x-axis) that account for the proportion of citations (on the y-axis). For example, in 2024, the top 0.1% (about 500 vehicles) accounted for 3% of\u00a0all<\/span> tickets. Similarly, the top 1% accounted for 12% of all tickets, the top 5% accounted for ~30% of all tickets. In fact, just 15% of all cited drivers (about 80,000 of the 510,000 unique vehicles that were cited) accounted for\u00a0half<\/span> of all parking citations.
\n\"\"<\/a>This is a pretty wild distribution. It’s not surprising from a behavioral standpoint \u2014 at some point, getting another parking ticket is not going to matter to you so the type of person that gets 10 parking tickets is probably also the type of person that gets 50 parking tickets. But just from a sheer numbers perspective, it’s pretty shocking.<\/p>\n

For example, one license plate in the data set accounted for nearly\u00a0a quarter million dollars<\/span> in fines (from about 2,800 citations). Below, I plot the top nine violators in the data along with where their citations were more likely to occur (conditional on location data being available, which is not always the case with recent years).<\/p>\n

\"\"<\/a>Nearly all citations given to the top violators occur in downtown San Francisco, which is not super surprising \u2014 there is both greater density and more opportunities for violations to occur. I assume most of these drivers have jobs that require them to work in downtown and they simply can’t be bothered to find parking. Two drivers, 8G95568 and 5K61658, have slightly different citation patterns than the others. Getting cited more often in different areas (north of Market vs south of Market) and for different reasons.<\/p>\n

It also seems like for these nine violators, the citations stopped climbing after 2020. So perhaps we should just look at current violators? Below I plot the top 50 violators in 2024 (rows) where each column represents a day. On average, the top 50 violators had just three days between citations and one person managed the incredible feat of getting at least one citation every single day for 58 consecutive days<\/span>.<\/p>\n

\"\"<\/a>Anyways, I don’t think there’s a take home here other than be careful when you’re crossing the street in San Francisco.<\/p>\n

(Code is here<\/a>.)<\/p>\n","protected":false},"excerpt":{"rendered":"

an Francisco issues about 5,000 parking citations per day, resulting in over 21.4 million parking citations to over 5.2 million unique license plates since January 2008. That’s a pretty astounding number of parking citations when you consider San Francisco is home to less than a million people, less than half a million registered cars, and covers an area that’s just 7 miles by 7 miles. Parking citations are handled by San Francisco MTA while moving violations are handled by the San Francisco Police Department, which has a well–documented habit of not enforcing (even dangerous) vehicle violations \u2014 resulting in about …<\/p>\n","protected":false},"author":1,"featured_media":2728,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[132,116,113],"tags":[],"_links":{"self":[{"href":"https:\/\/mathewkiangcom.local\/wp-json\/wp\/v2\/posts\/2723"}],"collection":[{"href":"https:\/\/mathewkiangcom.local\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mathewkiangcom.local\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mathewkiangcom.local\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mathewkiangcom.local\/wp-json\/wp\/v2\/comments?post=2723"}],"version-history":[{"count":8,"href":"https:\/\/mathewkiangcom.local\/wp-json\/wp\/v2\/posts\/2723\/revisions"}],"predecessor-version":[{"id":2739,"href":"https:\/\/mathewkiangcom.local\/wp-json\/wp\/v2\/posts\/2723\/revisions\/2739"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mathewkiangcom.local\/wp-json\/wp\/v2\/media\/2728"}],"wp:attachment":[{"href":"https:\/\/mathewkiangcom.local\/wp-json\/wp\/v2\/media?parent=2723"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mathewkiangcom.local\/wp-json\/wp\/v2\/categories?post=2723"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mathewkiangcom.local\/wp-json\/wp\/v2\/tags?post=2723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}