Abstract: A service provider matching system can receive service provider data and preferences, customer data and preferences, and a customer request for service and determine matching scores for one or more matching service providers. Based on a threshold value, the service providers with a matching score above the threshold can be presented to a customer for selection. Upon selection by a customer, an assisted interaction can take place between the customer and one or more selected service providers to agree to particular terms related to a requested service, book a service appointment, and track the progress until completion.
INCORPORATION BY REFERENCE TO ANY PRIORITY APPLICATIONS [0001] The present application claims priority to U.S. Patent Application No. 16/543,402, filed August 16, 2019, which is a continuation-in-part application of U.S. Patent Application No. 16/196,409, filed November 20, 2018, the entire contents of which are hereby expressly incorporated by reference herein in their entirety and for any and all purposes. In addition, any and all applications for which a priority claim is identified in the Application Data Sheet as filed with the present application are hereby incorporated by reference under 37 CFR 1.57.
BACKGROUND [0002] Many people, companies, government agencies, or the like (which may be referenced as example "customers" herein) often require a particular service provided by one or more people or companies. For example, such customers may require repairs performed by contractors or service providers. These customers typically have to search for a service provider through traditional sources (for example, the internet, yellow pages, referrals, or the like) to find someone to perform the repairs adequately and competently at a fair price, often using general search tools that are not tailored to locating such service providers. While some search services are available to assist a customer in locating service providers, many such sendees often fail to provide the information the customer needs to make an informed decision and would result in low quality work, expensive work, and/or unreliable work. For example, a service provider can fail to reasonably perform the needed repairs, charge an unreasonable fee, or take unreasonably-long to perform, the repairs. In some instances, the sendee provider is not licensed or does not earn insurance and exposes the customer to potential liabilities. Additionally, customers may also be victims to crime resulting from break-ins as a result of having an untrustworthy service provider working at their place of business or residence.
[0003] Also, payments and estimates can be an issue in such an arrangement. For example, timely payments may not be received by hired service providers, contractors, or subcontractors for materials used on a job. Customers also often make initial payments before having a written contract resulting in increased risk of a disagreement on an original agreement. This party financing for the service or liens may be filed against corresponding real property. In some instances, the property owner may have paid the sendee provider or contractor who then failed to pay subcontractors or material suppliers.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] FIG. 1 illustrates an embodiment of a networked computing environment for implementing a service provider matching system, also illustrating how the components are in communication with each other, according to various embodiments of the present disclosure.
[0005] FIG. 2A illustrates a swim-lane flow chart diagram illustrating functionality of an example service provider matching system, according to various embodiments of the present disclosure.
[0006] FIG 2B illustrates a flow chart diagram illustrating functionality of an example service provider matching system based on FIG. 2A, according to various embodiments of the present disclosure.
[0007] FIG 3A illustrates a swim-lane flow chart diagram illustrating functionality of an example service provider matching system, according to various embodiments of the present disclosure.
[0008] FIG 3B illustrates a flow chart diagram illustrating functionality of an example service provider matching system based on FIG 3A, according to various embodiments of the present disclosure.
[0009] FIGS. 4A-4C illustrate example graphical user interfaces of the service provider matching system from FIGS. 1, 2A-2B, and 3A-3B, according to various embodiments of the present disclosure.
[0010] FIG 5 is an exemplary method according to various embodiments of the present disclosure.
[0011] FIG. 6 illustrates a computer system with which certain methods discussed herein may be implemented.
DETAILED DESCRIPTION
Overview
[0012] The present disclosure describes systems and methods that address the above and other needs through a variety of system features that will be described below, including generating user interfaces and implementing associated algorithms for matching customers to service providers based on relevant and custom criteria provided by the customer and the service provider. For example, some aspects of the disclosure include matching a relative location of a customer to a relative location of one or more service providers based at least in part on distance or the type and extent of the desired service. When services are contracted, a geographic location of the service provider may also be provided to the customer, such as via a user interface that presents service provider location data on a displayed map, to monitor the sendee provider's progress in real time, substantially real time, or updated manually or at particular time intervals (for example, every 0.1 seconds, 0.5 seconds, 1 second, 20 seconds, 30 seconds, 1 minute, 5 minutes, or the like). A proposed contract may also be generated by the system and provided to a customer and/or service provider based on a desired sendee and custom criteria provided by the customer and/or sendee provider. Additionally, payment history may be maintained related to each of the customers and can affect the customers' access to use the systems and methods described. For example, if payment is not timely or made at all, system access could be limited or blocked.
Summary of Certain Embodiments
[0013] Aspects of the present disclosure include generating interactive user interfaces by which large amounts of data are automatically and dynamically calculated interactively in response to user inputs, and the calculated data is efficiently and compactly presented to a user by the system. Thus, in some embodiments, the user interfaces described herein are more
efficient as compared to previous user interfaces in which data, is not dynamically updated and compactly and efficiently presented to the user in response to interactive inputs.
[0014] Further, as described herein, the system may be configured and/or designed to generate user interface data useable for rendering the various interactive user interfaces described. The user interface data may be used by the system, and/or another computer system., device, and/or software program (for example, a browser program), to render the interactive user interfaces. The interactive user interfaces may be displayed on, for example, electronic displays (including, for example, touch-enabled displays).
[0015] Additionally, it has been noted that design of computer user interfaces that are useable and easily learned by humans is a non-trivial problem for software developers. The interactive and dynamic user interfaces described herein include improved human-computer interactions that may provide reduced mental workloads, improved decision-making, and/or the like, for a user. For example, user interaction with the interactive user interfaces described herein may provide an optimized display of potential matches and may enable a user to more quickly access, navigate, assess, and digest such information than previous systems.
[0016] Further, the interactive and dynamic user interfaces described herein are enabled by innovations in efficient interactions between the user interfaces and underlying systems and components. For example, disclosed herein are improved methods of receiving user inputs, translation and delivery of those inputs to various system components, automatic and dynamic execution of complex processes in response to the input delivery, automatic interaction among various components and processes of the system, and automatic and dynamic updating of the user interfaces.
[0017] Various embodiments of the present disclosure provide improvements to various technologies and technological fields. For example, as described above, existing data storage and processing technology (including, e.g., in memory databases) is limited in various ways (e.g., manual data review is slow, costly, and less detailed; data is too voluminous; etc.), and various embodiments of the disclosure provide significant improvements over such technology. Additionally, various embodiments of the present disclosure are inextricably tied to computer technology. In particular, various embodiments rely on detection of user inputs via
graphical user interfaces, calculation of updates to displayed electronic data, based on those user inputs, automatic processing of related electronic data, and presentation of the updates to displayed images via interactive graphical user interfaces. Such features and others (e.g., processing and analysis of large amounts of electronic data) are intimately tied to, and enabled by, computer technology, and would not exist except for computer technology. For example, the interactions with displayed data described below in reference to various embodiments cannot reasonably be performed by humans alone, without the computer technology upon which they are implemented. Further, the implementation of the various embodiments of the present disclosure via computer technology enables many of the advantages described herein, including more efficient interaction with, and presentation of, various types of electronic data.
[0018] In some implementations there can be a first computer-implemented method of generating and presenting interactive search results based on recommended service providers, the computer-implemented method comprising: providing, by a computer system to a customer system associated with a customer, a user interface that comprises functionality that enables the customer to search for and interact with service providers available for a particular sendee, and wherein the computer system, comprises a computer processor and electronic memory; maintaining, by the computer system, one or more electronic data stores that store customer information relating to the customer; maintaining, by the computer system, one or more electronic data stores that store service provider information relating to a plurality of sendee providers, wherein service provider information for an individual sendee provider comprises a plurality of service provider data fields, wherein one or more of the plurality of service provider data fields identity criteria set. by the individual service provider for accepting work requests from customers via the computer system; receiving, by the computer system based on user interaction with the user interface, electronic search data indicating search criteria for searching at least a subset of the plurality of service providers to perform a desired service, wherein the search criteria includes a plurality of search data fields; selecting, using the computer system, a set of service providers from the plurality of service providers, wherein at least one of the sendee provider data fields for each sendee provider in the set of sendee providers matches one of the search data fields; calculating, using the computer system, a base score for each of a plurality of
search data fields for each sendee provider in the set of service providers, wherein the base score for an individual search data, field represents a similarity between values associated with the individual search data field and a corresponding service provider data field; adjusting, using the computer system, the calculated base scores for each service provider in the set of service providers to generate adjusted base scores, wherein adjusting the base scores comprises at least one of (a) normalizing base scores or (b) applying one or more weights to the base scores based on relative importance of respective search data fields; calculating, using the computer system, a matching score for each sendee provider in the set of service providers, wherein calculating a first matching score for a first sendee provider is based at least in part on one or more adjusted base scores for the first sendee provider; determining, using the computer system, a set of recommended service providers comprising at least a portion of the set of service providers, the set of recommended service providers determined based at least in part on the calculated matching scores; causing display, via the user interface, of an interactive result set based at least in part on the set of recommended service providers, the interactive result set being determined and sorted based at least in part on the calculated matching scores; receiving, by the computer system via the user interface, a work request for work to be performed by a selected sendee provider from the recommended sendee providers; and sending, by the computer system in real time with respect to receipt of the work request, sendee request information to a first service provider system associated with the selected sendee provider, wherein the sendee request information includes at least a portion of the customer information relating to the customer.
[0019] In some implementations there can be a second computer-implemented method of providing, by a computer system to a customer system associated with a customer, a user interface that comprises functionality that enables the customer to search for and interact with sendee providers available for a particular service, and wherein the computer system comprises a computer processor and electronic memory; maintaining, by the computer system, one or more electronic data stores that store customer information relating to the customer; maintaining, by the computer system, one or more electronic data stores that store sendee provider information relating to a plurality of service providers, wherein service provider information for an individual service provider comprises a plurality of service provider data
fields, wherein one or more of the plurality of sendee provider data, fields identify criteria set by the individual service provider for accepting work requests from customers via the computer system; receiving, by the computer system based on user interaction with the user interface, electronic search data indicating search criteria for searching at least a subset of the plurality of sen-ice providers to perform a desired service, wherein the search criteria includes a plurality of search data fields, wherein the pluralitv' of search data fields includes a project location indicating where the desired service is to be performed; selecting, using the computer system, a set of service providers from the plurality of service providers, wherein at least one of the sen ice provider data fields stored in the one or more electronic data stores for each sen-ice provider in the set of service providers matches one of the search data fields received by the computer system based on user interactions with the user interface; receiving, by the computer system, service provider location data for each of the set of sendee providers, wherein the service provider location data comprises a current location for each sendee provider of the set of sendee providers; calculating, using the computer system, a base score for each of a plurality of search data fields received by the computer system based on user interactions with the user interface for each sendee provider in the set of service providers, wherein the base score for an individual search data field received by the computer system based on user interactions with the user interface represents a similarity between values associated with the individual search data field received by the computer system based on user interactions with the user interface and a corresponding sendee provider data field stored in the one or more electronic data stores, wherein at least one base score for each individual sen-ice provider is based at least in part on a calculated distance from the project location to the current location of the individual sendee provider; adjusting, using the computer system, the calculated base scores for each service provider in the set of service providers to generate adjusted base scores, wherein adjusting the base scores comprises at least one of (a) normalizing base scores or (b) applying one or more weights to the base scores based on relative importance of respective search data fields received by the computer system based on user interactions with the user interface; calculating, using the computer system, a matching score for each sen-ice provider in the set of service providers, wherein calculating a first matching score for a first service provider is based at least in part on
one or more adjusted base scores for the first service provider; determining, using the computer system, a set of recommended service providers comprising at least a portion of the set of service providers, the set of recommended service providers determined based at least in part on the calculated matching scores for each service provider in the set of service providers; causing display, via the user interface, of an interactive result set based at least in part on the set of recommended sendee providers the interactive result set is determined and sorted based at least in part on the calculated matching scores; receiving, by the computer system via the user interface, a work request for work to be performed by a selected service provider from the recommended service providers; and sending, by the computer system in real time with respect to receipt of the work request, service request information to a first service provider system associated with the selected service provider, wherein the service request information includes at least a portion of the customer information relating to the customer.
[0020] In various embodiments, the above first and second computer-implemented methods may include one or more of the following features. The method may further comprise: wherein the relative importance of respective search data fields is determined based on user preferences associated with the customer. The above first and second computer-implemented methods and can further comprise: receiving, using the computer system, an indication of payment-related data, wherein the payment-related data indicates method and form of payment for a service offered by the selected service provider; and transmitting, using the computer system, the indication of a selection to the first service provider system associated with the selected service provider. The above first and second computer-implemented methods can further comprise: wherein the selected service provider includes two or more service providers. The above first and second computer-implemented methods can further comprise: generating, using the computer system, a contract based at least in part on the search criteria, service provider information, and customer information; transmitting, using the computer system, the contract to the customer system; and transmitting, using the computer system, the contract to the first service provider system. The above first and second computer-implemented methods can further comprise: wherein the contract includes a plurality of contractual terms automatically selected or generated based on information associated with at least one of the customer, the
selected service provider or the work request, The above first and second computer-implemented methods can further comprise: receiving, using the computer system, indication of acceptance of the contract from the customer system; and receiving, using the computer system, indication of acceptance of the contract from the first service provider system. The above first and second computer-implemented methods can further comprise: continuously receiving, by the computer system from the first service provider system, electronic data indicating a current physical location of the first service provider system; and causing display, via the user interface, of a geographical map including an indicator on the graphical map representing the current physical location of the service provider, wherein the current physical location is based at least in part on the received electronic data, and wherein the display is updated at a predetermined time interval to stay up-to-date so that a customer can view the current physical location to see when the selected service provider associated with the first service provider system should be ready to perform the desired service. The above first and second computer-implemented methods can further comprise: receiving, using the computer system, indication of a change order request from the first service provider system; and transmitting, using the computer system, the indication of the change order request to the customer system. The above first and second computer-implemented methods can further comprise: receiving, using the computer system, indication of acceptance of the change order request from the customer system; and transmitting, using the computer system, the indication of acceptance to the first service provider system. The above first and second computer-implemented methods can further comprise: receiving, using the computer system, bid information from one or more sendee provider systems associated with one or more service providers, wherein the bid information includes a price to perform work associated with the received electronic search data, and wherein the interactive result set displayed on the user interface includes at least a portion of the bid information so that a customer can consider the bid information when making a decision on which service provider to select. The above first and second computer-implemented methods can further comprise: wherein the mteractive result set is displayed in the user interface within a graphical map view, wherein the graphical map view depicts a real world geographic area and includes display of a plurality of graphical indicators that each represent a different recommended service provider
from the set of recommended service providers, wherein a displayed location within the graphical map view of a first recommended service provider represents a real time physical location of the first recommended service provider within the real world geographic area as determined from real time location data received from at least one of a mobile device or GPS unit associated with the first recommended service provider, and wherein the graphical map view further includes display of a graphical indicator representing a geographic location of a home or other property at which work is to be performed in association with the work request.
[0021] In some implementations, there can be a first system for generating and presenting interactive search results based on recommended service providers, the system comprising: one or more electronic data stores comprising: electronic search data including a plurality of search data fields; customer information relating to a customer; and service provider information relating to a plurality of service providers, wherein service provider information for an individual service provider comprises a plurality of service provider data fields, wherein one or more of the plurality of service provider data fields identify criteria set by the individual service provider for accepting work requests from customers via the computer system; a networking interface; and a hardware processor is configured to execute computer-executable instructions in order to: provide, to a customer system associated with a customer, a user interface that comprises functionality that enables the customer to search for and interact with service providers available for a particular service, and wherein the computer system comprises a computer processor and electronic memory; receive customer information relating to the customer; receive service provider information relating to a plurality of service providers; receive, based on user interaction with the user interface, electronic search data indicating search criteria for searching at least a subset of the plurality of service providers to perform a desired service; select a set of sendee providers from the plurality of sendee providers, wherein at least one of the service provider data fields for each service provider in the set of service providers matches one of the search data fields; calculate a base score for each of a plurality of search data, fields for each service provider in the set of service providers, wherein the base score for an individual search data field represents a similarity between values associated with the individual search data field and a corresponding service provider data field; adjust the calculated base
scores for each service provider in the set of service providers to generate adjusted base scores, wherein adjusting the base scores comprises at least one of (a) normalizing base scores or (b) applying one or more weights to the base scores based on relative importance of respective search data fields; calculate a matching score for each service provider in the set of service providers, wherein calculating a first matching score for a first service provider is based at least in part on one or more adjusted base scores for the first service provider: determine a set of recommended service providers comprising at least a portion of the set of service providers, the set of recommended service providers determined based at least in part on the calculated matching scores; cause display, via the user interface, of an interactive result set based at least in part on the set of recommended service providers, the interactive result set being determined and sorted based at least in part on the calculated matching scores; receive, via the user interface, a work request for work to be performed by a selected service provider from the recommended service providers; and send, in real time with respect to receipt of the work request, service request information to a first service provider system associated with the selected service provider, wherein the service request information includes at least a portion of the customer information relating to the customer.
[0022] In some implementations, there can be a second system including one or more electronic data stores comprising: electronic search data including a plurality of search data fields; customer information relating to a customer; and service provider information relating to a plurality of service providers, wherein service provider information for an individual service provider comprises a plurality of service provider data fields and service provider location data, wherein one or more of the plurality of service provider data fields identify criteria set by the individual service provider for accepting work requests from customers via the system., and wherein the service provider location data comprises a current location for each service provider of the set of service providers; a networking interface; and the second system further including a hardware processor configured to execute computer-executable instructions in order to: provide, to a customer system associated with a customer, a user interface that comprises functionality that enables the customer to search for and interact with service providers available for a particular service; receive customer information relating to the customer; receive service
provider information relating to a plurality of service providers; receive, based on user interaction with the user interface, electronic search data indicating search criteria for searching at least a subset of the plurality of service providers to perform a desired service, wherein the plurality of search data fields includes a project location indicating where the desired service is to be performed; select a set of service providers from the plurality of service providers, wherein at least one of the service provider data fields for each service provider in the set of service providers matches one of the search data fields; receive service provider location data for each of the set of service providers; calculate a base score for each of a plurality of search data fields for each service provider in the set of service providers, wherein the base score for an individual search data field represents a similarity between values associated with the individual search data field and a corresponding service provider data field, wherein at least one base score for each individual service provider is based at least in part on a calculated distance from the project location to the current location of the individual service provider; adjust the calculated base scores for each sendee provider in the set of sendee providers to generate adjusted base scores, wherein adjusting the base scores comprises at least one of (a) normalizing base scores or (b) applying one or more weights to the base scores based on relative importance of respective search data fields; calculate a matching score for each service provider in the set of service providers, wherein calculating a first matching score for a first service provider is based at least in part on one or more adjusted base scores for the first service provider; determine a set of recommended sendee providers comprising at least a portion of the set of service providers, the set of recommended sendee providers determined based at least in part on the calculated matching scores for each service provider in the set of service providers; cause display, via the user interface, of an interactive result set based at least in part on the set of recommended service providers, the interactive result set being determined and sorted based at least in part on the calculated matching scores; receive, via the user interface, a work request for work to be performed by a selected sendee provider from the recommended service providers; and send, in real time with respect to receipt of the work request, service request information to a first service provider system associated with the selected service provider, wherein the sendee request information includes at least a portion of the customer information relating to the customer.
[0023] In various embodiments, the above first and second systems may include one or more of the following features. The above first and second systems may further comprise: wherein the relative importance of respective search data fields is determined based on user preferences associated with the customer. The above first and second systems can further comprise: wherein the matching score or the base scores are calculated using one or more machine learning algorithms. The above first and second systems can further comprise: wherein the hardware processor is further configured to execute the computer-executable instructions in order to: receive an indication of payment-related data., wherein the payment-related data indicates method and form of payment for a sendee offered by the selected sendee provider: and transmit the indication of a selection to the first sendee provider system associated with the selected service provider. The above first and second systems can further comprise: wherein the hardware processor is further configured to execute the computer-executable instructions in order to: generate a contract based at least in part on the search criteria, service provider information, and customer information, wherein the contract includes a plurality of contractual terms automatically selected or generated based on information associated with at least one of the customer, the selected sendee provider or the work request; transmit the contract to the customer system; and transmit the contract to the first sendee provider system. The above first and second systems can further comprise: wherein the hardware processor is further configured to execute the computer-executable instructions in order to: receive indication of acceptance of the contract from the customer system; and receiving indication of acceptance of the contract from the first sendee provider system. The above first and second systems can further comprise: wherein the hardware processor is further configured to execute the computer-executable instructions in order to: continuously receive, by the computer system from the first service provider system, electronic data indicating a current physical location of the first sendee provider system; and cause display, via the user interface, of a geographical map including an indicator on the graphical map representing the current physical location of the service provider, wherein the current physical location is based at least in part on the received electronic data, and wherein the display is updated at a predetermined time interval to stay up-to-date so that a customer can view the current physical location to see when the selected service provider
associated with the first service provider system should be ready to perform the desired service. The above first and second systems can further comprise: wherein the hardware processor is further configured to execute the computer-executable instructions in order to: receive bid information from one or more service provider systems associated with one or more service providers, wherein the bid information includes a price to perform work associated with the received electronic search data, and wherein the interactive result set displayed on the user interface includes at least a portion of the bid information so that a customer can consider the bid information when making a decision on which service provider to select. The above first and second systems can further comprise: wherein the interactive result set is displayed in the user interface within a graphical map view, wherein the graphical map view depicts a real world geographic area and includes display of a plurality of graphical indicators that each represent a different recommended service provider from the set of recommended service providers, wherein a displayed location within the graphical map view of a first recommended service provider represents a real time physical location of the first recommended service provider within the real world geographic area as determined from real time location data received from at least one of a mobile device or GPS unit associated with the first recommended service provider, and wherein the graphical map view further includes display of a graphical indicator representing a geographic location of a home or other property at which work is to be performed in association with the work request.
[0024] In various embodiments, systems and/or computer systems are disclosed that comprise a computer readable storage medium having program instructions embodied therewith, and one or more processors configured to execute the program instructions to cause the one or more processors to perform operations comprising one or more aspects of the above- and/or below-described embodiments (including one or more aspects of the appended claims).
[0025] In various embodiments, computer-implemented methods are disclosed in which, by one or more processors executing program instructions, one or more aspects of the above- and/or below-described embodiments (including one or more aspects of the appended claims) are implemented and/or performed.
[0026] In various embodiments, computer program products comprising a computer readable storage medium are disclosed, wherein the computer readable storage medium has program instructions embodied therewith, the program instructions executable by one or more processors to cause the one or more processors to perform operations comprising one or more aspects of the above- and/or below-described embodiments (including one or more aspects of the appended claims).
Terms
[0027] In order to facilitate an understanding of the systems and methods discussed herein, a number of terms are defined below. The terms defined below, as well as other terms used herein, should be construed to include the provided definitions, the ordinary and customary meaning of the terms, and/or any other implied meaning for the respective terms. Thus, the definitions below do not limit the meaning of these terms, but only provide exemplary definitions.
[0028] Data Store: Any computer readable storage medium and/or device (or collection of data storage mediums and/or devices). Examples of data stores include, but are not limited to, optical disks (e.g., CD-ROM, DVD-ROM, etc.), magnetic disks (e.g., hard disks, floppy disks, etc.), memory circuits (e.g., solid state drives, random-access memory (RAM), etc.), and/or the like. Another example of a data store is a hosted storage environment that includes a collection of physical data storage devices that may be remotely accessible and may be rapidly provisioned as needed (commonly referred to as "cloud" storage).
[0029] Database: Any data structure (and/or combinations of multiple data structures) for storing and/or organizing data, including, but not limited to, relational databases (e.g., Oracle databases, MySQL databases, etc.), non-relational databases (e.g., NoSQL databases, etc.), in-memory databases, spreadsheets, as comma separated values (CSV) files, extendible markup language (XML) files, TeXT (TXT) files, flat files, spreadsheet files, and/or any other widely used or proprietary format for data storage. Databases are typically stored in one or more data stores. Accordingly, each database referred to herein (e.g., in the description
herein and/or the figures of the present application) is to be understood as being stored in one or more data stores.
Service Provider Matching System Diagram
[0030] FIG, 1 illustrates an embodiment 100 of a networked computing environment for implementing a service provider matching system. The computing environment may include a service provider matching system 102 for implementing a service provider matching engine 101 and other various systems and engines. The networked computing environment 100 can include one or more sendee provider systems 130 and one or more customer systems 140. The service provider systems 130 may communicate via a network 150 with the service provider matching system 102. The customer systems 140 may also communicate via a network 150 with the service provider matching system 102. Although only one network 150 is illustrated, multiple networks 150 may exist. In some embodiments, the service provider matching system can comprise multiple systems connected via a local area network or via the Internet. The components described herein are not meant to be exhaustive but only a sample of what components may be implemented. Some components may be combined and others may be removed or substituted with similar components.
Service Provider Matching System
[0031] In some embodiments, the service provider matching system 102 may include a display generation engine 104, a financing engine 106, a contract generation engine 108, a bidding engine 110, a crime monitoring engine 112, a sendee provider matching engine 101, and a data store 114, The sendee provider matching system 102 may communicate with customer system(s) 140 and service provider system(s) 130 over a network 150.
[0032] In some embodiments, the sendee provider matching system 102 can comprise multiple systems connected via a local area network or via the Internet. Also, in some embodiments the service provider matching system 102, or portions or components thereof, can be additionally or alternatively located on the customer system(s) 140 and/or sendee provider system(s) 130.
[0033] The service provider matching system 102 may include one or more service provider matching engines 101 enabling the matching of customers, service providers, and/or subcontractors (for example, other service providers). In some embodiments, a service provider matching engine 101 can host and maintain a matching database 124 configured to store information associated with the service provider matching engines 101 and the service provider matching system 102. The matching database 124 can include service provider data and preferences, user data and preferences, user search criteria and past user search criteria, generated contacts, executed contracts, matching data used to match service providers with customers or service providers with subcontractors, display instructions, financing data and options, crime monitoring results and criteria, service provider location and availability, or the like.
1- Display Generation Engine
[0034] In some embodiments, the service provider matching system 102 includes a display generation engine 104. The display generation engine 104 can generate instructions for displaying a user interface that can be interacted with by users utilizing the customer system(s) 140 and/or the sendee provider system(s) 130. In some embodiments, information associated with the instructions for displaying a user interface can be stored in a data store 114.
[0035] In some embodiments, the displays generated (either directly or indirectly by generated instructions transmitted to a device for executing) can include displays with interfaces configured to display information and receive information from a user of the customer system(s) 140 and/or the service provider system(s) 130. Some of the information that is included on the interfaces may be data collected or received from other devices. For example, the location 132 of a service provider system 130 may be included on a display appearing on a customer system 140.
2. Financing Engine
[0036] In some embodiments, the service provider matching system 102 includes a financing engine 106. The financing engine 106 can be configured to determine payment plans, third party financing, financing recommendations, and can process payments as configured. In
some embodiments, information associated with the financing options can be stored in the data store 114.
[0037] In some embodiments, a user of a customer system 140, once a desired service and a service provider that provides such service are designated, can select how to pay for the service. For example, the user can pay with check, credit card, cash, bank routing and account numbers, bank log-in information, or the like. In some embodiments, the sendee provider matching system 102 can facilitate the payments and then provide a portion of the payments to the designated service provider at an appropriate time. In some embodiments, the service provider can facilitate payment. In some embodiments, a payment plan can be selected allowing a customer to pay costs in installments (for example, weekly, monthly, bi-monthly, or the like) until the debt is paid off.
[0038] In some embodiments, under certain conditions (for example, the cost exceeding a preconfigured threshold, the type of service, a customer with bad credit, a service provider's preference, a customer's preference, or the like, or a combination of various factors) varying options may be presented to a customer for paying for desired service(s). For example, if the cost of a service is very high then a payment plan option may be presented to the customer. Also, for example, if the cost of a service is very high, third party financing options may be presented to help the customer afford the cost of such service. In some embodiments, payment plan options or third party financing, or other such options may be hidden in a graphical user interface, grayed out in a graphical user interface, deactivated, and/or otherwise not permitted to be selected by a customer based on various conditions not being met. Conversely, in some embodiments, payment plan options or third party financing, or other such options may appear graphical user interface, activated, or permitted to be selected by a customer based on various conditions being met.
[0039] For services performed by a service provider, there may be problems securing payment. In some embodiments, the financing engine 106 can be programed to address certain payment issues by processing payments ahead of a requested service, holding the processed payment in an escrow account, and distributing the payment to the service provider upon approval by the customer that the service has been satisfactorily completed.
[0040] In some embodiments, insurance for a contracted service can be offered to the customer or service provider associated with the specific contracted service. The insurance can cover the cost of not receiving payment from the customer or to replace or fix poor work performed by the sendee provider.
[0041] In some embodiments, the financing engine 106 can process referrals or referral fees. For example, a referral can be if a customer or service provider refers another service provider to an existing customer, a new customer, or another service provider (for example, to be used as a subcontractor), where the initial entity performing the referral may do no more work with respect to the needed sendee. In some embodiments, there can be a referral fee processed by the financing engine 106. In some embodiments, the referral fee can be a flat fee paid by the operator of the service provider matching system. 102. In some embodiments, the referral fee can be a flat fee paid by the service provider receiving the benefit of the referral out of a contracted service resulting from the referral or a customer's payment for the contracted service. In some embodiments, a percentage (for example, 1%, 5%, 10%, 20%, or the like) can be subtracted from a customer's payment to the service provider receiving the benefit of the referral. For example, if a customer is referred from Plumber A to Plumber B and contracts with Plumber B for a $1000 project, Plumber A can receive 10% of the sendee, which would be $100. In some embodiments, the percentage can be based on the profits Plumber B receives as opposed to the gross customer payment. In some embodiments, the method of referral fee calculations can vary by service or the amount of the service. For example, there can be a minimum fee (for example, $10, 20$, $100, or the like) set combined with a percentage fee (for example, 5%, 10%, 20%, or the like) for anything that would be higher than the set minimum fee.
[0042] In some embodiments, a customer can deposit a retainer or advanced payment in a general account associated with the service provider matching system 102. In such cases, for example, the customer may receive a discount (for example, 1%, 3%, 5%, 10%, or the like) for sendees contracted through the sendee provider matching system 102 platform. In some embodiments, a customer can deposit a retainer or advanced payment in an account associated with a particular sendee provider. In such cases, for example, the customer may receive a
discount (for example, 1%, 3%, 5%, 10%, or the like) for services contracted with the specific service provider,
3. Contract Generation Engine
[0043] In some embodiments, the service provider matching system 102 includes a contract generation engine 108. The contract generation engine 108 can be configured to generate terms or provisions of a contract or an entire contract to be used by a customer and service provider in connection with any requested service(s). In some embodiments, information associated with generated contracts or contract provisions can be stored in the data store 114.
[0044] In some embodiments, the service provider matching system 102 can generate contracts (or contract provisions) with the contract generation engine 108 based on a variety of factors. For example, the variety of factors can include: user data, user preferences, service provider data, service provider preferences, financing methods selected or preferred by a user or service provider, the type of service, the total cost of the service, or the like. The resulting contract can then be adapted or revised based on further feedback from the customer and/or service provider. In some embodiments, a contract generated by the contract generation engine 108 can generate a contract or contract terms based on the type of service to be performed. For example, there can be general provisions used across the platform, there can be general provisions for each field or area of services (for example, plumbing, tutoring, electrical work, cleaning, or the like), there can be specific provisions for each service contracted for, or a combination.
[0045] In some embodiments, service providers or customers may already have contracts they would like to use when contracting for sendees. The service provider matching system 102 with the contract generation engine 108 can then generate and recommend essential, important, or recommended terms to include in such contracts prior to execution.
[0046] For services performed by a service provider, mismatched expectations can lead to dissatisfied customers and problems securing payment. Although the financing engine 106 can be programmed to resolve some issues by securing payment prior to the completion of a requested service and using an escrow account, there can still be dissatisfaction with the work
that may be attributable to mismatched expectations. One solution implemented in certain embodiments, for example, is to generate a contract (or certain provisions of a contract to be included in another contract) and provide the contract to the service provider system 130 and/or the customer system 140 for review, revision, and execution. If either party is not satisfied with the contract terms, then they can propose edits and revisions. If either party is still not satisfied with the revisions, or they cannot agree on particular provisions, it may be a good indication to the parties to contract with someone else and avoid issues with the work and/or payment after the service is completed.
4. Bidding Engine
[0047] In some embodiments, the service provider matching system 102 includes a bidding engine 110. The bidding engine 110 can be configured to receive, process, and transmit bids related to various sendees offered by sendee providers between customer system(s) 140 and service provider system(s) 130.
[0048] In some embodiments, a customer can submit a request for a sendee to the sendee provider matching system 102. The request can be listed with additional details provided by the customer and/or automatically by the service provider matching system 102. Service providers can then review the listed requests, select one or more requests, and submit a proposal and bid for the selected request(s). In some embodiments, bids can include just a cost estimate. In some embodiments, bids can include itemized listing of costs and/or an example invoice for the requested sendee. A customer can then either accept or reject the bid. In some embodiments, information associated with the request for a service and bids can be stored in the data store 114.
[0049] In some embodiments, a customer can create a request for a service that specifies a time window (for example, 1 day, 1 week, 1 month, or the like) to accept bids. The bids can either be private and hidden or public and available for other service providers and/or customers to view. At the expiration of the designated time window, the lowest bid can be automatically selected by the service provider matching system 102. In some embodiments, a contract can be generated by the contract generation engine 108 as well and presented to the winning service provider and/or the customer. However, with some types of services, there may
be an issue where the lowest bid included an error or was maliciously submitted. To resolve such issues, the lowest bid or lowest bids can be presented to the customer for manual selection so that the customer can ensure the bid is accurate and reflects the desired work.
[0050] In some embodiments, requests for a sen,'ice and/or submitted bids can be analyzed by a machine learning component 120 described in more detail herein. The machine learning component 120 can analyze similar requests and/or bids based on a variety of factors (for example, location of the service, time of the service, parties involved, or the like) to determine whether or not the request or bid are reasonable or may need to be removed from the system or adjusted. In some embodiments, such requests or bids that are flagged by the machine learning component 120 can either be permanently removed and/or the corresponding user banned from accessing the platform (for example, temporarily or permanently), or the flagged request or bid can be presented back to the original submitter for revision. In some embodiments, flagged requests or bids presented to the original submitter can also include a recommended change to the submission.
[0051] In some embodiments, a customer can enter a request for a specific service on the service provider matching system 102 (for example, in the example user interface depicted in FIG. 4A) then various service providers can submit an offer price the service provider matching system 102 for the requested service. Then, the customer can view the various offers submitted by the service providers and select the service provider based on the offered price as well as the associated sendee provider's distance to the customer, license(s), insurance(s), reviews, and/or other factors.
5. Crime Monitoring Engine
[0052] In some embodiments, the sendee provider matching system 102 includes a crime monitoring engine 112. The crime monitoring engine 112 can be configured to receive or retrieve relevant crime data related to particular addresses, customers, or service providers. For example, such crime-related data can be received or retrieved from customer systems 140, service provider systems 130, third party systems, or from private or public crime record
databases. In some embodiments, information associated with the crime monitoring can be stored in the data store 114.
[0053] In some embodiments, the crime monitoring data can be used to limit or block access to the service provider matching system 102 by the customer system(s) 140 and/or service provider system(s) 130 depending on the crime monitoring data. For example, if an employee of a service provider is found guilty of robbery or another serious crime, access to the platform can be limited for the service provider until it is shown that the employee is no longer employed by the service provider. In some embodiments, if a service provider has been found involved, directly or indirectly, in any criminal activity then the service provider can be blocked from accessing or using the service provider matching system 102. In some embodiments, the crime monitoring engine 1.1.2 may be configured to automatically analyze collected crime data in various neighborhoods or other geographic areas in order to detect correlations between addresses previously serviced by a given service provider and crimes occurring in the vicinity. For example, the crime monitoring engine 112 may apply pattern matching, machine learning algorithms and/or other automated methods to flag certain service providers as potentially involved in reported crimes, and may block such providers from future access to the service provider matching system.
[0054] In another example, if crime-related data shows that a customer has recently filed for bankruptcy, access to the service provider matching system 102 may also be limited (for example, projects under a specific threshold, or projects of a specific type may only be permitted) or blocked until resolution of the bankruptcy or some time (for example, 6 months, 1 year, 7 years, or the like) after the bankruptcy. In some embodiments, for example with respect to bankruptcy, other measures can be put in place to resolve such increased likelihood of potential issues. For example, a customer with a bankruptcy can provide a pre-payment for any services as opposed to paying after completion of a requested service.
6. Data Store
[0055] In some embodiments, the service provider matching system 102 includes a data store 114. In some embodiments, the data store 114 can store any data, preferences, or
information that passes through the service provider matching engine 101. For example, the data store 114 can store information related to the service provider data and preferences 116, the user data and preferences 118, the user search criteria 122 (any prior searches for customers, for example), outputs or results from the machine learning component 120, or other data input or output from, any of the components in the sendee provider matching engine 101. In some embodiments, the data store 114 can store any data, preferences, or information that passes through the service provider matching system 102 and the service provider matching system 102. In some embodiments, the matching database 124 can store any data, preferences, or information that is stored in the data store 114. For example, the matching database 124 can store information related to the display generation engine 104, the financing engine 106, the contract generation engine 108, the bidding engine 110, the crime monitoring engine 112, any data in the data store 114, or other data input or output from any of the components in the service provider matching system 102. For example, the data store 114 can store some or all of service provider data and preferences, user data and preferences, user search criteria and past user search criteria, generated contacts, executed contracts, matching data used to match service providers with customers or service providers with subcontractors, display instructions, financing data and options, crime monitoring results and criteria, service provider location and availability, and/or other data.
7. Sendee Provider Matching Engine
[0056] In some embodiments, the sendee provider matching system 102 includes a service provider matching engine 101. The service provider matching engine 101 can include sendee provider data and preferences 116, user data and preferences 118, a machine learning component 120, user search criteria 122, and a matching database 124. In some embodiments, the service provider matching engine 101 can be configured to process requests received from a customer system 140 and match the associated customer with a service provider. In some embodiments, the matching can be based on one or more of: service provider data and preferences 116, user data and preferences 118, and user search criteria 122. Also, in some embodiments, the matching can use a machine learning component 120 to improve matching
over time based on the various inputs and criteria that is used for the matching. In some embodiments, the provider matching engine 101 and/or the service provider matching system 102 can match customers to service providers based on availability and calendar data associated with the customer and/or service provider and the type of service. For example, if a customer requests a 2-hour project the provider matching engine 101 and/or the service provider matching system 102 can match a customer to a service provider at a recommended time that fits both the customer's and service provider's schedule based on their availability.
a. Service Provider Data and Preferences
[0057] In some embodiments, the service provider matching engine 101 includes service provider data and preferences 116. In some embodiments, the service provider data, and preferences 116 can include data, related to service providers, such as one or more of the following: types of sendees offered, default costs for services (if applicable), account login information, contact information, address(es), places of business, employees (if any), what services each employee can perform, certifications for each employee or for the company, insurance information, working hours (either as a business and/or for each employee, for example), predicted length of time for completing various types of services, uploaded calendar information, or the like. In some embodiments, the service provider data and preferences 116 can include preferences related to service providers, such as one or more of the following: preferred financing options, contract and contract terms preferences, preferred geographic area to perform services in (potentially further delineated by the service or employee, for example), location tracking preferences, preferred times to perform various services (by company or employee, for example), or the like. In some embodiments, such data and preferences can be stored in the matching database 124 or the data store 114, for example.
[0058] In some embodiments, sendee providers utilizing their service provider systems 130 can provide the data and preferences. For example, the sendee providers can provide their data and preferences through one or more of: a graphical user interface on an internet browser, through a graphical user interface on a mobile application, with fax, mail, telephone, or a combination of methods. In some embodiments, sendee providers can provide
access or login information to third party sendees. For example, sendee providers can provide access to a calendar application so that the service provider matching engine 101 and/or the service provider matching system 102 can determine when a service providers may be available to perform a particular sendee based on the retrieved or received calendar.
b. User Provider Data and Preferences
[0059] In some embodiments, the service provider matching engine 101 includes user provider data and preferences 118. In some embodiments, the user data and preferences 118 can include data related to customers or users, such as one or more of the following: account login information, contact information, financial information (including credit card information bank account information, for example), address(es), contact information of people that may be overseeing any work done (if any), uploaded calendar information, or the like. In some embodiments, the user data and preferences 118 can include preferences related to customers or users, such as one or more of the following: preferred gender of service providers (this can be limited to select services, for example), preferred financing options, contract and contract terms preferences, preferred geographic area to select sendee providers based on (so that the service provider does not need to travel a far distance and risk delaying a booked sendee, for example), preferred times for services to be performed (this can be set by location as well, for example), or the like. In some embodiments, stored preferences for a customer may include relative weights that should be applied by the matching engine to various data types or fields when the engine attempts to match a service request of that customer to a provider. For example, preferences for a given customer may indicate that the particular customer highly values the rating of a sendee provider and is not particular price sensitive, such that the matching engine may heavily weight sendee provider rating and apply a low weight to affordability or price when finding a match for service requests from that customer. In some embodiments, such data and preferences can be stored in the matching database 124 or the data store 114, for example.
[0060] In some embodiments, customers utilizing their customer systems 140 can provide the data and preferences. For example, the customers can provide their data and preferences through one or more of: a graphical user interface on an internet browser, through a
graphical user interface on a mobile application, with fax, mail, telephone, or a combination of methods. In some embodiments, customers can provide access or login information to third party services. For example, customers can provide access to a calendar application so that the service provider matching engine 101 and/or the service provider matching system 102 can determine when a customer may be available for a particular service based on the retrieved or received calendar.
c. Machine Learning Component
[0061] In some embodiments, the service provider matching engine 101 includes a machine learning component 120. The machine learning component 120 can be used to assist the service provider matching system 140 in matching service providers with customers. The machine learning component 120 can use one or more machine learning algorithms to generate one or more prediction models or parameter functions for the matching. The matching can be based on user search criteria 122, service provider data and preferences 116, user data and preferences 118, or other relevant information. For example, the matching can be based on custom user preferences, custom, service provider preferences, customer system 140 location, service provider system 130 location, service provider place of business address, or the like. The machine learning component 120 can be configured to generate models that identify potential matches. One or more of these prediction models may be used to determine a likelihood of satisfaction of the customer, sendee provider, or both, based on a set of inputs.
[0062] For example, the machine learning component 120 can implement machine learning algorithms or AI to generate matching models that are executed by the service provider matching engine 101. The machine learning models can be used to identify service providers and/or customers and match the customers with service providers based on user search criteria 122, service provider data and preferences 116, user data and preferences 118, or other relevant information. Predictions can include customers or service providers that do not meet the explicitly defined user search criteria 122, service provider data and preferences 116, or user data and preferences 118, but might be similar to or close to such requirements.
[0063] A number of different types of algorithms may be used by the machine learning component 120 to generate the models. For example, certain embodiments herein may use a logistical regression model, decision trees, random forests, convolutional neural networks, deep networks, or others. However, other models are possible, such as a linear regression model, a discrete choice model, or a generalized linear model. The machine learning algorithms can be configured to adaptively develop and update the models over time based on new input received by the machine learning component 120. For example, the models can be regenerated on a periodic basis as new information related to customers, service providers, completed or incomplete services rendered, payments made or not made, or the like is available to help keep the predictions in the model more accurate as the information evolves over time. The machine learning component 120 is described in more detail herein.
[0064] The machine learning algorithms may include any type of machine learning algorithm including hierarchical clustering algorithms and cluster analysis algorithms, such as a k-means algorithm. In some cases, the performing of the machine learning algorithms may include the use of an artificial neural network. By using machine-learning techniques, large amounts (such as terabytes or petabytes) of customer or service provider interaction data may be analyzed to generate models.
[0065] In some embodiments, a service provider matching system, can receive service provider data and preferences, customer data and preferences, and a customer request for service and determine matching scores for one or more matching service providers, which may be based at least in part on a machine learning model in some embodiments. Based on a threshold value, the service providers with a matching score above the threshold can be presented to a customer for selection. In some embodiments, the matching scores can be based on various base scores calculated based on a comparison between individual attributes associated with a customer request and corresponding attributes associated with a service provider, which may then be normalized and/or otherwise adjusted, such as to assign respective weights to individual data fields based on likely importance to the customer.
[0066] For example, a service provider matching system can compare a requested service (for example, beginner guitar lessons) with a service offered by a particular service
provider (for example, advanced guitar lessons) to calculate a base score for that comparison. Additional base scores can be calculated for each criterion included in the customer search. All the base scores can be normalized (or otherwise adjusted) and then combined by the service provider matching system to calculate a matching score for the particular service provider. For example, in one embodiment, a customer may either set preferences ahead of time or provide input via a search user interface that indicates the relative importance of different search criteria to the customer (e.g., that they value ratings of providers more highly than years of experience). The service provider matching system may then adjust one or more base scores for certain search fields up or down by applying one or more weights corresponding to the relative field importance as set by the customer or a system administrator. The matching scores can then be compared to a threshold value to determine which service providers to present to the customer associated with the submitted customer request. In some embodiments, the threshold value can be adjusted so that a set number of recommended service providers are included in the recommendation. In some embodiments, the threshold value can be configured for each type of service or general field of sendees.
d. User Search Criteria [0067] In some embodiments, the service provider matching engine 101 includes user search criteria 122. The user search criteria 122 that can include information related to a customer's search for a service provider. In some embodiments, the user search criteria 122 includes one or more of the following: type of service desired, address of where the service should take place, when the service is needed, whether the service is residential or commercial (this could affect hours or cost, for example), whether there free or paid parking on-site, a time or range of times when the service is desired to be started or completed, whether any certifications are required or preferred, whether the service provider is required to or preferred to have insurance for the service being performed, or the like. In some embodiments, some of the user data and preferences 118 can autofi 11 portions of the search so that the user can enter information more quickly. In some embodiments, user data and preferences 118 can be used in conjunction with user-entered search criteria to run the search and match the user with service
providers. In some embodiments, once all the user search criteria 122 is accepted and considered by the sendee provider matching engine 101, the service provider matching engine 101 can compare the user search criteria 122, which may include at least a portion of the user data and preferences 118, with at least a portion of the service provider data and preferences to determine one or more matches to present to the user associated with the search, FIGS, 4A-4C show one example of a search being entered on a graphical user interface and search results presented to a user.
e. Matching Database [0068] In some embodiments, the service provider matching engine 101 includes a matching database 124, In some embodiments, the matching database 124 can store any data,, preferences, or information that passes through the service provider matching engine 101, For example, the matching database 124 can store information related to the service provider data and preferences 116, the user data and preferences 118, the user search criteria 122 (any prior searches for customers, for example), outputs or results from the machine learning component 120, or other data input or output from any of the components in the service provider matching engine 101. In some embodiments, the matching database 124 can store any data, preferences, or information that passes through the service provider matching system 102 and the service provider matching system 102. In some embodiments, the matching database 124 can store any data, preferences, or information that is stored in the data store 114. For example, the matching database 124 can store information related to the display generation engine 104, the financing engine 106, the contract generation engine 108, the bidding engine 110, the crime monitoring engine 112, any data in the data store 114, or other data input or output from, any of the components in the service provider matching system 102. In some embodiments, the matching database 124 can store information and algorithms related to prior searches, as well as results output from the machine learning component 120 that can be used to enhance future matches.
Service Provider Systemfs)
[0069] In some embodiments, the service provider system(s) 130 may include location data 132 and availability data 134. The service provider system(s) 130 may communicate with customer system(s) 140 and the sendee provider matching systems 102 over a network 150. In some embodiments, each service provider system 130 can comprise multiple systems connected via a local area network or via the Internet. Also, in some embodiments the service provider system(s) 130, or portions thereof!, can be located on the sendee provider matching system 102. In some embodiments, the sendee provider systems 130 can include one or more computers, cell phones, tablets, a combination of devices, or the like.
1. Location
[0070] In some embodiments, the service provider system(s) 130 includes a location 132. The location 132 can include data that indicates the current and/or past physical locations associated with the service provider system(s) 130 or one or more service providers associated with the service provider systems 130. In some embodiments, the location 132 can be determined through the use of data related to one or more sensors in the sendee provider system(s) 130, which can include one or more of the following: GPS, WiFi, Bluetooth, barometer, or the like. In some embodiments, the location 132 can be determined by analyzing data related to the service provider system's 130 IP address. In some embodiments, the location 132 can be determined by analyzing manually input data. In some embodiments, location 132 can be tracked or monitored based on service provider data and preferences 116. For example, a service provider can limit the service provider matching system's 102 access to data associated with certain sensors or components in the service provider system 130.
2. Availability
[0071] In some embodiments, the service provider system(s) 130 includes an availability 134. The availability 134 can include data that indicates the current and/or future availability of one or more sendee providers associated with a service provider system 130. Availability may be stored as calendar information (such as available blocks of time on a given
date, defined by start and stop times). Alternatively or additionally, availability could be stored as a Boolean value or flag indicating whether or not the service provider is currently on call or available for immediate service requests. In some embodiments, the availability 134 can be determined through the use of data related to one or more sensors in the service provider system(s) 130, which can include one or more of the following: GPS, WiFi, Bluetooth, barometer, or the like. For example, if a service provider is at a particular location 132 and is completing a project, then availability 134 can be based on the particular location 132. In some embodiments, the availability 134 can be determined by analyzing manually input data. In some embodiments, availability 134 can be tracked or monitored based on service provider data and preferences 116. For example, a service provider can limit the service provider matching system's 102 access to data associated with certain sensors or components in the service provider system 130.
Customer System(s)
[0072] In some embodiments, the customer system(s) 140 may include a location 136. The customer system(s) 140 may communicate with service provider system(s) 130 and the service provider matching systems 102 over a network 150. In some embodiments, each customer system 140 can comprise multiple systems connected via a local area network or via the Internet, Also, in some embodiments the customer system(s) 140, or portions thereof, can be located on the service provider matching system 102. In some embodiments, the customer system(s) 140 can include one or more computers, cell phones, tablets, a combination of devices, or the like.
[0073] In some embodiments, the customer system(s) 140 includes a location 136. The location 136 can include data that indicates the current and/or past physical locations associated with the customer system(s) 140 or one or more service providers associated with the service customer systems 140. In some embodiments, the location 136 can be determined through the use of data related to one or more sensors in the customer system(s) 140, which can include one or more of the following: GPS, WiFi, Bluetooth, barometer, or the like. In some embodiments, the location 136 can be determined by analyzing data related to the customer
system's 140 IP address. In some embodiments, the location 136 can be determined analyzing manually input data, such as entry of a street address of the customer's home, business or other service location. In some embodiments, location 136 can be tracked or monitored based on user data and preferences 118. For example, a user can limit the sendee provider matching system's 102 access to data associated with certain sensors or components in the customer systems 140.
First Example of a Service Provider Matching Flow Chart and Swim Lanes
[0074] FIGS. 2A-2B illustrate diagrams showing functionality of an example sendee provider matching system, according to various embodiments of the present disclosure. Although there is an order indicated in the Figures, it should be appreciated that the steps can occur in any order and certain blocks or steps can be optional, omitted, or combined with other blocks or steps. The customer system(s) 140 can be the same customer system(s) 140 described in FIG. 1 and herein, or a different system with different components. The sendee provider system(s) 130 can be the same service provider system(s) 130 described in FIG. 1 and herein, or a different system with different components. The service provider matching system 102 can be the same sendee provider matching system 102 described in FIG. 1 and herein, or a different system, with different components.
I. First Example Swim Lanes
[0075] FIG. 2A illustrates a swim-lane flow chart diagram illustrating functionality 200 of an example service provider matching system, according to various embodiments of the present disclosure. In step 1, a customer system 140 can submit a request to be matched with one or more sendee providers to a sendee provider matching system 102. The request can include user data and preferences (for example, the user data and preferences 118 in FIG. 1), and search cntena data (for example, user search criteria 122 in FIG. 1).
[0076] In step 2, the sendee provider matching system 102 can also receive or retrieve service provider data and preferences (for example, service provider data and preferences 116 in FIG. 1), location (for example, location 132 in FIG. 1), and availability (for example, availability 134 in FIG. 1). Then the sendee provider matching system 102 can use the
data received or retrieved from steps 1 and 2, along with any other data or methods, to match the customer system 140 associated with the submitted request to one or more service providers. In some embodiments, the provider preferences, location and/or availability can be received at different times or asynchronously with respect to the sendee provider request from the customer system. For example, a number of different sendee provider systems (which may include mobile computing devices, such as tablets or smartphones) may operate individual instances of an application associated with the service provider matching system that periodically (such as on a set schedule, on request, or in response to a location-change, schedule change or other trigger) provides to the service provider matching system updated current availability and/or location data of the associated sendee provider or individual employees or contractors of the given provider.
[0077] In step 3, the service provider matching system. 102 can transmit to service provider systems 130 information indicating the type of sendee requested and any additional relevant information associated with the request (for example, at least a portion of the search criteria data, and/or user data and preferences).
[0078] In step 4, at least a portion of the sendee provider systems 130 contacted can accept the work, communicate with the customer, propose an offer (or counter offer or counter proposal if the initial request had an offer), reject the work, or a combination. In some embodiments, certain service provider systems may establish preset automated rules implemented by the sendee provider matching system (such as enabling the service provider to automatically accept work requests for times that the service provider has marked as available and for which price, location and/or other criteria is met), such that acceptance of the work does not require manual review or input by certain service providers. Similarly, the sendee provider matching system may enable a service provider in advance to configure automated scripts, executable code or rule sets to automatically generate counter-offers in real time at step 4. For example, a sendee provider may indicate that sendee requests meeting certain criteria (such as in certain zip codes, for certain types of work, and/or other factors) should have a preset counter¬offer sent to the customer system.
[0079] In step 5, the service provider matching system 102 can indicate to the customer system 140 associated with the request information related to which sendee providers responded from their corresponding service provider systems 130, or who have established automated rules indicating that they would accept the work request as originally requested or with automatically generated counter-offer terms. Information transmitted in step 5 can include a list of which service providers are available and interested in doing the work, any offers or counter-offers from service providers to do the work (for example, any proposed new times to perform the work, changes to the requested work, offers or counter-offers regarding consultation fees or project costs, or the like), and information related to the service providers (for example, certifications, name, location, contact information, insurance, general availability, specialties, ratings and reviews, or the like).
[0080] In step 6, the customer associated with the customer system 140 can select a service provider from the transmitted list in step 5. Once selected, information can be transmitted to the sendee provider matching system 102. Also, in step 6, the customer can provide payment data, instructions, and/or preferences to the service provider matching system 102.
[0081] In some embodiments, in step 7, depending on the provided payment data, instructions, and/or preferences, the sendee provider matching system 102 can optionally transmit proposed additional financing options (for example, from one or more third parties, from the selected sendee provider, from the company or person associated with the sendee provider matching system 102, a combination, or the like) to the customer system 140. For example, the sendee provider or a third party can provide a loan for at least a portion of the sendee cost to be paid back by the customer in installments. In some embodiments, additional financing may only be offered if the cost of a sendee exceeds a preconfigured threshold, if the sendee provider permits it, or if the customer associated with the customer system has sufficient credit (for example, based on a prior credit check and/or financial information provided). In some cases, a determination of whether a customer has sufficient credit can be based on output from the machine learning component 120 described in reference to FIG. 1, payment history, address of the work to be performed, a combination, or other similar factors.
[0082] In step 8, the customer can select one or more of the additional financing options or modify the provided payment data, instructions, and/or preferences in step 6. Once the financing and payment instructions are provided to the service provider matching system 102, then in step 9, the sendee provider matching system 102 can place a hold or charge some or all of the cost of the service, and/or an additional hold in case of any increased costs. In some embodiments, the amount charged or held can be based on the financing and payment instructions are provided by the customer, the type of work done, preferences or requirements of the sendee provider, or the like.
[0083] The sendee provider matching system 102 can then create a booking and indicate to the service provider system 130 in step 10 that the particular service provider has been selected by the customer and that payment has been processed. In some embodiments, the sendee provider matching system 102 (or other systems) can access calendar programs or sendees (for example, through APIs) associated with the customer or service provider and update the corresponding calendar programs or services with the confirmed booking appointment.
[0084] Once the booking is confirmed, the service provider matching system 102 can generate one or more proposed contracts, or contract terms. In some embodiments, the contracts or contract terms can be based on one or more of: customer data or preferences (for example, user data and preferences 118 as described in FIG. 1), service provider data or preferences (for example, service provider data and preferences 116 as described in FIG. 1), machine learning outputs (for example, output from the machine learning component 120 as described in FIG. 1), any search criteria provided by the customer (for example, user search criteria 122 as described in FIG. 1), the type of sendee to be completed, the contact information or addresses of the customer and/or service provider, any employees or designated parties provided to the service provider matching system 102 by the service provider or customer, financing or payment information agreed to by the parties, or the like.
[0085] In steps 11 and 12, the service provider matching system 102 can transmit the contracts or contract terms to the customer system 140 and the service provider system 130. In some embodiments, the contract generation and transmission can be omitted or optional. In some
embodiments, the service provider matching system 102 can require execution of the contracts or terms prior to booking or confirming booking of the service, and in some cases, prior to charging any payment (in some embodiments, a hold on a credit card may still be processed to ensure a customer's capable of payment). For example, the contract or terms can be amended or executed electronically, also on paper and scanned, faxed, or mailed in, or through a third party service (for example, using an eSign service or software).
[0086] In steps 13 and 1.4, the customer and service provider can accept and/or sign the contract in the manner or form required by the parties or the service provider matching system 102. In some embodiments, use of the platform can automatically be presumed based on the terms of use or agreement of general contract terms.
[0087] In some embodiments, in step 15, the service provider may propose a change order, counter-offer, or new estimate based on an on-site inspection, or after the sendee has started, and the service provider anticipates increased costs. For example, the service provider may determine upon site inspection that work described in the original request did not accurately represent the scope of work to be completed. In some embodiments, the customer may also request additional work through the service provider matching system 102 as a change to the current booking or as a new and separate booking through the systems and methods described herein.
[0088] In step 16, the customer can accept or reject any change order or counter-offer received from the system. Also, in some embodiments, the customer can propose another counter-offer.
[0089] In step 17, the service provider matching system 102 can process the payment or hold similar to step 9 based on the newly agreed to cost of the service. In some embodiments, additional financing options (or updated financing options) can be presented to the customer similar to steps 7-8 described herein prior to step 17 being completed.
[0090] In step 18, which can optionally occur prior to step 17, the service provider can accept, reject, propose another change order or counter-offer, based on the customer's response in step 16. For example, the steps 15-18 can occur in varying orders and can repeat
until the parties reach an agreement. Additionally, if a contract was signed by the parties, the service provider matching system 102 can update the contract or terms for resigning.
2. First Example Flow Chart
[0091] FIG. 2B illustrates a flow chart diagram illustrating functionality 210 of an example sendee provider matching system based on FIG. 2A, according to various embodiments of the present disclosure.
[0092] In block 212, a service provider matching system (for example, the service provider matching system 102 as described herein) can receive a search request for a service provider service. In some embodiments, the request can include data, preferences, search criteria from, and associated with, the customer (for example, from a customer system 140 as described herein). The data, preferences, and search criteria can include information used to indicate the type of sendee desired and specifics on a type of service provider, address, when to perform the service, contact information, and/or other information. For example, data, preferences, and search criteria can include information for the customer as described in FIGS. 1 and 2A, for example.
[0093] In block 214, the service provider matching system can receive service provider data, preferences, location, and availability. In some embodiments, the information can include data, preferences, search criteria from, and associated with, the service provider or its employee(s) (for example, from a service provider system 130 as described herein). The data, preferences, and search criteria can include information used to indicate the types of services offered, locations available to perform each service, availability to perform each service, address, contact information, and/or other information. For example, data, preferences, and search criteria for the service provider can include information as described in FIGS. 1 and 2A, for example.
[0094] In block 216, the service provider matching system can process the request received from the customer system the service provider matching system can determine a list of service providers. In some embodiments, the list of service providers can be determined based at least in part on one or more of: data received from the customer system (for example, any data,, preferences, search criteria, or the like), data received from the service provider system (for
example, any data, preferences or the like), credit score associated with the customer received or retrieved from a third party credit bureau, outputs from a machine learning component, any third party data retrieved or received through one or more APIs or uploads, or any other data that is received by or retrieved by the system that may be relevant for matching. In some embodiments, the matching can be determined similar to the systems and methods described in relation to FIG. 1 herein.
[0095] In block 218, the service provider matching system contacts at least a subset of the list of service providers to determine whether the service provider is available and/or interested in performing the requested service. In some embodiments, the contacting can include providing the service providers with information about the request or customer. In some embodiments, the service providers can do one or more of: accepting the requested work at a designated or predicted price, offering a price to do the service, offering a time to do the service, offering a location to do the sendee, offering a specific employee or employees to do the service, counter-offer any offers made by the customer, limitations on the scope of work, or the like. In some embodiments, the service provider can also include preferences for the work that can be considered by the service provider matching system for the present service and/or future services. In some embodiments, the requested service may need multiple service providers to complete the task. In some embodiments, a first service provider can hire a second service provider or subcontractor to perform the extra work that the first service provider cannot do. In some embodiments, the service provider matching system can combine two or more service providers and present the combined group to the customer for approval.
[0096] In block 220, the service provider matching system can process each service provider's response and transmit a list of service providers to the customer system. In some embodiments, the service provider matching system can combine the responses it received from service providers to compile a list of recommended services providers to present to the customer. In some embodiments, the list of service providers can include additional data about the service providers, relevant offers or counter-offers provided by the service providers, or additional information related to financing or the service that may be useful to the customer to make an informed decision about which service provider to select, In some embodiments, only a portion
of the service providers contacted can be included in the list. For example, depending on the responses received from, service providers, the list can include a portion of service providers that accepted the initial offer (as opposed to the service providers that provided a counter-offer). In some embodiments, all service providers contacted can be presented regardless of whether they responded.
[0097] In some embodiments, as discussed above, service providers can program criteria to automatically accept certain work. For example, service providers can designate an area, work schedule, and base price to perform services, and if a customer requests a service that meets the service provider's criteria, the service can be automatically booked without any interactions from the sendee provider. In some embodiments, the service provider can be informed of the booked appointment and subsequently cancel or propose a change to the booked appointment. In some embodiments, and others described herein, a change to a booking can incur a fee imposed on the party modifying the booking. In some embodiments, if the sendee provider accepts the work then the service provider matching system can immediately book the sendee and charge the client or put a hold on the client's credit card.
[0098] In block 222, the service provider matching system can receive a selection of a service provider and payment and financing information from a customer system. In some embodiments, the payment and financing information can include methods of payment and instructions related to how to secure payment of sendees and when to secure the payments. For example, a payment plan can be configured through the sendee provider matching system.
[0099] In block 224, depending on the type of service, cost of service, or other factors, the service provider matching system can compile and transmit additional financing options to the customer device. For example, if a customer sees a particular price and indicates that they cannot afford the service, the service provider matching system can present to the customer (for example, through a graphical user interface, application, email, text, or the like) options for additional financing through the service provider matching system, a third party, one or more of the matched service providers, a combination of financing methods, or the like. In block 226, the sendee provider matching system can receive an indication of a selection by the customer of one or more financing options presented. In some embodiments, the consumer can
propose a particular financing plan. In some embodiments, the consumer can select a plan presented to the customer.
[0100] In block 228, the sendee provider matching system can place a payment hold or charge payment for at least a portion of the cost of the sendee. In some embodiments, additional fees can be charged or held. For example, in some embodiments, if insurance is required by the customer and the customer does not have insurance, a certain value can be charged or held at the time of booking for any incidental costs and any remaining balance can be returned to the customer upon completion of the service, or upon approval by the sendee provider.
[0101] In block 230, the service provider matching system can notify a service provider of selection by a customer and confirm, a booked appointment. Details about the booked appointment can be transmitted to the customer system and the service provider system.
[0102] In block 232, the service provider matching system can prepare a draft contract or contract terms and send the contract or terms to the customer and/or service provider. In some embodiments, the execution of the contract or terms can be required, optional, or partially required. In some embodiments, the contract or terms can be generated based on any data, preferences, information, or criteria related to the booked service, the customer, or the sendee provider(s).
[0103] In blocks 234 and 236, the contract or terms are transmitted to the customer and service provider. In block 238, the service provider matching system receives acceptance and/or signing of the contract or terms. In some embodiments, the acceptance of the contract can be electronic.
Second Example of a Sendee Provider Matching Flow Chart and Swim Lanes
[0104] FIGS. 3A-3B illustrate diagrams showing functionality of an example sendee provider matching system, according to various embodiments of the present disclosure. Although there is an order indicated in the Figures, it should be appreciated that the steps can occur in any order and certain blocks or steps can be optional, omitted, or combined with other blocks or steps. The customer system(s) 140 can be the same customer system(s) 140 described in FIG. 1
and herein, or a different system with different components. The sendee provider system(s) 130 can be the same service provider system(s) 130 described in FIG. 1 and herein, or a different system with different components. The sendee provider matching system 102 can be the same sendee provider matching system 102 described in FIG. 1 and herein, or a different system with different components.
1. Second Example Swim Lanes
[0105] FIG. 3A illustrates a swim-lane flow chart diagram illustrating functionality 300 of an example sendee provider matching system, according to various embodiments of the present disclosure. In steps 0A or 0B, the customer or service provider can indicate a cancellation of a prior booked service. In some embodiments, the cancellation may include the loss of a deposit or a fee that can either be transferred to the other party or to the operator of the sendee provider matching system (for example, the service provider matching system 102 described in FIG. 1). In some embodiments, when a service has been agreed to be performed by a customer and a sendee provider but must be cancelled by the service provider (for example, an accident occurred, sickness, or a current work not completed, or the like) and the service provider is not able to perform the service at the agreed upon time, then the sendee provider or the customer can cancel the booked service. In some embodiments, once the booking is cancelled, then contract can be reassigned to the next available and lowest cost service provider, or a new bid process can be started (for example, subject to customer approval).
[0106] In step 1, a cancellation confirmation can be sent to the customer system 140. In some embodiments, the cancellation confirmation can also include an up-to-date list of available sendee providers based on the initial booking information. The list can include matched service providers using the same information from the initial request, which can include user data and preferences (for example, the user data and preferences 118 in FIG. 1), and search criteria data (for example, user search criteria 122 in FIG. 1). In some embodiments, the list of available service providers can also include information about each service provider related to the type of sendee initially booked.
[0107] In step 2, the customer can indicate interest in re-booking the appointment by selecting one or more of the sendee providers on the list.
[0108] In step 3, the service provider matching system 102 can transmit to service provider systems 130 information indicating the type of service requested and any additional relevant information associated with the request (for example, at least a portion of the search criteria data and/or user data and preferences, or a history of prior bookings so that the service provider can understand the scope of the work and history of the customer).
[0109] Steps 4-18 are similar to steps 4-18 as described in reference to FIG. 2A. Descriptions in FIG 2A can apply to the corresponding steps in FIG. 3A, except with the new booking information.
2. Second Example Flow Chart
[0110] FIG. 3B illustrates a flow chart diagram illustrating functionality 310 of an example service provider matching system, based on FIG. 3 A, according to various embodiments of the present disclosure. In block 312, the service provider matching system can receive an indication or a cancellation of a prior booked service. In some embodiments, the cancellation may include the loss of a deposit or a fee that can either be transferred to the other party or to the operator of the service provider matching system (for example, the service provider matching system 102 described in FIG. 1).
[0111] In block 314, the service provider matching system can process the cancellation to determine an up-to-date list of available service providers. In some embodiments, the up-to-date list of service providers can be determined based at least in part on one or more of: data received from the customer system (for example, any data, preferences, search criteria, or the like), data received from the service provider system (for example, any data, preferences or the like), credit score associated with the customer received or retrieved from a third party credit bureau, outputs from a machine learning component, any third party data retrieved or received through one or more APIs or uploads, or any other data that is received by or retrieved by the system that may be relevant for matching. In some embodiments, the matching can be
determined similar to the systems and methods described in relation to other embodiments described herein.
[0112] It will be appreciated that the up-to-date list of available service providers may be service providers entirely unaffiliated (other than the service providers' use of the matching system's services) with the service provider that was subject to the cancellation. Accordingly, the cancelled and potential replacement sendee providers may each be separate independently operated businesses with their own separate service provider systems in different geographic locations, as opposed to merely different employees or contractors employed by or under direction of a single company.
[0113] In block 316, a cancellation confirmation can be sent by the service provider matching system to the customer system. In some embodiments, the cancellation confirmation can also include an up-to-date list of available service providers based on the initial booking information. The list can include matched sendee providers using the same information from the initial request, which can include user data and preferences (for example, the user data and preferences 118 in FIG. 1), and search criteria data (for example, user search criteria 122 in FIG. 1). In some embodiments, the list of available service providers can also include information about each service provider related to the type of service initially booked.
[0114] In block 318, the sendee provider matching system can transmit to one or more service provider systems information indicating the type of service requested and any additional relevant information associated with the request (for example, at least a portion of the search criteria data and/or user data and preferences, or a history of prior bookings so that the sendee provider can understand the scope of the work and history of the customer).
[0115] Block 320 includes at least a portion of the flow described in blocks 218-238 in reference to FIG. 2B. Descriptions for blocks 218-238 in FIG. 2B can apply to block 320 in FIG. 3B, except with the new booking information.
Graphical User Interface Examples for Customer System
1. A computer-implemented method of generating and presenting interactive search results based on recommended service providers, the computer-implemented method comprising:
providing, by a computer system to a customer system associated with a customer, a user interface that comprises functionality that enables the customer to search for and interact with service providers available for a particular service, and wherein the computer system comprises a computer processor and electronic memory;
maintaining, by the computer system, one or more electronic data stores that store customer information relating to the customer;
maintaining, by the computer system, one or more electronic data stores that store service provider information relating to a plurality of service providers, wherein service provider information for an individual service provider comprises a plurality of service provider data fields, wherein one or more of the plurality of service provider data fields identify criteria set by the individual service provider for accepting work requests from customers via the computer system;
receiving, by the computer system based on user interaction with the user interface, electronic search data indicating search criteria for searching at least a subset of the plurality of service providers to perform a desired service, wherein the search criteria includes a plurality of search data fields;
selecting, using the computer system, a set of service providers from the plurality of service providers, wherein at least one of the service provider data fields for each service provider in the set of service providers matches one of the search data fields;
calculating, using the computer system, a base score for each of a plurality of search data fields for each service provider in the set of service providers, wherein the base score for an individual search data field represents a similarity between values associated with the individual search data field and a corresponding service provider data field;
service provider in the set of service providers to generate adjusted base scores, wherein adjusting the base scores comprises at least one of (a) normalizing base scores or (b) applying one or more weights to the base scores based on relative importance of respective search data fields;
calculating, using the computer system, a matching score for each service provider in the set of service providers, wherein calculating a first matching score for a first service provider is based at least in part on one or more adjusted base scores for the first service provider,
determining, using the computer system, a set of recommended sendee providers comprising at least a portion of the set of service providers, the set of recommended service providers determined based at least in part on the calculated matching scores:
causing display, via the user interface, of an interactive result set based at least in part on the set of recommended service providers, the interactive result set being determined and sorted based at least in part on the calculated matching scores;
receiving, by the computer system via the user interface, a work request for work to be performed by a selected sendee provider from the recommended sendee providers; and
sending, by the computer system in real time with respect to receipt of the work request, sendee request information to a first sendee provider system associated with the selected sendee provider, wherein the service request information includes at least a portion of the customer information relating to the customer.
2. The computer-implemented method of claim I, wherein the relative importance of respective search data fields is determined based on user preferences associated with the customer.
3. The computer-implemented method of claim 1, further comprising;
receiving, using the computer system, an indication of payment-related data, wherein the payment-related data indicates method and form of payment for a sendee
first service provider system associated with the selected service provider.
4. The computer-implemented method of claim 1, further comprising:
continuously receiving, by the computer system from the first service provider system, electronic data indicating a current physical location of the first service provider system; and
causing display, via the user interface, of a geographical map including an indicator on the graphical map representing the current physical location of the service provider, wherein the current physical location is based at least in part on the received electronic data, and wherein the display is updated at a predetermined time interval to stay up-to-date so that a customer can view the current physical location to see when the selected service provider associated with the first service provider system should be ready to perform the desired service.
5. The computer-implemented method of claim 1, further comprising:
receiving, using the computer system, indication of a change order request from the first service provider system; and
transmitting, using the computer system, the indication of the change order request to the customer system.
6. The computer-implemented method of claim 5, further comprising:
receiving, using the computer system, indication of acceptance of the change order request from the customer system; and
transmitting, using the computer system, the indication of acceptance to the first service provider system.
7. The computer-implemented method of claim 1, further comprising:
receiving, using the computer system, bid information from one or more service provider systems associated with one or more service providers, wherein the
interface includes at least a portion of the bid information so that a customer can consider the bid information when making a decision on which service provider to select.
8. A system for generating and presenting interactive search results based on recommended service providers, the system comprising;
one or more electronic data stores comprising:
electronic search data including a plurality of search data fields;
customer information relating to a customer; and
service provider information relating to a plurality of service providers, wherein service provider information for an individual service provider comprises a plurality of service provider data fields, wherein one or more of the plurality of service provider data fields identify criteria set by the individual service provider for accepting work requests from customers via the system;
a networking interface; and
a hardware processor configured to execute computer-executable instructions in order to:
provide, to a customer system associated with a customer, a user interface that comprises functionality that enables the customer to search for and interact with service providers available for a particular service;
receive customer information relating to the customer;
receive service provider information relating to a plurality of service providers;
receive, based on user interaction with the user interface, electronic search data indicating search criteria for searching at least a subset of the plurality of service providers to perform a desired service;
select a set of service providers from the plurality of service providers, wherein at least one of the service provider data fields for each service provider in the set of sendee providers matches one of the search data fields;
each service provider in the set of service providers, wherein the base score for an individual search data field represents a similarity between values associated with the individual search data field and a corresponding service provider data field:
adjust the calculated base scores for each service provider in the set of service providers to generate adjusted base scores, wherein adjusting the base scores comprises at least one of (a) normalizing base scores or (b) applying one or more weights to the base scores based on relative importance of respective search data fields;
calculate a matching score for each service provider in the set of service providers, wherein calculating a first matching score for a first service provider is based at least in part on one or more adjusted base scores for the first service provider,
determine a set of recommended service providers comprising at least a portion of the set of service providers, the set of recommended service providers determined based at least in part on the calculated matching scores;
cause display, via the user interface, of an interactive result set based at least in part on the set of recommended sendee providers, the interactive result set being determined and sorted based at least in part on the calculated matching scores;
receive, via the user interface, a work request for work to be performed by a selected service provider from the recommended service providers, and
send, in real time with respect to receipt of the work request, service request information to a first service provider system associated with the selected service provider, wherein the service request information includes at least a portion of the customer information relating to the customer.
9. The system of claim 8, wherein the relative importance of respective search data fields is determined based on user preferences associated with the customer.
execute the computer-executable instructions in order to:
receive an indication of payment-related data, wherein the payment-related data indicates method and form of payment for a service offered by the selected service provider; and
transmit the indication of a selection to the first service provider system associated with the selected service provider.
11. The system of claim 8, wherein the hardware processor is further configured to
execute the computer-executable instructions in order to:
continuously receive, by the computer system from the first sen/ice provider system, electronic data indicating a current physical location of the first service provider system; and
cause display, via the user interface, of a geographical map including an indicator on the graphical map representing the current physical location of the service provider, wherein the current physical location is based at least in part on the received electronic data, and wherein the display is updated at a predetermined time interval to stay up-to-date so that a customer can view the current physical location to see when the selected service provider associated with the first service provider system should be ready to perform the desired service.
12. The system of claim 8, wherein the hardware processor is further configured to
execute the computer-executable instructions in order to:
receive bid information from one or more service provider systems associated with one or more service providers, wherein the bid information includes a price to perform work associated with the received electronic search data, and wherein the interactive result set displayed on the user interface includes at least a portion of the bid information so that a customer can consider the bid information when making a decision on which service provider to select.
13. The computer-implemented method of claim 1, wherein the interactive result set
is displayed in the user interface within a graphical map view, wherein the graphical map
view depicts a real world geographic area and includes display of a plurality of graphical indicators that each represent a different recommended service provider from the set of recommended service providers, wherein a displayed location within the graphical map view of a first recommended service provider represents a real time physical location of the first recommended sendee provider within the real world geographic area as determined from real time location data received from at least one of a mobile device or GPS unit associated with the first recommended service provider.
14. The computer-implemented method of claim 13, wherein the graphical map view further includes display of a graphical indicator representing a geographic location of a home or other property at which work is to be performed in association with the work request.
15. The system of claim 8, wherein the interactive result set is displayed in the user interface within a graphical map view, wherein the graphical map view depicts a real world geographic area and includes display of a plurality of graphical indicators that each represent a different recommended service provider from the set of recommended service providers, wherein a displayed location within the graphical map view of a first recommended service provider represents a real time physical location of the first recommended service provider within the real world geographic area as determined from real time location data received from at least one of a mobile device or GPS unit associated with the first recommended service provider, and wherein the graphical map view further includes display of a graphical indicator representing a geographic location of a home or other property at which work is to be performed in association with the work request.
| # | Name | Date |
|---|---|---|
| 1 | 202117018940-IntimationOfGrant25-04-2024.pdf | 2024-04-25 |
| 1 | 202117018940-STATEMENT OF UNDERTAKING (FORM 3) [23-04-2021(online)].pdf | 2021-04-23 |
| 2 | 202117018940-NOTIFICATION OF INT. APPLN. NO. & FILING DATE (PCT-RO-105) [23-04-2021(online)].pdf | 2021-04-23 |
| 2 | 202117018940-PatentCertificate25-04-2024.pdf | 2024-04-25 |
| 3 | 202117018940-FORM 3 [31-07-2023(online)].pdf | 2023-07-31 |
| 3 | 202117018940-FORM 1 [23-04-2021(online)].pdf | 2021-04-23 |
| 4 | 202117018940-DRAWINGS [23-04-2021(online)].pdf | 2021-04-23 |
| 4 | 202117018940-CLAIMS [27-06-2023(online)].pdf | 2023-06-27 |
| 5 | 202117018940-DECLARATION OF INVENTORSHIP (FORM 5) [23-04-2021(online)].pdf | 2021-04-23 |
| 5 | 202117018940-COMPLETE SPECIFICATION [27-06-2023(online)].pdf | 2023-06-27 |
| 6 | 202117018940-DRAWING [27-06-2023(online)].pdf | 2023-06-27 |
| 6 | 202117018940-COMPLETE SPECIFICATION [23-04-2021(online)].pdf | 2021-04-23 |
| 7 | 202117018940-FORM-26 [13-05-2021(online)].pdf | 2021-05-13 |
| 7 | 202117018940-FER_SER_REPLY [27-06-2023(online)].pdf | 2023-06-27 |
| 8 | 202117018940-OTHERS [27-06-2023(online)].pdf | 2023-06-27 |
| 8 | 202117018940-FORM 3 [19-08-2021(online)].pdf | 2021-08-19 |
| 9 | 202117018940-AMMENDED DOCUMENTS [26-06-2023(online)].pdf | 2023-06-26 |
| 9 | 202117018940.pdf | 2021-10-19 |
| 10 | 202117018940-Annexure [26-06-2023(online)].pdf | 2023-06-26 |
| 10 | 202117018940-FORM 3 [14-02-2022(online)].pdf | 2022-02-14 |
| 11 | 202117018940-FORM 13 [26-06-2023(online)].pdf | 2023-06-26 |
| 11 | 202117018940-FORM 18 [20-10-2022(online)].pdf | 2022-10-20 |
| 12 | 202117018940-FER.pdf | 2022-12-28 |
| 12 | 202117018940-Information under section 8(2) [26-06-2023(online)].pdf | 2023-06-26 |
| 13 | 202117018940-FORM 3 [13-02-2023(online)].pdf | 2023-02-13 |
| 13 | 202117018940-MARKED COPIES OF AMENDEMENTS [26-06-2023(online)].pdf | 2023-06-26 |
| 14 | 202117018940-FORM 3 [13-02-2023(online)].pdf | 2023-02-13 |
| 14 | 202117018940-MARKED COPIES OF AMENDEMENTS [26-06-2023(online)].pdf | 2023-06-26 |
| 15 | 202117018940-FER.pdf | 2022-12-28 |
| 15 | 202117018940-Information under section 8(2) [26-06-2023(online)].pdf | 2023-06-26 |
| 16 | 202117018940-FORM 13 [26-06-2023(online)].pdf | 2023-06-26 |
| 16 | 202117018940-FORM 18 [20-10-2022(online)].pdf | 2022-10-20 |
| 17 | 202117018940-FORM 3 [14-02-2022(online)].pdf | 2022-02-14 |
| 17 | 202117018940-Annexure [26-06-2023(online)].pdf | 2023-06-26 |
| 18 | 202117018940-AMMENDED DOCUMENTS [26-06-2023(online)].pdf | 2023-06-26 |
| 18 | 202117018940.pdf | 2021-10-19 |
| 19 | 202117018940-FORM 3 [19-08-2021(online)].pdf | 2021-08-19 |
| 19 | 202117018940-OTHERS [27-06-2023(online)].pdf | 2023-06-27 |
| 20 | 202117018940-FER_SER_REPLY [27-06-2023(online)].pdf | 2023-06-27 |
| 20 | 202117018940-FORM-26 [13-05-2021(online)].pdf | 2021-05-13 |
| 21 | 202117018940-COMPLETE SPECIFICATION [23-04-2021(online)].pdf | 2021-04-23 |
| 21 | 202117018940-DRAWING [27-06-2023(online)].pdf | 2023-06-27 |
| 22 | 202117018940-COMPLETE SPECIFICATION [27-06-2023(online)].pdf | 2023-06-27 |
| 22 | 202117018940-DECLARATION OF INVENTORSHIP (FORM 5) [23-04-2021(online)].pdf | 2021-04-23 |
| 23 | 202117018940-CLAIMS [27-06-2023(online)].pdf | 2023-06-27 |
| 23 | 202117018940-DRAWINGS [23-04-2021(online)].pdf | 2021-04-23 |
| 24 | 202117018940-FORM 1 [23-04-2021(online)].pdf | 2021-04-23 |
| 24 | 202117018940-FORM 3 [31-07-2023(online)].pdf | 2023-07-31 |
| 25 | 202117018940-PatentCertificate25-04-2024.pdf | 2024-04-25 |
| 25 | 202117018940-NOTIFICATION OF INT. APPLN. NO. & FILING DATE (PCT-RO-105) [23-04-2021(online)].pdf | 2021-04-23 |
| 26 | 202117018940-STATEMENT OF UNDERTAKING (FORM 3) [23-04-2021(online)].pdf | 2021-04-23 |
| 26 | 202117018940-IntimationOfGrant25-04-2024.pdf | 2024-04-25 |
| 1 | 202117018940E_28-12-2022.pdf |