Using Data to Optimize City Parking

Parking ServicesColumbus is America’s test market for everything from restaurants and fashion to technology and transportation. The City of Columbus Division of Parking Services has adopted this “test market” approach to using data and technology to improve services for residents and businesses.

As Columbus is slated to grow by one million residents by 2050, Parking Services is looking for ways to deliver services more efficiently to improve customer experience and prepare neighborhoods for increasing mobility options.

“Part of our goal is to reduce traffic congestion and the impact that causes to residents and businesses,” says Robert Ferrin, assistant director of Parking Services. “The other goal is to better utilize limited public funds and be more responsive to our customers.”

The city’s 4,500 parking meters are capable of creating hundreds of thousands of data points – meter locations, hours of operation, meter rates, historic transactions, violations and more. Utilizing the Smart Columbus Operating System helped Parking Services make parking data actionable, adjusting policies to enhance neighborhoods.


Previously, Parking Services used manual methods to visualize and analyze real-time and historic data to identify city parking performance statistics. Manual processes proved to be both time-consuming and resource-intensive, delaying the impact of enhancing the parking experience across the city.

“Before, we were adjusting rates based off of a small sample of occupancy rates, and based on observations and perception,” says Ferrin. “We didn’t have the data to tell the story.”

With the integration of parking data into the Smart Columbus Operating System in the summer of 2018, data can now be filtered through a visualization tool called JupyterLab, producing a Parking Heat Map with filters including violation type, day of week or season. The heat map visualization allows for in-depth analysis and data-driven decision-making where data can be aggregated, synthesized and visualized.  

Parking Services can now more easily identify the daily and seasonal variability in parking demand at a block or zone level, allowing the opportunity to manage parking infrastructure to meet the existing demand, and also enable planning future infrastructure placement like selecting locations of parking garages or permit parking zones.

The division is also able to report on compliance rates, not just violations, due to improved signage and more outreach to nearby businesses that have patrons who frequent specific meters. In the Short North Arts District, the average compliance rate for all parking is nearly 85 percent. By raising awareness of parking restrictions in key areas in partnership with other organizations, violations have been reduced and the community can more effectively voice their concerns or suggestions.

Parking Violation Heat Map

Potential uses for parking data

Key drivers of parking demand and the causes of critical violations can be deciphered from data visualizations when layered upon a geographical street map that notes key landmarks or commercial areas. This information could be used to meet the parking demand at peak hours and mitigate violation causes by extending or restricting time constraints of certain meters.

The data also provides opportunity for private navigation app developers to identify parking demand at a block or zone level and communicate that information with travelers for trip planning purposes.

Rethinking the current “beats” or routes of the Parking Enforcement Officers patrol can mean less staffing costs and more effective enforcement in neighborhoods where there are often complaints of violation by community members.

Data may inform changes in policy to promote or revise public transit routes, ride-sharing options, valet zones or permit parking zones, thereby limiting congestion or more effectively addressing the demand for on-street parking.

Parking data in action

The ParkColumbus mobile app powered by ParkMobile, rolled out in the Short North Arts District of Columbus in December 2018, allowing drivers to pay for and track their parking meter use on their smartphone. To date, the app has been downloaded 85,000 times. Parking Services plans to leverage the app in more Columbus neighborhoods within the next year.

Parking Services is also working with Smart Columbus to enhance the mobile app, adding features that will allow drivers to book parking spaces in garages and lots in real time. Incorporating this data into the Smart Columbus Operating System will allow for even more accurate and up-to-date data integration.

Ferrin says other parking technology being piloted in neighborhoods including license plate reading, virtual permitting and mobile payment are a part of plans to utilize data in its parking infrastructure changes. “We have a culture of innovation, and everything we learn will help us reduce congestion and increase mobility while preserving the uniqueness of our neighborhoods for all to enjoy,” says Ferrin.

About This Impact Story

Status: In Use

Tools Used: JupyterHub, Leaflet

Programming language: Python

Is the code open souce and repeatable: Yes

Related Kickstart Story: Parking Tickets Piling Up? Use Data To Determine Why



City of Columbus, Department of Public Service, Parking Services

With nearly 800 employees the Columbus Department of Public Service provides a variety of essential services that maintain and improve the travelling safety and quality of life for Columbus residents, as well as supports the growth and economic development of the city. The Parking Services Team oversees city’s 4,500 parking meters, including the implementation of parking management plans, permit programs, enforcement and the ParkColumbus Mobile App


Conduent's Digital Platform maintains the permits and violations data for the city of Columbus - Parking Services Department.




Sample Code

Python code as run by Jupyter Notebook. To sign up for our Jupyter Notebook Beta program, click here.

import folium
from folium import plugins
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

%matplotlib inline

m = folium.Map([39.9891, -82.9853], zoom_start=14)

endpoint = ''

table = pd.read_csv(endpoint)


for index, row in table.iterrows():
folium.CircleMarker([row['lat'], row['long']],
fill_color="#3db7e4", # divvy color

viol = table[['lat', 'long']].as_matrix()

m.add_child(plugins.HeatMap(viol, radius=15))'new_heatmap.html')

Dataset Page