Greenness Scoring

Weighting canopy, open space, and impervious surface in one score

If you've pulled canopy percentage, open space share, and impervious ratio for a set of neighbourhoods, you've probably hit the same wall: three numbers, one listing page, and no obvious way to collapse them into something a user can scan in half a second. Averaging them feels arbitrary. Picking one and ignoring the other two feels worse. Here's a way through it that holds up when someone on the product team asks why Maple Heights scored higher than Birchwood.

Why a straight average doesn't work

The three components don't measure the same thing, and they don't move together. Canopy cover tells you about tree shade and summer heat. Impervious ratio tells you about runoff, drainage load, and how much of a parcel is roof, driveway, or pavement. Open space share tells you about land that isn't built on at all, which can be a park, a golf course, a retention pond, or a gravel lot waiting for permits.

A neighbourhood can have generous open space and almost no canopy, like a new subdivision with wide lawns and three-year-old saplings. Another can have dense canopy over small lots with barely any open space, like a 1920s streetcar suburb. If you average the three raw percentages, you flatten these into one number and lose the distinction entirely, and two very different neighbourhoods end up with the same score for different reasons.

There's also a double-counting problem. Impervious surface and canopy are often inversely correlated within the same parcel: pave over a lot and the canopy usually drops with it. If your weighting treats them as independent signals, you're partly counting the same underlying land-use pattern twice.

A weighting approach that survives a review meeting

Start by deciding what the score is standing in for on the listing page. If the point is "does this block feel green and shaded when you walk it," canopy should carry more weight than open space, because a golf course two blocks away doesn't shade your front porch. If the point is closer to "is there usable outdoor space nearby," open space share matters more and canopy becomes secondary.

Once you've picked the emphasis, normalize each component before you weight anything. Don't weight raw percentages straight off the imagery. Canopy cover of 35% means something different in a desert metro than in the Pacific Northwest, so rescale each component to a 0-100 index relative to the comparison set you're actually scoring, usually the metro or the portal's listing market, not a national baseline. Skipping this step is the most common reason a weighted score ends up biased toward whichever region happened to anchor the scale.

With normalized components, a simple linear blend is usually enough: assign a weight to each of the three, make sure they sum to 1, and keep impervious ratio's weight negative or invert it before blending, since lower impervious share is the better outcome. Write the weights down somewhere a colleague can find them later. Weighting schemes get changed between releases and nobody updates the record of what changed, and that gap is the first thing a reviewer asks about when a neighbourhood's score moves year over year.

One more thing worth building in: a flag for when the three components disagree sharply, high open space but low canopy and high impervious, say. That combination usually means a lot in the area that isn't park or forest at all, and it's worth a manual look before the score goes live on a listing page.

If the weighting logic above sounds like more plumbing than your team wants to own, it's worth looking at a score that already blends these three inputs and hands back both the composite number and the components behind it, so you can re-weight later without re-deriving canopy, open space, and impervious ratio from scratch. Worth a look if building the pipeline yourself isn't where you want to spend the quarter.

Start a pilot

← Back to the blog