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.
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".