Skip to main content
Lightning Jar - Web Studio Lightning Jar Wordmark

Findings No. 54

Google Maps bills for each `new google.maps.Map()`, not for minutes of use

Panning, zooming and live marker updates are free; creating the map is what costs. Four pages created one on load, so every page view was billable before anyone touched it.

CCRTA Website Web Platform verified Google Maps JavaScript API, July 2026 pricing

With the Google Maps JavaScript API, what you pay for is creating a map. Once it exists, panning, zooming, updating markers and polling for live positions cost nothing extra.

On the CCRTA website, four pages called new google.maps.Map() as soon as they loaded, so every page view cost money before a rider had touched the map. At $7 per 1,000 map loads after 10,000 free each month, we reconciled our own counts exactly against the totals in Google's Cloud Console. The forecast was about $1,440 a month, and most of it traced to one automated client loading those pages thousands of times a day. Our 15-second live bus poll cost nothing at all.

The fix was to stop making a page load a billable event. Each map now renders a cached static image first and creates the interactive map only after the visitor is verified or interacts. Rate-limiting the poll would have saved nothing, because the poll was never billed.

The general rule: find out exactly which call a vendor bills before optimizing usage. When billing is per instantiation, the fix is to instantiate less often, and in particular to stop instantiating for traffic you have not verified.

Receipt: CCRTA Website maps cost sprint, July 2026 (docs/2026-07-maps-cost-sprint.md; FINDINGS.md, "Google Maps / cost"). The full story is in our article "The Maps Bill That Wasn't Riders".

Ask Eljay

Ask about the studio's work, research, packages, or writing. A few starters:

Answers come from this site's own content and link their sources. For anything that matters, email hello@lightningjar.com.