bloomz
← All posts

September 3, 2026 · Bloomz Team

Why a City Platform Should Work From the Household, Not the Resident

School software organizes everything around the student. Cities that borrow that model end up with a list of whoever happened to sign up. The unit that makes a city's work make sense is the address — and a household record is what turns a signup list into a service map.

Why a City Platform Should Work From the Household, Not the Resident

When a small city buys a resident engagement platform, it usually inherits a data model built for something else. Most of these products started life as mass notification systems, so the thing they know about is a phone number. Some started as 311 tools, so the thing they know about is a ticket. Very few of them know about an address, which is unfortunate, because an address is what almost every service a city delivers is actually organized around.

Water goes to an address. Trash pickup happens at an address. A code case is opened against an address. A rebate program, a boil-water notice, a street resurfacing schedule, a flood zone, a voting precinct, a utility service area — all of it attaches to a place, and only incidentally to whichever person at that place got around to signing up for alerts.

What breaks when the resident is the unit

Say a city sends a boil-water notice to the north service area. If the system’s unit is the resident, the send goes to everyone who registered and listed an address the system could match. The people it misses are the ones you would most want to reach: the household where only one person ever signed up and that person is out of town, the renter who moved in last month, the family whose account lists the address from two moves ago.

Now say that household calls about the notice. The clerk who takes the call is looking at a person record, so the previous contact — the code case from last spring, the utility rebate application, the neighbor’s report about the drainage ditch — is scattered across three different people who happen to live at the same place, if it is connected to anyone at all. Nobody has the obvious view, which is: here is the address, here is what we have sent it, here is what it has asked us for.

This is not a reporting inconvenience. It is the difference between a city that can answer “did that neighborhood get the notice” and one that can only answer “how many messages did we send.”

Why cities end up with the resident model anyway

Partly because of where these products came from, and partly because the school-software heritage runs deep in this category — including ours. A school’s unit genuinely is the student. Everything a school does is organized around a child: attendance, grades, behavior, a plan, a bus route. Guardians matter because they are attached to a student.

Take that model to a city and it fails immediately, because a city has no student. It has residents, and residents move, and they live together, and the person who receives a service is often not the person who signed up for the app. The temptation is to substitute “resident” wherever “student” used to be and ship it. That produces software that works — it sends messages, it takes reports — but that cannot answer the questions a city manager actually has.

What a household record does

A household record is a first-class record for an address: the address itself, resolved to real coordinates, the residents linked to it, and the city’s history with that place. Three things follow from having one.

Coverage becomes visible. When households are geocoded and plotted against the alert zones a city has drawn, you can look at a zone and see the addresses inside it, not just the count of accounts whose text field matched. A zone with two hundred households and forty registered residents is a coverage problem you can see and go fix, with a mailer or a door-hanger campaign, instead of a gap you discover during the emergency.

Continuity survives turnover. People move; addresses don’t. A record attached to the household keeps making sense when one resident moves out and another moves in, which is exactly when a resident-keyed system quietly loses its history.

Service context arrives together. A clerk pulling up a household sees the place and its people at once. That is the view the work actually needs, and it is nearly impossible to reconstruct from a person-keyed system after the fact.

One more thing worth saying: geocoding an entire city’s addresses should not require a mapping contract. The United States Census Bureau operates a free, public geocoder built for exactly this purpose, and a small city’s address book fits comfortably inside what it will do. A platform that charges a city for coordinates it can get from a federal service is charging for plumbing.

Language matters here too

There is a smaller version of the same mistake in the words a product uses. Software built for schools says “parent” everywhere, and when it gets sold to a city, it keeps saying “parent” — in the roster, in the filters, in the role picker, in the invitation email. A city employee reading “invite parents” while they add residents to a utility notification list is being told, gently and constantly, that they are using someone else’s tool.

Bloomz for Cities says citizen. Not as a cosmetic relabel of one screen, but everywhere the platform names the people it serves, because a product that borrows a school’s vocabulary usually borrowed its data model too, and residents can tell.

Where this sits in Bloomz for Cities

Households are now the record underneath the rest of the platform: they carry the addresses that alert zones target, the places BeHeard reports attach to, and the residents who show up in groups, forms, and calendars. Addresses geocode themselves through the Census geocoder as they arrive, and every household plots on the same map your zones are drawn on.

The test for any of this is simple and worth applying to whatever platform a city is evaluating: pick a street, and ask the software who lives there and what you have sent them. If the answer takes a spreadsheet export and an afternoon, the unit is wrong.