1 Introduction
In many urban areas, trying to find curbside parking can be an unpleasant experience. In peak hours, available spots are rare and drivers can cruise from block to block without finding one. Even having found a spot, drivers may then need to walk a significant distance back to their destination. This takes time and clogs up city streets with unnecessary congestion. In fact, in a wellknown study, Shoup found that on average 30% of traffic on city streets can be the result of such cruising (shoup2006cruising). This excessive congestion has many disadvantages. Drivers searching for parking are distracted, reducing safety for pedestrians and cyclists (edquist2011effects). With more cars on the road, travel times are increased for everyone, including public transit vehicles. More slowmoving cars on roads means increased emissions (rouphail2001vehicle). Thus, it is important for modern cities to manage their parking resources efficiently.
As an alternative to curbside parking, drivers have the option to park in offstreet lots (by which we refer equally to parkades, parking garages, and groundlevel lots). Such lots often offer many more available spots than onstreet parking. However, parking offstreet has its own drawbacks. Drivers need to first find the lot, find a free spot, pay, and then walk back to their destination. It is therefore not immediately clear whether most drivers save time by seeking on or offstreet parking.
Previous studies have examined the tradeoff between searching for curbside parking and parking in the nearest lot, most through the lens of examining pricing schemes (RePEc:eee:trapol:v:25:y:2013:i:c:p:222232; shoup2006cruising). In particular, Shoup looked at how drivers might think about on and offstreet parking by assuming that curbside parking is free but rare while offstreet spots are always available but expensive (shoup2006cruising). He observed that if the time it takes for drivers to cruise for free curbside parking exceeds a certain threshold, they will prefer paying for offstreet parking to save time. However, price is not the only factor affecting drivers’ decisions (yan2019effectiveness). Furthermore, drivers trade time for money differently depending on their situations. If a driver has an important meeting with a client, she will gladly pay more for parking to avoid being late and risking losing the client; if a driver holds an expensive concert ticket, paying a high price for parking is not as bad as missing part of the show.
Our work approaches the problem of curbside vs. lot parking from another angle: we consider only the difference in time between the two alternatives, and think of price as a tool that can be used to change driver behaviour. The offstreet lots we consider are all owned by the City of Vancouver—as, of course, are the onstreet spots—meaning that adjusting prices is within the power of the City’s decision makers. We show how cuttingedge AI tools can be leveraged along with realworld data to build realistic models of on and offstreet parking procedures. We show that despite the costs of offstreet parking mentioned above, drivers can sometimes save time by parking in offstreet lots rather than cruising in search of onstreet parking.
In order to simulate cruising for parking, we predict curbside parking occupancy from observed payment data. Various methods exist for making such predictions (rajabioun2015street; tamrazian2015my; yang2017turning; yang2019deep), but none of these methods works with the sort of highly incomplete data we encountered in practice. Aggregated payment data is only weakly predictive of actual occupancy rates (RePEc:eee:trapol:v:25:y:2013:i:c:p:222232): illegally parked cars still consume a spot, and paid drivers can leave both before and after their meter expires. While curbside payments are performed via onstreet meters that accept credit cards, cash, and app payments, we only had access to app payments. We were able to calibrate these noisy observations with a very limited number of occupancy checks performed by a parking inspector. We show that in this setting it is nevertheless possible to build accurate models using deep neural networks.
The remainder of this paper begins with a brief literature review in Section 2, contrasting approaches taken in the literature with our own methods. Then, we describe the methods we developed to simulate both on and offstreet parking in Section 3. Section 4 describes the data used in our simulations and Section 5 analyzes the results. Finally, we conclude and discuss some future directions in Section 6.
2 Literature Review
Others have previously considered methods for simulating the parking search procedure, as well as comparing on and offstreet parking, and predicting occupancy from payment data. We review some relevant work below, highlighting methodological differences in the approaches proposed in this paper.
2.1 OnStreet Parking Simulators
mannini2017street performed an influential study of onstreet parking time estimation, computing onstreet parking search time by using Floating Car Data obtained from probe vehicles. belloche2015street used surveybased data to compute parking search time based on an offstreet parking search time model proposed by axhausen1994effectiveness. Most related to our own work, dowling2019modeling viewed streets as a network, representing streets and intersections as edges and nodes in a graph. Then, using the transaction data to estimate true occupancy, dowling2019modeling calculated various networklevel measures such as congestion. Our work uses transaction data to estimate true occupancy using a deep learning model and estimates the parking search time with a simple search algorithm using MonteCarlo simulation.
2.2 OffStreet Parking Simulators
While there exist agentbased choice models for parking in general (vuurstaek2018first; benenson2008parkagent; waraich2012agent; bischoff2017integrating) and surveybased studies for offstreet parking search time (axhausen1994effectiveness; teng2002parking), literature on explicitly modeling parking in an offstreet parking lot is quite limited. We propose a simple simulationbased approach to compute the time it takes for a car to park in an offstreet parking lot.
2.3 OnStreet vs. OffStreet Parking
There has been active research in parking policy and regulation for both onstreet parking (marshall2008reassessing; biswas2017effects) and offstreet parking (barter2010off). Onstreet parking is evaluated on a combination of three areas: safety for drivers, cyclists, and pedestrians; road congestion; and economic activity (marshall2008reassessing). Offstreet parking lots serve as extra supply to accommodate excess onstreet parking demand. Studies have suggested using pricing to manage the markets for onstreet and offstreet parking individually (RePEc:eee:trapol:v:25:y:2013:i:c:p:222232). However, these studies do not offer a collective assessment of onstreet and offstreet parking. inci2015garage considers the relationship between onstreet parking and offstreet parking by examining price. Our own work uses time as a common metric to compare on and offstreet parking and identify destinations for which it takes less time to park offstreet than onstreet.
2.4 Parking Occupancy Prediction from Transaction Data
The most straightforward method of estimating parking occupancy from transaction data is simply to assume that every driver leaves exactly once her paid session expires and that all drivers pay for parking. fiez2017data and dowling2019modeling
estimate parking occupancy in this way at a blockface level over the course of an hour. They acknowledge the limitations of this method, noting particularly that drivers tend to leave before their paid parking time, leading to overestimation of occupancy. In recent years, statistical and machine learning models have been developed to deal with such issues and predict parking occupancy more accurately using additional data. These include multivariate spatialtemporal models
(rajabioun2015street), unsupervised clustering (means and nearest neighbours) (tamrazian2015my), probabilistic model (yang2017turning), and most notably a series of deep learning approaches (yang2019deep; Zheng2015ParkingAP; Kepaptsoglou2014ExploitingNS). These deep learning approaches rely heavily on the availability of actual occupancy data from sensors and surveys, which indeed is becoming increasingly available. Both yang2019deep and Kepaptsoglou2014ExploitingNS leveraged a model called recurrent neural nets to predict occupancy rates from complete transaction data. Another approach by Zheng2015ParkingAPused the data from SFPark (approximately 2 million blocklevel samples) to construct a deep neural network, comparing performance both to regression trees and support vector machines. In contrast to all of this work, our training data is sparse in two senses. First, our transaction data is not complete: we have access only to a single mode of payment, which comprises about 60% of total meter transactions. Second, the observations used for our ground truth occupancy levels are based on human surveys rather than sensors, giving us considerably less data than needed by the approaches just mentioned; furthermore, this data is not uniformly sampled across different times of day. This paper proposes an alternate deep learning approach for estimating and predicting parking occupancy by combining incomplete transaction data from parking meters with limited inperson counts.
3 Methods
3.1 OnStreet
We construct a simulation of the time it takes to park onstreet by modeling the behaviour of a driver searching for a spot under the assumption that the driver starts at his/her destination. To generate accurate search times, we first need predictions of the availability of parking at each individual block of the city, for every hour of the day. To generate these predictions we use a deep neural network trained to predict occupancy from payment data. In this section, we first give some brief background on feedforward neural networks. We then describe the specific network we construct to solve this problem, and finally, we describe how we use these predictions to simulate search times for onstreet parking.
3.1.1 Neural Networks
Neural networks are a broad class of functions that map inputs to outputs in a complex fashion. These networks are built from a sequence of “layers”, where the output of each layer is fed as the input to the next. Each layer consists of a nonlinear function
applied to a linear transformation of its input. The linear transformation in each layer
is parameterized by a weight matrix,, and a bias vector,
. Thus, a neural network is just a function of the form(1) 
where is the input. Neural networks can approximate any function to arbitrary precision, if the matrices are chosen to be large enough. Given inputs and target values , training the network means finding values of the parameters and for each layer such that the network’s output, is close to the true, known output .
3.1.2 Occupancy Prediction Network
We assume that we are given a partial record of payments made at parking meters in each block face in the city. Inferring occupancy from payment information is not as straightforward as it may seem: drivers may leave before their time is up, in which case payment data overestimates occupancy; alternately, they may overstay or even park without paying at all, in which case payment data will underestimate occupancy. Our goal is to predict the true occupancy of a block as a function of observed payment data for that block.
For each block face and time, our model is given two input values which are derived from the payment data. We augment this with two input values that do not directly depend on the payment data, but relate to the block face in question. The input values are represented as a vector of length 4 consisting of the following values:

The total number of paid parking sessions in the block at the given time;

The total number of paid parking sessions in the block over the 3 hour period before the given time (“popularity”)

The length of the block in meters; and

The predicted time to drive the length of the block divided by the length of the block (“congestion”).
For each block and time, the neural network outputs a vector of length two, whose elements are forced to sum to 1 and are thus interpretable as probabilities. To train the network, we minimize the crossentropy loss between these probabilities and the true, observed occupancy state of the block. In this way, the network learns to approximate the true probability of parking being available in a block at a given time, as a function of the given data. Using the notation of Section 3.1.1, our network consists of an input layer, two hidden layers and an output layer (thus ; the input layer does not count as a layer). The connections between these layers are weight matrices of sizes , , and respectively. Including bias vectors, this fullyconnected neural network is described by
parameters. As a nonlinear function we use ReLU:
. We train the network on ten different random training and validation splits, with the validation set always constituting 20% of the total data, and iterating over the training data 150 times for each split.Once the network is trained, we predict the existence of an empty meter at a given time (and thus whether a driver can park) in any block by simply feeding the model the payment and blocklevel features. Since the model has been trained to reproduce the probability that there will be an available spot, we can use this output directly in our simulation. To evaluate our network’s performance, we compare its results to a logistic regression model as baseline that is given the same input variables our network is given. We evaluate both the network and the regression in terms of accuracy (with threshold
) and crossentropy.3.1.3 Onstreet Search Simulator
A key portion of our simulator models a driver’s search for onstreet parking, based on noisy observations of traffic meter usage. We simulate search time as the sum of three factors: the minimum search time, the estimated time required to drive on nearby streets while searching, and the estimated time required to walk back to the destination.
More specifically, we constructed a representation of downtown Vancouver using OSMnx (OSMnx), a Python package for modeling road networks. The city is modeled as a graph structure: intersections correspond to “nodes” and street segments correspond to “edges” connecting pairs of nodes. We assume that drivers begin searching for parking in the block that contains their destination. Using the probabilities predicted by the neural network, we model the onstreet parking search process for each block face. During the search process, for any edge the vehicle traverses, we say it can park on that block with the probability predicted by the neural network. If it parks, we end the search process. We assume that onstreet parking requires some minimum amount of time, ; this corresponds to the time required for parallel parking and paying at the meter. We set seconds, following shoup2006cruising. If the vehicle fails to park, it moves to the next edge and tries again. Once the vehicle is parked, the driver walks from the parking spot to the original destination; we assume both locations are in the middles of their respective blocks. We obtained driving and walking times from the Google Maps Directions API, assuming that walking times remain constant throughout the day. For a single vehicle, let be the driving times for the blocks the vehicle traverses, and be the walking times for blocks the driver traverses as a pedestrian. Then the total onstreet search time, , is modeled as
(2) 
With each block face and for each time of the day, we use the simulator to produce many samples of the value , and then average to estimate mean search time.
A key consideration in simulating driver search is reasoning about how drivers choose which block to search next. We model this as a random process, where the probability of the driver choosing a block, , depends on four quantities:

, the distance between block and the driver’s destination (drivers are more likely to turn back towards the destination than away, making blocks further away less likely to be selected);

, the number of times the driver has already checked block during their search (each repetition makes a block less likely to be checked);

, the time that has elapsed since the driver last checked this block (the more recent, the less likely the block is to be rechecked); and

, the probability of parking being available on block , as predicted by the neural network model (blocks with more available parking are more likely to be visited). Note that this only incorporates the parking probabilities adjacent to the driver’s current intersection. This is because we assume that drivers do not have accurate predictions about parking probabilities across the whole city, but that drivers can visually inspect blocks adjacent to the intersection to obtain about as much information as given by the predictive model.
We form a linear combination of these quantities,
where we hand tuned the parameters to produce results we considered realistic, setting them to .
Observe that because the quantity
could be greater than 1, or even negative, we cannot interpret it as a probability. Instead, we interpret it as the logodds of choosing this block, and convert it to a probability with the softmax function
This produces a realistic approximation of a driver looking for parking since it (i) discourages drivers from travelling too far from their destinations; (ii) prevents drivers from rechecking the same block over and over; and (iii) incorporates knowledge of occupancy levels on the blocks the driver could reasonably see at the time of their decision.
3.2 OffStreet
We estimate the time it takes to park in the closest offstreet lot for each block face in the city. To do so, we compute the expected times for a driver (1) to drive from a given destination to that lot; to search for a spot in the lot and park; (3) to walk back to their destination. To compute (1) and (3)—taking into account likely traffic at a given time of day—we appeal to historical traffic data via the Google Maps Directions API. To estimate (2), the time spent searching in the lot, we use a Monte Carlo simulation, described next.
3.2.1 Time Spent Searching in Lots
Our simulation of the time spent in a lot is based on entry and exit data collected from several cityowned lots. For simplification, we assume that all lots are onedimensional manifolds: i.e., that they have a single entrance and exit with no branching paths. We assume parking in a lot requires some minimum amount of time . In practice we set seconds. (This may be an overestimate, but if so this only serves to help our argument that lots can often be better for drivers than onstreet parking.) We model the time a driver spends in the lot as influenced not only by the number of vehicles currently in the lot, but also by the number of other vehicles entering and exiting the lot at the same time.
We consider a small unit of time (in practice, 60 seconds) and model the number of cars to arrive and to depart in that unit of time as Poisson distributed random variables with means
and , respectively. The parameters and are determined from the observed entry and exit data for each lot and each hour of the day and for each day of the week, averaged over 12 weeks. We keep track of the state of the lot by updating each spot in each unit of time. When it is time for a vehicle to depart, we select that vehicle uniformly at random among the lot’s occupied spots.We assume that vehicles park in the same order that they arrive, and that each one parks in the first available spot it finds. We assume that drivers will wait seconds for a departing car and then take that spot if necessary. Vehicles need to wait for those in front of them to park. The vehicle to arrive may wait for up to departing vehicles to vacate stalls, or may wait for none, so we assume that on average it waits for half of them. While driving in the lot, we use a constant time as the time it takes to drive past a single parking stall.
Because the minimum time includes paying for parking, and unlike pulling into spots, not all vehicles can always pay at the same time, we assume that the vehicle must also wait 1/2 of the minimum time for the vehicle in front of it, 1/4 of the minimum time of the second vehicle in front of it, 1/8 of the minimum time of the third vehicle, etc.
Then, if vehicles arrive and vehicles depart in this small period of time, the vehicle to arrive waits for seconds, where
(3) 
seconds, where is the spot that the driver parks in according to the simulation, updated based on . For each , we consider as a single Monte Carlo sample, repeat the process 20 times, and average over all samples to determine the total average search time for each lot and each time of day. We used a value of seconds, based on data recording parking activity in a large local lot, averaging the time it takes to drive through the whole lot (while following the posted speed limit) over the lot’s total number of stalls.
4 Data
4.1 Geographic Data
The city of Vancouver offers many publicly available data sets in its Open Data Catalogue (https://data.vancouver.ca/datacatalogue). We made use of two of these: Parking Meter Data contains the location, rates and time limits for approximately 10,000 parking meters in the city, and City Streets associates each meter in the Parking Meter dataset with its corresponding block face.
4.2 Occupancy Surveys
To train our neural network for predicting onstreet parking spot occupancy, we used (nonpublicly available) data from occupancy surveys done by the City of Vancouver on each of the meters on 372 block faces in Vancouver’s downtown area. The survey data consisted of timestamped, meterlevel surveys. However, since the meters in each block face were surveyed at nearly the same time, we combined all surveys of the meters in a block face that occurred in the same 30minute period to obtain a single snapshot of the block face. Overall, each block face was checked on average 8 times, with 4 checks in the morning and 4 checks in the afternoon; after combining meterlevel data, we had a total of 3084 blocklevel occupancy check samples. However, time stamps were missing for 17% of the meterlevel occupancy checks, making those checks unusable. These were distributed roughly evenly across meters, so we had 7 usable samples for most meters.
4.3 Google Maps Data
The Google Maps Directions API can be used to estimate travel time between any two points in a city that are connected by roads. Ideally we would simply tell Google Maps the route to drive and report the time to drive it. However, the number of such calls that can be made to the API is limited. Instead, we used the API to find driving and walking times for each block face in the city by getting the travel time between the centers of the intersections at either end of the block. We then reconstructed travel time between pairs of points in the city by labeling the road graph with these values and directly running a shortest path algorithm (e.g., Dijkstra’s algorithm).
4.4 CityOwned Lot Data
We were given access to proprietary parking data from 21 cityowned lots, containing between 9 and 643 stalls. For each lot we used hourly data from a 3 month period. In each hour the data recorded the number of entries and the amount of time each vehicle paid for. Unfortunately, this did not give us an exact record of when each vehicle left the lot. This problem was particularly pronounced when combined with promotional rates (e.g., a flat rate to park until 6:00 PM). If we naively treated every vehicle as leaving at the moment its parking expired, we would have seen huge artificial spikes at times that represent rate boundaries. To deal with this, we applied a Gaussian smoothing procedure to the departure data for each of these peaks. We then redistributed the departures in the peaks back 12 hours, to account for vehicles leaving the lot at different times, with the quantities distributed to each hour proportional to the probabilities of a lefthalfGaussian distribution with mean at the peak and standard deviation 3.5.
5 Results
5.1 Occupancy Prediction Network
To evaluate the performance of the occupancy prediction neural network, we compare it with a logistic regression model as baseline using cross entropy loss on the validation set. Cross entropy is a measure of difference between two probability distributions; a model with low cross entropy loss does a good job of approximating the true distribution of the data. Under this measure, our network on average outperformed the baseline by 9%: the network achieved average validation cross entropy loss of 0.51 compared to 0.56 for the baseline. We note however that our network was relatively similar to the baseline in terms of validation accuracy, achieving 79% vs 77%. In this case we consider cross entropy loss to be a more meaningful measure of performance, because our model’s core purpose is to predict a probability (the probability that a vehicle can park in a given block face).
5.2 Parking Inefficiencies
Using the search times generated by our two simulators we estimated the time it would take to park both on and offstreet when driving to a destination in each block in the city. Figures 2 and 3 show the total estimated time for parking onstreet and offstreet, respectively. Not surprisingly, the onstreet map (Figure 2) shows it will take a relatively long time to park onstreet in the west end of the city and around the Granville St. area, where meters are less common. Similarly, the offstreet map shows that parking offstreet is quickest when a driver’s destination is near an offstreet lot.
It is most interesting to examine the difference between these two maps. Figure 4 shows how much time a driver could save by parking offstreet, with each block as the assumed destination. Blocks coloured green indicate areas that are at least as accessible from lots as they are from onstreet meters. Most of these areas can be reached about 5 minutes faster by parking offstreet, with some being as much as 10 to 15 minutes faster. In some cases the issue is simply a lack of parking meters on the destination street, which means that drivers must walk some distance regardless of their parking modality. In other areas (e.g., around Granville St., Yaletown, and Chinatown, seen in the centerright of Figure 4) congested roads overlap with areas that are easily accessible from offstreet lots. In these areas searching for onstreet parking can take a long time due to the congestion, but the presence of nearby lots means offstreet parking is relatively quick. These areas represent an opportunity for the city to effect change in the way people use parking resources in the city.
6 Conclusion
While onstreet parking has certain advantages, its overuse has negative side effects that impact everyone in the city. Drivers who are looking for parking occupy valuable road space unnecessarily and also tend to be distracted. Parked cars can obscure pedestrians and cyclists from drivers’ sight. At the same time, many offstreet parking lots have large amounts of excess capacity at times of day when onstreet parking is in high demand.
We examined parking usage on metered blocks and in cityowned, offstreet lots in downtown Vancouver. We used deep learning to predict true onstreet occupancy rates from partial payment and other, blocklevel data. We used Monte Carlo simulation in conjunction with Google Maps driving and walking times to model the amount of time taken to park both on and offstreet, with each block face in the city as the assumed destination. We identified areas where it would be at least as fast for drivers to park in nearby lots as to search the area and then park onstreet.
Since the particular lots we considered are owned by the City, the City has the power to change the way they are operated. Thus, these areas represent a clear opportunity to improve the city as a whole. Curbside space is a valuable resource that modern municipalities can utilize to improve the lives of all their residents. In particular, onstreet parking reduces safety for drivers, pedestrians and cyclists alike by obscuring vision and increasing the number of distracted drivers on the road. What’s more, curbside lanes can be converted to dedicated bike or transit lanes, helping the City of Vancouver maintain its vehicle modeshare targets. Alternatively, these lanes can be converted to parklets or green spaces, making these areas more communityfriendly.
How then can drivers be incentivized to use lots instead of curbside space? One simple way is through better information, either in the form of signage or through a website or app showing off street availability. More overt incentives are also feasible. For the most part, offstreet parking rates in Vancouver are higher than nearby onstreet parking rates. Better aligning pricing and time restrictions between on and offstreet parking could encourage more drivers to move offstreet. Most ambitiously, a reservation system could provide the strongest incentives by enabling fixed pricing and eliminating uncertainty for drivers, allowing them to head directly to a lot from their home. Any of these measures could help the City make better use of valuable onstreet space at little to no cost to drivers.