People often get surprised to learn that we build our own parking maps at SpotAngels. How can a small startup build a map that Google Maps have not already built? Here’s a short story of how we got to this point, and what enabled us to scale our parking maps to hundreds of cities.
The SpotAngels story
We started building SpotAngels the day we got our car towed in San Francisco. We had to pay $579 to get it back, which was the price of the car.
The first version of SpotAngels was a simple app that would save the car location when the phone disconnects from the car bluetooth speaker. It would then send us reminders when we needed to move the car.
To make it work magically, we needed to get the street parking rules information for each street in the city. We tried to use the city open data but it was not accurate. So we thought about crowdsourcing parking signs, similar to what Waze and Open Street Map (OSM) did for roads and road names.
To jumpstart the process we took the first parking sign pictures ourselves and started building the street parking map of San Francisco. We made the app public on the App Store, shared it with a few friends and to our surprise, we started receiving parking sign pictures. SpotAngels was born.
Building the first parking maps
At its core, a map is a list of objects with coordinates. As an example, you can think of Yelp’s restaurant map as a list of restaurants with their location.
To build a map, you generally need:
- a base map
- a map editor
- humans who will extract information from images to add it to the map.
The base map generally contains roads and points of interests. We wanted to fully control our base map, so we decided to use Open Street Map (OSM). It is an open source and fully editable base map. Mapbox made it easy to integrate and customize the OSM base map thanks to their developer-friendly apis and styling tools.
We started using an editing tool called QGIS. It was open source and fairly easy to use. Nevertheless we quickly realized that we needed to customize it to streamline the mapping process, so we built the SpotAngels Map Editor. The automation we put in place helped us scale from 10,000 spots added a month to 63,000 spots added a month for the same amount of mapping hours.
The crowdsourced parking sign pictures were great to extract parking rules but were not sufficient to localize the parking spots. We needed street level and satellite imagery. We used the satellite imagery offered by Mapbox and open street level imagery offered by various providers like Mapillary.
The last part was to create a community of map makers to build the maps. We had the choice between 2 systems:
- An open mapping system like OSM where anybody can edit the map. In such a system, any edit is published and the last edit becomes the default one. Map makers usually do it to build a map they want to use and are not incentivized with money. Steve Coast, The founder of OSM, shares some of those map makers stories in his book – the book of OSM.
- A closed mapping system like Google Maps where up to several thousands of map makers are hired to build the map. Mapping companies do it to control the quality of the data and have a predictable way to expand their maps.
In the case of SpotAngels, the data we were inputting had to be accurate. Any error could lead to a $579 fine, we knew it all too well 😅. So we started with a closed mapping system building the maps ourselves. We spent 6 months building parking maps in the main US cities to jumpstart the process and then hired map makers to help us out. The closed model worked but was rigid, not easy to scale and did not allow us to involve to the broader SpotAngels community.
This made us design a new mapping system that is open to all and based on monetary incentives to ensure data quality.
Introducing an Open Incentivized Mapping System
We needed an open mapping system because SpotAngels is a community at its core and everybody willing to help needs to be able to contribute. We believe that local communities are the ones who can fix parking at the city level and that our mission is to provide them with the tools to do so.
Contributors are the ones bringing value to the community. We wanted to design a system where they got rewarded for their efforts. For this reason we created a subscription in the SpotAngels app for premium features and allocated 50% of this money to a community pool that rewards contributors. More about this here https://www.spotangels.com/blog/annoucing-spotangels-plus/
We needed a review process to guarantee accurate maps.
To do so, we designed a system to grant rewards for valid contributions and penalties for wrong contributions. The system also computes a reputation score for each participant and grants them special roles.
Here is a simplified version of how it works:
- A map maker makes a contribution.
- This contribution is anonymized and has a chance to be reviewed by a reputable map maker that we will call reviewer.
- The reviewer indicates if the contribution is accurate or not.
- If a contribution is accurate, the map maker gets a reward. Otherwise, they get a penalty.
- Each reviewed contribution has a chance to be validated by a highly reputable map maker that we will call validator.
- The validator indicates if the contribution is accurate or not.
- If the validator disagrees with the reviewer, a penalty is applied to the reviewer.
- The system assumes that the most reputable participant is right by default. Nevertheless there is an appeal process where a collegial decision is made by the SpotAngels Administrators – who are the equivalent of Supreme Court justices 🙂
- Given that we only validate a percentage of the contributions, there is a risk to have inaccurate contributions that won’t be reviewed. To reduce this risk, we group contributions in sessions. Sessions that have inaccurate contributions dynamically generate additional reviews.
- When is a session is fully reviewed, the reputation scores of the map makers, reviewers and validators are updated.
- The reputation score determines the roles of each participant: map maker, reviewer, validator. Those roles have an impact on the rewards earned by contribution and the percentage of contributions that are reviewed. Participants with higher roles earn more per contribution and have less of their contributions reviewed.
Evaluating design choices
When designing a mapping system, one of the big things to balance is speed and cost versus perfection. One needs to understand what is important to the use case tackled by the maps. For example, building a parking map does not require centimeter level accuracy but it does require extremely precise parking rules.
A more robust approach to build the map would have been to have all the contributions reviewed and use a consensus-based approach to review contributions. For example, have several reviewers review the same contribution and pick the decision with the most votes. Nevertheless, the cost of such a review process would have been too high for our use case.
For our use case, we chose to pick samples and use the reputation system described above to review them. This, along checks and balances like the appeal process, proved to be a great solution.
Looking to the future
We are excited to share the mapping system that enabled us to rapidly scale SpotAngels to hundreds of cities. This is an important step for us in finally solving the problem that we set out to solve the day we got that $579 fine – to help people all around the world find parking, avoid fines and minimise pollution when looking for parking.
We hope it will help other teams build maps faster and make the world a better place, one mapping contribution at a time 🙂
Thanks to Jonah Jones, Aboud Jardaneh, Mehdi Sqalli, Eric Sauvegrain and Alexis Svinartchouk for providing early feedback on this post
 “The Book of OSM”, Steve Coast https://www.amazon.com/Book-OSM-Steve-Coast-ebook/dp/B017J93QPK
”Apple Has ~7,000 Fewer People Working On Maps Than Google”, Nicholas Carlson, Business Insider, 2012. https://www.businessinsider.com/apple-has-7000-fewer-people-working-on-maps-than-google-2012-9