Notes

The zip code I almost cut

In the autumn I recommended cutting a zip code by ninety percent.

The case was clean. Low average job value, weak return over a four week window, spend that would obviously do better somewhere else. This is routine work. You look at geography, you find the areas that are not paying for themselves, you move the money. I have done it a hundred times.

We did not pull the trigger. I cannot tell you it was because of a principle. Something about it felt wrong, and rather than argue for it I let it sit and said we would revisit with more data.

The following year that same zip code closed out at 47 completed jobs, $80,717 in revenue, and a 15.9x return.

The math was not wrong

This is the part worth sitting with. I did not make an arithmetic error. Every number in the original analysis was correct.

Four weeks of data from a business with high ticket values and a long booking-to-completion cycle is not a small sample. It is a misleading one. In that category, one job can be worth $30,000. A four week window in a slow month might contain zero of those. The same window a season later might contain three. Neither window is lying. Neither one is telling you what the market is worth.

The math was right. The window was wrong.

Four weeks of data tells you what happened in four weeks. It does not tell you which areas carry your business.

What makes this failure mode nasty

Short-window geographic cuts are seductive for three reasons.

They always find something. Slice any account finely enough and some slices will look terrible, purely from variance. The analysis never comes back empty, so it always feels productive.

They look rigorous. There is a table. There are numbers in the table. The numbers are correct. Nothing about the output signals that the foundation is thin.

They are hard to disprove. Once you turn a zip code off, it stops generating data. You will never find out you were wrong, because you removed the mechanism that would have told you. The decision erases its own evidence.

That last one is why I think this is the most under-discussed mistake in paid media. Most bad decisions eventually announce themselves. This one just quietly becomes the new normal.

What I do now

Three rules, all of them a direct consequence of this.

Match the window to the sales cycle, not to the reporting period. If a job takes three weeks to complete and the ticket sizes are lumpy, four weeks of data is one or two events. I want a window long enough that a single slow month cannot look like a dead market. For high ticket home services that is usually 90 days minimum, often a full year.

Volume protects. Any area with meaningful completed job volume stays on, regardless of what the efficiency metrics say this month. If the work is genuinely happening there, the problem is my measurement or my targeting, not the market.

Check the CRM before you cut the ads. This one has saved me repeatedly. I once had a list of nine zip codes to exclude. Cross-referenced against actual job data, four of them were among the company’s strongest revenue territories. The ads were failing there. The market was not. Those are completely different problems and they have completely different solutions, and the ad platform cannot tell you which one you have.

The wider point

I keep this one written down because it is the cleanest example I have of being correct and wrong at the same time.

Everything about the original analysis was defensible. If someone had reviewed it, they would have approved it. The failure was not in the execution, it was in a premise I never examined: that the window I happened to pull was long enough to mean something.

Now, before any cut, I ask one question. Not “is this number bad.” Instead: how many completed jobs is this conclusion resting on, and what happens to the conclusion if two more land next week?

If the answer is that it flips, I do not have a finding. I have a sample size problem wearing a finding’s clothes.

All notes