Blog·
Field notes: the block that lost its street trees to a parking variance

It was a Tuesday when someone finally noticed, and only because they'd parked on that street for twenty years and the shade was gone from where they usually stood waiting for the bus.
Six street trees, all mature, all on the same side of the same block, cleared over about four months. No single event explained it. A restaurant got a parking variance to add six spaces along its side lot. The site plan required a wider curb cut and a sightline clearance the city's own code demands for backing vehicles. Two trees came out for the driveway. A third went because its root flare had heaved the sidewalk and the variance conditions required ADA-compliant paving to the new lot line.
The other three were removed over the following months by an adjacent property owner who, watching the first crew work, figured this was apparently the moment nobody would ask questions.
Nobody did. That's the part worth sitting with.
The parking variance went through the zoning board, which reviews setbacks, curb cuts, and lot coverage. It does not review canopy. The tree removal permits, when they were pulled at all, went through a separate counter, on a separate form, logged by address rather than by block or canopy zone. Forestry staff saw two of the five permits that were filed. The sixth tree, the one removed by the neighbor with no permit at all, showed up nowhere until a field tech happened to drive past for an unrelated service request and radioed it in.
This is not a story about bad actors. The restaurant owner followed the conditions on the variance. The adjacent property owner probably assumed, correctly as it turned out, that enforcement capacity for unpermitted removals on a residential block is thin to nonexistent. The zoning board did its job, which has never included tracking canopy. Everyone involved cleared their own narrow bar.
The block still lost its entire tree line on one side, and the city's citywide canopy number, measured the way it usually gets measured, didn't move enough to register. A loss like that drowns in an average taken across every block in the jurisdiction.
What would have caught it sooner is the same thing that's missing from most planting-target programs: a canopy read fine enough to see one block go from a near-full tree line to bare curb, checked often enough that four months of quiet removals shows up as a trend instead of a mystery. Most departments are running on a consultant survey from three years back, or a citywide percentage that's really an average of blocks that are thriving and blocks that are getting picked apart lot by lot. Averages are good at hiding exactly this kind of thing.
The zoning-permitting gap is probably not fixable from the forestry side alone. Variance conditions get written by planning staff who are thinking about parking counts and ADA ramps, not canopy targets, and that's a reasonable division of labor right up until it isn't. But the detection gap is fixable, and it's the cheaper problem to solve. If you want to know whether a block like this one goes quiet for six months in between your official counts, that's what a block-level canopy layer refreshed on a real cadence is for. It won't stop the variance from getting approved. It'll tell you, within the next cycle, that the block lost its trees, instead of waiting for someone's muscle memory about where the shade used to be.
On weekday mornings, the six parking spaces sit mostly empty. The block gets full sun on that sidewalk now, every hour the restaurant is closed. If your planting-target numbers rely on catching this kind of change before the next grant cycle locks in, it's worth seeing what your own blocks look like between surveys.