How we helped people avoid parking tickets and find open spots — Design Case study
--
I am Product Designer at SpotAngels — mentored by Jonah Jones, Lead designer of Google Maps.
Overview
At SpotAngels, we are building a community-based app which helps you find open spots and avoid parking tickets.
When we detect that a user leaves a parking spot, we display an open spot on the map. And because we know where her car is parked, we can send her a notification before the parking duration expiration.
In this design case study, we’ll explain how we designed those services.
The problem
When we talk to users, there are two recurring problems:
- They often have parking tickets
- It’s hard to find an open parking spot
How can we help users avoid parking tickets and find open spots?
Metrics we want to increase with this project
↗ Activation
↗ % users selecting “Always” for the Location Permission
↗ Number of open spots
Solution
- Parking detection
The primary solution is to detect when a user finds a spot and when she leaves her spot.
→ If we know when she finds a spot, we can notify her when it’s time to leave her car.
→ If we know when she leaves a spot, we can alert other users where there is an open spot. - Crowdsourcing
To improve the number of open spots displayed in the app, we can also ask users after they parked how crowded is the street.
Design Challenges
- Ask for touchy permissions
To be able to detect when and where a user parks and leaves, we always need access to her location and to her motion & Fitness sensor.
We also need her permission to send push notifications. - Let users edit their car location
Sometimes the GPS location is wrong. In that case, we could send a wrong parking notification and display a wrong open spot.
We have to let the user correct manually her position. - Ask users for spot availability on streets
The more users we have, the more open spots we detect. We also are a community-based app, so the community can tell us when a street is full or empty.
Onboarding — Ask for touchy permissions
To be able to detect when a user parks or leave, we need to:
- Always have access to the user location — On iOS, if a user gives the ‘While using the app’ location, we can’t detect any park.
The location helps us to know where the user is. - Always allow Motion & Fitness sensor
The sensor helps us know when the user drives or walk and detect when she is in her car. - Push Notifications
Notifications are useful to alert a user when it’s time to leave to avoid tickets.
My goal as a designer was to make the onboarding process as smooth and unintrusive as possible. Here’s our solution.
The onboarding checklist
The first onboarding screen is a checklist. Users can select features they want to enjoy.
→ For users, it’s the first step of an account configuration.
→ For us, it’s a user survey that indicates which feature is the most important.
Ask for permissions
Depending on the answer, we ask for permissions. Obviously, we don’t need any permission if you only want to see free and cheap parking.
Classic prompt
For the access to push notification and Motion & Fitness sensor, we just prompt a classic alert view.
Fake prompt
But for the location access, we do something different.
Because we need the ‘Always allow’ access, we prompt a fake alert with a fancy blue button.
→ If users tap on ‘Only while using the app’ or ‘Don’t allow’, we display an error alert.
→ If users tap the fancy blue button, we display the real iOS alert.
Thanks to this fake prompt, 45% of users select Always for the Location permission.
Set/Unset
Users have direct feedback when permission was given or not.
If users want to have access to the feature, they press again the button and land on the ‘second chance’ screen.
Second chance
The second chance is tricky because we can’t prompt an iOS alert a second time. We ask to go to Settings and manually change the permission.
The onboarding is done
Congrats!
Everything is set and a big blue button pops. Users can finally join the community.
Let users edit their car location
Our goal is to save users from parking tickets.
But if we park a car on the wrong side of the street due to a GPS issue, we will send a wrong notification.
That’s why we ask users to confirm their parking location.
If the position is wrong, they can edit it and park at the correct spot.
Then, we can send them a notification prompting them to move their car, and we display an open spot on the correct location.
Ask users for spot availability on streets
When users select a spot close from their position or when we detect a park, we ask them how crowded the street is. It helps us provide parking recommendations.
70% of the times users were asked about occupancy after a confirmed park, they answered. It allowed us to provide way more open spots for the community.
Impact
The global experience allowed us to push our activation up to 54%.
Project Learnings
Base yourself on user needs, not assumptions
We do research, analyze data, we talk to users and prove our assumptions. We have empathy for users and remember that what they ask for isn’t always what they need.
Done is better than perfect
We don’t build perfect experiences because our time is precious and we want to provide the maximum impact.
We always ask ourselves how to obtain 80% of the value with 20% of the work. We are not famous or beautiful, we are efficient.
I would like to thank the members of the amazing SpotAngels team, who helped me design this experience: Hamza, CEO — Youcef, Product Manager — Jonah who brilliantly mentored me during all the design journey.
Thank you for your reading.
If you are curious about SpotAngels, download the app! If you are curious about me, visit my website