US20140100956A1 - Providing fast alerts for rapidly changing real estate data - Google Patents

Providing fast alerts for rapidly changing real estate data Download PDF

Info

Publication number
US20140100956A1
US20140100956A1 US13/907,724 US201313907724A US2014100956A1 US 20140100956 A1 US20140100956 A1 US 20140100956A1 US 201313907724 A US201313907724 A US 201313907724A US 2014100956 A1 US2014100956 A1 US 2014100956A1
Authority
US
United States
Prior art keywords
user
data
alerts
users
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/907,724
Inventor
Shahaf Abileah
April Alexander
Vincent Chang
Michael Smedberg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Redfin Corp
Original Assignee
Redfin Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Redfin Corp filed Critical Redfin Corp
Priority to US13/907,724 priority Critical patent/US20140100956A1/en
Publication of US20140100956A1 publication Critical patent/US20140100956A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • G06Q10/1095Meeting or appointment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0257User requested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0613Third-party assisted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/16Real estate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services

Definitions

  • Real estate transactions often involve a buyer, a seller, one or more agents (e.g., a listing agent for the seller and buyer's agent for the buyer), and numerous service providers (e.g., escrow professionals, appraisers, home inspectors, lenders, and so forth.
  • the seller lists a property using a listing server, often through a listing agent, while buyers go through a search process to identify potential properties to buy.
  • the seller may either accept the offer, counteroffer at a different price or other terms, or reject the offer.
  • the transaction is typically considered pending and on the way to closing pending inspections, resolving various contingencies, securing funds from a lender, and so forth.
  • Some real estate web sites and other applications allow users to create a set of search criteria (e.g., limited to a particular region, price band, or other criteria), and then save the search. The user can then re-run that search at any time. These sites also often run a periodic process to publish reports based on these searches (e.g., nightly, or weekly). Users can subscribe to receive email alerts on aforementioned saved searches that contain information about listings of interest (including new listings, updated listings, price changes, sales, and the like). In addition, users can mark particular listings as “favorite” listings. When alerts are delivered, users will be notified of changes to listings that match a saved search or are a favorite. However, these reports are primarily oriented on summarizing a variety of information at a regular time, and even nightly reports may be too infrequent in a fast-changing real estate environment.
  • FIG. 1 is a block diagram that illustrates components of the user alert system, in one embodiment.
  • FIG. 2 is a flow diagram that illustrates processing of the user alert system to import events from one or more data sources of interest to one or more users, in one embodiment.
  • FIG. 3 is a flow diagram that illustrates processing of the user alert system to provide alerts to one or more users of a real estate data system, in one embodiment.
  • FIG. 4 is a data flow diagram that illustrates components of the user alert system and how data flows between or among them, in one embodiment
  • Embodiments of the invention may be operational with numerous general purpose or special purpose computing system environments or configurations.
  • Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer and/or by computer-readable media on which such instructions or modules can be stored.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote computer storage media including memory storage devices.
  • Embodiments of the invention may include or be implemented in a variety of computer readable media.
  • Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media.
  • Computer readable media may comprise computer storage media and communication media.
  • Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer.
  • Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
  • modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
  • the combination of software or computer-executable instructions with a computer-readable medium results in the creation of a machine or apparatus.
  • the execution of software or computer-executable instructions by a processing device results in the creation of a machine or apparatus, which may be distinguishable from the processing device, itself, according to an embodiment.
  • a computer-readable medium is transformed by storing software or computer-executable instructions thereon.
  • a processing device is transformed in the course of executing software or computer-executable instructions.
  • a first set of data input to a processing device during, or otherwise in association with, the execution of software or computer-executable instructions by the processing device is transformed into a second set of data as a consequence of such execution.
  • This second data set may subsequently be stored, displayed, or otherwise communicated.
  • Such transformation may also be a consequence of, or otherwise involve, the physical alteration of, for example, the states of registers and/or counters associated with a processing device during execution of software or computer-executable instructions by the processing device.
  • a process that is performed “automatically” may mean that the process is performed as a result of machine-executed instructions and does not, other than the establishment of user preferences, require manual effort.
  • a user alert system is described herein that provides direct alerts to users of a real estate website or application each time a single event meets one of a user's criteria. Unlike periodic summary reports that summarize all events within a regular time period, direct or “instant” alerts are delivered as soon as possible after a condition is met for a subject property or other source of the event, so that the user receives the most timely notification possible. Users can create a set of search criteria (e.g., limited to a particular region, price band, house type, and so forth), and then save the search for future reference. The user alert system leverages these search criteria to identify any item that matches the user's search criteria and provide a real-time notification in a timely manner upon any real estate event occurring that matches the user's search criteria.
  • search criteria e.g., limited to a particular region, price band, house type, and so forth
  • Notifications may be provided via a variety of notification channels, such as an email message, a text message, a push notification on a mobile device, a notification center of a desktop operating system, and so on.
  • listing information is extracted from a multiple listing service (MLS) data provider, such as a regional MLS database. Users are notified of relevant changes in the MLS very soon after the changes are made in the MLS. In some embodiments, users may choose which information they are interested in receiving (e.g., they may set search parameters—“listings under $200 k”—and they may restrict alerts to selected subject matter—e.g., “only alert me on new listings, not on price changes”). Information from multiple MLSs may also be aggregated into periodic alerts.
  • MLS multiple listing service
  • the system applies an adaptive quality to information, either through default settings or user-preference settings, so that information that gets stale quickly is sent very frequently, while information for which timeliness is less relevant is sent less frequently (e.g., new listings every 15 minutes, price changes every 15 minutes, status changes every 15 minutes, open house changes daily, reviews by real estate agents every 15 minutes for favorite listings and daily for others).
  • users may mark particular listings as not interesting by crossing them out in a user interface to mark them as an “anti-favorite”. Users are then not notified of changes to anti-favorite listings, even if the listing matches a saved search.
  • Users may choose listings of interest via a search (e.g., “listings in Oakland under $200 k”), by choosing particular listings (e.g., indicating that a listing is a “favorite”), or by other methods provided by the real estate application.
  • a search e.g., “listings in Oakland under $200 k”
  • particular listings e.g., indicating that a listing is a “favorite”
  • the user alert system allows users to find out about changes much more rapidly, which may mean the difference between a user making the first offer on a listing or not and ultimately finding the house the user wants.
  • information from MLSs is periodically imported into a relational database.
  • One or more “importer” jobs run as frequently as reasonable based on a tradeoff between scalability of the backend (as well as any limitations of the MLS provider) and getting alerts to users as frequently as possible.
  • the importer jobs may run very frequently (e.g., every 5 minutes).
  • the importer job records the change to a table in a local database of the real estate application. The data is recorded as a delta—a record of what changed and when it changed (as opposed to simply recording the current value).
  • An “alerts” job also runs periodically (e.g., every 5 or 15 minutes). Each time the alerts job runs, the job calculates the period for which the job is reporting. This period typically starts at the end of the period of the previous job, and ends at the current time. The alerts job finds all of the listing changes that happened during the relevant period. The job correlates the identified changes with the users who are interested in those listings (either because the listing is a favorite, or because the listing matches a saved search).
  • the alerts job may be implemented as a structured query language (SQL) process that runs periodically in a relational database.
  • SQL structured query language
  • the job iterates through the users for which at least one listing was identified (although described serially for ease of explanation, those skilled in the art will recognize that a similar parallel process could be implemented to handle batches or individual users at the same time).
  • the job creates a description (e.g., a text string) that describes all of the relevant listing changes for listings of interest to the user.
  • the description may also include marketing messages (e.g., advertisements), or other information.
  • the system sends an alert to the user of the relevant information. Notification may occur through email or any other electronic medium—short message service (SMS) messages, Twitter messages, push notifications, and so forth.
  • SMS short message service
  • the format of the notification may differ by medium (e.g., a long hypertext markup language (HTML) document for email and a short, text-only message for SMS).
  • HTML hypertext markup language
  • FIG. 1 is a block diagram that illustrates components of the user alert system, in one embodiment.
  • the system 100 includes a user profile component 110 , one or more event sources 120 , a real estate data store 130 , a marked listing component 135 , an event import component 140 , a user alert component 150 , and an alert communication component 160 . Each of these components is described in further detail herein.
  • the user profile component 110 stores user profile information for one or more users of the system 100 .
  • the profile information may include information such as authentication information (e.g., a user identifier and password), contact information (e.g., an email address, phone number, postal address, and so forth), preference information (e.g., what areas a buyer is looking in for purchases, types of properties of interest, and so forth), transactions the user is a party to, saved searches, favorite listings, and so forth.
  • Users may also have a type tracked by the system, such as buyer, seller, service provider, agent, and the like. Any user may operate in several categories at the same time, and may be associated with notifications related to each. For example, a person may be selling a house in one area while buying a house in another.
  • the system may create separate alerts or classifications of events in an alert that allow a user to be separately notified of events related to only one particular scope at some times and all events at others, upon request.
  • the one or more event sources 120 include various sources of real estate related information. These may include data streams from a multiple listing service (MLS), a county information data stream (e.g., sales data, assessor information, tax payments, and the like), transaction information, broker/agent information, and so forth.
  • MLS multiple listing service
  • county information data stream e.g., sales data, assessor information, tax payments, and the like
  • transaction information broker/agent information, and so forth.
  • the real estate website may use these sources of data for everyday operation of the website, such as to provide real estate searches, property information, value estimates, or other purposes.
  • the user alert system described herein uses these event sources to identify and quickly notify the user of events of interest for each user of the real estate website.
  • the real estate data store 130 is a data storage facility that stores information from the event sources, user profile information, and user notification information.
  • the data storage facility may include one or more files, file systems, hard drives, databases, cloud based storage services, or other facilities for storing data persistently over time.
  • the real estate data store 130 may be implemented as a relational database with various tables related to users, properties, transactions, events, and so forth.
  • the system 100 may use queries or other data access methods to periodically identify information stored in the data store 130 that may be of interest to each user, and to provide notifications to each user. In some cases, for efficiency the system may determine groups of users with similar characteristics (e.g., each looking for a similar home in the same area), and perform a unified query to identify events for the group. Although some actions for multiple users may be performed together, the system 100 provides a high level of personalization such that each user may have a different set of events for which the user is notified.
  • the marked listing component 135 manages one or more listings marked by users as favorites or non-favorites. While browsing properties, the system 100 may allow users to mark listings of interest as favorites, as well as marking listings not of interest as non-favorites. Thus, any listing in the system 100 may at any time for a particular user by unmarked (e.g., perhaps new or simply not marked by the user), a favorite, or an anti-favorite.
  • the marked listing component 135 stores markings of properties associated with each user in the real estate data store 130 . The system 100 uses this information to provide alerts for properties marked as favorites, and to avoid providing alerts for those properties marked as anti-favorites. Those properties that are unmarked may generate alerts upon meeting other criteria, such as qualifying as a search result to a saved search.
  • the event import component 140 detects events from the event sources 120 and schedules the detected events for notification to applicable users.
  • the component 140 may store pending notifications in a data structure of the real estate data store 130 .
  • the event import component 140 may detect events from an MLS, such as price increases, changes in status of a listing (e.g., from “for sale” to “under contract” to “pending” to “sold”), new photos available, changes in agent remarks about a listing, notes from a buyer or seller's own agent to the buyer or seller, and so forth.
  • the component 140 may also detect events from other sources, such as a change in assessment or tax value from a county data stream, a rise in the level of interest indicated by page views on a real estate site, new transaction information available from a broker's transaction data stream, or any other event deemed relevant by an implementer of the system 100 . The component 140 then schedules these events for notification of users, either with complete information or with a sufficient amount of reference information to retrieve further information about the event when the notification occurs. The component 140 may store type or source information that indicates where the event came from and what type of event it is. This information is useful later for identifying and culling events relevant to a particular user's notifications.
  • events from other sources such as a change in assessment or tax value from a county data stream, a rise in the level of interest indicated by page views on a real estate site, new transaction information available from a broker's transaction data stream, or any other event deemed relevant by an implementer of the system 100 .
  • the component 140 then schedules these events for notification of users, either with complete information
  • the user alert component 150 periodically analyzes the real estate data store and detected events to identify events relevant to particular users and to communicate those events to the particular users. For example if a particular user is interested in new listings in a geographic area, then the component 150 associates any new listings detected in that area with the user.
  • the user may be a buyer, seller, agent, service provider, or other user of the system 100 .
  • the component 150 may work in conjunction with configuration information stored in a user's profile that specifies types of events for which a particular user is interested in receiving notifications. For example, a service provider or agent may receive a large number of events, and may want to configure his or her profile so that not all events generate notifications, while a buyer or seller that is actually seeking a sale may want to receive every event relevant to that user.
  • the user-alert component 150 may search (e.g., via a query) various sub-stores of the data store 130 , such as tables for listings, transactions, and so forth, to identify events relevant to particular users.
  • the component 150 may regularly run a process for each user that identifies events of relevance to that user, or may group users where the data to be identified for each user is similar (e.g., same types of listings in a given area).
  • the result is a set of events associated with each user that the user is rapidly notified of without the user manually seeking out the information.
  • the alert communication component 160 handles communication of identified alerts to each user.
  • the alert communication may use user profile information to determine a format and channel of alert to use for a particular user. For example, some users may request notification by email, while others may prefer a text message. Some users may prefer alerts by all of the available alert methods, so that the user is more likely to see the alert in a timely manner.
  • the alert communication component 160 may include knowledge of various protocols and services for sending alerts, such as simple message transport protocol (SMTP) for email, SMS or multimedia message service (MMS) for text messages, push notifications for various mobile or other computing platforms, and so forth.
  • the alert communication component 160 may also provide additional services, such as resending dropped alerts, receiving read receipts that indicate which alerts were read, and so forth.
  • FIG. 2 is a flow diagram that illustrates processing of the user alert system to import events from one or more data sources of interest to one or more users, in one embodiment.
  • the system receives a request to check for new events for which users may have requested to be notified. For example, the system may run a process on a tight frequency (e.g., every five minutes) that requests new events to be imported into the system.
  • the request may identify one or more data sources for which new information is rapidly available, such as an MLS.
  • the system performs the following steps to discover new event information and prepare the information for notification to users.
  • the system accesses one or more event data sources to retrieve information that, if changed, is relevant for an alert that at least one user has requested to receive.
  • the system connects to each event source.
  • the event source may provide a website of its own, a web service application-programming interface (API), a file transfer protocol (FTP) site, a remote database connection, or data sharing protocol to which the system can connect to receive new data.
  • the system connects according to the protocol of the particular source, and retrieves new data from that source.
  • the system may do this for each of a series of sources to update a local data store of aggregate real estate information (e.g., information from multiple sources about a set of properties).
  • the system may receive information in one format, such as bulk information about each of the tax parcels in a county, and then may separate this information into individual events (e.g., property A's tax assessed value increased).
  • the system may then store these events in an events table or other data structure of a data store, such as a relational database.
  • the system may also store the bulk data and later extract events by querying one or more records associated with the bulk data. For example, the system may compare two sets of bulk data form different periods to form a “diff” view of items that differ, and then turn these differences into events.
  • a failure to change may also be an event, such as an unsold property with a listing price that has not dropped in more than 60 days.
  • the system can create events for any data occurrence of interest to a particular implementation of the system.
  • the system compares retrieved information to previously retrieved information to identify one or more data changes and generates an event for each data change.
  • the system may store the results of retrieving information each time information is retrieved, and may keep a history of such information, so that comparisons can be performed on various bases (e.g., hourly, daily, weekly, monthly, and yearly).
  • Changes may include changes in the status of a listing, changes in price, a new listing entirely, changes in terms of sale, and so forth.
  • An event typically indicates a type of change (e.g., what changed), and a value associated with the change (e.g., how did it change). This information becomes the basis for a description of the event (e.g., “listing price decreased $5,000”).
  • the system accesses user criteria information that specifies one or more criteria for at least one user for which the user has requested to be notified upon the identification of a matching property data change.
  • the system may access one or more stored user profiles that stores data for each user.
  • a user profile may include saved property searches, a list of favorite properties, a list of anti-favorite properties, general criteria of properties the user likes, and so on.
  • the system accesses this information and compares it to the identified one or more data changes. If a property has an associated data change and the property is one that matches a user's favorites or other criteria, then the user may receive an alert from the system describing the change.
  • the system identifies one or more properties marked by at least one user for which changes to the properties are requested by the user to generate an alert.
  • Marked properties are those that the user has previously identified as favorites and for which the user always wants to be notified of changes. Marked properties may also include those identified as anti-favorites for which the user never wants to be notified of changes. The system considers the user's marked properties to ensure that the user receives notifications for those properties that the user is most interested in (and does not receive those in which the user has no interest).
  • the system schedules alerts to notify users of generated events that match at least one accessed user criteria or marked property.
  • the system may store a list of pending alerts, such as in a database table, or may send the alerts immediately upon determining that an alert should be sent.
  • the system may separate the process of identifying alerts from the process of sending the alerts. This allows the system to quickly identify alerts to be sent without being delayed by any errors or other difficulties that can occur during sending.
  • FIG. 3 describes a detailed process for providing alerts that have been identified and scheduled to users of the system. After block 260 , these steps conclude.
  • FIG. 3 is a flow diagram that illustrates processing of the user alert system to provide alerts to one or more users of a real estate data system, in one embodiment.
  • the system receives a request to send pending alerts to users of the real estate data system.
  • the system may initiate the process of sending alerts immediately after the process of identifying alerts concludes (see, e.g., FIG. 2 ).
  • the system is typically designed to provide rapid alerts to users, the system does not introduce unnecessary delay in the process of sending alerts, but may subdivide the work of sending alerts in a manner that is more efficient for processing on a backend data server.
  • the system accesses one or more pending alert items previously detected based on one or more changes in data provided to the real estate data system by a real estate data provider.
  • the alert items may have a general scope not yet associated with any particular user. For example, each listing that has changed may occupy a row in an events database table that indicates what changed about the listing (e.g., listing price decreased, open house scheduled, status changed to pending, and the like).
  • the system provides adaptive alerts to users such that only those alerts that are deemed to be of a time sensitive nature (e.g., price changes, status changes, new listings) are provided in real time while other events that are less time sensitive (e.g., open house scheduled, tax assessment changed) are provided in a more traditional, longer period (e.g., daily or weekly).
  • time sensitive nature e.g., price changes, status changes, new listings
  • other events that are less time sensitive e.g., open house scheduled, tax assessment changed
  • the system selects a first user to which to provide alerts. On subsequent iterations, the system selects the next user of the system that has requested alerts. Although shown serially for ease of explanation, those of ordinary skill in the art will recognize that the system could notify users in parallel, such as by notifying all users at once or handling blocks of users at a time. Such implementations typically strike a balance between faster alerts to users and managing resources on the backend effectively.
  • the system accesses stored profile information associated with the user, such as saved property searches and properties marked for inclusion and/or exclusion from notifications.
  • the system identifies one or more pending alerts applicable to the selected user.
  • An alert may be deemed applicable based on matching a saved real estate search of the user, pertaining to a favorite property marked by the user, or based on other criteria.
  • a data change related to a property that otherwise satisfies the user's criteria may also be ignored and alerts not sent to the user based on the user having previously marked the property as one to ignore (i.e., an anti-favorite).
  • Events of interest to a user may include any listing changes (or lack of changes) for listings that satisfy a real estate search query saved by the user in the user's profile, events related to a transaction to which the user is a party, events based on behavior of other users (e.g., properties going under contract have risen in an area), and so forth.
  • the system identifies events by matching all of the available event data streams to preference and other configuration information known about the user.
  • the system identifies one or more communication channels requested by the user for receiving the pending alerts.
  • a user's profile includes contact information as well as contact preference information. For example, a user may specify an email address, mobile number for receiving text messages, device identifier for receiving push notifications, and so forth.
  • the system may provide varying levels of configurability.
  • the system may allow a user to map each alert type to a communication channel, so that the user, for example, receives new listings via text message and email, but changes in existing listings only by email. The user can then specify how he or she wants to be notified of each type of alert.
  • a user may also have particular periods during which the user wants a higher level of alerts (e.g., daytime business hours) and other periods where less important alerts are held or not sent (e.g., during sleeping hours).
  • a user may opt for a particularly high level of alerts, while in others the user may be satisfied with a more moderate level of alerts.
  • the system sends the identified alerts to the selected user via the identified communication channels, wherein the system alerts users rapidly without waiting for the expiration of a specified period or the occurrence of multiple events before sending information to the user.
  • the system may also mark alerts has having been sent or clear them from a list of pending alerts upon sending them to the user, so that the user does not receive repeat alerts for the same event.
  • Past real estate systems wait for a period to expire (e.g., nightly) before even checking for alerts for users.
  • the user alert system described herein checks for changed data frequently, and then works to get alerts to users quickly thereafter.
  • the goal of other systems is to batch all of the changes that have occurred during the period in a digest, so that the user is only bothered once per day or other period.
  • the system herein does not wait to batch events, and while multiple events may naturally occur in the same notification cycle, the system herein is intentionally noisier and may send many alerts per day that include on a single data change each.
  • decision block 370 if there are more users then the system loops to block 330 to select the next users for which to identify alerts. When all of the users have been sent any pending alerts, the system completes to wait for the next round when the process begins again. After block 370 , these steps conclude.
  • FIG. 4 is a data flow diagram that illustrates components of the user alert system and how data flows between them, in one embodiment.
  • An MLS data importer 410 retrieves data to detect changes from an MLS on a fast period (e.g., multiple times per hour).
  • the MLS data importer 410 stores imported data in a relational database 430 associated with a real estate website 420 .
  • the real estate website 420 provides one or more user interfaces for receiving user preferences, such as saved real estate search criteria, identified favorite properties, and the like.
  • the system runs an alerter job 440 to identify listing changes in the relational database 430 and send alerts to users and/or parties designated by such users, such as via email server 450 .
  • the system runs the MLS data importer 410 and alerter job 440 processes continuously to detect frequent changes to listing data that may occur throughout the day, and to ensure that users of the real estate website 420 are the first to know about new and/or changed listings.
  • a user who is a potential property purchaser may, in an embodiment, be given the option of selecting his/her agent to likewise or solely receive alerts/notifications as a means of enabling faster agent response (e.g., making a purchase offer on a property) on the user's behalf without requiring the user to consider the alert.
  • such user who is a potential property purchaser may, in an embodiment, be given the option of configuring one or more components of system 100 described herein to automatically generate and send a purchase offer message (e.g., email, text, etc.) to an agent for the seller of the property in response to receiving or the generation of an alert/notification, as described above herein, concerning the property.
  • a purchase offer message e.g., email, text, etc.
  • Such an embodiment enables faster response (e.g., making a purchase offer on a property) on behalf of a user, without requiring the user to consider the alert, in response to threshold criteria being met concerning the property. Accordingly, the invention is not limited except as by the appended claims.

Abstract

A user alert system is described herein that provides direct alerts to users of a real estate website each time a single event meets one of a user's criteria. Unlike periodic summary reports that summarize all events within a regular time period, direct or “instant” alerts are delivered as soon as possible after a condition is met for a subject property or other source of the event, so that the user receives the most timely notification possible. Users can create a set of search criteria and then save the search for future reference. The user alert system leverages these search criteria to identify any item that matches the user's search criteria and provide a real-time notification in a timely manner upon any real estate event occurring that matches the user's search criteria. Thus, the user alert system allows users to find out about changes much more rapidly.

Description

    PRIORITY CLAIM
  • The present application claims priority from U.S. Provisional Application No. 61/710,606, filed Oct. 5, 2012, which is incorporated by reference as if fully set forth herein.
  • BACKGROUND OF THE INVENTION
  • Real estate transactions often involve a buyer, a seller, one or more agents (e.g., a listing agent for the seller and buyer's agent for the buyer), and numerous service providers (e.g., escrow professionals, appraisers, home inspectors, lenders, and so forth. In a typical purchase transaction, the seller lists a property using a listing server, often through a listing agent, while buyers go through a search process to identify potential properties to buy. Once the buyer identifies a property the buyer wants to buy, the buyer makes an offer to the seller, potentially each through their respective agents. The seller may either accept the offer, counteroffer at a different price or other terms, or reject the offer. Once an offer or counteroffer has been accepted, the transaction is typically considered pending and on the way to closing pending inspections, resolving various contingencies, securing funds from a lender, and so forth.
  • In some places and times, the market for residential real estate is fast-moving and, consequently, difficult to keep up with in terms of current and relevant information. Some homes sell within hours of going on the market, or very soon after price reductions and other changes. Purchasers (and others interested in the real estate market) are helped by very rapid access to information to negotiate the best deals. However, they may not have time to constantly review sources of real estate information (e.g., web sites, publications, and so on).
  • Some real estate web sites and other applications allow users to create a set of search criteria (e.g., limited to a particular region, price band, or other criteria), and then save the search. The user can then re-run that search at any time. These sites also often run a periodic process to publish reports based on these searches (e.g., nightly, or weekly). Users can subscribe to receive email alerts on aforementioned saved searches that contain information about listings of interest (including new listings, updated listings, price changes, sales, and the like). In addition, users can mark particular listings as “favorite” listings. When alerts are delivered, users will be notified of changes to listings that match a saved search or are a favorite. However, these reports are primarily oriented on summarizing a variety of information at a regular time, and even nightly reports may be too infrequent in a fast-changing real estate environment.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram that illustrates components of the user alert system, in one embodiment.
  • FIG. 2 is a flow diagram that illustrates processing of the user alert system to import events from one or more data sources of interest to one or more users, in one embodiment.
  • FIG. 3 is a flow diagram that illustrates processing of the user alert system to provide alerts to one or more users of a real estate data system, in one embodiment.
  • FIG. 4 is a data flow diagram that illustrates components of the user alert system and how data flows between or among them, in one embodiment
  • DETAILED DESCRIPTION
  • Embodiments of the invention may be operational with numerous general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer and/or by computer-readable media on which such instructions or modules can be stored. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
  • Embodiments of the invention may include or be implemented in a variety of computer readable media. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
  • According to one or more embodiments, the combination of software or computer-executable instructions with a computer-readable medium results in the creation of a machine or apparatus. Similarly, the execution of software or computer-executable instructions by a processing device results in the creation of a machine or apparatus, which may be distinguishable from the processing device, itself, according to an embodiment.
  • Correspondingly, it is to be understood that a computer-readable medium is transformed by storing software or computer-executable instructions thereon. Likewise, a processing device is transformed in the course of executing software or computer-executable instructions. Additionally, it is to be understood that a first set of data input to a processing device during, or otherwise in association with, the execution of software or computer-executable instructions by the processing device is transformed into a second set of data as a consequence of such execution. This second data set may subsequently be stored, displayed, or otherwise communicated. Such transformation, alluded to in each of the above examples, may be a consequence of, or otherwise involve, the physical alteration of portions of a computer-readable medium. Such transformation, alluded to in each of the above examples, may also be a consequence of, or otherwise involve, the physical alteration of, for example, the states of registers and/or counters associated with a processing device during execution of software or computer-executable instructions by the processing device.
  • As used herein, a process that is performed “automatically” may mean that the process is performed as a result of machine-executed instructions and does not, other than the establishment of user preferences, require manual effort.
  • A user alert system is described herein that provides direct alerts to users of a real estate website or application each time a single event meets one of a user's criteria. Unlike periodic summary reports that summarize all events within a regular time period, direct or “instant” alerts are delivered as soon as possible after a condition is met for a subject property or other source of the event, so that the user receives the most timely notification possible. Users can create a set of search criteria (e.g., limited to a particular region, price band, house type, and so forth), and then save the search for future reference. The user alert system leverages these search criteria to identify any item that matches the user's search criteria and provide a real-time notification in a timely manner upon any real estate event occurring that matches the user's search criteria. Although in some implementations the notifications may still be periodic for efficient implementation on the backend, the period is far more frequent than that available today (e.g., every 15 minutes versus once a day). Notifications may be provided via a variety of notification channels, such as an email message, a text message, a push notification on a mobile device, a notification center of a desktop operating system, and so on.
  • In some embodiments, listing information is extracted from a multiple listing service (MLS) data provider, such as a regional MLS database. Users are notified of relevant changes in the MLS very soon after the changes are made in the MLS. In some embodiments, users may choose which information they are interested in receiving (e.g., they may set search parameters—“listings under $200 k”—and they may restrict alerts to selected subject matter—e.g., “only alert me on new listings, not on price changes”). Information from multiple MLSs may also be aggregated into periodic alerts. In some embodiments, the system applies an adaptive quality to information, either through default settings or user-preference settings, so that information that gets stale quickly is sent very frequently, while information for which timeliness is less relevant is sent less frequently (e.g., new listings every 15 minutes, price changes every 15 minutes, status changes every 15 minutes, open house changes daily, reviews by real estate agents every 15 minutes for favorite listings and daily for others). In some embodiments, users may mark particular listings as not interesting by crossing them out in a user interface to mark them as an “anti-favorite”. Users are then not notified of changes to anti-favorite listings, even if the listing matches a saved search. Users may choose listings of interest via a search (e.g., “listings in Oakland under $200 k”), by choosing particular listings (e.g., indicating that a listing is a “favorite”), or by other methods provided by the real estate application. Thus, the user alert system allows users to find out about changes much more rapidly, which may mean the difference between a user making the first offer on a listing or not and ultimately finding the house the user wants.
  • The following paragraphs provides details of an example implementation of the user alert system, though those of ordinary skill in the art will recognize that any particular implementation may depart from this example while staying within the scope of those principles of operation of the system described herein.
  • In the example embodiment, information from MLSs is periodically imported into a relational database. One or more “importer” jobs run as frequently as reasonable based on a tradeoff between scalability of the backend (as well as any limitations of the MLS provider) and getting alerts to users as frequently as possible. For MLSs that offer real-time information, the importer jobs may run very frequently (e.g., every 5 minutes). When new information is found, the importer job records the change to a table in a local database of the real estate application. The data is recorded as a delta—a record of what changed and when it changed (as opposed to simply recording the current value).
  • An “alerts” job also runs periodically (e.g., every 5 or 15 minutes). Each time the alerts job runs, the job calculates the period for which the job is reporting. This period typically starts at the end of the period of the previous job, and ends at the current time. The alerts job finds all of the listing changes that happened during the relevant period. The job correlates the identified changes with the users who are interested in those listings (either because the listing is a favorite, or because the listing matches a saved search). In some embodiments, the alerts job may be implemented as a structured query language (SQL) process that runs periodically in a relational database.
  • The job iterates through the users for which at least one listing was identified (although described serially for ease of explanation, those skilled in the art will recognize that a similar parallel process could be implemented to handle batches or individual users at the same time). For each user, the job creates a description (e.g., a text string) that describes all of the relevant listing changes for listings of interest to the user. The description may also include marketing messages (e.g., advertisements), or other information. For each user, the system sends an alert to the user of the relevant information. Notification may occur through email or any other electronic medium—short message service (SMS) messages, Twitter messages, push notifications, and so forth. The format of the notification may differ by medium (e.g., a long hypertext markup language (HTML) document for email and a short, text-only message for SMS).
  • FIG. 1 is a block diagram that illustrates components of the user alert system, in one embodiment. The system 100 includes a user profile component 110, one or more event sources 120, a real estate data store 130, a marked listing component 135, an event import component 140, a user alert component 150, and an alert communication component 160. Each of these components is described in further detail herein.
  • The user profile component 110 stores user profile information for one or more users of the system 100. The profile information may include information such as authentication information (e.g., a user identifier and password), contact information (e.g., an email address, phone number, postal address, and so forth), preference information (e.g., what areas a buyer is looking in for purchases, types of properties of interest, and so forth), transactions the user is a party to, saved searches, favorite listings, and so forth. Users may also have a type tracked by the system, such as buyer, seller, service provider, agent, and the like. Any user may operate in several categories at the same time, and may be associated with notifications related to each. For example, a person may be selling a house in one area while buying a house in another. In some cases, the system may create separate alerts or classifications of events in an alert that allow a user to be separately notified of events related to only one particular scope at some times and all events at others, upon request.
  • The one or more event sources 120 include various sources of real estate related information. These may include data streams from a multiple listing service (MLS), a county information data stream (e.g., sales data, assessor information, tax payments, and the like), transaction information, broker/agent information, and so forth. The real estate website may use these sources of data for everyday operation of the website, such as to provide real estate searches, property information, value estimates, or other purposes. The user alert system described herein uses these event sources to identify and quickly notify the user of events of interest for each user of the real estate website.
  • The real estate data store 130 is a data storage facility that stores information from the event sources, user profile information, and user notification information. The data storage facility may include one or more files, file systems, hard drives, databases, cloud based storage services, or other facilities for storing data persistently over time. For example, the real estate data store 130 may be implemented as a relational database with various tables related to users, properties, transactions, events, and so forth. The system 100 may use queries or other data access methods to periodically identify information stored in the data store 130 that may be of interest to each user, and to provide notifications to each user. In some cases, for efficiency the system may determine groups of users with similar characteristics (e.g., each looking for a similar home in the same area), and perform a unified query to identify events for the group. Although some actions for multiple users may be performed together, the system 100 provides a high level of personalization such that each user may have a different set of events for which the user is notified.
  • The marked listing component 135 manages one or more listings marked by users as favorites or non-favorites. While browsing properties, the system 100 may allow users to mark listings of interest as favorites, as well as marking listings not of interest as non-favorites. Thus, any listing in the system 100 may at any time for a particular user by unmarked (e.g., perhaps new or simply not marked by the user), a favorite, or an anti-favorite. The marked listing component 135 stores markings of properties associated with each user in the real estate data store 130. The system 100 uses this information to provide alerts for properties marked as favorites, and to avoid providing alerts for those properties marked as anti-favorites. Those properties that are unmarked may generate alerts upon meeting other criteria, such as qualifying as a search result to a saved search.
  • The event import component 140 detects events from the event sources 120 and schedules the detected events for notification to applicable users. In some embodiments, the component 140 may store pending notifications in a data structure of the real estate data store 130. The event import component 140 may detect events from an MLS, such as price increases, changes in status of a listing (e.g., from “for sale” to “under contract” to “pending” to “sold”), new photos available, changes in agent remarks about a listing, notes from a buyer or seller's own agent to the buyer or seller, and so forth. The component 140 may also detect events from other sources, such as a change in assessment or tax value from a county data stream, a rise in the level of interest indicated by page views on a real estate site, new transaction information available from a broker's transaction data stream, or any other event deemed relevant by an implementer of the system 100. The component 140 then schedules these events for notification of users, either with complete information or with a sufficient amount of reference information to retrieve further information about the event when the notification occurs. The component 140 may store type or source information that indicates where the event came from and what type of event it is. This information is useful later for identifying and culling events relevant to a particular user's notifications.
  • The user alert component 150 periodically analyzes the real estate data store and detected events to identify events relevant to particular users and to communicate those events to the particular users. For example if a particular user is interested in new listings in a geographic area, then the component 150 associates any new listings detected in that area with the user. The user may be a buyer, seller, agent, service provider, or other user of the system 100. The component 150 may work in conjunction with configuration information stored in a user's profile that specifies types of events for which a particular user is interested in receiving notifications. For example, a service provider or agent may receive a large number of events, and may want to configure his or her profile so that not all events generate notifications, while a buyer or seller that is actually seeking a sale may want to receive every event relevant to that user. The user-alert component 150 may search (e.g., via a query) various sub-stores of the data store 130, such as tables for listings, transactions, and so forth, to identify events relevant to particular users. The component 150 may regularly run a process for each user that identifies events of relevance to that user, or may group users where the data to be identified for each user is similar (e.g., same types of listings in a given area). The result is a set of events associated with each user that the user is rapidly notified of without the user manually seeking out the information.
  • The alert communication component 160 handles communication of identified alerts to each user. The alert communication may use user profile information to determine a format and channel of alert to use for a particular user. For example, some users may request notification by email, while others may prefer a text message. Some users may prefer alerts by all of the available alert methods, so that the user is more likely to see the alert in a timely manner. The alert communication component 160 may include knowledge of various protocols and services for sending alerts, such as simple message transport protocol (SMTP) for email, SMS or multimedia message service (MMS) for text messages, push notifications for various mobile or other computing platforms, and so forth. The alert communication component 160 may also provide additional services, such as resending dropped alerts, receiving read receipts that indicate which alerts were read, and so forth.
  • FIG. 2 is a flow diagram that illustrates processing of the user alert system to import events from one or more data sources of interest to one or more users, in one embodiment. Beginning in block 210, the system receives a request to check for new events for which users may have requested to be notified. For example, the system may run a process on a tight frequency (e.g., every five minutes) that requests new events to be imported into the system. The request may identify one or more data sources for which new information is rapidly available, such as an MLS. In response to the request, the system performs the following steps to discover new event information and prepare the information for notification to users.
  • Continuing in block 220, the system accesses one or more event data sources to retrieve information that, if changed, is relevant for an alert that at least one user has requested to receive. The system connects to each event source. The event source may provide a website of its own, a web service application-programming interface (API), a file transfer protocol (FTP) site, a remote database connection, or data sharing protocol to which the system can connect to receive new data. The system connects according to the protocol of the particular source, and retrieves new data from that source. The system may do this for each of a series of sources to update a local data store of aggregate real estate information (e.g., information from multiple sources about a set of properties).
  • The system may receive information in one format, such as bulk information about each of the tax parcels in a county, and then may separate this information into individual events (e.g., property A's tax assessed value increased). The system may then store these events in an events table or other data structure of a data store, such as a relational database. The system may also store the bulk data and later extract events by querying one or more records associated with the bulk data. For example, the system may compare two sets of bulk data form different periods to form a “diff” view of items that differ, and then turn these differences into events. In some cases, a failure to change may also be an event, such as an unsold property with a listing price that has not dropped in more than 60 days. The system can create events for any data occurrence of interest to a particular implementation of the system.
  • Continuing in block 230, the system compares retrieved information to previously retrieved information to identify one or more data changes and generates an event for each data change. The system may store the results of retrieving information each time information is retrieved, and may keep a history of such information, so that comparisons can be performed on various bases (e.g., hourly, daily, weekly, monthly, and yearly). Changes may include changes in the status of a listing, changes in price, a new listing entirely, changes in terms of sale, and so forth. An event typically indicates a type of change (e.g., what changed), and a value associated with the change (e.g., how did it change). This information becomes the basis for a description of the event (e.g., “listing price decreased $5,000”).
  • Continuing in block 240, the system accesses user criteria information that specifies one or more criteria for at least one user for which the user has requested to be notified upon the identification of a matching property data change. The system may access one or more stored user profiles that stores data for each user. A user profile may include saved property searches, a list of favorite properties, a list of anti-favorite properties, general criteria of properties the user likes, and so on. The system accesses this information and compares it to the identified one or more data changes. If a property has an associated data change and the property is one that matches a user's favorites or other criteria, then the user may receive an alert from the system describing the change.
  • Continuing in block 250, the system identifies one or more properties marked by at least one user for which changes to the properties are requested by the user to generate an alert. Marked properties are those that the user has previously identified as favorites and for which the user always wants to be notified of changes. Marked properties may also include those identified as anti-favorites for which the user never wants to be notified of changes. The system considers the user's marked properties to ensure that the user receives notifications for those properties that the user is most interested in (and does not receive those in which the user has no interest).
  • Continuing in block 260, the system schedules alerts to notify users of generated events that match at least one accessed user criteria or marked property. The system may store a list of pending alerts, such as in a database table, or may send the alerts immediately upon determining that an alert should be sent. The system may separate the process of identifying alerts from the process of sending the alerts. This allows the system to quickly identify alerts to be sent without being delayed by any errors or other difficulties that can occur during sending. FIG. 3 describes a detailed process for providing alerts that have been identified and scheduled to users of the system. After block 260, these steps conclude.
  • FIG. 3 is a flow diagram that illustrates processing of the user alert system to provide alerts to one or more users of a real estate data system, in one embodiment. Beginning in block 310, the system receives a request to send pending alerts to users of the real estate data system. For example, the system may initiate the process of sending alerts immediately after the process of identifying alerts concludes (see, e.g., FIG. 2). Because the system is typically designed to provide rapid alerts to users, the system does not introduce unnecessary delay in the process of sending alerts, but may subdivide the work of sending alerts in a manner that is more efficient for processing on a backend data server.
  • Continuing in block 320, the system accesses one or more pending alert items previously detected based on one or more changes in data provided to the real estate data system by a real estate data provider. The alert items may have a general scope not yet associated with any particular user. For example, each listing that has changed may occupy a row in an events database table that indicates what changed about the listing (e.g., listing price decreased, open house scheduled, status changed to pending, and the like). In some embodiments, the system provides adaptive alerts to users such that only those alerts that are deemed to be of a time sensitive nature (e.g., price changes, status changes, new listings) are provided in real time while other events that are less time sensitive (e.g., open house scheduled, tax assessment changed) are provided in a more traditional, longer period (e.g., daily or weekly).
  • Continuing in block 330, the system selects a first user to which to provide alerts. On subsequent iterations, the system selects the next user of the system that has requested alerts. Although shown serially for ease of explanation, those of ordinary skill in the art will recognize that the system could notify users in parallel, such as by notifying all users at once or handling blocks of users at a time. Such implementations typically strike a balance between faster alerts to users and managing resources on the backend effectively. Upon selecting the user, the system accesses stored profile information associated with the user, such as saved property searches and properties marked for inclusion and/or exclusion from notifications.
  • Continuing in block 340, the system identifies one or more pending alerts applicable to the selected user. An alert may be deemed applicable based on matching a saved real estate search of the user, pertaining to a favorite property marked by the user, or based on other criteria. A data change related to a property that otherwise satisfies the user's criteria may also be ignored and alerts not sent to the user based on the user having previously marked the property as one to ignore (i.e., an anti-favorite). Events of interest to a user may include any listing changes (or lack of changes) for listings that satisfy a real estate search query saved by the user in the user's profile, events related to a transaction to which the user is a party, events based on behavior of other users (e.g., properties going under contract have risen in an area), and so forth. The system identifies events by matching all of the available event data streams to preference and other configuration information known about the user.
  • Continuing in block 350, the system identifies one or more communication channels requested by the user for receiving the pending alerts. A user's profile includes contact information as well as contact preference information. For example, a user may specify an email address, mobile number for receiving text messages, device identifier for receiving push notifications, and so forth. The system may provide varying levels of configurability. In some embodiments, the system may allow a user to map each alert type to a communication channel, so that the user, for example, receives new listings via text message and email, but changes in existing listings only by email. The user can then specify how he or she wants to be notified of each type of alert. A user may also have particular periods during which the user wants a higher level of alerts (e.g., daytime business hours) and other periods where less important alerts are held or not sent (e.g., during sleeping hours). In a hot real estate market, a user may opt for a particularly high level of alerts, while in others the user may be satisfied with a more moderate level of alerts.
  • Continuing in block 360, the system sends the identified alerts to the selected user via the identified communication channels, wherein the system alerts users rapidly without waiting for the expiration of a specified period or the occurrence of multiple events before sending information to the user. The system may also mark alerts has having been sent or clear them from a list of pending alerts upon sending them to the user, so that the user does not receive repeat alerts for the same event. Past real estate systems wait for a period to expire (e.g., nightly) before even checking for alerts for users. The user alert system described herein checks for changed data frequently, and then works to get alerts to users quickly thereafter. The goal of other systems is to batch all of the changes that have occurred during the period in a digest, so that the user is only bothered once per day or other period. In contrast, the system herein does not wait to batch events, and while multiple events may naturally occur in the same notification cycle, the system herein is intentionally noisier and may send many alerts per day that include on a single data change each.
  • Continuing in decision block 370, if there are more users then the system loops to block 330 to select the next users for which to identify alerts. When all of the users have been sent any pending alerts, the system completes to wait for the next round when the process begins again. After block 370, these steps conclude.
  • FIG. 4 is a data flow diagram that illustrates components of the user alert system and how data flows between them, in one embodiment. An MLS data importer 410 retrieves data to detect changes from an MLS on a fast period (e.g., multiple times per hour). The MLS data importer 410 stores imported data in a relational database 430 associated with a real estate website 420. The real estate website 420 provides one or more user interfaces for receiving user preferences, such as saved real estate search criteria, identified favorite properties, and the like. The system runs an alerter job 440 to identify listing changes in the relational database 430 and send alerts to users and/or parties designated by such users, such as via email server 450. The system runs the MLS data importer 410 and alerter job 440 processes continuously to detect frequent changes to listing data that may occur throughout the day, and to ensure that users of the real estate website 420 are the first to know about new and/or changed listings.
  • From the foregoing, it will be appreciated that specific embodiments of the user alert system have been described herein for purposes of illustration, but that various modifications may be made without deviating from the spirit and scope of the invention. For example, a user who is a potential property purchaser may, in an embodiment, be given the option of selecting his/her agent to likewise or solely receive alerts/notifications as a means of enabling faster agent response (e.g., making a purchase offer on a property) on the user's behalf without requiring the user to consider the alert. Additionally, such user who is a potential property purchaser may, in an embodiment, be given the option of configuring one or more components of system 100 described herein to automatically generate and send a purchase offer message (e.g., email, text, etc.) to an agent for the seller of the property in response to receiving or the generation of an alert/notification, as described above herein, concerning the property. Such an embodiment enables faster response (e.g., making a purchase offer on a property) on behalf of a user, without requiring the user to consider the alert, in response to threshold criteria being met concerning the property. Accordingly, the invention is not limited except as by the appended claims.

Claims (20)

1. A computer-implemented method to import real estate events from one or more data sources of interest to one or more users of a real estate application, the method comprising:
receiving a request to check for new events for which users may have requested to be notified;
accessing one or more event data sources to retrieve information that, if changed, is relevant for an alert that at least one user has requested to receive;
comparing retrieved information to previously retrieved information to identify one or more data changes and generating an event for each data change;
accessing user criteria information that specifies one or more criteria for at least one user for which the user has requested to be notified upon the identification of a matching property data change;
identifying one or more properties marked by at least one user for which changes to the properties are requested by the user to generate an alert; and
scheduling alerts to notify users of generated events that match at least one accessed user criteria or marked property,
wherein the preceding steps are performed by at least one processor.
2. The method of claim 1 wherein receiving the request comprises running a process on a tight frequency multiple times per hour that requests for new events to be imported.
3. The method of claim 1 wherein receiving the request comprises receiving information identifying one or more data sources for which new information is rapidly available.
4. The method of claim 1 wherein accessing event data sources comprises connecting to each source according to a protocol of the particular source, retrieving new data from that source, and storing the data in a local data store of aggregate real estate information.
5. The method of claim 1 wherein accessing event data sources comprises receiving information in a bulk format and separating the information into individual events.
6. The method of claim 1 wherein accessing event data sources comprises comparing two sets of data accessed at different times to identify changes, and identifying each change as an event.
7. The method of claim 1 wherein comparing data changes comprises storing results of retrieving information each time information is retrieved, and keeping a history of such information so that comparisons can be performed.
8. The method of claim 1 wherein generating an event comprises indicating a type of change and a value associated with the change that can later be used to generate a text-based description of the event.
9. The method of claim 1 wherein accessing user criteria information comprises accessing one or more stored user profiles that include saved property searches.
10. The method of claim 1 wherein accessing user criteria information comprises accessing one or more stored user profiles and comparing data therein to the identified one or more data changes to identify matches.
11. The method of claim 1 wherein identifying marked properties comprises identifying one or more properties identified as favorites, and providing alerts for any data changes in favorite properties.
12. The method of claim 1 wherein identifying marked properties comprises identifying one or more properties identified as anti-favorites, and suppressing alerts for any data changes in anti-favorite properties.
13. The method of claim 1 wherein scheduling alerts comprises invoking a process to send scheduled alerts to users after completing a process of identifying data changes.
14. A computer system for providing fast alerts for rapidly changing real estate data, the system comprising:
a processor and memory configured to execute software instructions embodied within the following components;
a user profile component that stores user profile information for one or more users of the system;
one or more event sources that include at least one multiple listing service (MLS);
a real estate data store that stores information from the event sources and user profile information;
a marked listing component that manages one or more listings marked by users as favorites;
an event import component that detects events from the event sources and schedules the detected events for short-term notification to applicable users;
a user alert component that periodically analyzes the real estate data store and detected events to identify events relevant to particular users and to communicate those events to the particular users; and
an alert communication component that handles communication of identified alerts to each user.
15. The system of claim 14 wherein the user profile component stores one or more saved property searches that specify one or more criteria for properties of interest to users of the system.
16. The system of claim 14 wherein the marked listings component applies user favorite information to notifications to alert users to changes in properties that are marked as favorites.
17. The system of claim 14 wherein the marked listings component also tracks listings that a user has marked as non-favorites and suppresses notifications for changes in listings that are marked as non-favorites.
18. The system of claim 14 wherein the event import component detects data changes from the event sources multiple times per hour, and sends notifications to users in real time upon detecting a data change.
19. The system of claim 14 wherein the event import component adaptively schedules alerts for events based on event types, so that some events are scheduled for immediate notification to users and other events are delayed for notification on a longer-term schedule.
20. A computer-readable storage medium comprising instructions for controlling a computer system to provide alerts to one or more users of a real estate data system, wherein the instructions, upon execution, cause a processor to perform actions comprising:
receiving a request to send pending alerts to users of the real estate data system;
accessing one or more pending alert items previously detected based on one or more changes in data provided to the real estate data system by a real estate data provider;
selecting a first user to which to provide alerts;
identifying one or more pending alerts applicable to the selected user;
identifying one or more communication channels requested by the user for receiving the pending alerts; and
sending the identified alerts to the selected user via the identified communication channels, wherein the system alerts users rapidly without waiting for the expiration of a specified period or the occurrence of multiple events before sending information to the user.
US13/907,724 2012-10-05 2013-05-31 Providing fast alerts for rapidly changing real estate data Abandoned US20140100956A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/907,724 US20140100956A1 (en) 2012-10-05 2013-05-31 Providing fast alerts for rapidly changing real estate data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261710606P 2012-10-05 2012-10-05
US13/907,724 US20140100956A1 (en) 2012-10-05 2013-05-31 Providing fast alerts for rapidly changing real estate data

Publications (1)

Publication Number Publication Date
US20140100956A1 true US20140100956A1 (en) 2014-04-10

Family

ID=50433414

Family Applications (8)

Application Number Title Priority Date Filing Date
US13/907,724 Abandoned US20140100956A1 (en) 2012-10-05 2013-05-31 Providing fast alerts for rapidly changing real estate data
US13/907,681 Abandoned US20140236768A1 (en) 2012-10-05 2013-05-31 Physical references for providing supplemental real estate information
US13/907,632 Active 2034-02-04 US9406082B2 (en) 2012-10-05 2013-05-31 Multiplexing web requests for improved performance
US14/046,833 Active US9706011B2 (en) 2012-10-05 2013-10-04 Personalized real estate event feed
US14/046,811 Abandoned US20140143644A1 (en) 2012-10-05 2013-10-04 Web browser page transition acceleration
US14/047,820 Abandoned US20140100905A1 (en) 2012-10-05 2013-10-07 Home tour and open house scheduler
US15/198,786 Abandoned US20160337481A1 (en) 2012-10-05 2016-06-30 Multiplexing web requests for improved performance
US15/616,721 Abandoned US20180007169A1 (en) 2012-10-05 2017-06-07 Personalized real estate event feed

Family Applications After (7)

Application Number Title Priority Date Filing Date
US13/907,681 Abandoned US20140236768A1 (en) 2012-10-05 2013-05-31 Physical references for providing supplemental real estate information
US13/907,632 Active 2034-02-04 US9406082B2 (en) 2012-10-05 2013-05-31 Multiplexing web requests for improved performance
US14/046,833 Active US9706011B2 (en) 2012-10-05 2013-10-04 Personalized real estate event feed
US14/046,811 Abandoned US20140143644A1 (en) 2012-10-05 2013-10-04 Web browser page transition acceleration
US14/047,820 Abandoned US20140100905A1 (en) 2012-10-05 2013-10-07 Home tour and open house scheduler
US15/198,786 Abandoned US20160337481A1 (en) 2012-10-05 2016-06-30 Multiplexing web requests for improved performance
US15/616,721 Abandoned US20180007169A1 (en) 2012-10-05 2017-06-07 Personalized real estate event feed

Country Status (1)

Country Link
US (8) US20140100956A1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140161315A1 (en) * 2012-12-10 2014-06-12 Verint Systems Ltd. Irregular Event Detection in Push Notifications
US20140379799A1 (en) * 2013-06-21 2014-12-25 Microsoft Corporation Augmenting content obtained from different content sources
US20150106278A1 (en) * 2013-10-11 2015-04-16 Costar Realty Information, Inc. Method and apparatus for search and analysis of real estate data
US20170330296A1 (en) * 2016-05-12 2017-11-16 Joseph C. Burke Consumer Oriented Mobile Solution to Track Your Closing
US20180060980A1 (en) * 2016-08-25 2018-03-01 Barbara Carey Stachowski Search with home tour navigation
US20190251644A1 (en) * 2018-02-09 2019-08-15 Gregory D. Hague Method and system for rapid notification of new real estate listings
CN112348713A (en) * 2020-09-25 2021-02-09 贝壳技术有限公司 QLRunner-based data processing method, device, electronic equipment and medium
US20220028014A1 (en) * 2020-07-21 2022-01-27 Michael J. Huth Home History Records and Database
US11694681B2 (en) 2018-01-08 2023-07-04 Ebay Inc. Artificial assistant system notifications
US11769219B2 (en) 2021-11-15 2023-09-26 Anthony Makins Computer-implemented and interactive real estate contract generation and editing process

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140279176A1 (en) * 2013-03-15 2014-09-18 Redfin Corporation Provision of real-estate market information
US20150012530A1 (en) * 2013-07-05 2015-01-08 Accenture Global Services Limited Determining an emergent identity over time
US9507761B2 (en) * 2013-12-26 2016-11-29 International Business Machines Corporation Comparing webpage elements having asynchronous functionality
GB2530781A (en) * 2014-10-02 2016-04-06 Ibm Processing messages for retrieval from a message queuing system
CN105046256B (en) * 2015-07-22 2018-10-16 福建新大陆自动识别技术有限公司 QR codes coding/decoding method based on distorted image correction and system
US10425348B2 (en) * 2015-07-22 2019-09-24 The Regents Of The University Of Colorado Stateless network functions
US10311511B2 (en) 2015-09-14 2019-06-04 The Toronto-Dominion Bank Connected device-based property evaluation
CN105183890B (en) * 2015-09-28 2020-07-10 北京奇虎科技有限公司 Webpage loading method based on browser and browser device
US10229214B2 (en) * 2015-12-31 2019-03-12 Ca, Inc. Dynamic web page navigation
US10075549B2 (en) * 2016-01-25 2018-09-11 Quest Software Inc. Optimizer module in high load client/server systems
US11194572B2 (en) * 2016-02-22 2021-12-07 International Business Machines Corporation Managing external feeds in an event-based computing system
KR102450487B1 (en) * 2016-03-17 2022-10-04 구글 엘엘씨 Hybrid client-server data delivery
US11170059B2 (en) * 2016-03-30 2021-11-09 International Business Machines Corporation Personalized content selection for time-constrained sessions
US10250716B2 (en) * 2016-06-30 2019-04-02 Salesforce.Com, Inc. Priority-driven boxcarring of action requests from component-driven cloud applications
US10250715B2 (en) * 2016-06-30 2019-04-02 Salesforce.Com, Inc. Dynamic adjustment of boxcarring of action requests from component-driven cloud applications
US10540620B2 (en) 2016-10-31 2020-01-21 Microsoft Technology Licensing, Llc Personalized aggregated project team activity feed
US10574723B2 (en) * 2016-11-30 2020-02-25 Nutanix, Inc. Web services communication management
US20180218387A1 (en) * 2017-01-30 2018-08-02 Price-Mars Delly Feedback system through an online community format
US10620996B2 (en) * 2017-04-26 2020-04-14 Servicenow, Inc. Batching asynchronous web requests
US10540364B2 (en) 2017-05-02 2020-01-21 Home Box Office, Inc. Data delivery architecture for transforming client response data
US10460748B2 (en) 2017-10-04 2019-10-29 The Toronto-Dominion Bank Conversational interface determining lexical personality score for response generation with synonym replacement
US10339931B2 (en) 2017-10-04 2019-07-02 The Toronto-Dominion Bank Persona-based conversational interface personalization using social network preferences
CN107862352B (en) * 2017-10-12 2021-06-29 深圳思为科技有限公司 Two-dimensional code sharing method and two-dimensional code sharing equipment
US11393056B1 (en) * 2018-03-06 2022-07-19 TourZazz, Inc. Property tour management system
US10846776B1 (en) * 2018-03-19 2020-11-24 Amazon Technologies, Inc. Account customized item list system
CN110430521B (en) * 2018-04-27 2020-10-30 上海大唐移动通信设备有限公司 WIFI indoor positioning-based clothing sales analysis system and method
CN108959495B (en) * 2018-06-25 2019-12-06 百度在线网络技术(北京)有限公司 page display method, device, equipment and computer storage medium of H5 webpage
US11593718B2 (en) * 2018-07-20 2023-02-28 Tour24, Inc. Systems and methods for scheduling and performing self-guided tours of multi-unit residential facilities
US11042426B2 (en) 2018-08-23 2021-06-22 International Business Machines Corporation Utilizing reusable AJAX requests
UA122556C2 (en) 2018-12-03 2020-11-25 Олександр Вікторович Романєєв MULTI-USER MULTILINGUAL SYSTEM FOR CREATING ORDERS AND MANUFACTURING WINDOWS AND DOORS
CN109978656B (en) * 2019-02-12 2024-02-06 平安科技(深圳)有限公司 House personalized configuration management method, device, computer equipment and storage medium
US11379546B2 (en) 2019-02-13 2022-07-05 The Toronto-Dominion Bank System and method for controlling visibility of elements of displayed electronic content
US11430077B2 (en) * 2019-02-13 2022-08-30 The Toronto-Dominion Bank System and method for searching and monitoring assets available for acquisition
EP3715790A1 (en) * 2019-03-29 2020-09-30 Naver Corporation System and method for generating tours
KR102654689B1 (en) * 2019-05-24 2024-04-03 삼성에스디에스 주식회사 Accelerated processing apparatus for transaction considering transaction failure probability and method thereof
KR20200139034A (en) * 2019-06-03 2020-12-11 삼성에스디에스 주식회사 Blockchain based computing system and method for managing transaction thereof
US11682090B2 (en) 2020-02-14 2023-06-20 Cibo Technologies, Inc. Method and apparatus for generation and employment of parcel production stability attributes for land parcel valuation
US11798043B2 (en) 2020-02-14 2023-10-24 Cibo Technologies, Inc. Method and apparatus for generation and employment of agro-economic metrics for land parcel valuation
US11727170B2 (en) 2020-02-14 2023-08-15 Cibo Technologies, Inc. Method and apparatus for generation of land parcel valuation based on supplemented parcel productivity attributes
US11823296B2 (en) 2020-02-14 2023-11-21 Cibo Technologies, Inc. Method and apparatus for generation and employment of parcel productivity attributes for land parcel valuation
US11720724B2 (en) 2020-02-14 2023-08-08 Cibo Technologies, Inc. Method and apparatus for generation of land parcel valuation tailored for use
US11720723B2 (en) 2020-02-14 2023-08-08 Cibo Technologies, Inc. Method and apparatus for generation and employment of parcel sustainability attributes for land parcel valuation
US11500815B2 (en) * 2020-03-26 2022-11-15 EMC IP Holding Company LLC Dual relationship-based hash structure for non-volatile memory technology
KR20210140851A (en) * 2020-05-14 2021-11-23 삼성에스디에스 주식회사 Method for associating data between a plurality of blockchain networks and apparatus thereof
US11768840B2 (en) 2020-07-08 2023-09-26 Cibo Technologies, Inc. Method and apparatus for rapid search for agricultural parcels and generation of relevant search results
US11580116B2 (en) 2020-07-08 2023-02-14 Cibo Technologies, Inc. Viewport location based method and apparatus for generation and promotion of type ahead results in a multi-source agricultural parcel search
US11657042B2 (en) 2020-07-08 2023-05-23 Cibo Technologies, Inc. Method and apparatus for generation and promotion of type ahead results in a multi-source agricultural parcel search
US20220244820A1 (en) * 2021-02-02 2022-08-04 Taboola.Com Ltd In-page navigation
US11960490B2 (en) * 2021-11-01 2024-04-16 Chasing Bacon, LLC Property resource location and information sharing system
CN114518912B (en) * 2022-02-21 2023-04-25 度小满科技(北京)有限公司 Page loading method, device, equipment and readable storage medium
CN116308218A (en) * 2023-05-22 2023-06-23 北京焦点新干线信息技术有限公司 Early warning method, device, equipment and storage medium for online house selection system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078464A1 (en) * 1999-09-16 2004-04-22 Rajan Sreeranga P. Method and apparatus for enabling real time monitoring and notification of data updates for WEB-based data synchronization services
US7333943B1 (en) * 2000-08-11 2008-02-19 The Prudential Insurance Company Of America Method and system for managing real property transactions having internet access and control
US20080126170A1 (en) * 2006-11-07 2008-05-29 Leck Mark H Systems and Methods for Retrieving Potential Real Estate Leads
US20100217686A1 (en) * 2004-05-03 2010-08-26 Superlative, Inc. System for managing communication between a real estate agent and clients
US20110004560A1 (en) * 2009-07-06 2011-01-06 Max Knake System and method for providing real estate information to potential buyers
US9235971B1 (en) * 2011-06-28 2016-01-12 Emc Corporation Service window optimized system alert engine

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5032989A (en) 1986-03-19 1991-07-16 Realpro, Ltd. Real estate search and location system and method
US5636117A (en) 1991-03-11 1997-06-03 Rothstein; Robert E. Method and apparatus for monitoring the strength of a real estate market or commodity market and making lending and insurance decisions therefrom
US5758313A (en) 1992-10-16 1998-05-26 Mobile Information Systems, Inc. Method and apparatus for tracking vehicle location
US5844570A (en) 1995-05-02 1998-12-01 Ames Research Laboratories Method and apparatus for generating digital map images of a uniform format
JP4179655B2 (en) 1998-01-29 2008-11-12 ソニー株式会社 Information providing apparatus and method, information transmitting apparatus, and information providing system
US7840440B2 (en) 1998-08-06 2010-11-23 Cybersettle Holdings, Inc. Computerized transaction bargaining system and method
US20030158786A1 (en) 1999-02-26 2003-08-21 Skyline Software Systems, Inc. Sending three-dimensional images over a network
US6684196B1 (en) 1999-07-07 2004-01-27 Ziprealty, Inc. Beginning-to-end online automation of real estate transactions
US8397177B2 (en) 1999-07-22 2013-03-12 Tavusi Data Solutions Llc Graphic-information flow method and system for visually analyzing patterns and relationships
US6307573B1 (en) 1999-07-22 2001-10-23 Barbara L. Barros Graphic-information flow method and system for visually analyzing patterns and relationships
US6799166B2 (en) * 1999-09-02 2004-09-28 International Business Machines Corporation Method and apparatus for preventing duplicate transactions on batch mode failure recovery in a data processing system
US6839880B1 (en) 1999-10-21 2005-01-04 Home Debut, Inc. Electronic property viewing system for providing virtual tours via a public communications network, and a method of exchanging the same
US20020049624A1 (en) 1999-12-10 2002-04-25 Raveis William M. System and method for tracking real estate transactions
AU2627401A (en) 2000-01-04 2001-07-16 Callnetics Corporation A method and system for coordinating real estate appointments
US20020022980A1 (en) * 2000-01-04 2002-02-21 Bahram Mozayeny Method and system for coordinating real estate appointments
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US6871140B1 (en) 2000-02-25 2005-03-22 Costar Group, Inc. System and method for collection, distribution, and use of information in connection with commercial real estate
US20010037273A1 (en) 2000-03-02 2001-11-01 Greenlee George Richard Commercial real estate lease automation system
US20010039506A1 (en) 2000-04-04 2001-11-08 Robbins Michael L. Process for automated real estate valuation
US20020010572A1 (en) 2000-04-14 2002-01-24 Lyman Orton Integrated system for and method of supporting spatial decision making and land-use scenario analysis
WO2001080112A1 (en) 2000-04-18 2001-10-25 Amaskorea Co., Ltd. Method for producing identification code, and method and system for giving electronic notice service and electronic meter reading service by using the same
US7454355B2 (en) 2000-04-27 2008-11-18 Milman Robert N Method and system for providing real estate information using a computer network, such as the internet
AU2001255738A1 (en) 2000-04-28 2001-11-12 Ecplatforms, Inc. Multimode negotiation in a networking environment
US6882313B1 (en) 2000-06-21 2005-04-19 At Road, Inc. Dual platform location-relevant service
US6624742B1 (en) 2000-06-24 2003-09-23 Motorola, Inc. Wireless intelligent real estate sign and electronic lock box
US7249036B2 (en) * 2000-07-06 2007-07-24 Cary Gresham Bayne Method for clinician house calls utilizing portable computing and communications equipment
US20020052814A1 (en) * 2000-07-10 2002-05-02 Ketterer Robert M. Virtual real estate brokage system
AU2001288502A1 (en) 2000-08-28 2002-03-13 Isdi.Net, Llc Value your home
US20020042839A1 (en) * 2000-10-10 2002-04-11 Christopher Peiffer HTTP multiplexor/demultiplexor
US6873998B1 (en) 2000-10-18 2005-03-29 Navteq North America, Llc System and method for updating a geographic database using satellite imagery
US7487114B2 (en) 2000-10-23 2009-02-03 Costar Group, Inc. System and method for associating aerial images, map features, and information
US7197160B2 (en) 2001-03-05 2007-03-27 Digimarc Corporation Geographic information systems using digital watermarks
US20020133374A1 (en) 2001-03-13 2002-09-19 Agoni Anthony Angelo System and method for facilitating services
US6883002B2 (en) 2001-03-26 2005-04-19 David Allen Faudman Real estate information exchange process and system
US7346519B2 (en) 2001-04-10 2008-03-18 Metropolitan Regional Information Systems, Inc Method and system for MRIS platinum database
US20050125237A1 (en) 2001-05-04 2005-06-09 Craig Harrison System for selling real estate products and services through the internet
CA2352844C (en) 2001-07-10 2009-11-17 Geojet Information Solutions Inc. 3-d map data visualization
US20030040934A1 (en) 2001-08-23 2003-02-27 Brent Skidmore Integrated home inspection and home warranty system
US20030101063A1 (en) 2001-09-28 2003-05-29 Sexton Ashley K. Real estate information system
US6978445B2 (en) * 2001-09-28 2005-12-20 Siebel Systems, Inc. Method and system for supporting user navigation in a browser environment
US7092957B2 (en) 2002-01-18 2006-08-15 Boundary Solutions Incorporated Computerized national online parcel-level map data portal
US20030158668A1 (en) 2002-02-15 2003-08-21 Anderson James J. System and method of geospatially mapping topological regions and displaying their attributes
US20040243533A1 (en) 2002-04-08 2004-12-02 Wsi Corporation Method for interactively creating real-time visualizations of traffic information
US7328163B2 (en) 2002-04-26 2008-02-05 At&T Delaware Intellectual Property, Inc. System and method for distributing information
US7212670B1 (en) 2002-05-03 2007-05-01 Imagetree Corp. Method of feature identification and analysis
US7389242B2 (en) 2002-05-07 2008-06-17 Re3W Worldwide Limited Interactive processing of real estate transactions
US20040039629A1 (en) 2002-05-23 2004-02-26 Kevin Hoffman Web based method and system for managing and transferring business information
US20050010423A1 (en) 2002-05-24 2005-01-13 Dan Bagbey Real estate related and ancilliary services provided through a single point of sale
US20040046798A1 (en) 2002-06-12 2004-03-11 Arlene Alen Real estate presentation device and method
US9811805B2 (en) 2002-09-18 2017-11-07 eSys Technologies, Inc. Automated work-flow management system with dynamic interface
US20040088172A1 (en) 2002-11-01 2004-05-06 Baglioni Martin A. Method and apparatus for real estate agent selection
US20040167797A1 (en) 2002-12-17 2004-08-26 Goncalves Gabriel P. System and method for real estate asset management
US8051089B2 (en) 2003-04-30 2011-11-01 Hewlett-Packard Development Company, L.P. Systems and methods for location-based real estate service
US20050004927A1 (en) 2003-06-02 2005-01-06 Joel Singer Intelligent and automated system of collecting, processing, presenting and distributing real property data and information
US20040249705A1 (en) 2003-06-04 2004-12-09 Perpetual Innovations Company Llc Systems and methods for facilitating real estate transactions
US20050049953A1 (en) 2003-09-03 2005-03-03 Vu Tuan Anh Real estate business method and system integrating multi-level network marketing, franchise management and web tools
US20050096926A1 (en) 2003-10-31 2005-05-05 Eaton Steven L. Automated realty transfer
GB0326915D0 (en) * 2003-11-19 2003-12-24 Ibm A method and system for updating/reloading the content of pages browsed over a network
US20050119903A1 (en) * 2003-12-01 2005-06-02 Lee Fu C. Guided tour system
US20050257131A1 (en) * 2004-02-11 2005-11-17 Lim Jing Y Frame environment that supports the navigation buttons of a web browser
US20050192930A1 (en) 2004-02-27 2005-09-01 Terradatum, Inc. System and method of real estate data analysis and display to support business management
US7447613B2 (en) 2004-02-27 2008-11-04 Deere & Company Method and system for providing a diverse supply of electrical energy
US7283909B1 (en) 2004-03-24 2007-10-16 Olsen Michael A Overlaying orthorectified aerial images with map information tied to a state plane coordinate system
US20050240448A1 (en) 2004-04-27 2005-10-27 Smith Jeffrey C System and method for insuring an entity against tenant default with respect to an income-producing property
US20050273346A1 (en) 2004-06-02 2005-12-08 Frost Richard N Real property information management system and method
WO2005124584A2 (en) 2004-06-08 2005-12-29 Michael Shane Adams Virtual digital imaging and method of using the same in real estate
US9105061B2 (en) 2004-06-16 2015-08-11 Redfin Corporation Online marketplace for real estate transactions
US20080126476A1 (en) * 2004-08-04 2008-05-29 Nicholas Frank C Method and System for the Creating, Managing, and Delivery of Enhanced Feed Formatted Content
US7571219B2 (en) * 2004-12-16 2009-08-04 Sap Ag Preserving and accessing active components in web pages
US20060224571A1 (en) * 2005-03-30 2006-10-05 Jean-Michel Leon Methods and systems to facilitate searching a data resource
US7430739B2 (en) * 2005-04-27 2008-09-30 Microsoft Corporation Providing travel log integration for objects hosted in a browser
US7657537B1 (en) * 2005-04-29 2010-02-02 Netapp, Inc. System and method for specifying batch execution ordering of requests in a storage system cluster
US8732250B2 (en) * 2005-10-23 2014-05-20 Silverpop Systems Inc. Provision of secure RSS feeds using a secure RSS catcher
US9740794B2 (en) * 2005-12-23 2017-08-22 Yahoo Holdings, Inc. Methods and systems for enhancing internet experiences
US8103597B2 (en) * 2006-01-17 2012-01-24 Kristopher John Arnebeck Optimizing schedule and itinerary for open houses
US8230361B2 (en) * 2006-09-28 2012-07-24 Google Inc. Content feed user interface
US8166410B2 (en) * 2006-12-27 2012-04-24 Mlslistings Inc. Methods and systems of online mapping and planning driving tours
US20080183573A1 (en) * 2007-01-31 2008-07-31 James Edward Muschetto Method and Apparatus for Increasing Accessibility and Effectiveness of Advertisements Delivered via a Network
US20080262945A1 (en) * 2007-03-28 2008-10-23 Daniel Carver Clark Ontological subscription and publication system with automatic notification of matching advertisements, products, and services within the ontological system for buyers and sellers
US20090307050A1 (en) * 2008-06-09 2009-12-10 Fournier Michael C Method for Identifying, Rating, and Promoting Desirable Real Estate Listings
US20100094543A1 (en) * 2008-10-09 2010-04-15 411 Web Directory Systems And Methods For Providing Geography-Based Tours
US20100313116A1 (en) * 2009-06-05 2010-12-09 Michael Hyman Microsite Delivery
US20110055683A1 (en) * 2009-09-02 2011-03-03 Facebook Inc. Page caching for rendering dynamic web pages
US20110066676A1 (en) * 2009-09-14 2011-03-17 Vadim Kleyzit Method and system for reducing web page download time
US20120198361A1 (en) * 2010-12-20 2012-08-02 Infor Global Solutions (Michigan), Inc. Method and System for Seamless Navigation and Drill Back Among a Plurality of Web Applications
US20120290203A1 (en) * 2011-05-13 2012-11-15 King Lance R Real-time route optimization for real estate open house tours
US9049246B2 (en) * 2012-02-28 2015-06-02 Red Hat, Inc. Reducing web page loading time
US8818715B2 (en) * 2012-03-29 2014-08-26 Yahoo! Inc. Systems and methods to suggest travel itineraries based on users' current location
US9721223B2 (en) * 2012-05-14 2017-08-01 Atrium Windows And Doors, Inc. Method and system for retrieving information using serialized scannable codes
US20140052577A1 (en) * 2012-06-06 2014-02-20 Stephen GOTLIEB System and method for travel and planning and trip information aggregation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078464A1 (en) * 1999-09-16 2004-04-22 Rajan Sreeranga P. Method and apparatus for enabling real time monitoring and notification of data updates for WEB-based data synchronization services
US7333943B1 (en) * 2000-08-11 2008-02-19 The Prudential Insurance Company Of America Method and system for managing real property transactions having internet access and control
US20100217686A1 (en) * 2004-05-03 2010-08-26 Superlative, Inc. System for managing communication between a real estate agent and clients
US20080126170A1 (en) * 2006-11-07 2008-05-29 Leck Mark H Systems and Methods for Retrieving Potential Real Estate Leads
US20110004560A1 (en) * 2009-07-06 2011-01-06 Max Knake System and method for providing real estate information to potential buyers
US9235971B1 (en) * 2011-06-28 2016-01-12 Emc Corporation Service window optimized system alert engine

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9911044B2 (en) 2012-12-10 2018-03-06 Verint Systems Ltd. Irregular event detection in push notifications
US9536308B2 (en) * 2012-12-10 2017-01-03 Verint Systems Ltd. Irregular event detection in push notifications
US20140161315A1 (en) * 2012-12-10 2014-06-12 Verint Systems Ltd. Irregular Event Detection in Push Notifications
US10796155B2 (en) 2012-12-10 2020-10-06 Verint Systems Ltd. Irregular event detection in push notifications
US20140379799A1 (en) * 2013-06-21 2014-12-25 Microsoft Corporation Augmenting content obtained from different content sources
US20150106278A1 (en) * 2013-10-11 2015-04-16 Costar Realty Information, Inc. Method and apparatus for search and analysis of real estate data
US20170330296A1 (en) * 2016-05-12 2017-11-16 Joseph C. Burke Consumer Oriented Mobile Solution to Track Your Closing
US20180060980A1 (en) * 2016-08-25 2018-03-01 Barbara Carey Stachowski Search with home tour navigation
US11694681B2 (en) 2018-01-08 2023-07-04 Ebay Inc. Artificial assistant system notifications
US20190251644A1 (en) * 2018-02-09 2019-08-15 Gregory D. Hague Method and system for rapid notification of new real estate listings
US20220028014A1 (en) * 2020-07-21 2022-01-27 Michael J. Huth Home History Records and Database
CN112348713A (en) * 2020-09-25 2021-02-09 贝壳技术有限公司 QLRunner-based data processing method, device, electronic equipment and medium
US11769219B2 (en) 2021-11-15 2023-09-26 Anthony Makins Computer-implemented and interactive real estate contract generation and editing process

Also Published As

Publication number Publication date
US20140344112A1 (en) 2014-11-20
US20140143644A1 (en) 2014-05-22
US20140101235A1 (en) 2014-04-10
US20140100905A1 (en) 2014-04-10
US20140236768A1 (en) 2014-08-21
US20160337481A1 (en) 2016-11-17
US20180007169A1 (en) 2018-01-04
US9706011B2 (en) 2017-07-11
US9406082B2 (en) 2016-08-02

Similar Documents

Publication Publication Date Title
US20140100956A1 (en) Providing fast alerts for rapidly changing real estate data
US20160171103A1 (en) Systems and Methods for Gathering, Merging, and Returning Data Describing Entities Based Upon Identifying Information
US9811600B2 (en) Exchange of newly-added information over the internet
US9385986B2 (en) Timing for providing relevant notifications for a user based on user interaction with notifications
US8447643B2 (en) System and method for collecting and distributing reviews and ratings
US9978022B2 (en) Providing context relevant search for a user based on location and social information
US10304066B2 (en) Providing relevant notifications for a user based on location and social information
US9710555B2 (en) User profile stitching
US8364662B1 (en) System and method for improving a search engine ranking of a website
US8768783B2 (en) Systems and methods for transformation of submitted listings
JP6111404B2 (en) System and method for real-time monitoring of activities
US20020027567A1 (en) Listing network for classified information
US20160314425A1 (en) Crowd sourcing real estate valuation estimates
US20100100492A1 (en) Sharing transaction information in a commerce network
JP6373462B1 (en) Prediction device, prediction method, and prediction program
US20140279176A1 (en) Provision of real-estate market information
US20080288332A1 (en) Designating a parting price for a physical item in the control of a user
US20160180478A1 (en) Real Property-Addressed Electronic Messaging
US20190065513A1 (en) Exchange Of Newly-Added Information Over the Internet
US10783584B1 (en) Recommendation of insurance products based on an inventory analysis
US20070182760A1 (en) Processing & determining valuation over a data network for a physical item in the control of a user
US9009073B1 (en) Product availability check using image processing
US20120185333A1 (en) Method and system for providing an sms-based interactive electronic marketing offer search and distribution system
US20240005340A1 (en) Automatic identification and creation of affiliates
US20220150214A1 (en) System and method for establishing a residential properties web-based network

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION