← All articles

Five regions, one country: modeling US geography

Geography is one of the easiest things to fake badly. Sprinkle some random cities across a map and you get a dataset that looks national but behaves like nowhere in particular — deliveries take the same time everywhere, every region buys the same mix, and a "revenue by state" map is just noise. A believable distributor has a spatial structure, and we build the whole business on a deliberately simple one: five US regions.

Five regions, exactly

Every geography-aware rule in the generator keys off the same five buckets — Northeast, Southeast, Midwest, Northwest, and Southwest. It's a convention enforced everywhere: any region-keyed configuration must have exactly those five keys, and a validator refuses to start the pipeline if one is missing. That discipline is what keeps the model coherent — there's no corner of the data that quietly forgot about the Southwest.

What the region actually drives

A region isn't a label stapled on at the end; it's a cause that propagates:

The goal isn't cartographic precision — it's that geography means something. A region should change how an order behaves, not just what color a dot is on a map.

Why five and not fifty

Modeling at the state or ZIP level is tempting, but it multiplies the number of parameters you have to keep consistent without adding much analytical value for a mid-market distributor. Five regions is enough resolution to produce realistic regional differences in delivery, mix, and cost — and few enough that every region-keyed rule stays legible and every dashboard breakdown has meaningful sample size. When the demo needs a finer view, revenue still rolls up to the state level for the map; the behavioral model just lives at the regional grain.

The payoff

Because geography is a first-class input, the spatial stories on the dashboards actually hold together: the region with the longest average haul also shows softer OTD and higher freight cost-to-serve, and the revenue map lines up with where the DCs and big accounts are. It's the same principle behind everything in the dataset — a number is only believable when the cause that should have produced it is present in the model.