A few weeks ago, a new Parking Difficulty icon started showing up in Google Maps 9.44 beta in some cities in the United States, then Google officially announced it and specified where it's available. It also said that the estimate is "based on historical parking data," similar to how traffic and popular times and visit durations are calculated, but it didn't go into a lot of details. Now those details are further clarified in a post on the Google Research Blog.

The difficulties of calculating parking availability stem from the many, many factors that can influence the equation: time and day and weather and holidays/events, permit or illegal parking in park-meter areas, vacant spots with paid park-meters from cars that left early, parking lots with multiple levels and different structures, and so on. Even with these issues accounted for, there's the false data coming from private/gated parking spots, taxis dropping users who look like they immediately found a parking and reached their destination, and bus stops showing up in the data sets as popular parking spots.

The team's approach was two-tiered. First, they relied on user feedback through questionnaires that asked how long it took to find a place to park. Second, they used Machine Learning from users who share their location data to aggregate info on parking difficulty, taking into account all the challenges mentioned above and basing it on a "fingerprint" of movement that denotes people circling around a location for a parking spot.

"Fingerprint" of a user circling for a parking spot.

There are more explanations in the blog post, from the choice of linear regression to the thought process, expectations, and surprises. But in the end, the result is a parking difficulty model that fluctuates with time and day and takes into account most of the variables and false positives and negatives. You can read more in the source link below.