A computer-implemented method implemented by a mobile computing device , the method comprising: obtaining a current location of the mobile computing device ; obtaining information for a plurality of merchant locations that are within a threshold distance of the location of the mobile computing device ,; determining a number of nearest merchant locations that are nearest to the location of the mobile computing device among the plurality of merchant locations , wherein the number of nearest merchant locations is less than a number of merchant locations of the plurality of merchant locations , and wherein each of the number of nearest merchant locations are associated with respective local geofences that enclose respective geographic regions that are at least a first size; determining a triggering geofence that encloses a geographic region that includes the number of nearest merchant locations ; determining that a size of the geographic region enclosed by the triggering geofence is larger than a threshold; in response to determining that a size of the geographic region enclosed by the triggering geofence is larger than a threshold, determining a second size for local geofences , wherein the second size is larger than the first size; generating a respective updated local geofence for each of the number of nearest merchant locations , wherein each updated local geofence encloses a geographic region that is at least the second size; receiving, at the mobile computing device , an indication that the mobile computing device is within the updated local geofence for a particular merchant location of the number of nearest merchant locations ; providing a notification, on the mobile computing device indicating proximity of the particular merchant corresponding to the particular merchant location ; determining that the mobile computing device has exited the triggering geofence; and in response to determining that the mobile computing device has exited the triggering geofence, repeating the steps above. obtaining a current location of the mobile computing device ; obtaining information for a plurality of merchant locations that are within a threshold distance of the location of the mobile computing device ,; determining a number of nearest merchant locations that are nearest to the location of the mobile computing device among the plurality of merchant locations , wherein the number of nearest merchant locations is less than a number of merchant locations of the plurality of merchant locations , and wherein each of the number of nearest merchant locations are associated with respective local geofences that enclose respective geographic regions that are at least a first size; determining a triggering geofence that encloses a geographic region that includes the number of nearest merchant locations ; determining that a size of the geographic region enclosed by the triggering geofence is larger than a threshold; in response to determining that a size of the geographic region enclosed by the triggering geofence is larger than a threshold, determining a second size for local geofences , wherein the second size is larger than the first size; generating a respective updated local geofence for each of the number of nearest merchant locations , wherein each updated local geofence encloses a geographic region that is at least the second size; receiving, at the mobile computing device , an indication that the mobile computing device is within the updated local geofence for a particular merchant location of the number of nearest merchant locations ; providing a notification, on the mobile computing device indicating proximity of the particular merchant corresponding to the particular merchant location ; determining that the mobile computing device has exited the triggering geofence; and in response to determining that the mobile computing device has exited the triggering geofence, repeating the steps above. <EOS>