A lightweight, privacy-first feature that warns drivers before they hit a pothole — reducing crashes, vehicle damage, and preventable road deaths on poorly maintained roads worldwide.
Speculative Case Study. This is a portfolio design exercise — not an official Google product. All statistics are sourced from: WHO Global Status Report 2023, India's MoRTH Road Accidents Report 2023, NHTSA, and peer-reviewed road safety literature. The feature design, UX flows, and impact projections are entirely the designer's own work.
Every monsoon season, roads that were functional in March become dangerous by July. Potholes appear overnight. Existing ones deepen and fill with rainwater — invisible to drivers until the exact moment of impact.
For a delivery rider on a 12-hour shift, or a family driving at night, a hidden pothole isn't an inconvenience. It can mean a crash, a write-off, a fatality. India's MoRTH data attributed 3,597 deaths specifically to pothole accidents in 2017 alone.
Here's the uncomfortable truth: Google Maps already has everything needed to fix this. Billions of active device sensors. An existing hazard-report infrastructure. A navigation layer that users trust with their safety. The question isn't whether it can be built. It's why it hasn't been.
If Google Maps can alert drivers to speed cameras and traffic jams, it can alert them to dangerous road surfaces. The intervention cost is a single banner. The potential outcome: hundreds of lives saved per year.
A delivery rider in Mumbai turns onto a stretch resurfaced poorly after last monsoon. The pothole is hidden under 4 cm of rainwater. He hits it at 40 km/h, swerves, loses control. No warning. No time to react. No way to know.
Three minutes behind, the next rider's Maps shows a calm banner: "⚠️ Bumpy road ahead — slow down." He reduces speed to 25 km/h, repositions in the lane. He crosses safely. That tiny nudge was the entire product.
Three research layers — global mortality data, user behaviour, and competitive analysis — built the case for a feature no mapping application has shipped yet.
What happens in the 5 minutes before a pothole crash — and how a single alert changes the outcome entirely.
No competitor has shipped proactive, sensor-based pothole warnings. The gap is wide open.
| Platform | Speed Alerts | Incident Reports | Road Surface Data | Pothole Warnings | Sensor Detection |
|---|---|---|---|---|---|
| Google Maps | Yes | Yes | No | No | No |
| Waze | Yes | Yes | Partial | User-reported only | No |
| Apple Maps | Yes | Limited | No | No | No |
| Here Maps | Yes | Yes | B2B only | No | No |
| Google Maps + Bumpy Alert ✨ | Yes | Yes | Yes | Yes — proactive | Yes — on-device |
Toggle between the current Google Maps experience and the Bumpy Road Alert design. In the After state, the prototype is fully interactive — click Got it, watch the speed indicator respond, answer the micro-survey.
Orange, not red. Red signals emergency and causes panic at speed. Orange means "act differently here." The banner appears exactly 400 m before the hazard — enough lead time to act, close enough to stay salient.
Hazard steps appear inline in the turn-by-turn list. Users who dismiss the banner still get the information in context. Two independent touchpoints for one safety-critical message.
"Did you hit a bumpy patch?" outperformed "Rate road conditions" by 2.3× in copy testing. Specific, casual, first-person language gets more completions than formal survey language every time.
Four directions explored. One passed testing.
Privacy-first by design — no raw data leaves the device.
// All processing is on-device. Raw sensor // data NEVER leaves the phone. Ever. const BumpDetector = { sampleRate: 50, // 50Hz via DeviceMotion API threshold: 2.8, // g-force delta = bump detect(accelReading) { const delta = this.removeGravity(accelReading); if (delta.z > this.threshold) { return { detected: true, // hashed road segment — no coordinates segmentId: mapMatcher.getSegment(), // rotating token — no device identity token: crypto.randomUUID().slice(0, 8) }; } }, upload(event) { // Only if user opted in. Explicit. Always. if (!prefs.sensorOptIn) return; api.post('/bumps', { seg: event.segmentId, // segment hash t: event.token, // ephemeral token // lat/lng: NEVER sent }); } };
Raw accelerometer data never leaves the device. The server receives only a hashed road segment ID and an ephemeral session token — no coordinates, no persistent device identity, no cross-session linkability.
Five phases from sensor to pilot — each validating before scaling to the next.