The rules

How a court earns a page.

Accuracy comes first. A court is published only when Google, the venue's own site, and a city or parks page agree on the name and the address: street number, street, city, and ZIP, word for word. If any of the three is missing, the court stays off the site. If they disagree, the clash goes to a review queue. Nothing is guessed.

The three sources

  1. Google Places, from a field-masked Places API (New) text search or a details call for a new Place ID.
  2. The venue's own website.
  3. A city or parks department page.

Place IDs are stored permanently. Facts taken from the venue site and the city or parks page are stored permanently. Google's other fields are kept with the date they were fetched and are not treated as a permanent copy. A Google rating is shown only for 30 days after it was fetched, and it is labeled as a Google rating. It is not marked up as our own review.

Indoor and outdoor

Places has no indoor field. We compare an indoor or outdoor signal from the Google name and types with what the venue site and the city page say. The badge appears only when at least two of those agree. Mixed is allowed when the sources agree the place is both. We do not print "not confirmed." The name and address still need all three sources.

Open play

Open play is the exception. Google and city pages often never mention it. When the venue website says "open play" or "drop-in," the court page says "Open play mentioned on venue website (checked date)" and links to that page. If the city page denies open play while the venue claims it, the note is hidden and the clash is queued.

What never shows up

Indexing

City pages join the sitemap at two verified courts. Indoor and open-play filters join at three results. A state page joins once it has at least one verified court. Admin, search results, thinner pages, and closed places stay out of the sitemap and carry a noindex tag.

Refresh

A weekly job reruns discovery searches and requests Place Details only for Place IDs that are not already on file. It will not call Google until spending is explicitly approved and an API key is present. Each run has a hard cap on calls. The pipeline is documented in the project README.

Photographs

A group of adults playing pickleball on outdoor courts at The Villages, Florida.
Players on the courts at The Villages, Florida. Photo: TheVillagesFL, CC BY-SA 4.0. Wikimedia Commons.