Patent Description:
Document <CIT> represents relevant prior art.

Some implementations described herein include techniques and arrangements for dynamically reconfiguring geo-fences to identify merchants that may be of particular interest to users. In some instances, the techniques may define a geo-fence for a particular user based on a variety of information, in order to identify merchants that may be of interest to the user and that are located within proximity to the user. The geo-fence may be defined based on purchase history, places that are frequented by the user, a mode of transportation, a navigation or transportation route, user preferences, or a variety of other information. For example, a geo-fence may encompass locations the user is likely to visit (e.g., in view of previously visited locations) or locations that the user is able to visit (e.g., due to a current mode of transportation). Information regarding an identified merchant may be displayed or otherwise output to notify the user of nearby merchants that may be of interest.

To find merchants, the user may utilize an electronic device to request information from a service provider regarding merchants that are in proximity to the user. The request may also specify a desired attribute for the merchants, such as a particular rating, category of items, price range, and so on. In response to receiving the request, the service provider may determine a current location of the electronic device. The service provider may also determine one or more portions of a geographical region that surrounds the current location of the electronic device based on information related to the user or the geographical region. The one or more portions of the geographical region may each include a perimeter that defines a geo-fence. The service provider may then identify merchants that have establishments located within the one or more portions of the geographical region, such as restaurants, gas stations, hotels, clothing stores, and so on. The service provider may provide information regarding the merchants to the electronic device of the user, so that the user may identify merchants that are located within proximity and that may be of interest to the user. Although in some instances the techniques are described as being performed by a service provider, the techniques may alternatively, or additionally, be performed by an electronic device associated with a user or any other computing device.

As one example, suppose a user that is currently located in a downtown region is interested in finding a restaurant for dinner. The user may interact with an electronic device to request information regarding restaurants in the downtown region. In this example, the user provides input requesting locations of four-star restaurants. The electronic device sends the request to a service provider, which identifies merchants that may be of interest to the user. The service provider may utilize various types of information to identify one or more portions of the downtown region that may be of interest to the user. The service provider may then identify four-star restaurants that are located within the one or more portions of the downtown region and send information about these restaurants to the electronic device of the user. The information may be displayed or otherwise output to the user via the electronic device.

In one illustration, the service provider may identify the one or more portions of the downtown region from locations that have been most frequented by the user (e.g., places that have been visited more than a threshold number of times). For instance, if the service provider determines from purchase history, location information, or otherwise that the user visits a particular plaza in the downtown region multiple times a week, then the service provider may provide information about four-star restaurants that are located at the particular plaza. Further, if the service provider determines that the user avoids crossing a bridge to purchase food, then restaurants that are located across the bridge may not be identified to the user, even if those restaurants are located relatively close to the user (e.g., within a particular distance).

In another illustration, the service provider may identify one or more portions of the downtown region, and associated restaurants, from information about how the user is traveling. For instance, if the user is using a particular mode of transportation, such as an underground transit system (e.g., subway), then the service provider may provide information to the user about four-star restaurants located within a predetermined proximity to stations of the underground transit system (e.g., subway stops). Alternatively, or additionally, the service provider may utilize a speed or direction of travel of the user and/or a navigation or transportation route (e.g., route in a mapping service, highway path, etc.) to identify the one or more portions of the downtown region and merchants located in those one or more portions.

In yet another illustration, the service provider may identify one or more portions of the downtown region, and associated restaurants, from current conditions of the geographical region. For instance, if the current weather conditions include rain, then the service provider may identify merchants that are located indoors (e.g., located within a mall or covered plaza) or located in relatively close proximity to the user. Further, if there is a relatively large amount of traffic, then the service provider may identify one or more portions of the downtown region, and associated merchants, that are located in relatively close proximity to the user. The service provider may also reference a current time of day or year and/or events occurring in the downtown region. In yet further illustrations, the service provider may identify one or more portions of the downtown region, and associated restaurants, from a variety of other information.

By determining one or more portions of a geographical region from various types of information, the service provider may intelligently identify merchants that may be of interest to a user. This may ultimately enhance the user's experience in finding nearby merchants. Further, by intelligently identifying one or more portions of a geographical region, and associated merchants, the techniques may reduce the amount of input provided by the user and output to the user to search through merchants in which the user is interested (e.g., avoid the user from further specifying the types of merchants that are of interest). This may conserve battery life and/or processing resources.

In many examples discussed herein, a service provider may intelligently identify merchants based on objective factors, such as locations a user has previously visited, locations a user is able to visit due to a mode of transportation, and so on. Here, the merchants may be identified without determining a level of interest in the merchants. However, in other examples a more subjective approach may be taken that determines a level of interest in the merchants.

For discussion purposes, some example implementations are described below with reference to the corresponding figures. However, implementations herein are not limited to the particular examples provided, and may be extended to other environments, other system architectures, other types of merchants, and so forth, as will be apparent to those of skill in the art in light of the disclosure herein.

<FIG> illustrates an example environment <NUM> for dynamically reconfiguring geo-fences to identify merchants that may be of particular interest to users. For example, the environment <NUM> may enable a service provider <NUM> to determine one or more portions of a geographical region that surrounds one or more users <NUM> (hereinafter "the user <NUM>"). The service provider <NUM> may then send information to the user <NUM> regarding one or more merchants, from among a plurality of merchants <NUM>(<NUM>)-(N), that are located within the one or more portions of the geographical region. In particular, the information regarding the one or more merchants may be sent to one or more electronic devices <NUM> (hereinafter "the electronic device <NUM>") employed by the user <NUM>. As illustrated, each of the plurality of merchants <NUM> may be associated with a point-of-sale (POS) device <NUM> to engage in various transactions of items with customers and perform other processing. The service provider <NUM>, the electronic device <NUM>, and/or the plurality of POS devices <NUM> may communicate via one or more networks <NUM>.

A merchant may include any business engaged in the offering of goods or services for acquisition by customers. In many instances, a merchant may offer the goods or services for acquisition in exchange for compensation received from customers (e.g., users). Actions attributed to a merchant may include actions performed by employees or other agents of the merchant and, thus, no distinction is made herein between merchants and their employees unless specifically discussed. In addition, a customer may include any entity that acquires goods or services from a merchant, such as by purchasing, renting, leasing, borrowing, licensing, or the like. Hereinafter, goods and/or services offered by merchants may be referred to as items. Thus, a merchant and a customer may interact with each other to conduct a transaction in which the customer acquires one or more items from a merchant, and in return, the customer provides payment to the merchant. In many instances herein, the user <NUM> may comprise a customer that interacts with one of the plurality of merchants <NUM> to acquire an item.

Each of the plurality of merchants <NUM> may be associated with an establishment where a transaction of an item may occur. An establishment may include any premises associated with a merchant, such as a geographical place of business (e.g., store), a residence, and so on. An establishment may include land, a building, a vehicle, or other property. In some instances, an establishment may be located at a fixed location that typically does not change on a day-to-day basis. In other instances, however, an establishment may change from time to time, such as in the case that the merchant operates a food truck, is a street vendor, a cab driver, etc., or has an otherwise mobile business (e.g., in the case of merchants who sell items at buyer's homes, places of business, and so forth). In the example of <FIG>, the plurality of merchants <NUM> is illustrated as being distributed across various locations on a map <NUM> (as shown by the pin icons).

The service provider <NUM> may include one or more computing devices, such as servers, laptop computers, desktop computers, and so on. The one or more computing devices may be configured in a cluster, a farm, a data center, a cloud computing environment, or a combination thereof. In one example, the one or more computing devices provide cloud computing resources, including computational resources, storage resources, and the like.

While <FIG> illustrates components and data of the service provider <NUM> as being present in a single location, these components and data may alternatively be distributed across different computing devices and/or different locations in any manner. Consequently, the functions may be implemented by one or more computing devices, with the various functionality described above distributed in various ways across the different computing devices. Multiple computing devices may be located together or separately, and organized, for example, as virtual servers, server banks, and/or server farms. The described functionality may be provided by the servers of a single entity or enterprise, or may be provided by the servers and/or services of multiple different buyers or enterprises.

As illustrated, the one or more computing devices of the service provider <NUM> may include one or more processors <NUM>, one or more communication interfaces <NUM>, and memory <NUM>. Each of the one or more processors <NUM> may include a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor, a microcomputer, a microcontroller, a state machine, logic circuitries, a digital signal processor, and so on. For instance, the one or more processors <NUM> may be one or more hardware processors and/or logic circuits of any suitable type specifically programmed or configured to execute the algorithms and processes described herein. Each of the one or more processors <NUM> may be a single processing unit or a number of processing units, and may include single or multiple computing units or multiple processing cores. The one or more processors <NUM> can be configured to fetch and execute computer-readable instructions stored in the memory <NUM>, which can program the one or more processors <NUM> to perform the functions described herein.

The one or more communication interfaces <NUM> may include one or more interfaces and hardware components for enabling communication with various other devices, such as over the one or more networks <NUM>. For example, the one or more communication interfaces <NUM> may enable communication through one or more of the Internet, cable networks, cellular networks, wireless networks (e.g., Wi-Fi) and wired networks, as well as close-range communications such as BLUETOOTH®), BLUETOOTH® low energy, and the like, as additionally enumerated elsewhere herein.

The memory <NUM> may store software functionality configured as one or more "modules. " The term "module" is intended to represent example divisions of the software for purposes of discussion, and is not intended to represent any type of requirement or required method, manner or organization. Accordingly, while various "modules" are discussed, their functionality and/or similar functionality could be arranged differently (e.g., combined into a fewer number of modules, broken into a larger number of modules, etc.). Further, while certain functions and modules are described herein as being implemented by software and/or firmware executable on a processor, in other embodiments, any or all of the modules may be implemented in whole or in part by hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc. As illustrated in <FIG>, the memory <NUM> includes a geo-fence module <NUM> and a user interface module <NUM>.

The geo-fence module <NUM> may configure geo-fences for a geographical region to identify merchants that may be of interest to the user <NUM>. To do so, the geo-fence module <NUM> may determine a current geographical location of the electronic device <NUM> associated with the user <NUM>. The current geographical location may be determined in a variety of manners, including receiving information from the electronic device <NUM> or a location-based service identifying the current geographical location, receiving cell tower information or wireless access point information from the electronic device <NUM> or a location-based service identifying a cell tower or wireless access point that the electronic device <NUM> has communicated with recently (e.g., over a previous period of time), and so on. The current geographical location may include a geo-location, a venue, etc. In some instances, the current geographical location of the electronic device <NUM> may be monitored over time.

In response to receiving a request from the electronic device <NUM> for information about merchants that are located within proximity to the electronic device <NUM>, the geo-fence module <NUM> may identify a geographical region around the current geographical location of the electronic device <NUM>. The geographical region may have predefined characteristics (e.g., dimensions, shape, etc.) and may be centered on the current geographical location of the electronic device <NUM>. For instance, the geographical region may include a circle region having a diameter of. <NUM> miles and being centered on the location of the electronic device <NUM>. This may facilitate a search for merchants that are within proximity the electronic device <NUM>.

The geo-fence module <NUM> may then analyze a variety of information to identify one or more portions of the geographical region that may be of interest to the user <NUM> (e.g., deemed to have more than a threshold level of interest to the user <NUM>). In other words, the geo-fence module <NUM> may define one or more geo-fences for portions of the geographical region. In some instances, the one or more portions of the geographical region may be associated with predetermined characteristics (e.g., include particular dimensions, shapes, etc.). As discussed below, the geo-fence module <NUM> may use the portions of the geographical region to identify merchants that may be of interest to the user <NUM>. Example information that may be analyzed to identify one or more portions of a geographical region include:.

In some instances, any of the above-noted information that may be utilized by the geo-fence module <NUM> to identify one or more portions of a geographical region may be stored in the memory <NUM> as user information <NUM> and/or merchant information.

Upon identifying one or more portions of a geographical region that may be of interest to the user <NUM>, the geo-fence module <NUM> may identify merchants having establishments in the one or more portions of the geographical region. For instance, if the geo-fence module <NUM> identifies a plaza area of a downtown region, then the geo-fence module <NUM> may identify merchants that have establishments in the plaza area. If, for example, a user is requesting information for merchants that are associated with a particular attribute, the geo-fence module <NUM> may filter the merchants down to those merchants that are associated with the particular attribute. An attribute of a merchant may include a rating (e.g., rated <NUM> out of <NUM> stars by users), a category of items offered for acquisition by the merchant (e.g., lodging, restaurants, shopping, gas service, food, entertainment, etc.), a price range of items that are offered for acquisition (e.g., items under $<NUM>, items between $<NUM>-<NUM>, etc.), and so on. For instance, if a user has requested to find gas stations that offer gas at under $<NUM> a gallon and the user is traveling along a navigation route from point A to point B, the geo-fence module <NUM> may identify gas stations that are located with a particular proximity to the navigation route and that satisfy the under $<NUM> per gallon criterion.

In many instances, the geo-fence module <NUM> may identify merchants located within one or more portion of a geographical region by referencing the merchant information <NUM> stored in the memory <NUM>. The merchant information <NUM> may include location information of merchants identifying geo-locations of establishments, contact information for the merchants, ratings or reviews of the merchants, information identifying categories of items that are sold by the merchants, pricing information, or any other information about the merchants.

The user interface module <NUM> may cause information to be sent to the electronic device <NUM> regarding merchants that have been identified by the geo-fence module <NUM>. For example, the user interface module <NUM> may cause contact information of merchants and location information for the merchants to be sent so that the user <NUM> may find nearby merchants that may be of interest. The user interface module <NUM> may facilitate a user interface <NUM> on the electronic device <NUM>. As illustrated in <FIG>, the electronic device <NUM> displays the user interface <NUM> with a map <NUM> of merchants that satisfy a request from the user <NUM>. In this example, the user <NUM> is traveling on the subway and, thus, the user interface <NUM> shows merchants within two regions <NUM> surrounding stations for the subway. Although information is displayed in this example, in other examples the information is otherwise output, such as in an audio format.

In some instances, the service provider <NUM> may be associated with payment processing for transactions of items. In such instances, the service provider <NUM> may include a payment processing module, not illustrated in <FIG>. The payment processing module may function to receive information regarding a transaction from one of the POS devices <NUM> and attempt to authorize a payment instrument used to conduct the transaction. The payment processing module may then send an indication of whether the payment instrument has been approved or declined back to the POS device <NUM>.

Generally, when a customer and a merchant enter into an electronic payment transaction, the transaction is processed by electronically transferring funds from a financial account associated with the customer to a financial account associated with the merchant. As such, the payment processing module may communicate with one or more computing devices of a card payment network (e.g., MasterCard®, VISA®) over the one or more networks <NUM> to conduct financial transactions electronically. The payment processing module can also communicate with one or more computing devices of one or more banks over the one or more networks <NUM>. For example, the payment processing module may communicate with an acquiring bank, an issuing bank, and/or a bank maintaining customer accounts for electronic payments.

An acquiring bank may be a registered member of a card association (e.g., Visa®, MasterCard®), and may be part of a card payment network. An issuing bank may issue credit cards to buyers, and may pay acquiring banks for purchases made by cardholders to which the issuing bank has issued a payment card. Accordingly, in some examples, the computing device(s) of an acquiring bank may be included in the card payment network and may communicate with the computing devices of a card-issuing bank to obtain payment. Further, in some examples, the customer may use a debit card instead of a credit card, in which case, the bank computing device(s) of a bank corresponding to the debit card may receive communications regarding a transaction in which the customer is participating. Additionally, there may be computing devices of other financial institutions involved in some types of transactions or in alternative system architectures, and thus, the foregoing are merely several examples for discussion purposes.

The memory <NUM> (as well as all other memory discussed herein) may include volatile and nonvolatile memory and/or removable and non-removable media implemented in any type of technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Such computer-readable media may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, optical storage, solid state storage, magnetic tape, magnetic disk storage, RAID storage systems, storage arrays, network attached storage, storage area networks, cloud storage, or any other medium that can be used to store the desired information and that can be accessed by a computing device. Depending on the configuration of the one or more computing device of the service provider <NUM>, the memory <NUM> may be a type of computer-readable storage media and/or may be a tangible non-transitory media to the extent that when mentioned, non-transitory computer-readable media exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.

The one or more networks <NUM> can include any appropriate network, including a wide area network, such as the Internet; a local area network, such an intranet; a wireless network, such as a cellular network, a local wireless network, such as Wi-Fi and/or close-range wireless communications, such as BLUETOOTH® and BLUETOOTH® low energy; a wired network; or any other such network, or any combination thereof. Accordingly, the one or more networks <NUM> may include both wired and/or wireless communication technologies, including BLUETOOTH®, BLUETOOTH® low energy, Wi-Fi and cellular communication technologies, as well as wired or fiber optic technologies. Components used for such communications can depend at least in part upon the type of network, the environment selected, or both. Protocols for communicating over such networks are well known and will not be discussed herein in detail. Accordingly, the service computing device <NUM>, the plurality of POS devices <NUM>, the electronic device <NUM>, and other computing devices discussed herein are able to communicate over the one or more networks <NUM> using wired or wireless connections, and combinations thereof.

<FIG> illustrate an example user interface <NUM> that may be provided to notify a user of nearby merchants that may be of interest. The user interface <NUM> may be displayed via a browser, an application, and so forth. In some instances, an application is implemented as a client application, such as a mobile application, desktop-based application, etc. In other instances, the application is implemented as part of a platform (e.g., a mobile platform), or within another context. In many instances, the user interface <NUM> is provided to a user provided via an electronic device, such as the electronic device <NUM>.

<FIG> illustrates the example user interface <NUM> showing merchants that have been identified based on a transportation mode that is currently being used by a user. In particular, the user interface <NUM> includes drop down menus <NUM>(<NUM>)-<NUM>(M) to enable the user to specify attributes of merchants to find (e.g., a desired category of items, a desired price for items, a desired ratings of merchants, etc.). In addition, the user interface <NUM> includes drop down menus <NUM>(<NUM>)-<NUM>(P) to enable the user to specify criteria for identifying portions of a geographical region that may be of interest, and associated merchants. For example, the user may request merchant information for regions that are related to locations that are frequented by the user, purchase history, a mode of transportation that is currently being used, an appointment, a current speed or direction of an electronic device, a current navigation route of the user, a transportation route, current weather conditions, current traffic conditions, a current time of day or year, an event, and so on. The user may select a button <NUM> to cause the service provider <NUM> to configure geo-fences and identify merchants based on those geo-fences.

The user interface <NUM> also includes a map <NUM> of a geographical region for a current location <NUM> of the user (e.g., the electronic device associated with the user). The map <NUM> shows locations of merchants that satisfy the criteria specified in the drop down menus <NUM> and drop down menus <NUM>. In particular, the map <NUM> may include an icon (e.g., pin) for each merchant at a location of an establishment of the merchant. The user interface <NUM> also includes a list <NUM> of information for merchants that are displayed in the map <NUM>.

In this example, the service provider <NUM> has defined geo-fences <NUM> and <NUM> based on a mode of transportation that is being used, namely the subway. The mode of transportation may be determined by prompting the user for information, monitoring speed and/or direction of the user, determining that the user has connected to a wireless access point on the subway, determining that the user has purchased a subway ticket or entered the subway gate, and so on. As illustrated, the geo-fences <NUM> and <NUM> are centered on the subway stations and include areas surrounding the subway stations. As such, the map <NUM> shows icons for merchants that have establishments within the geo-fences <NUM> and <NUM>, and the list <NUM> includes information for those merchants.

In some instances, if it is determined that the user is traveling in a particular direction on the subway, the service provider <NUM> may identify merchants that are more likely to be of interest to the user due to the direction of travel. As one example in <FIG>, if the user is traveling north (upwards in <FIG>), the map <NUM> may display icons for merchants within the geo-fence <NUM> and refrain from displaying icons for merchants within the geo-fence <NUM>.

Further, in some instances, if it is determined that the user is traveling in a particular direction on the subway, the service provider <NUM> may generate a geo-fence based on the direction of travel. As one example in <FIG>, if the user is traveling north (upwards in <FIG>), the service provider <NUM> may generate only the geo-fence <NUM> and identify merchants within the geo-fence <NUM>.

<FIG> illustrates the example user interface <NUM> showing merchants that have been identified based on locations that have been frequented by a user. Here, the service provider <NUM> has defined geo-fences <NUM> and <NUM> for portions of the geographical region that have been frequented by the user (e.g., more than a particular number of times). In this example, the user has not traveled across the bridge, or has not done so more than a particular number of times, and accordingly, an area around merchants <NUM> is not selected (the locations of merchants <NUM> are not actually shown to the user). Further, the user has not traveled up a hill to a merchant <NUM> (again, the location of the merchant <NUM> is not actually shown to the user). As such, the map <NUM> shows icons for merchants that are located within the geo-fences <NUM> and <NUM>. The map <NUM> also shows a current location <NUM> of the user. As illustrated, the list <NUM> is updated with information for merchants that are associated with the geo-fences <NUM> and <NUM>.

<FIG> illustrates the example user interface <NUM> showing merchants that are located along a navigation route. Here, the service provider <NUM> has defined a geo-fence <NUM> around a navigation route <NUM> and the map <NUM> displays icons for merchants that are located within the geo-fence <NUM>. The navigation route <NUM> includes a path that the user will travel from a starting location to a destination location. As illustrated, the geo-fence <NUM> has a non-circular shape and generally extends a particular distance to each side of the navigation route <NUM>. In some instances, the geo-fence <NUM> may be displayed on the map <NUM>. The user may select the geo-fence <NUM> and adjust an area that is encompassed by the geo-fence <NUM>. The map <NUM> also shows a current location <NUM> of the user along the navigation route <NUM>. The list <NUM> is updated in this example with information for merchants that are associated with the geo-fence <NUM>.

<FIG> illustrates the example user interface <NUM> showing a geo-fence that is based on locations that have been frequented by a user or visited within a window of time. In this example, the user is traveling by car in Manhattan, New York. The map <NUM> shows a current location <NUM> of the user, just below a line <NUM>. Here, the user has requested information for merchants based on places that have been previously visited by the user and/or capabilities of the user (e.g., places that can be visited within a time period due to the user's current speed, mode of transportation, etc.). Accordingly, the service provider <NUM> references purchase history for the user to determine that the user frequently orders food from restaurants that are located in lower Manhattan, below the line <NUM>, and rarely orders food from restaurants that are located across the bridges <NUM>. The service provider <NUM> also references location information to determine that the user spends the majority of his time in lower Manhattan (e.g., visits locations below the line <NUM> more than a threshold number of times) and rarely crosses the bridges <NUM>.

Based on these determinations, the service provider <NUM> determines a geographical region bounding locations that have been visited by the user more than a threshold number of times and/or that have been visited within a window of time. In particular, the service provider <NUM> identifies lower Manhattan (a region below the line <NUM>). The window of time may include a period of time leading up to the current time (e.g., a last hour, day, week, etc.) or any other period of time (e.g., last week, last month, etc.).

The service provider <NUM> then generates a geo-fence <NUM> that is biased toward the geographical region (e.g., biased toward locations that have been frequented by the user or visited recently). In particular, since the user frequently visits lower Manhattan (a region below the line <NUM>), the geo-fence <NUM> extends farther south from the current location <NUM> than the geo-fence <NUM> extends north from the current location <NUM>. In this example, the geo-fence <NUM> extends to the north from the current location <NUM> a distance that can be traveled by car in <NUM> minutes (e.g., extends to a northernmost point on a transportation route and a northeastern point on a transportation route that can be reached in <NUM> minutes). The geo-fence <NUM> also extends to the south a distance that can be traveled by car in <NUM> minutes (e.g., extends to a southernmost point on a transportation route and a southeastern point on a transportation route that can be reached in <NUM> minutes). In addition, since the user rarely travels across the bridges <NUM> (or rarely orders food from restaurants that are located across the bridges <NUM>), the geo-fence <NUM> ends at the bridges <NUM>. That is, the geo-fence <NUM> does not include transportation routes across the bridges <NUM>.

In this example, the geo-fence <NUM> extends along transportation routes that are related to the user's current mode of transportation. Since the user is traveling by car, the geo-fence <NUM> extends along roads in Manhattan. As illustrated, the geo-fence <NUM> encompasses area to the sides of the transportation routes. The geo-fence <NUM> may extend along the transportation routes a distance that is based on a current speed of the user (or device associated with the user). For example, as the user's speed increases, the geo-fence <NUM> may expand to include larger distances along transportation routes.

As such, the geo-fence <NUM> may include a first geo-fence (or first portion) that extends along transportation routes away from lower Manhattan for a distance that is proportional to a speed of the user and that is reduced according to a biasing distance or factor (e.g., a predetermined distance or factor). Further, the geo-fence <NUM> may include a second geo-fence (or second portion) that extends along transportation routes toward lower Manhattan for a distance that is proportional to the speed of the user and that is increased according to the biasing distance or factor. For example, if the distance that is proportional to the user's speed is <NUM> miles, the geo-fence <NUM> may extend to the north <NUM> miles (which is reduced by a biasing distance of <NUM> miles), while the geo-fence <NUM> may extend to the south <NUM> miles (which is increased by the biasing distance of <NUM> miles).

<FIG> and <FIG> illustrate example processes <NUM> and <NUM> for employing the techniques described herein. For ease of illustration the processes <NUM> and <NUM> are described as being performed in the architecture <NUM> of <FIG>. For example, one or more of the individual operations of the processes <NUM> and/or <NUM> may be performed by the service provider <NUM>, the electronic device <NUM>, and/or one of the POS devices <NUM>. However, the processes <NUM> and <NUM> may be performed in other architectures. Moreover, the architecture <NUM> may be used to perform other processes.

The processes <NUM> and <NUM> (as well as each process described herein) are illustrated as logical flow graphs, each operation of which represents a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement the process. Further, any number of the individual operations may be omitted.

<FIG> illustrates the example process <NUM> to determine a portion(s) of a geographical region that surrounds a current location of an electronic device and to determine merchants having establishments located within the portion(s).

At <NUM>, the service provider <NUM> may receive a request from the electronic device <NUM> to receive information regarding merchants. The request may request information for merchants that are associated with a particular attribute, such as a particular rating, a particular category of items, a particular price range, and so on.

At <NUM>, the service provider <NUM> may determine a current geographical location of the electronic device <NUM>. In some instances, this may include communicating with the electronic device <NUM> and/or a location-based service to receive location information.

At <NUM>, the service provider <NUM> may determine, from a geographical region surrounding the current geographical location, one or more portions of the geographical region. The determination at <NUM> may be based on a location in the geographical region that is most frequented by a user, purchase history for the user, a mode of transportation that is currently being used by the user, an appointment for the user, a current speed or direction of travel, a current navigation route of the user, a transportation route in the geographical region, current weather conditions for the geographical region, current traffic conditions for the geographical region, a current time of day or year, an event occurring in the geographical region, and so on. In some instances, a plurality of pieces of information are used with each piece of information being weighted with a degree of importance. The one or more portions of the geographical region (i) may include merchant establishments that offer for acquisition items that are associated with a same category as items identified in purchase history, (ii) may be within a predetermined proximity to a transportation or navigation route, (iii) may be within a predetermined proximity to a location of an appointment, (iv) may be within a distance to the current geographical location a user (where the distance is based on a current speed), and so on.

At <NUM>, the service provider <NUM> may identifying one or more merchants each an establishment located within the one or more portions of the geographical region. In some instances, the one or more merchants may also have an attribute specified in the request received at <NUM>.

At <NUM>, the service provider <NUM> may cause output of information regarding the one or more merchants identified at <NUM>. This may include sending information to the electronic device <NUM> so that the electronic device <NUM> may display, render, or otherwise output the information in a displayable, audible, or other format.

<FIG> illustrates the example process <NUM> to identify a portion(s) of a geographical region that is deemed to have more than a threshold level of interest to a user and to cause display of a map of the portion(s) of the geographical region.

At <NUM>, the electronic device <NUM> may receive input from the user <NUM> requesting information regarding merchants. The input may include touch input, text input, gesture input, speech input, and so on.

At <NUM>, the electronic device <NUM> may identify, from a geographical region surrounding a current geographical location of the user <NUM>, one or more portions of the geographical region that are deemed to have more than a threshold level of interest to the user <NUM>. The level of interest may based on a frequency of visits by the user <NUM>, or another user having a threshold level of similarity to the user <NUM> (e.g., due to user preference, purchase history, demographics, etc.). In one example, the one or more portions of the geographical region include a portion of the geographical region that has been visited more than a threshold number of times. The identification at <NUM> may include receiving information from the service provider <NUM> regarding the one or more portions of the geographical region. Alternatively, the identification at <NUM> may include processing at the electronic device <NUM> to determine the one or more portions of the geographical region.

At <NUM>, the electronic device <NUM> may cause display of a map of the one or more portions of the geographical region. The map may include information that identifies a location of an establishment of a merchant that is located in the one or more portions of the geographical region. The map may also include information identifying a level of interest for each of the one or more portions of the geographical region. The level of interest may be based on a number of visits by the user or other users (e.g., the level of interest increases as the number of visits increases). Further, in some instances the map includes information designating a boundary for each of the one or more portions of the geographical region (e.g., the map displays the geo-fence that is used for identifying merchants).

<FIG> illustrates select example components of an example POS device and/or electronic device <NUM> (e.g., one of the POS devices <NUM> or the electronic device <NUM>) according to some implementations. The device <NUM> may be any suitable type of computing device, e.g., mobile, semi-mobile, semi-stationary, or stationary. Some examples of the device <NUM> may include tablet computing devices; smart phones and mobile communication devices; laptops, netbooks and other portable computers or semi-portable computers; desktop computing devices, terminal computing devices and other semi-stationary or stationary computing devices; dedicated register devices; wearable computing devices, or other body-mounted computing devices; or other computing devices capable of sending communications and performing the functions according to the techniques described herein.

In the illustrated example, the device <NUM> includes one or more processors <NUM>, memory <NUM>, one or more displays <NUM>, one or more input/output (I/O) components <NUM>, one or more network interfaces <NUM>, one or more payment instrument readers <NUM>, at least one location component <NUM>, and one or more power sources <NUM>. Each of the one or more processors <NUM> may include a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor, a microcomputer, a microcontroller, a state machine, logic circuitries, a digital signal processor, and so on. For instance, the one or more processors <NUM> may be one or more hardware processors and/or logic circuits of any suitable type specifically programmed or configured to execute the algorithms and processes described herein. Each of the one or more processors <NUM> may be a single processing unit or a number of processing units, and may include single or multiple computing units or multiple processing cores. The one or more processors <NUM> can be configured to fetch and execute computer-readable instructions stored in the memory <NUM>, which can program the one or more processors <NUM> to perform the functions described herein.

The memory <NUM> (as well as all other memory discussed herein) may include volatile and nonvolatile memory and/or removable and non-removable media implemented in any type of technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Such computer-readable media may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, optical storage, solid state storage, magnetic tape, magnetic disk storage, RAID storage systems, storage arrays, network attached storage, storage area networks, cloud storage, or any other medium that can be used to store the desired information and that can be accessed by a computing device. Depending on the configuration of the device <NUM>, the memory <NUM> may be a type of computer-readable storage media and/or may be a tangible non-transitory media to the extent that when mentioned, non-transitory computer-readable media exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.

The memory <NUM> may be used to store and maintain any number of functional components that are executable by the one or more processors <NUM>. In some implementations, these functional components comprise instructions or programs that are executable by the one or more processors <NUM> and that, when executed, implement operational logic for performing the actions and services attributed above to the device <NUM>. Functional components of the device <NUM> stored in the memory <NUM> may include a merchant application <NUM>. The merchant application <NUM> may present an interface on the device <NUM> to enable the merchant to conduct transactions, receive payments, and so forth, as well as communicating with the service provider <NUM> for processing payments and sending transaction information. Further, the merchant application <NUM> may present an interface to enable the merchant to manage the merchant's account, and the like. Additional functional components may include an operating system <NUM> for controlling and managing various functions of the device <NUM> and for enabling basic user interactions with the device <NUM>. The memory <NUM> may also store transaction data <NUM> that is received based on the merchant associated with the device <NUM> engaging in various transactions with customers.

In addition, the memory <NUM> may also store data, data structures and the like, that are used by the functional components. For example, this data may include item information that includes information about the items offered by the merchant, which may include images of the items, descriptions of the items, prices of the items, and so forth. Depending on the type of the device <NUM>, the memory <NUM> may also optionally include other functional components and data, which may include programs, drivers, etc., and the data used or generated by the functional components. Further, the device <NUM> may include many other logical, programmatic and physical components, of which those described are merely examples that are related to the discussion herein.

The network interface(s) <NUM> may include one or more interfaces and hardware components for enabling communication with various other devices over the network or directly. For example, the network interface(s) <NUM> may enable communication through one or more of the Internet, cable networks, cellular networks, wireless networks (e.g., Wi-Fi) and wired networks, as well as close-range communications such as Bluetooth®, Bluetooth® low energy, and the like, as additionally enumerated elsewhere herein.

<FIG> further illustrates that the device <NUM> may include the one or more displays <NUM> mentioned above. Depending on the type of computing device used as the device <NUM>, the one or more displays <NUM> may employ any suitable display technology. For example, the one or more displays <NUM> may be a liquid crystal display, a plasma display, a light emitting diode display, an OLED (organic light-emitting diode) display, an electronic paper display, or any other suitable type of display able to present digital content thereon. In some examples, the one or more displays <NUM> may have a touch sensor associated with the one or more displays <NUM> to provide a touchscreen display configured to receive touch inputs for enabling interaction with a graphic interface presented on the one or more displays <NUM>. Accordingly, implementations herein are not limited to any particular display technology. Alternatively, in some examples, the device <NUM> may not include the one or more displays <NUM>, and information may be present by other means, such as aurally.

The one or more I/O components <NUM>, meanwhile, may include speakers, a microphone, a camera, and various user controls (e.g., buttons, a joystick, a keyboard, a keypad, etc.), a haptic output device, and so forth.

In addition, the device <NUM> may include or may be connectable to the one or more payment instrument readers <NUM> (e.g., card reader). In some examples, the one or more payment instrument readers <NUM> may plug in to a port in the merchant device, such as a microphone/headphone port, a data port, or other suitable port. In other instances, the one or more payment instrument readers <NUM> is integral with the entire device <NUM>. The one or more payment instrument readers <NUM> may include a read head for reading a magnetic strip of a payment card, and further may include encryption technology for encrypting the information read from the magnetic strip. Alternatively, numerous other types of card readers may be employed with the device <NUM> herein, depending on the type and configuration of a particular device <NUM>.

The location component <NUM> may include a GPS device able to indicate location information, or the location component <NUM> may comprise another other location-based sensor. The device <NUM> may also include one or more additional sensors (not shown), such as an accelerometer, gyroscope, compass, proximity sensor, and the like. Additionally, the device <NUM> may include various other components that are not shown, examples of which include removable storage, a power control unit, and so forth.

Claim 1:
A method comprising:
receiving, by a service provider (<NUM>), a request from a mobile electronic device (<NUM>) to receive information regarding merchants having a specified attribute;
determining, by the service provider (<NUM>), a current geographical location of the mobile electronic device;
determining, by the service provider (<NUM>), for a user associated with the mobile electronic device (<NUM>) from a geographical region surrounding the current geographical location, one or more portions of the geographical region based on at least one of (i) a location in the geographical region that is most frequented by the user, (ii) purchase history for the user, (iii) a mode of transportation that is currently being used by the user, (iv) an appointment for the user, (v) a current speed or direction of the mobile electronic device, (vi) a current navigation route of the user, (vii) a transportation route in the geographical region, (viii) current weather conditions for the geographical region, (ix) current traffic conditions for the geographical region, (x) a current time of day or year, or (xi) an event occurring in the geographical region,
wherein determining the one or more portions of the geographical region comprises defining, by a geo-fence module (<NUM>) of the service provider (<NUM>), one or more geo-fences for the one or more portions of the geographical region;
identifying, by the service provider (<NUM>), one or more merchants each having the specified attribute, each having an establishment located within the one or more portions of the geographical region and each being associated with a point-of-sale, POS, device, wherein a location component of the POS device indicates location information of the POS device, wherein the location information of the POS device is stored as merchant information (<NUM>) in a memory (<NUM>) of the service provider (<NUM>), wherein identifying one or more merchants each having an establishment located within the one or more portions of the geographical region comprises referencing the merchant information (<NUM>); and
causing, by the service provider (<NUM>), display of, on the mobile electronic device, information regarding the one or more merchants, wherein the service provider includes one or more computing devices and is configured to determine the current geographical location of the mobile electronic device by communicating with the mobile electronic device and/or a location based service to receive location information.