Geofencing, explained
It is how Life360 tells your family you got to school, and it is also why that message sometimes arrives ten minutes after you did.
Every "arrived at school" and "left work" notification you have ever received came from this, and understanding it explains a lot of otherwise confusing behaviour.
The short version: a geofence is a circle around a place, registered with iOS by an app, and iOS wakes the app when your phone crosses the edge. The app is not watching the circle. The operating system is, and almost everything odd about geofencing follows from that.
What it is
A geofence is a virtual circle around a coordinate. An app hands iOS a centre point and a radius, and iOS takes over. When the device crosses that boundary, the operating system wakes the app and tells it.
The important part is who does the work. The app is not watching you. It is asleep, and iOS is doing the monitoring using systems that are running anyway.
In Apple terms this is region monitoring. An app hands Core Location a centre coordinate, a radius in metres, and a flag for entries, exits, or both. The registration outlives the app: it survives being swiped away and it survives a reboot. You can cross the line with the app out of memory, and iOS will start it in the background for long enough to act. That is why it needs Always permission.
How the phone knows without watching
The obvious question is how iOS notices a crossing without running GPS all day, since that would flatten the battery before lunch.
It does not. Most of the time the phone has a rough idea of where it is from sources already running: the cell tower it is registered to, and the Wi-Fi networks in range. Rough is plenty when the answer is "nowhere near any of your fences". Only when that position drifts close to one does precise positioning earn its cost.
Apple does not publish the thresholds, and they have changed between iOS versions. The shape is stable, the constants are not.
Why the alert is late
This is the most common complaint about it and it is deliberate design rather than a bug.
Firing on the first reading that crosses a boundary would produce constant false alarms, because positions are noisy and one bad fix near an edge would trigger it. So iOS waits for confirmation before deciding a crossing really happened. It costs a few minutes and it saves both battery and a great deal of wrong notifications.
A parent seeing "arrived at school" ten minutes after arrival is watching the system work correctly.
A second delay stacks on the first, and it is nothing to do with iOS. Once woken, the app has to tell a server, and the server has to push a notification to somebody else. The time printed inside the alert is usually closer to the truth than the time it landed.
It is not symmetrical either. Arrivals are noticed sooner than departures, because arriving means stopping, and a stationary phone well inside a boundary is easy to be confident about.
Why it sometimes fires when nobody moved
The opposite failure is stranger, and more alarming to whoever receives it: a "left home" alert at three in the morning from a phone that spent the night on a bedside table.
That is the same noise problem from the other direction. A phone sitting still does not report a fixed point, it reports a position that wanders a few metres, and if the wander crosses a boundary the fence is doing exactly what it was told. Wi-Fi positioning can make it worse, because the position lands wherever the location database believes those networks live, sometimes a couple of hundred metres off.
The fixes are unglamorous: make the fence bigger than feels necessary, and put the place in the middle of it rather than near the rim.
The limits nobody mentions
- Twenty regions per app. An app that seems to track more places is swapping them in and out based on where you are.
- Always permission is required for it to work with the app closed, which is most of the point.
- Radius has a floor. Very small fences fire unreliably, because GPS noise is larger than the fence.
- It is a circle, and only a circle. A fence around a school covers the houses across the road as well, and there is no way to draw the shape you actually meant.
- A phone that is off reports nothing. Flat battery, no signal, airplane mode: no crossings, and no alert announcing that the crossings have stopped.
The twenty region cap quietly shapes products. A family tracker with five people and four places each is well over it, so the app juggles: keep the nearby fences registered, drop the distant ones, swap them back as you travel. Which means the fence for somewhere you had not been in weeks may not have been registered at the moment you turned up.
Where else you meet geofences
Family tracking is the version people notice. The mechanism is everywhere.
- Reminders. "Remind me when I get home" is a geofence with one subscriber.
- Shortcuts. Arriving and leaving are triggers, which is how a phone flips to a work Focus at the office.
- Work software. Clock-in and delivery apps use it to avoid asking for a continuous position, which is the more invasive option. More in what an employer can see.
What it means for privacy
Geofencing is more privacy-preserving than the alternative, which is genuinely worth saying. The app learns "they crossed this boundary" rather than receiving a continuous stream of your position.
But it only holds if the app is only geofencing. An app with Always permission can do both, and most family-tracking products do exactly that: geofences for the notifications, plus periodic position reporting for the map.
Be precise about what "learns" means, though. A crossing is a boundary and a timestamp: a small fact on its own, a large one in bulk. Enough arrivals and departures at the same coordinates and an app has your working hours, your commute, and which nights you did not come home, with no continuous track anywhere in it.
The permission screen is the only real control, and it is coarser than the problem. There is no setting that says "watch these two places and nothing else", only Always, While Using, Once and Never, and geofencing needs Always. What you get instead is visibility: Location Services lists every app and its level. What each level actually allows is its own page.
What is documented and what is not
Some of the above is written down by Apple and some of it is inference, so here is the line.
Documented: the twenty region cap, the Always requirement, and iOS relaunching an app in the background for a region event. Observed often enough to state plainly: the lateness, the asymmetry between arriving and leaving, and the false crossing from a phone that never moved.
Not tested, and I will not round it up: the exact confirmation distance and delay iOS applies, and how any given family-tracking product decides its own places. None of them publish whether they lean on iOS region monitoring, compare positions on their own servers, or both. From outside, a late alert looks identical either way.
What a simulated position does to a fence
We build a location spoofer, so read this section knowing that.
A geofence has no opinion about where a coordinate came from. It measures a position against a circle. If the position iOS reports is a simulated one, that is what gets measured, and the app is told about a crossing that did not happen, or told nothing about one that did.
What follows is arithmetic. A jump large enough to be unrealistic can cross several fences in one step and fire them all at once, and it is the burst, not any single alert, that reads as wrong to whoever is looking. Same argument the detection guide makes at length, from another direction.
Practical consequence: a location that never crosses a boundary never fires an alert. This is why a held position produces silence rather than a "left home" notification, and why an unrealistic route can produce a burst of them.
Frequently asked questions
What is geofencing?
A geofence is a virtual boundary around a place. An app registers it with the operating system, and iOS wakes the app when the device crosses it, so the app is told you arrived without having to watch you continuously.
Why are geofence alerts late?
iOS deliberately trades speed for battery. It confirms a crossing before waking the app rather than firing on the first reading, so a few minutes of delay is normal behaviour rather than a fault.
How many geofences can an app monitor?
iOS limits an app to 20 monitored regions at once. Apps that appear to track more places usually swap them in and out based on where you are.
Does geofencing drain the battery?
Much less than continuous tracking. That is the entire reason it exists: the system does the monitoring efficiently and only wakes the app at the moment something happens.
Can I be geofenced without knowing?
Only by an app you granted location permission to, and Always access is required for it to work while the app is closed. iOS lists which apps have that under Location Services.
Try PinDrift
A real free trial: no card, no account. $9 a month, $60 a year, or $70 once.
Download PinDrift $9/mo, $60/yr, or $70 once