San Francisco's public file of dispatched calls has a column called agency. The city's own description says it holds one of three values: Police, Sheriff, or MTA. Since April 18, 2023, it has also held a fourth, HEART, on 56,910 rows. One of those calls ended in an arrest. None ended in a police report.
HEART is the city's unarmed street team for non-emergency calls about unhoused people. When it gets the call instead of a patrol car, nobody writes an incident report, because nobody whose job is writing incident reports shows up. That is the point of the program. It is also a change in how crime gets counted, and it is worth understanding before you put a before-and-after chart on a dashboard.
A fourth value in a three-value column
According to ABC7's coverage of the launch in May 2023, HEART (the Homeless Engagement Assistance Response Team) began as a one-year pilot staffed by about twenty-five experienced workers from Urban Alchemy, a group that already had hundreds of workers on the city's streets. It sits below the Street Crisis Response Team, which takes the behavioral-health emergencies. HEART takes the rest.
The rest turns out to be mostly one thing. Here is the query we ran against the Law Enforcement Dispatched Calls for Service: Closed dataset on DataSF. You can run it yourself; it needs no key.
curl -sG "https://data.sf.gov/resource/2zdj-bwza.json" \
--data-urlencode "\$select=date_extract_y(received_datetime) as y, agency, count(*) as n" \
--data-urlencode "\$where=call_type_final_desc='SIT/LIE ENFORCEMENT'" \
--data-urlencode "\$group=y, agency" \
--data-urlencode "\$order=y, agency"Sit/lie calls are complaints about someone sitting or lying on a sidewalk. In 2019 police were the primary agency on 12,976 of them. By 2022 that was down to 3,797. Then HEART arrives, and the police line almost disappears: 285 in 2024, 352 in 2025. HEART took 13,600 sit/lie calls in 2025 alone.
Filter that file to agency='Police', which is a perfectly reasonable thing to do if you trust the column description, and you will find that sit/lie complaints fell by about ninety-seven percent in six years. They didn't. They got a new truck.
Two notes on the HEART rows. Most of them (40,185) carry an onview_flag of HSOC, which the dataset describes as a request that came in through 311 and was routed to the Healthy Streets center, not through 911. And by far the most common disposition is GOA, gone on arrival: 34,127 of the 56,910. We'd be careful reading anything into that. Sit/lie calls are about people who move, and a call that sat in a non-emergency queue will often find an empty doorway.
The funnel was already narrow
Before getting to what diversion does to crime counts, it helps to see how few calls produce a crime record even when an officer goes. In August 2026, police were the primary agency on 39,290 closed calls in San Francisco. Of those, 2,856 closed with the disposition REP, meaning a police report was written. That is about seven percent. Another 898, a little over two percent, closed with ARR, an arrest.
(DataSF's own dataset explainer warns that neither code should be used to count official reports or arrests, and we agree. These are dispatcher dispositions, not the records-unit tally. As a rough shape of the funnel, they're fine.)
For the call types HEART took over, the funnel is narrower still. In the same month, police handled 1,296 trespasser calls. Seven ended in a report and six in an arrest. The big buckets were HAN (handled), GOA, and ADV(advised). Most of police work on these calls was already, in the dataset's vocabulary, showing up and talking to someone.
We think that number is the key to everything that follows. If an officer on a sit/lie call almost never writes a report, then replacing the officer can only remove a small number of reports. It cannot remove a large one.
Denver, and the six-per-person problem
The best-known study of unarmed response is Thomas Dee and Jaymes Pyne's 2022 paper in Science Advanceson Denver's STAR program, which pairs a paramedic with a mental-health clinician. During a six-month pilot in 2020, STAR worked eight of the city's thirty-six police precincts and responded to 748 calls. According to the Center for Health Care Strategies' summary, reports of the targeted low-level offenses (trespassing, drug possession, loitering and the like) fell by 34 percent in the pilot precincts relative to the others. The authors estimated about 1,376 offenses prevented, and in coverage of the study Dee said the drop came without any increase in violent crime.
Andrew Wheeler, a crime analyst who writes at Crime De-Coder, did the division in a 2025 post. STAR served 243 people during the pilot. Roughly 1,400 prevented offenses across 243 people is close to six per person in six months, from a program that is mostly a referral service. Using Cincinnati calls for mental-health, disorder and drug complaints as a stand-in, he found that under five percent led to any criminal-justice contact at all. By that rate, perhaps forty of STAR's 748 calls would have produced a later report or arrest if police had gone instead.
Wheeler isn't against the program. He says outright that sending people to services could be worth doing even if it never moved a crime count. His objection is to the outcome measure. Neighborhood reported-crime totals are the wrong yardstick for a program that touches a few hundred people. He'd rather see the people STAR served matched against similar people it didn't, and followed forward through agency records.
Our San Francisco numbers point the same way. A swap of responder removes the reports that responder would have written, and on these calls that was never many. A large drop in reported crime needs a larger explanation, and the data you can download usually can't tell you which one it is.
Three ways a responder change moves the count.The report that would have been written isn't (mechanical, and capped by the funnel above). Officers freed from low-priority calls spend that time elsewhere, which can raise or lower recorded crime in other categories. And the people served may actually offend less. Only the third is a crime reduction in the plain sense, and a precinct-level count can't separate it from the other two. This is a qualitative ordering, not a measured decomposition.
The San Francisco study says it out loud
On September 1, 2026, PNAS Nexuspublished an evaluation of a different Urban Alchemy program: unarmed practitioners posted on foot at fixed San Francisco intersections, twelve hours a day. (This one isn't HEART and isn't dispatched through 911 or 311 at all.) Forrest Stuart, Caylin Louis Moore and Patrick Janulis compared 41 treated intersections with 583 controls across 63 months using a synthetic control design.
They found significant drops in behavioral-health-related incidents and total incidents, about 1.8 fewer per intersection per month in the daytime model. Property crime didn't move. When they dropped control intersections next door to treated ones, to test for crime simply shifting a block over, the daytime total-crime effect stopped being significant. The day-versus-night comparison held.
What we liked most is that the authors are plain about the measurement. Their outcome is SFPD incident reports, and they write that a drop in reported crime can reflect “changes in how incidents are fundamentally managed,” not just changes in behavior. They also allow that officers may have quietly adjusted enforcement on blocks where practitioners stood. That is the right caveat, and you rarely see it in a paper's own text.
We don't have a view on whether any of these programs works. We do have a view on the charts people will make from them.
What this does to a trend line
Picture a neighborhood dashboard built on an incident-report feed. Somewhere in 2023, low-level disorder offenses on a few corridors drift down. Nothing in the feed says why. There is no flag, no field, no new category. The calls are still happening; they're just going to someone who doesn't file incident reports.
This is the enforcement confound running in reverse. Offenses like trespass and drug possession exist in the data mostly when an officer is present to record them. Take the officer away and the count falls, whether or not anything changed on the sidewalk. It is the same reason we keep warning that a handful of incidents on one block is not a trend: a small, local count is very sensitive to who happened to be writing things down.
The scale matters too. HEART's 1,192 calls in August 2026 sit next to roughly 39,000 police calls the same month. Nobody should look at the national decline (the Real-Time Crime Index has violent crime down 5.9 percent and property crime down 9.5 percent for January through August 2026, across 547 agencies) and reach for civilian responders as the cause. These programs are too small for that. Their effect on the data is local, and it lands on exactly the categories that local dashboards like to chart.
If you build on this data
Here is what we'd do, in rough order of how much trouble it saves.
- Never trust an enumerated field's documentation. Run a
group byonagency,dispositionandonview_flagbefore you write a filter. San Francisco's file documents three agencies and holds four. - Count calls, not just reports, for disorder categories. A calls-for-service file still sees a diverted call. An incident-report file does not. If a city publishes both, the gap between them is information.
- Find the launch date and draw a line on it.Denver STAR started June 1, 2020. HEART's first row is April 18, 2023. Any trend for trespass, loitering, drug possession or sit/lie that crosses those dates needs an annotation, the same way a records-system migration does.
- Keep diverted categories out of composite scores, or weight them down. If a safety score mixes violent offenses with officer-discovered disorder offenses, a responder change will move the score without anything getting safer. We wrote about severity weighting in our SpotScore methodology post.
- Ask the agency which calls go elsewhere. Most cities with an alternative response publish an eligibility list of call types. That list is your filter.
None of this needs a model or a paper. It needs one group by before the first chart, and the habit of asking what a missing row means.
The DataSF column description still says Police, Sheriff, or MTA. The data has been saying otherwise, more than a thousand times a month, for three and a half years.
Access Address-Level Crime Data
Real-time incidents · free A–F Crime Grade · rolling 90-day window · 22,000+ US cities. Normalized and verified — because raw data isn't enough.