How to use
Everything you can do on FillTheHole.ca.
Reading the map
The map shows every active pothole in Waterloo Region. Pins are colour-coded by status:
When many potholes are close together, they cluster into a numbered circle. Zoom in or tap the cluster to expand it and see individual pins.
Toggle the ward heatmap from the map controls to see pothole density by ward. Hover a ward to see the councillor's name and the active hole count.
Reporting a pothole
Stay safe. Never stop in traffic or step onto a road to report. Report from the sidewalk or parking lot, or let a passenger report while you drive. No pothole is worth an injury.
Tap Report a pothole in the top-right corner.
- 1 Lock your location. Tap the crosshair icon to use your device's GPS, or search by address and drop a pin manually.
- 2 Pick severity (optional). Minor, Moderate, Severe, or Hazardous. This helps prioritise which holes need attention first.
- 3 Attach a photo (optional). Photos are compressed automatically. They go through moderation before appearing publicly.
- 4 Submit. Your report is logged immediately. It needs one more independent confirmation from a different location before it shows up on the public map.
Confirming others' reports
Walk past a pothole that's already been reported nearby? Submit another report at the same location — the app will detect the match and count your submission as a confirmation. Once a pothole reaches the confirmation threshold (default: 2 independent reports), it goes live on the public map.
Each IP address can only confirm a given pothole once, so duplicate taps from the same device won't inflate the count.
Watchlist
On any pothole detail page, tap Watch this hole to save it to your watchlist. Watched holes appear in a section on the homepage so you can quickly see whether they've been filled.
Your watchlist is stored in your browser's local storage — no account needed, but it only persists on the device and browser you used to save it.
Pothole detail page
Tap any pin on the map, or the pothole list, to open its detail page. From there you can:
- I hit this — signal that you physically drove over the pothole. Hit counts are shown publicly and help surface the most dangerous holes.
- Mark as filled — if you can see the city has patched it, let the community know.
- Contact your councillor — each pothole shows the ward councillor's name and a direct email link pre-filled with the pothole address.
- Share — every pothole has a permanent URL. Share it to Reddit, Bluesky, Facebook, or copy the link to send directly.
If a pothole was recently filled nearby once before and re-opened, the detail page will flag it as a repeat pothole — useful for escalating recurring road issues to the city.
Pothole statuses
Only one report so far. Not yet on the public map. Expires in 14 days if no confirmation arrives.
Confirmed by multiple people. Live on the public map. Waiting for the city to fix it.
Community confirmed the city patched it. Still on the map for accountability tracking.
No fill event after 90 days. Automatically closed to keep the map current.
Push notifications
Tap the bell icon in the top nav to subscribe to browser push notifications. You'll get a ping whenever a pothole in the region gets filled — no app install required, works on Android and desktop browsers that support web push.
Tap the bell again to unsubscribe at any time. Notifications are sent server-side — no personal data is stored beyond the push endpoint your browser provides.
Stats page
The Stats page shows accountability data across the whole region:
- Ward leaderboards and letter grades (A–F) based on fill rate and response time
- Average time from report to fill, across the whole dataset
- Hotspot streets with the most active potholes
- Monthly fill rate trends over time
For journalists & developers
All pothole data is freely available — no API key, no account.
Recent confirmed potholes with coordinates, address, and status.
Full dataset — id, lat/lng, address, status, dates. Opens in Excel or R.
Subscribe in any RSS reader to get notified of new confirmations and fills.
Embed any pothole card on your site via /api/embed/[id].
Returns a self-contained iframe-friendly card.