A DMA is a TV market defined by Nielsen, a CBSA is a commuting area defined by the federal government, and an MSA is just the larger kind of CBSA, so "DMA vs MSA" is really a choice between two maps built for different jobs. Use DMA for anything you buy or test by market and CBSA for anything physical, and for store decisions use neither, because a metro of 19.5M people says nothing about who can reach one store.
The two maps are both built from whole counties, but they do not nest, and the same city name can mean quite different areas on each. Here is the comparison, with the decision each one is for and where it breaks.
| Map, and who defines it | How many | Built from | Use it for | Where it breaks |
|---|---|---|---|---|
| DMADesignated Market AreaNielsen (licensed, proprietary) | 210, reviewed every year | Whole counties, grouped by which local TV stations get the dominant share of viewing | Buying TV, CTV, radio and local media; choosing and holding out geo-test markets | Follows viewing, not shopping. 97 DMAs cross a state line, and the big ones reach well past the metro of the same name. |
| CBSACore Based Statistical AreaOMB, published by Census (free) | 925 in the 50 states + DC: 387 metro, 538 micro. Last revised July 2023 | Whole counties tied to an urban core by commuting | Anything physical: wholesale account planning, delivery promises, demand screening per 1k people | A county is a huge unit next to how far people travel to a store. Not an urban/rural split. |
| MSAMetropolitan Statistical AreaOMB (a type of CBSA) | 387 of the 925 CBSAs | A CBSA whose urban core has 50k+ people. Micropolitan areas (10k to 50k) are the other 538 | Same as CBSA. Use MSA when you want metros only and are happy to drop ~14% of the population | People say MSA when they mean the whole CBSA list, so small-city orders fall into a blank. |
| CSACombined Statistical AreaOMB | 184, incl. Puerto Rico | Adjacent CBSAs with meaningful commuting between them (New York + Bridgeport + Poughkeepsie, etc.) | Rolling metros up for a regional read; closest OMB unit to a large DMA | Still a commuting map. Not every CBSA belongs to a CSA, so the column has gaps. |
| Trade areaDrive-time or walk-time ringYou, from a routing API | One per location, usually 10 / 15 / 20 min | Road or footpath travel time from a door, not a radius and not a county | Store openings, closures and cannibalisation; who can actually reach the door | Needs maintenance and a routing API. Rings overlap, so two sites can be one decision. |
Where they disagree
A DMA and a metro that share a name are not the same place, and the gaps sit exactly where a lot of DTC customers live. The New York DMA takes in Fairfield County, CT, so Greenwich is a New York TV household, but on the OMB map it belongs to the Bridgeport-Stamford-Danbury metro. Princeton, NJ goes the other way: it is in the Philadelphia DMA, because Mercer County watches Philadelphia stations, but it is its own Trenton-Princeton metro and about an hour's drive from either city. Vancouver, WA is in Washington on a state view and in Portland on both of the others.
Those are not edge cases. 97 of the 210 DMAs cross a state line, and because DMAs follow viewing rather than commuting, the big ones reach further out than the metro of the same name (New York's DMA holds ~6.5% of the US population, its metro ~5.8%). So if a media test is measured by DMA and the results are read against orders cut by metro, the two will disagree on the fringes, and the fringes are where a holdout test is usually decided. Pick one, and put both on the ZIP master table so you can see when a row would move.
The map you cut by should be the map the decision is made on: TV is bought by DMA, stores are reached by travel time, and neither is a state.
For stores, the metro is the wrong unit too
A CBSA tells you a county is economically tied to a core; it does not tell you whether anyone can get to your store. Both maps are county-based, and a county is a huge unit next to the distance people will actually travel to buy something. The same 15 minutes covers very different numbers of people depending on where the store is:
That is why retail and wholesale teams end up with custom maps: a drive-time or walk-time area (an isochrone) around each existing or candidate location, usually 10, 15 and 20 minutes by car in the suburbs and 10 to 15 minutes on foot in dense cities, built with a routing API such as Mapbox, Google or OpenRouteService rather than a radius. The useful outputs are population and median income inside each ring, your existing orders per 1k people inside it (which is the demand signal for a new store), and the overlap between rings, since two candidate sites that share 60% of their 15-minute area are one decision, not two. The metro column still earns its place for wholesale account planning and delivery promises, where the question really is "which commuting region", but it is the wrong unit for "where do we open".
Made-up example of how the two reads diverge: a brand's orders per 1k people are highest in the New York metro, so a store "in New York" looks obvious. Cut the same orders by 15-minute walk rings and the density is in two or three neighbourhoods in Brooklyn and lower Manhattan, with the rest of the 19.5M-person metro at or below the national average. The metro read says open in New York. The ring read says which block, and roughly how many of your existing customers are already within a walk of it.
Getting web behaviour onto the DMA map
Orders arrive with a shipping ZIP, so they join to DMA directly; sessions do not, and that is the part most teams skip. The fix is IP geolocation on your own first-party event stream: a database such as MaxMind's GeoIP2 City returns a postal code and a lat/long with an accuracy radius for each session, and you join that postal code to the same ZIP master table your orders use, so sessions and orders land on one DMA column. Two practical notes. GeoIP2 still returns a metro_code field, but MaxMind marks it deprecated and no longer maintained, so derive DMA from the postal code instead. And IP location is imprecise at ZIP level (MaxMind's own framing is 67% confidence within the accuracy radius, and mobile carrier traffic often resolves to a hub city), which matters much less at DMA level because DMAs are large. Calibrate it anyway: on orders you have both the IP-derived DMA and the shipping-ZIP DMA, so measure the match rate and use it as the confidence you put on session reads.
Once sessions sit on the DMA column, two things get easier. Geo holdout tests and TV or CTV flights can be read on leading indicators days before orders settle, so sessions, new-visitor share, add-to-cart rate and branded search by DMA against the holdout markets, which is usually enough to tell a dead flight from a slow one, or a scale-up that bought new people from one that bought the same people twice, weeks before the order read settles. And for ongoing buying, DMA-level site behaviour becomes a second view next to platform-reported results, which is useful precisely because the platform cannot see it. Neither replaces the incrementality read on orders; they give you more confidence, earlier, in the same decision.
What the two reads look like
The definitions only matter because of the two decisions on the other side of them: whether to scale spend in a market, and where the next store goes. Here is what each read looks like once orders and sessions sit on one geography table (illustrative numbers). On the media side, a brand doubles CTV spend in two DMAs against two holdouts. The order lift comes back positive but wide, which on its own is a coin flip on scaling. The site behaviour by DMA settles it: sessions rose ~40% but new-visitor share and add-to-cart rate fell in both test markets, so the extra spend mostly bought the same people more often. That is the saturation signature, and it is the reason to read the lift at the low end of its range and hold, with more confidence than the order number alone could give.
On the store side, start with the stores you already have: how buyers reach each one by walk, transit and drive time, which is the question "are people commuting to visit us" turned into a number. The city stores and the suburban store show opposite patterns, so each candidate site is scored on the ring that matches its type, on people and existing online customers inside it, and on how much of that ring an existing store already covers. That ranking is one input next to rent and footfall, but it is the one that tells you a site with strong demand is also sitting on top of a store you already have.
| DMA | Spend | Sessions | New vis. | ATC rate | Orders |
|---|---|---|---|---|---|
| Dallas-Ft. Worth | 2x | +41% | -9 pts | -1.8 pts | +6% |
| Denver | 2x | +37% | -7 pts | -1.5 pts | +4% |
| Atlanta | 1x | 0 | 0 | 0 | 0 |
| Minneapolis | 1x | 0 | 0 | 0 | 0 |
| Candidate | People | Buyers | Overlap | Read |
|---|---|---|---|---|
| Fort Greene | ~95k | ~560 | 4% | Best |
| Hoboken | ~70k | ~380 | 3% | Strong |
| Park Slope | ~88k | ~490 | 38% | Overlaps |
| Bethesda | ~24k | ~90 | 0% | Weakest |
The store read is the one most brands have never seen for their own business, because it needs the shipping ZIPs, the store transaction ZIPs and a routing API in one place. Once it exists, the same table answers the follow-ups: which neighbourhoods over-index online but have no store, and whether the people driving 30 minutes to a store are the same households buying online in between.
What to do about it
Put DMA, CBSA, CSA and state on one ZIP master table (how to build it) and key every geo report off it, so the same order is never a New York order in one report and a Bridgeport order in another.
Match the map to the decision. DMA for media buying and geo tests, CBSA for wholesale, delivery and demand screening, division or state for trend reads and tax. Say which one a chart uses in its title.
For store decisions, build drive-time or walk-time rings per location and report population, income and existing orders per 1k people inside each. Treat overlapping rings as one decision.
Geolocate sessions to postal code and join them to the master table so site behaviour reads by DMA. Measure the IP-to-shipping match rate on orders and quote it with any session-based read.
Refresh on the publishers' calendars. Nielsen reviews DMA county assignments annually, and OMB revised the CBSA list in July 2023, so pin the vintage you use and re-check joins when either moves.
If you'd rather have this built and maintained inside your own warehouse, including the session-to-DMA join, it is usually a 1-2 week piece of work for us. Happy to walk through how we'd approach it for your setup.
Common questions
Is an MSA the same as a CBSA?
An MSA is one of the two kinds of CBSA. Core Based Statistical Areas are either Metropolitan (at least one urban area of 50,000 people or more, 387 of them) or Micropolitan (an urban area of 10,000 to 49,999, 538 of them). So every MSA is a CBSA, but ~60% of CBSAs are micropolitan areas, not metros.
Can a DMA span more than one metro?
Yes, routinely. The New York DMA covers the New York-Newark-Jersey City metro plus Bridgeport-Stamford-Danbury, Kiryas Joel-Poughkeepsie-Newburgh and Kingston, among others. The reverse also happens: the Philadelphia DMA includes Mercer County, which is the Trenton-Princeton metro. Keep both as columns rather than assuming one rolls up into the other.
Which should I use for geo incrementality tests?
DMA, in almost every case, because that is the unit TV, CTV and most paid platforms let you target and exclude, and a test has to be run on a map you can actually hold out. Read the results on orders by shipping ZIP rolled up to the same DMA list, and use IP-geolocated sessions as the early indicator, not the verdict.
Is a 10-mile radius good enough for a store trade area?
Usually not. Ten miles is 10 minutes on a suburban highway and 45 minutes across Manhattan or Los Angeles at rush hour, so a radius treats those as the same market. Drive-time and walk-time rings from a routing API cost little to build and follow how people actually reach a store.
We build and maintain governed geography dimensions inside your own warehouse, so orders, sessions and media spend all cut by the same DMA, metro and trade area.
See how it works โCounts are Nielsen (210 DMAs, reviewed annually) and OMB Bulletin 23-01 (387 metropolitan and 538 micropolitan statistical areas in the 50 states and DC, 184 combined statistical areas including Puerto Rico). The 15-minute figures are rough arithmetic from 2020 Census county densities, with the reachable area taken as ~55% of the crow-flies circle; they are illustrative, not measured trade areas.