Interactive parking tool for San Francisco that tells you whether it's currently safe to park on any given street, how long you have, and how risky the spot is — based on official street cleaning schedules, citation history, and neighborhood safety data.
Street colors update live as you scrub through time, so you can plan ahead.
All data comes from DataSF, San Francisco's open data portal. No API key required — all endpoints are public.
| Dataset | DataSF ID | What It Provides |
|---|---|---|
| Street Cleaning Schedule | yhqp-riqs | Official blockface-level cleaning windows (day, hours, week-of-month) |
| Parking Citations | ab4h-6ztd, pvgt-pd5y, wwf5-khdm | Historical tickets used to infer undocumented cleaning schedules |
| Parking Meters | nwbb-fxhp, 28et-5khy, rqzj-sfat | Meter locations and active/free hours by day |
| 311 Street Cleaning Requests | vw6y-z8j6 | Resident complaints used as secondary cleaning schedule signal |
| Police Incidents | wg3w-h783 | Vehicle break-ins and theft patterns near a pinned location |
| Traffic Crashes | ubvf-ztfx | Collision data for area risk scoring |
| Abandoned Vehicles / Tows | wr8u-xric, i98e-djp9, ktji-gn4e | Density of abandoned cars in the area |
| Residential Permit Zones (RPP) | hi6h-neyh | Permit-only hours and zone numbers |
| Construction Permits | sftu-nd43 | Active street work that may restrict parking |
| Special Events | 8x25-yybr | Events that affect nearby parking availability |
| Parking Garages | mizu-nf6z | Nearby garages with hours and access info |
The Street Cleaning Schedule is the primary source. All other datasets are used for risk scoring, inference, and supplementary layers.
The app looks at when street cleaning is scheduled and compares it to when you plan to park. If the cleaning happens before you arrive or after you leave, you're fine. If there's any overlap — even partial — the street is flagged as unsafe. Streets with no schedule data on record are treated as safe.
| Color | Status | Condition |
|---|---|---|
| Red | Active | Cleaning is happening right now |
| Orange/Yellow | Upcoming | Restriction starts within the viewing window |
| Green | Passed | Restriction already ended today |
| Blue | Park Safe | No overlap with your full parking window |
| Time Until | Color |
|---|---|
| < 30 min | Red — critical |
| < 1 hour | Orange-red |
| < 2 hours | Orange |
| > 2 hours | Yellow |
On weekends, all streets display blue — most SF street cleaning is Monday–Friday.
Not every street gets cleaned every week. Some are only cleaned on the 1st and 3rd Monday of the month, for example. The app figures out which week of the month it currently is and only shows restrictions for streets that are actually scheduled to be cleaned that week.
Many streets are not in the official cleaning schedule dataset. For these, the app infers a likely schedule from parking citation history:
This means a street with no official schedule but a clear pattern of Monday morning tickets will still show a warning.
| Factor | Points |
|---|---|
| Cleaning is actively happening | +4 |
| Cleaning starts in < 1 hour | +3 |
| Cleaning starts in < 2 hours | +2 |
| Active RPP (Residential Permit) zone | +2 |
| ≥10 nearby citations in the last 90 days | +1 |
| ≥6 nearby vehicle break-ins | +1 |
| Score | Level |
|---|---|
| ≥7 | Critical |
| ≥4 | High |
| ≥2 | Medium |
| <2 | Low |
For a pinned location, the app scans a 200-meter radius and evaluates nearby incident density:
| Category | High | Medium | Low |
|---|---|---|---|
| Vehicle break-ins | ≥6 | ≥3 | <3 |
| Parking citations | ≥10 | ≥4 | <4 |
| Abandoned vehicles | ≥4 | ≥2 | <2 |
| Police incidents | ≥8 | ≥3 | <3 |
This is displayed separately from legality — a street can be technically legal to park on but still be flagged high risk based on neighborhood patterns.