← All work
Case study · Vacant building research
Project type: Research project, paused

Office IQ: Ranking Which Empty Building Would Lift a Neighborhood Most

How I mapped every parcel in Kern County as one connected system to test a simple idea: that vacancy spreads, and that filling the right vacant building can reverse it.

421,684
parcels mapped and checked, with zero invalid shapes
30M+
connections between neighboring parcels
12,739
aerial images across six years of change
01

At a glance

Office IQ is a research prototype I built for my own coworking business in downtown Bakersfield. Every downtown has empty storefronts and offices. Brokers can tell you what a building is worth. Nobody could tell me which vacant building, once filled, would do the most for the buildings around it, and I wanted to see if data could answer that.

Project
Office IQ, a research prototype for downtown commercial real estate
Question
Which vacant commercial building would lift its neighbors most if it were activated?
Scale
421,684 parcels and more than 30 million connections between them
Build
Public county data, a decade of aerial imagery, a graph model, and a map interface
Status
Paused while I wait on additional parcel data
02

Why one vacant building matters

Anyone who walks a downtown corridor knows the feeling. One dark storefront makes the next one look riskier. One busy coffee shop makes the block feel alive. If that effect exists, it should be measurable, and the empty buildings with the biggest ripple effect are the ones a city, an owner, or an investor should fill first.

In a market like Bakersfield, nobody scores that ripple effect. Commercial real estate tools are built for big cities, and they score buildings one at a time, so a building’s value to its neighbors never shows up.

03

How Office IQ scores a vacant building

I planned Office IQ as 12 sprints across four phases, each phase with a written gate it had to pass before the next one started. The build ran through five AI roles, each with a written charter: a data engineer, a machine learning engineer, a backend developer, a frontend developer, and a product and quality reviewer. I directed the sprints, held the gates, and did the work only a local could do, like labeling which buildings were occupied.

Public county records became a map of 421,684 parcels. Each parcel links to the ones it shares a boundary with and the ones within walking distance, more than 30 million links in all. For downtown parcels, the system also pulled aerial images from six different years between 2004 and 2016, 12,739 images in all, so it could see which properties were improving and which were declining over time.

The core model predicts where a parcel is headed using its neighborhood along with the parcel itself. If that beats a model that looks at each parcel alone, the ripple effect is measurable. On top of the model sits a “what if” engine. For each vacant building, the system pretends it has been filled, reruns the model, and measures how much its neighbors’ outlook improves. That change becomes the building’s Catalytic Activation Score, from 0 to 100.

A web interface shows the scored parcels on a map, with a ranked list and a card for each property.

How the Office IQ score is built
Four steps from public county records to a ranked list of vacant buildings.
Office IQ map that scores each vacant building
The map interface: scored parcels across Bakersfield with a ranked list. Parcel numbers and addresses are blurred, because these scores come from models that have not yet passed their accuracy bar.
04

Getting the data right first

Most of the value in a project like this is in data you can trust. Before I trained any model, a quality review checked the full parcel dataset.

Check Result
Parcels loaded 421,684
Difference from an independent county source 0%
Invalid parcel shapes 0
Missing, malformed, or duplicate parcel IDs 0
Connections between parcels 30,493,078

The review wrote down every gap it found. One type of street connection was too slow to compute and got deferred. Two planning layers overwrote each other on import. A city data source returned the wrong region and was skipped. The review also caught a quieter trap. The county’s public map services silently skip records if you download them page by page the usual way, so every download was built to use a method that cannot skip.

05

How the testing was set up

A model that predicts neighborhoods can fool you easily. If a parcel’s next-door neighbor is in the training data, the model can look accurate just by memorizing the block, so I built the testing to prevent that.

I grouped parcels into half-kilometer squares and held out entire squares for testing, so the model never saw a test parcel’s neighbors in training. I set the downtown Chester Avenue corridor aside completely and never used it in training, as a final test on the area that matters most. And the plan required the models to clear a set accuracy bar, and the rankings to match past activations, before anything was built on top of them.

The first models did not clear that bar, and I recorded that as a miss. Until the models clear it, the rankings are a research result and shouldn’t be used to decide where to invest.

06

Where the vacant building research stands

Office IQ is paused. I built the data pipeline, the models, the “what if” engine, and the map interface, and the pipeline ran end to end. The models need more information about each property, such as ownership and assessed value, and that dataset has not arrived yet. When it does, the work picks up at the gate it did not pass.

07

What I’d take from it

If you’re thinking about putting a model on your own data, spend the early effort on the data and write down every gap you find, because a clean dataset will carry a plain model further than the reverse. Test the model on cases it has never seen, the way it will be used. And decide what “good enough” means before the numbers come in, so a short result gets recorded as short.

Have a question your data should be able to answer?

I build data and AI systems for small businesses and local organizations, from cleaning up the data you already have to building models that answer a specific question. The testing is set up before the results come in, and you get a clear record of what the model can and cannot tell you. If you have data you think could be telling you more, let’s talk.