Property listings (e.g., real-estate listings) may be available in electronic databases. Prospective buyers may look up properties based on property features, and may visit properties during visiting hours (e.g., “Open House” hours). Property listings continuously update to include new properties on the market, and remove properties that are no longer on the market.
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
Systems and/or methods, as described herein, may provide a technique to alert a user of a user device with regards to property (e.g., for-sale real estate) that is available for visiting (e.g., during “Open House” hours) and when the user device travels to within a particular threshold distance of the property. In some implementations, the systems and/or methods may identify properties meeting particular criteria, and generate a route that a user may use to visit the properties at a desired time and when the properties are available for visiting (e.g., during “Open House” hours).
As further shown in
Based on receiving the property and alert criteria information, the application server may determine and store alert proximity information (arrow 1.3). An alert proximity may be based on the geographic location of particular property having the particular features, and may have a radius that corresponds to the threshold distance identified in the property and alert criteria information. Based on determining one or more alert proximities (e.g., an alert proximity for each property having the particular features), the application server may store information associating the alert proximities with the user.
In some implementations, a user device, associated with the user, may periodically or intermittently provide location information to the application server (arrow 1.4). The application server may determine that the user device is located within an alert proximity (e.g., within a threshold distance of property having the particular features), and may trigger an alert (arrow 1.5). In some implementations, the application server may trigger the alert when the particular property is available for visiting. The application server may provide an alert (arrow 1.6) to the user device, and the user device may display the alert to inform the user that the particular property is within the threshold distance and that the particular property is available for visiting.
Referring to
The application server may also rank the properties (arrow 2.3) based on weightings of features identified in the property and trip criteria information. For example, the price feature may be weighed higher than the square footage feature. The application server may then generate a route (arrow 2.4) based on the property rankings, the locations of the identified properties, and/or a routing technique (e.g., a routing technique to minimize drive time, minimize tolls, etc.). In some implementations, the application server may generate the route so that higher ranked properties may be included in the route in favor of lower ranked properties (e.g., if the amount of time in the trip is not sufficient to accommodate visiting all of the identified properties). Based on generating the route, the application server may provide the route information to the user device (arrow 2.5). The user device may display the route information (as shown in interface 210). In some implementations, the user device may receive a selection for a particular property, and may display (e.g., in a “pop-up” window), features and/or details of the property (e.g., property address, square footage, lot size, visiting hours, etc.).
Referring to
User device 410 may include a device capable of communicating via a network, such as network 450. For example, user device 410 may correspond to a mobile communication device (e.g., a smart phone or a personal digital assistant (PDA)), a portable computer device (e.g., a laptop or a tablet computer), a desktop computer device, and/or another type of device. In some implementations, user device 410 may communicate with application server 420 in order to access a user account that stores property and alert criteria information. User device 410 may receive alerts regarding properties available for viewing based on the property and alert criteria information and a current location of user device 410. User device 410 may provide property and trip criteria information to application server 420, and receive corresponding route information.
Application server 420 may include one or more computing devices, such as a server device or a collection of server devices. In some implementations, application server 420 may receive property and trip criteria information from user device 410, and may output an alert to user device 410 based on the property and alert criteria information and a current location of user device 410. Application server 420 may receive property and trip criteria information from user device 410, determine properties meeting criteria and available for visiting during particular hours, and determine a route that may be used to visit the determined properties. Application server 420 may output the route information to user device 410. Application server 420 may receive lockbox activity information from lockbox device 440 associated with particular property. Application server 420 may store and/or output the lockbox activity information.
Directory server 430 may include one or more computing devices, such as a server device or a collection of server devices. In some implementations, directory server 430 may store property listings for properties that are available for sale. For a particular listing for particular property, directory server 430 may store features of the particular property, such as sales price, sales history, lot size, number of bathrooms, number of bedrooms, square footage, school rankings, and/or some other feature associated with the particular property. Directory server 430 may also store location information associated with property listings (e.g., in addition to information regarding features of the properties). Directory server 430 may store information identifying visiting hours for the particular property.
Lockbox device 440 may include a device that may provide access to a particular property. For example, lockbox device 440 may store a physical key that may be accessed to access the particular property. Additionally, or alternatively, lockbox device 440 may include a keypad that may be used to receive a code that may provide access to the physical key or to the property without the physical key. Lockbox device 440 may store lockbox activity information that identifies when the physical key has been removed, and/or when a code has been entered to access the property. For example, the physical key may transmit a transponder signal, and lockbox device 440 may determine that the key has been removed when the transponder signal is not received by lockbox device 440. Lockbox device 440 may communicate with user device 410 and/or application server 420 via network 450 to output lockbox activity information.
Network 450 may include one or more wired and/or wireless networks. For example, network 450 may include a cellular network (e.g., a second generation (4G) network, a third generation (3G) network, a fourth generation (4G) network, a fifth generation (5G) network, a long-term evolution (LTE) network, a global system for mobile (GSM) network, a code division multiple access (CDMA) network, an evolution-data optimized (EVDO) network, or the like), a public land mobile network (PLMN), and/or another network. Additionally, or alternatively, network 450 may include a local area network (LAN), a wide area network (WAN), a metropolitan network (MAN), the Public Switched Telephone Network (PSTN), an ad hoc network, a managed Internet Protocol (IP) network, a virtual private network (VPN), an intranet, the Internet, a fiber optic-based network, and/or a combination of these or other types of networks.
The quantity of devices and/or networks in environment is not limited to what is shown in
As shown in
Process 500 may also include determining and storing alert proximity information (block 520). A particular alert proximity may encompass particular property having the criteria specified by the user of user device 410 as described above in process block 510. The particular alert proximity may include a radius corresponding to the threshold distance identified in the property alert criteria information. Application server 420 may determine alert proximities based on the property criteria alert information. Application server 420 may determine an alert proximity for each property having the specified features, and may store information for each determined alert proximity. For example, application server 420 may communicate with directory server 430 to determine properties having the specified features, and may then store information indicating that user device 410 should be alerted when user device 410 is within a threshold distance (e.g., a distance corresponding to the alert proximity) of the determined properties.
Process 500 may further include receiving user device current location information (block 530). For example, application server 420 may receive information identifying a current location of user device 410 via a location identification device associated with user device 410 (e.g., a global positioning system (GPS) device, or the like). Additionally, or alternatively, application server 420 may receive the current location information of user device 210 from another source, such as from a wireless network. In some implementations, user device 410 and/or other source may periodically or intermittently provide current location information to user device 410.
Process 500 may also include identifying that the user device is located within one or more alert proximities (block 540). For example, application server 420 may determine that user device 410 is located within one or more alert proximities based on the current location information of user device 410 and the alert proximity information determined in process block 520.
Process 500 may further include outputting an alert to the user device (block 550). For example, application server 420 may output the alert to user device 410 based on identifying that user device 410 is located within the one or more alert proximities. In some implementations, the alert may identify a property associated with an alert proximity within which user device 410 is located. The alert may also identify features of the property, and may also include an option for the user to receive directions to the property. In some implementations, the alert may be provided when the property is currently available for viewing (e.g., based on an open house schedule stored by directory server 430).
Based on receiving the property and alert criteria information, user device 410 may output the property and alert criteria information to application server 420. Application server 420 may then communicate with directory server 430 to identify properties having the specified features, and may store information identifying an alert proximity for each identified property. As described above, application server 420 may provide an alert to user device 410 when user device 410 is located within an alert proximity.
While a particular example is shown in
As shown in
Process 700 may further include identifying properties meeting the visiting plan criteria (block 720). For example, application server 420 may communicate with directory server 430 to identify properties that include one or more of the features. In some implementations, application server 420 may communicate with directory server 430 to identify properties that are available for viewing during the time period.
Process 700 may also include determining property scores based on property features and weightings (block 730). For example, application server 420 may determine property scores for each of the identified properties. For a particular property, application server 420 may determine a property score by multiplying each feature of the particular property by the weighting to determine a weighted feature score, and summing the weighted feature scores. For example, assume that the a first feature (e.g., location) is weighted as 10 on a scale of 1 to 10, a second feature (e.g., price) is weighted at 8, and a third feature (e.g., lot size) is weighted as a 5. Further, assume that a first property has the first feature and the second feature, but not the third feature. Given this assumption, the first property may have a property score of 18 (e.g., 10+8). Further, assume that a second property has the second feature and the third feature, but not the first feature. Given this assumption, the second feature may have the property score of 13 (e.g., 8+5). Thus, the first property may be ranked higher than the second property.
Process 700 may further include generating a visiting plan based on the property scores, property locations, and/or visiting hours (block 740). For example, application server 240 may generate the visiting plan. The visiting plan may identify a list of properties that include one or more of the features identified in the visiting plan criteria, and an order in which the properties should be visited. In some implementations, the properties that meet one or more of the features, may not all be included in the visiting plan if the amount of time, identified in the visiting plan criteria, is insufficient to accommodate a visit to each property. The visiting plan may prioritize those properties having the relatively highest scores. The order in which the properties should be visited may be based on the property locations, the property scores, the visiting hours, and/or some other information regarding the priority of the properties. For example, properties located relatively closely to each other may be listed sequentially. Also, properties whose visiting hours end relatively sooner than others may be listed ahead of those properties whose visiting hours end relatively later. In some implementations, properties having higher property scores may be listed sooner than properties having lower property scores. The visiting plan may include a map that includes routing and/or navigation information that may be used by the user to travel from one property to another.
Process 700 may also include storing or outputting the visiting plan (block 750). For example, application server 420 may output the visiting plan to user device 410, and user device 410 may display the visiting plan (e.g., as a table that identifies the properties in the visiting plan and a sequence in which the properties should be visiting). Additionally, or alternatively, the visiting plan may be displayed within a map that identifies the properties and a route to be used to travel from one property to another. An example of visiting plan with a visiting route is shown in
While a particular example is shown in
As shown in
Process 900 may also include determining a visiting event based on lockbox activity information (block 920). For example, application server 420 may receive lockbox activity information from directory server 430, and determine the visiting event when directory server 430 has been accessed (e.g., when a physical key has been removed and/or when directory server 430 has received an unlock code). In some implementations, application server 420 may provide an unlock code to directory server 430 based on authorization information received from user device 410. Additionally, or alternatively, directory server 430 may receive an unlock code via a keypad or from user device 410 (e.g., via a Wi-Fi connection, a short range personal area network (PAN), a wired connection, a near-field communications (NFC) connection, a Bluetooth connection, and/or via some other connection). In some implementations, directory server 430 may determine that a physical key has been removed based on a determining that a transponder signal, transmitted by the physical key, has changed, and/or that the signal strength has dropped below a particular threshold.
Process 900 may further include storing, processing, and/or outputting the property visit information (block 930). For example, application server 420 may store the property visit information, and may output the property visit information to a property owner or other party associated with the particular property. In some implementations, application server 420 may process the property visit information to generate a report that indicates the popularity of the particular property at different times of the day, and the popularity in comparison with other properties.
Bus 1010 may include one or more communication paths that permit communication among the components of device 1000. Processor 1020 may include a processor, microprocessor, or processing logic that may interpret and execute instructions. Memory 1030 may include any type of dynamic storage device that may store information and instructions for execution by processor 1020, and/or any type of non-volatile storage device that may store information for use by processor 1020.
Input component 1040 may include a mechanism that permits an operator to input information to device 1000, such as a keyboard, a keypad, a button, a switch, etc. Output component 1050 may include a mechanism that outputs information to the operator, such as a display, a speaker, one or more light emitting diodes (LEDs), etc.
Communication interface 1060 may include any transceiver-like mechanism that enables device 1000 to communicate with other devices and/or systems. For example, communication interface 1060 may include an Ethernet interface, an optical interface, a coaxial interface, or the like. Communication interface 1060 may include a wireless communication device, such as an infrared (IR) receiver, a Bluetooth® radio, or the like. The wireless communication device may be coupled to an external device, such as a remote control, a wireless keyboard, a mobile telephone, etc. In some embodiments, device 1000 may include more than one communication interface 1060. For instance, device 1000 may include an optical interface and an Ethernet interface.
Device 1000 may perform certain operations relating to one or more processes described above. Device 1000 may perform these operations in response to processor 1020 executing software instructions stored in a computer-readable medium, such as memory 1030. A computer-readable medium may be defined as a non-transitory memory device. A memory device may include space within a single physical memory device or spread across multiple physical memory devices. The software instructions may be read into memory 1030 from another computer-readable medium or from another device. The software instructions stored in memory 1030 may cause processor 1020 to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
The foregoing description of implementations provides illustration and description, but is not intended to be exhaustive or to limit the possible implementations to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations. For example, while series of blocks have been described with regard to
The actual software code or specialized control hardware used to implement an embodiment is not limiting of the embodiment. Thus, the operation and behavior of the embodiment has been described without reference to the specific software code, it being understood that software and control hardware may be designed based on the description herein.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of the possible implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one other claim, the disclosure of the possible implementations includes each dependent claim in combination with every other claim in the claim set.
Further, while certain connections or devices are shown (e.g., in
Some implementations are described herein in conjunction with thresholds. The term “greater than” (or similar terms), as used herein to describe a relationship of a value to a threshold, may be used interchangeably with the term “greater than or equal to” (or similar terms). Similarly, the term “less than” (or similar terms), as used herein to describe a relationship of a value to a threshold, may be used interchangeably with the term “less than or equal to” (or similar terms). As used herein, “satisfying” a threshold (or similar terms) may be used interchangeably with “being greater than a threshold,” “being greater than or equal to a threshold,” “being less than a threshold,” “being less than or equal to a threshold,” or other similar terms, depending on the context in which the threshold is used.
To the extent the aforementioned implementations collect, store, or employ personal information provided by individuals, it should be understood that such information shall be used in accordance with all applicable laws concerning protection of personal information. Additionally, the collection, storage, and use of such information may be subject to consent of the individual to such activity, for example, through “opt-in” or “opt-out” processes as may be appropriate for the situation and type of information. Storage and use of personal information may be in an appropriately secure manner reflective of the type of information, for example, through various encryption and anonymization techniques for particularly sensitive information.
No element, act, or instruction used in the present application should be construed as critical or essential unless explicitly described as such. An instance of the use of the term “and,” as used herein, does not necessarily preclude the interpretation that the phrase “and/or” was intended in that instance. Similarly, an instance of the use of the term “or,” as used herein, does not necessarily preclude the interpretation that the phrase “and/or” was intended in that instance. Also, as used herein, the article “a” is intended to include one or more items, and may be used interchangeably with the phrase “one or more.” Where only one item is intended, the terms “one,” “single,” “only,” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.