1. A method comprising: obtaining, by a mobile device, a set of geo-fences; maintaining a first subset of the geo-fences as an active subset of geo-fences and a second subset of the geo-fences as an inactive subset of geo-fences; establishing and monitoring an envelope geo-fences that excludes the inactive subset of geo-fences; detecting the mobile device has moved to a new location proximate to the envelope geo-fence, wherein proximate to the envelope geo-fence is measured based on the new location being within a predetermined distance of the envelope geo-fence or the mobile device having crossed the envelope geo-fence to reach the new location; and in response to detecting the mobile device has moved to the new location proximate to the envelope geo-fence, moving one or more geo-fences between the active subset of geo-fences and the inactive subset of geo-fences to produce a new active subset of geo-fences and a new inactive subset of geo-fences.