How accurate are IP-based location filters?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

You set up geolocation-based segmentation, you're sending region-specific content, and then someone in Sydney gets your New York event invite. What happened? Probably an IP accuracy problem.

IP-based location data works by matching a subscriber's IP address against a database that maps IP ranges to geographic locations. At the country level, it's genuinely pretty good. Most IP geolocation databases hit 95-99% accuracy for country-level identification. That's reliable enough to use for broad regional targeting.

The further you zoom in, the less accurate it gets. At the state or province level, accuracy drops to roughly 70-80%. At the city level, you're looking at 50-70% on a good day. Zip code or postal code targeting via IP is unreliable enough that you probably shouldn't build any campaign logic around it.

Why does it fall apart at finer resolution? A few reasons come up constantly:

  • ISP and carrier routing. Your subscriber in Austin might connect through a regional hub in Dallas. The IP says Dallas. They're in Austin.
  • VPNs. More people use them than you'd expect, and not just the privacy-conscious ones. Corporate VPNs are everywhere. Someone working from home in Chicago might appear as a New York IP all day.
  • Mobile networks. Mobile carriers aggregate traffic through centralized gateways. A subscriber in a small town can show up as a major city 200 miles away.
  • Dynamic IPs. Consumer internet connections often rotate IP addresses. The location tied to an IP today might not match where it was assigned last time that subscriber opened your email.
  • Email clients with privacy proxies. Apple Mail's Mail Privacy Protection (MPP) routes open tracking through Apple's proxy servers, which means any location data from opens in Apple Mail is essentially Apple's server location, not your subscriber's.

So what should you actually do with this? Use IP geolocation as a starting signal, not a source of truth. It's fine for country-level content decisions, like switching currency displays or adjusting a general send time. For city-level personalization or anything with a physical address, supplement it with data your subscribers give you directly.

The most reliable location data is declared preference, meaning you asked and they told you. A preference center field, a signup form that asks for city or zip code, or a post-purchase address on file will always beat what you can infer from an IP. If you're doing serious regional targeting, treat IP data as a fallback, not a foundation.

Not sure how much of your open data is already skewed by Apple Mail proxies? Our free Email Header Analyzer can help you dig into what location signals are actually coming through.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Paste your setup above and get honest advice on how far you can trust your location data

I read this on the Email Almanac about IP-based location filter accuracy. I want to understand how much I can trust the location data in my email platform and whether my regional segmentation is reliable. Please give me specific guidance based on my setup: 1. How to evaluate whether my location data is accurate enough to act on 2. Which types of campaigns are safe to run with IP-only location data vs. which need declared location data 3. How to spot Apple Mail privacy proxy distortion in my open data 4. What to ask subscribers to collect better location signals My details: - Email platform/ESP: e.g. Mailchimp, Klaviyo, HubSpot - What I use location data for: [e.g. send-time optimization, regional promotions, event invites, currency switching] - How I currently collect location: IP only / signup form / both - Audience size and rough geography: e.g. 20,000 subscribers, mostly US - Whether I use a preference center: yes / no / not sure

Edit the yellow boxes, then send to the AI of your choice.