Bernal Heights Crime Rate Trends — San Francisco
Bernal Heights is a hilltop residential neighborhood south of the Mission, organized around the open green space of Bernal Heights Park and the cafes and shops of Cortland Avenue. Predominantly single-family Victorian and stucco homes, it draws families and longtime San Franciscans for its panoramic city views and quiet streets.
Eight categories moved in Bernal Heights this April — five as sustained structural shifts and three as single-month below-trend signals. The dominant pattern is a broad, multi-category decline across both property crime and violent crime, not a one-off quiet spell.
Theft from Vehicle, Vandalism, and Burglary all ran below trend this month. The 12-month depth behind those moves is substantial: Theft from Vehicle stands at 109 incidents against a prior-year total of 243, a -55.1% shift, and Burglary is at 89 against 168, down -47.0%. Arson is the one counter-signal — 11 incidents over the trailing 12 months against 7 in the prior year, a 57.1% move on a small base — while every other tracked category is running at or below prior levels.
Notable signals 3
Theft from Vehicle
The past 12 months saw 109 incidents — about 73% below the 403 average from prior years.
Vandalism
The past 12 months saw 130 incidents — about 45% below the 235 average from prior years.
Burglary
The past 12 months saw 89 incidents — about 55% below the 196 average from prior years.
All categories, last 24 months
Each panel: recent monthly count vs. trailing 12-month context. MoM is the most recent month vs. the one before; 12mo YoY compares the trailing year to the year before that.
What's been quietly true for a year
Spikes get attention. Sustained shifts shape policy. These are multi-quarter patterns where the past 12-month total differs meaningfully from the year before — they often precede the baseline resetting.
- Other Larceny has reset to a lower baseline.
The trailing 12-month count is 214, down 51% from 434 the year before. If the trend holds another quarter, it will pull the multi-year baseline down.
- Theft from Vehicle has reset to a lower baseline.
The trailing 12-month count is 109, down 55% from 243 the year before. If the trend holds another quarter, it will pull the multi-year baseline down.
- Burglary has reset to a lower baseline.
The trailing 12-month count is 89, down 47% from 168 the year before. If the trend holds another quarter, it will pull the multi-year baseline down.
- Motor Vehicle Theft has reset to a lower baseline.
The trailing 12-month count is 114, down 37% from 181 the year before. If the trend holds another quarter, it will pull the multi-year baseline down.
What next month likely looks like
Forecasts trained through April 2026, with a likely range we're 95% confident the actual count will fall inside. Categories with too little recent volume — or violent categories at the neighborhood level — show no forecast and are surfaced through signals above instead. See the methodology page for the gating rules.
Aggravated Assault
Too low-volume per neighborhood for a reliable point forecast — see the rare-event and streak-break signals above instead.
Arson
Below the volume threshold for a reliable forecast — too few incidents in recent months to project from.
Burglary
Homicide
Too low-volume per neighborhood for a reliable point forecast — see the rare-event and streak-break signals above instead.
Motor Vehicle Theft
Other Larceny
Robbery
Too low-volume per neighborhood for a reliable point forecast — see the rare-event and streak-break signals above instead.
Sexual Assault
Too low-volume per neighborhood for a reliable point forecast — see the rare-event and streak-break signals above instead.
Theft from Vehicle
Vandalism
How Bernal Heights compares
Peer neighborhoods picked by closest 12-month theft from vehicle volume — a pragmatic v1 of peer matching. Demographic / housing-stock peer matching isn't built yet (we deliberately don't ingest income or race data alongside crime). Volume similarity has the right intuition: “neighborhoods experiencing comparable theft from vehicle levels.”
Haight Ashbury
109 incidents over the past 12 months — 0 below Bernal Heights's 109.
Open page →Lakeshore
111 incidents over the past 12 months — 2 above Bernal Heights's 109.
Open page →Excelsior
106 incidents over the past 12 months — 3 below Bernal Heights's 109.
Open page →Do crime spikes here spill over to adjacent neighborhoods?
When Bernal Heights has spiked other larceny historically (9 events on record), an adjacent neighborhood spiked the same category within 3 months 100% of the time. The strongest-travelling categories sit at the top of the table.
| Category | Spike events | Same-category spillover |
|---|---|---|
| Other larceny | 9 | 100% |
Each row shows Bernal Heights's historical spike events for that category, and how often any of its 8 adjacent neighborhoods spiked the same category within the next 3 months. A high same-category rate suggests a shock that travels (e.g. theft crews moving across San Francisco); a low rate means spikes here tend to be local to the neighborhood. Categories with fewer than 5 historical spike events are listed but their rates are suppressed.
Recurring local terms (last 12 months)
Top terms in incident descriptions for Bernal Heights, excluding generic crime taxonomy. Useful as texture — what kinds of specifics show up here that don't show up elsewhere.
Hour-of-day, day-of-week, and seasonality
Distribution of bucketed incidents in this neighborhood across the full analysis window. Useful for routine context — shopping-strip thefts vs. late-night assaults read very differently when you can see when each typically happens.
How we built this page
Data → Anomalies → Forecast → Page
Incident data is pulled from SFPD's open dataset on DataSF, mapped to 10 NIBRS-aligned categories, and aggregated to neighborhood × category × month.Anomalies are surfaced using strict thresholds (~p < 0.01). Forecasts are Prophet with low-count gating; violent categories at the neighborhood level skip the forecast and show rare-event / streak signals instead.
Spike rule: 12-mo total > baseline mean + 2.5σ AND ≥ 20 incidents AND 6-mo confirms. Drop rule: 12-mo total < baseline mean − 2.5σ AND baseline mean ≥ 20. Rare event: any incident in the last 90 days, no prior comparable in ≥ 5 years.