# Patent

## Title
Network system to filter requests by destination and deadline

## Abstract

A method and system for filtering service requests by destination and deadline are described. A network computer system receives provider data corresponding to a specified destination and a deadline from a service provider. The network computer system tracks a current location of the service provider through a device equipped with one or more location-based resources and receives request data corresponding to requests for service from users. The network computer system analyzes the request data for each of the requests for service to identify a subset of the requests that are assignable to the service provider based on whether the service provider is able to fulfill the request and travel to the desired destination before the deadline. The network computer system transmits a message to the service provider's device requesting that the service provider fulfill one of the requests for service from the identified subset.

## Background
BACKGROUND
A network service can enable users to request and receive various services through applications on mobile computing devices. The network service typically selects a service provider to fulfill the request for service based on user-specified data from the request. These service providers can interact with the network service to accept or decline service requests, receive data about the requesting users, and set various status modes such as whether the provider is online and available to fulfill requests or offline.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram illustrating an example network computer system in communication with service requester and service provider devices, in accordance with examples described herein.
FIG. 2 is a timeline illustrating examples of events that can occur while providing services in a deadline filter mode, in accordance with examples described herein.
FIG. 3 is a flow chart describing an example method of filtering service requests by destination and deadline, according to examples described herein.
FIG. 4 is a flow chart describing an example method of persisting destination and deadline settings when a service provider goes offline, according to examples described herein.
FIG. 5 is a flow chart describing an example method of filtering service requests by destination, according to examples described herein.
FIGS. 6A and 6B illustrate example user interfaces on a service provider device, according to examples described herein.
FIG. 7 is a block diagram illustrating an example service provider device executing a designated service provider application for an on-demand service, as described herein.
FIG. 8 is a block diagram that illustrates a computer system upon which aspects described herein may be implemented.



DETAILED DESCRIPTION
A network computer system is provided herein that manages an on-demand network-based service linking available service providers with service requesters throughout a given region (e.g., a metroplex such as the San Francisco Bay Area). According to examples, the network computer system can receive service requests for on-demand services (e.g., transport service or delivery service) from requesting users (e.g., a rider) via a designated service requester application executing on the users' mobile computing devices. Based, at least in part, on a service start location, the network computer system can identify a number of proximate available service providers (e.g., a driver) and transmit a service invitation message to one or more service provider devices of the proximate available service providers to fulfill the service request (e.g., provide or perform the corresponding service). In many examples, the service providers can either accept or decline the invitation based on, for example, the service start location or service destination being impractical for the service provider.
In some examples, in selecting a service provider to fulfill a given service request, the network computer system can identify a plurality of candidate service providers to fulfill the service request based on a service start location indicated in the service request. For example, the network computer system can determine a geo-fence (e.g., a region specified by three or more location points or a defined area, such as a hexagon from an array of hexagons) surrounding the service start location (or a geo-fence defined by a radius away from the service start location), identify a set of candidate service providers (e.g., twenty or thirty service providers within the geo-fence), and select an optimal service provider (e.g., closest service provider to the service start location, service provider with the shortest estimated travel time from the service start location, service provider traveling to a location within a specified distance or specified travel time to the destination location, etc.) from the candidate service providers to fulfill the service request. According to examples provided herein, the network computer system can compile historical data for individual service requesters with regard to the network-based service. Thus, the network computer system can manage a service requester profile for each service requester indicating routine start and/or end locations (or regions), and/or routine routes (e.g., for a transportation service from home to work and/or vice versa) and preferred service types (e.g., transportation, delivery, mailing, etc.). In some examples, the network computer system can further synchronize with a service requester device to, for example, identify the service requester's contacts, the service requester's schedule and appointments, travel plans (e.g., a scheduled trip), and the like.
In conventional service requester applications used with on-demand service systems, service providers may be reluctant to go online or stay online when they have limited time because of fears that trips could lead them far away from a desired destination, such as home or work. If the provider needs to be at a specified destination by a given deadline, they may choose to play it safe and not risk providing services at all.
In various implementations described herein, the service provider is able to specify at what time they want to arrive at a specific destination. With those data, an example network computer system can operate to filter service requests to obey a set of constraints that allow a service provider to be at a desired or specified destination by a deadline time. Additionally or alternatively, in one example, when the network computer system receives a service request, the network computer system can determine whether to include the service provider (who specified a desired destination and deadline) in the set of candidate service providers to fulfill the service request based on the data provided. The network computer system can then select a service provider from this set. Thus, the network computer system can ensure that the service provider is not chosen to receive service invitations or be assigned to services that would take that service provider too far away from the desired destination such that he or she could not arrive there prior to the requested deadline. In addition, the network computer system ensures that not only can the service provider arrive at the desired destination prior to the deadline, but also that the provider has sufficient time to provide services to requesting users near the estimated route from the provider's current location to the desired destination. Moreover, once the network computer system determines that it is time for the service provider to head towards the destination, it confirms with the service provider that he or she still wants to be at the specified destination by the deadline. Once confirmed, the network computer system filters out any service requests in which the service start location and the service destination are not roughly along a route of travel from the provider's current location to the desired destination. That is, the network computer system can filter out the service provider from a candidate pool of drivers for any invitations for services that are not in a similar direction as the route of travel. In some aspects, the network computer system 100 can determine that a request for service is along a route of travel when the request has a service start location and/or service destination that are within a threshold distance from a point along the route of travel.
Among other benefits, the examples described herein achieve a technical effect of providing on-demand network-based service providers (e.g., an on-demand transportation service) with increased control and stability over scheduling. By programmatically filtering service requests by destination and deadline, the network computer system prevents service providers from providing services that would otherwise have led them too far away to make it to their desired destinations at specified deadline times. This gives service providers more peace of mind and flexibility when providing services through the network computer system, which can increase the average usage of the system and reduce waiting times for users.
According to examples described herein, a network computer system receives provider data corresponding to a desired destination and a deadline from a service provider. The network computer system tracks a current location of the service provider through a device equipped with one or more location-based resources and receives request data corresponding to requests for service from users. The network computer system analyzes the request data for each of the requests for service to identify a subset of the requests in which the service provider is determined to be able to fulfill the request and travel to the desired destination before the deadline. In other words, the network computer system can identify, from the plurality of requests, one or more requests that are assignable to the service provider based on a determination that the service provider is capable of providing service and traveling to the specified destination before the deadline. The network computer system transmits an invitation to the service provider to fulfill one of the requests for service from the identified subset.
As provided herein, the terms “user” and “service requester” are used throughout this application interchangeably to describe a person or group of people who utilize a requester application on a computing device to request, over one or more networks, on-demand services from a network computing system. The term “service provider” is used to describe a person utilizing a provider application on a computing device to provide on-demand services to the service requesters.
One or more aspects described herein provide that methods, techniques and actions performed by a computing device are performed programmatically, or as a computer-implemented method. Programmatically means through the use of code, or computer-executable instructions. A programmatically performed step may or may not be automatic.
One or more aspects described herein may be implemented using programmatic modules or components. A programmatic module or component may include a program, a subroutine, a portion of a program, a software component, or a hardware component capable of performing one or more stated tasks or functions. In addition, a module or component can exist on a hardware component independently of other modules or components. Alternatively, a module or component can be a shared element or process of other modules, programs or machines.
Furthermore, one or more aspects described herein may be implemented through the use of instructions that are executable by one or more processors. These instructions may be carried on a computer-readable medium. Machines shown or described with figures below provide examples of processing resources and computer-readable media on which instructions for implementing some aspects can be carried and/or executed. In particular, the numerous machines shown in some examples include processor(s) and various forms of memory for holding data and instructions. Examples of computer-readable media include permanent memory storage devices, such as hard drives on personal computers or servers. Other examples of computer storage media include portable storage units, such as CD or DVD units, flash or solid state memory (such as carried on many cell phones and consumer electronic devices) and magnetic memory. Computers, terminals, network enabled devices (e.g., mobile devices such as cell phones) are all examples of machines and devices that utilize processors, memory, and instructions stored on computer-readable media.
Alternatively, one or more examples described herein may be implemented through the use of dedicated hardware logic circuits that are comprised of an interconnection of logic gates. Such circuits are typically designed using a hardware description language (HDL), such as Verilog and VHDL. These languages contain instructions that ultimately define the layout of the circuit. However, once the circuit is fabricated, there are no instructions. All the processing is performed by interconnected gates.
System Overview
FIG. 1 is a block diagram illustrating an example network computer system in communication with service requester and service provider devices, in accordance with examples described herein. The network computer system 100 can implement or manage a network service (e.g., an on-demand transport or delivery arrangement service) that connects service requesters 174 with service providers 184 that are available to fulfill the service requests 171 that service requesters 174 transmit to the network computer system 100. The network service can enable services to be requested by service requesters 174 and provided by available service providers 184 by way of a service requester application 175 executing on the service requester devices 170, and a service provider application 185 executing on the service provider devices 180. As used herein, a service requester device 170 and a service provider device 180 can comprise computing devices with functionality to execute designated applications corresponding to the on-demand arrangement service managed by the network computer system 100. In many examples, service requester devices 170 and service provider devices 180 can comprise mobile computing devices, such as smartphones, tablet computers, virtual reality or augmented reality headsets, on-board computing systems of vehicles, and the like. Example network services can comprise delivery of food or products, package mailing, shopping, construction, plumbing, home repair, housing or apartment sharing, etc., or can include transportation arrangement services.
The network computer system 100 can include a provider management interface 115 to communicate over one or more networks 160 with the service provider application 185 running on service provider devices 180. According to examples, service providers 184 register with the network computer system 100 to receive service invitations 132 through the service provider application 185 to fulfill service requests 171 submitted by the service requesters 174. In an example using transport services, the service requesters 174 are prospective passengers who want to be picked up and transported, and the service providers 184 are drivers who transport the service requesters 174.
Service providers 184 can select various states or modes within the service provider application 185, such as an online mode that indicates the service provider 184 is available and willing to fulfill service invitations 132. Service providers 184 can also select from various types of transport service that the provider offers, including ride-pooling, a basic ride-share service type, a luxury vehicle service type, etc. In addition, service providers 184 can set one or more constraints on their schedule, such as a desired destination 114 and/or deadline 116.
In some situations, service providers 184 make themselves available to perform services for a block of time in a manner similar to a work shift or at sporadic times whenever convenient for the provider. For example, a driver providing transport services may choose to only pick up passengers during a morning commute or on the way home in the evening. In the normal course of providing on-demand services, the service providers 184 can either park and wait or drive around a region waiting for nearby users to request services. However, service providers 184 may be reluctant to go online or stay online when they have limited time because of fears that trips could lead them far away from a desired destination such as home or work. Therefore, the network computer system 100 can operate to filter service requests 171 to obey a set of constraints that allow a service provider 184 to be at a desired destination 114 by a deadline 116.
In accordance with various examples, the service provider device 180 transmits a provider status 113, which can include any selected modes, the current location of the service provider 184, and other provider information, over the network 160 to the provider management interface 115. In addition, the service provider device 180 can transmit a desired destination 114 and deadline 116 to the provider management interface 115 when the service provider 184 chooses to enter a filtering mode. In some implementations, the service provider devices 180 can determine the current location of the service provider 184 using location-based resources of the service provider devices 180 (e.g., global positioning system (GPS) resources). The service provider application 185 can continually update the provider status 113 on a regular schedule or in response to provider input to the service provider device 180, location changes determined by GPS, service steps performed, etc. The provider management interface 115 stores the provider status 113 in a provider data store 190 (e.g., a database or data structure) accessible by a selection engine 130 that processes incoming service requests 171 in order to select service providers 184 to fulfill the service requests 171.
The network computer system 100 can include a service requester interface 125 to communicate with service requester devices 170 over one or more networks 160 via a service requester application 175. According to examples, a service requester 174 wishing to utilize the on-demand arrangement service can launch the service requester application 175 and transmit a service request 171 over the network 160 to the network computer system 100. In certain implementations, the service requester 174 can view multiple different service types managed by the network computer system 100, such as ride-pooling, a basic ride-share service type, a luxury vehicle service type, a van or large vehicle service type, professional services (e.g., where the service provider is certified), an on-demand self-driving vehicle service, and the like. The network computer system 100 can utilize service provider locations to provide the service requester devices 170 with estimated time to arrival (ETA) data of proximate service providers 184 for each respective service. In one implementation, the service requester application 175 can enable the service requester 174 to scroll through each service type. In response to a soft selection of a particular service type, the network computer system 100 can provide ETA data on a user interface of the service requester application 175 that indicates an ETA of the closest service provider 184 for the service type and/or the locations of all proximate available service providers 184 for that service type. As the service requester 174 scrolls through each service type, the user interface can update to show visual representations of the service providers 184 for that service type on a map centered on the service requester 174 or a chosen service start location 173. The service requester 174 can interact with the user interface of the service requester application 175 to select a particular service type and transmit a service request 171.
In some examples, the service request 171 can include a service start location 173 within a given region (e.g., a metropolitan area managed by one or more datacenters corresponding to the network computer system 100) where a matched service provider is to rendezvous with the service requester 174. The service requester 174 can input the service start location 173 by setting a location pin on a user interface of the service requester application 175, or the service start location 173 can be determined by a current location of the service requester 174 (e.g., utilizing location-based resources of the service requester device 170). Additionally, the service requester 174 can input a service destination 172 during or after submitting the service request 171. In an example using transport services, the service requester 174 is a prospective passenger that wants to be picked up at the service start location 173 and dropped off at the service destination 172.
The network computer system 100 can include a mapping engine 135, or can utilize a third-party mapping service, to generate map data 137 and or traffic data in the environment surrounding the service start location 173. The mapping engine 135 can retrieve service provider locations 118 from the provider data store 190 and input them onto the map data 137. The selection engine 130 can utilize the provider locations 118 in order to select an optimal service provider 189 to fulfill the service request 171. As provided herein, the optimal service provider 189 can be a provider that is closest to the service requester 174 with respect to distance or time, or can be a proximate provider that is optimal for other reasons, such as the provider's experience, the amount of time the provider has been on the clock, the provider's current earnings, and the like.
In some aspects, the selection engine 130 can implement filters, including destination filter 138 and deadline filter 139, to ensure that service providers 184 are not chosen to receive service invitations 132 that would take them too far away from a desired destination 114 such that they could not arrive there prior to a deadline 116. Using the service provider application 185, service providers 184 can input a deadline 116 specifying what time they would like to stop providing service and a destination 114 specifying where they would like to be at that time. The service provider device 180 can send provider data corresponding to the desired destination 114 and deadline 116 to the provider management interface 115. For example, a driver providing transport services could select that he or she wants to be home at 7 p.m. In this example, the destination is the provider's home address and the deadline is 7 p.m. In one alternative implementation, the provider management interface 115 can programmatically determine the destination 114 and deadline 116 for use cases such as hourly rentals.
The provider management interface 115 can process the destination 114 and deadline 116 request and update a mode assigned to the service provider 184 to reflect the new settings. In some aspects, the provider management interface 115 can verify the destination 114 and any constraints on the minimum and maximum acceptable deadlines 116 to confirm the validity of the request. The provider management interface 115 can also determine whether the service provider 184 meets any necessary conditions to activate the deadline filter mode. For example, features of the deadline filter mode, such as the ability to specify a destination, may be limited in frequency of use. Once verified, the provider management interface 115 can place the service provider 184 in the deadline filter mode. In this mode, the selection engine 130 attempts to ensure that the service provider 184 does not receive service invitations 132 that would take the provider too far away from the destination 114 such that he or she would be unable to reach the desired destination 114 by the deadline 116. The provider management interface can also save the provider data in the provider data store 190 and retain these data even when the service provider 184 goes offline for breaks or other reasons.
In order to ensure that the service provider 184 can reach the desired destination 114 by the deadline 116, the network computer system 100 tracks the current location of the service provider 184, and the selection engine 130 estimates how long it should take the service provider 184 to reach the destination 114 while providing services to requesting users along the way. At periodic intervals while the service provider 184 is in deadline filter mode, such as every time the current location of the service provider 184 changes or once per minute, the selection engine 130 adds the estimate to the current time and compares that to the deadline 116 to determine whether the deadline threshold has been reached.
The estimate of how long it should take the service provider 184 to reach the destination 114 includes estimates for the time it would take to get to the destination 114 if the service provider 184 went there directly from the current location plus any time spent providing services to requesting users along the way. In one aspect, the selection engine 130 can implement a destination filter mode that offers service providers 184 only the service requests 171 that the provider can fulfill along the way to the specified destination 114. In an example where the service provider 184 is a driver offering transport services, the time spent providing services can account for expected delays that arise through taking a detour to pick riders up and drop them off as well as expected wait times for riders to get in and out of the car. This time can be expressed as the expected_time_to_arrival_with_destination_filter. One example estimate for that time is:
direct_time_to_destination_from_current_location*1.5+20 minutes
The direct_time_to_destination_from_current_location is estimated from mapping resources, such as the mapping engine 135, and the constants are configurable. The multiplier accounts for the fact that a longer distance tends to yield more intermittent service requests 171. The offset ensures enough buffer time when the destination 114 is nearby. In other aspects, historical data of trip times 195 from a historical data store 194 that are collected from service providers 184 in the destination filter mode are used to estimate the expected_time_to_arrival_with_destination_filter.
As soon as the calculated duration is equal to or greater than the time left until the deadline 116 the provider set, the provider management interface 115 informs the service provider 184 that it is time to head to the destination 114 through a mode change request 117 prompt displayed on the service provider device 180. If the service provider 184 is currently providing service to a user when the provider management interface 115 determines that it is time to head towards the destination 114, the service provider application 185 can wait until the service is completed and then inform the service provider 184 that he or she should head to the destination 114.
In response to the prompt to head to the destination 114, the service provider 184 can choose to enter destination filter mode, set a new deadline 116, or remove the deadline 116 entirely. The provider management interface 115 can then process the service provider 184 response to the prompt. If the service provider 184 chooses to enter destination filter mode (e.g., by providing input), the provider management interface 115 sets the provider mode and expects the provider to travel towards the destination 114. From then on, the selection engine 130 offers the service provider 184 only service invitations 132 that are on the route from the current location to the destination 114. Therefore, in destination filter mode, the invites offered to the service provider 184 should not take the service provider 184 too far away from the route such that he or she cannot make it to the destination 114 prior to the deadline 116. In some aspects, the service provider 184 can configure destination filter mode settings so that service invitations 132 can cause the deadline 116 to be exceeded by a fudge factor (e.g., 5 minutes). Additionally, in some examples, while in destination filter mode, the service provider 184 can receive preferential treatment (i.e., boosting) from the network computer system 100 and is considered higher priority than providers in normal mode for service invitations 132 that are along the route.
Prior to the deadline threshold being reached, the selection engine 130 offers the service provider 184 service invitations 132 without any restrictions on direction. However, the offered service invitations 132 are constrained by a deadline filter 139 that checks whether the service provider 184 has time to fulfill the service invitation 132 and still reach the destination 114 while providing services to requesting users along the way. Therefore, when the requester interface 125 receives a service request 171 from a user, the selection engine 130 estimates the time required for the service provider 184 to travel from the current location to the service start location, the service start location to the service destination, and the service destination to the desired destination 114.
In order to determine whether a received service request 171 passes the deadline filter 139, the selection engine 130 can calculate an expected time for the service provider 184 to complete the service request 171. In one example, the expected time at completion is the current time plus an estimate for the time to travel from the current location to the service start location and then from the service start location to the service destination, taking into account factors such as traffic conditions and time required at each location to perform aspects of the service. The deadline filter 139 can additionally estimate how long it should take the service provider 184 to travel from the service destination to the desired destination 114 while still accepting and fulfilling service requests 171 along the way to the desired destination 114, expressed as the expected_time_to_arrival_with_destination_filter. One example estimate for that time is:
direct_time_to_destination_from_service_destination*1.5+20 minutes
As with the deadline threshold, the deadline filter calculation can estimate direct_time_to_destination_from_service_destination from mapping resources, such as the mapping engine 135 and trip times 195 from a historical data store 194. In some implementations, the constants can be configured to more accurately estimate times if data show that the default constants are suboptimal. The multiplier accounts for the fact that a longer distance tends to yield more intermittent service requests 171. The offset ensures enough buffer time when the destination 114 is nearby. In other aspects, historical data collected from service providers 184 in the destination filter mode are used to estimate the expected_time_to_arrival_with_destination_filter. As a result, the deadline filter 139 more aggressively filters out service requests 171 as the deadline 116 approaches and/or the service provider 184 travels further from the desired destination 114.
The deadline filter 139 then adds the expected time at completion and the expected_time_to_arrival_with_destination_filter and compares the result to the deadline 116. If the result is on or before the deadline 116, the request passes the destination filter and the service provider 184 is a possible candidate for fulfilling the service request 171. If the result is after the deadline 116, the network computer system 100 filters out the service provider 184 from a candidate set of providers and instead chooses a different provider from the candidate set to fulfill the service request 171. In alternative implementations, the selection engine 130 can instead choose an optimal service provider 189 from the candidate set of providers prior to checking whether the request passes any filters. In this case, if the chosen optimal service provider 189 is in deadline filter mode, the selection engine 130 then checks whether the request passes the deadline filter 139, and if not, chooses the next available service provider 184.
Once the optimal service provider 189 is selected, the selection engine 130 can generate a service invitation 132 to fulfill the service request 171 and transmit the service invitation 132 to the optimal service provider's device via the service provider application 185. In addition to the service invitation 132, the network computer system 100 can transmit requester information 147, such as a name and photograph of the service requester 174, from a requester data store 192. Upon receiving the service invitation 132, the optimal service provider 189 can either accept or reject the invitation 132. Rejection of the invitation 132 can cause the selection engine 130 to determine another optimal service provider 189 from the candidate set of service providers 184 to fulfill the service request 171. However, if the optimal service provider 189 accepts (e.g., via an acceptance input), then the acceptance input is transmitted back to the selection engine 130, which generates and transmits a confirmation of the optimal service provider 189 to the service requester 174 via the service requester application 175 on the service requester device 170.
In some aspects, the provider management interface 115 can continue monitoring the deadline threshold while the service provider 184 is fulfilling a service request 171. If the service provider 184 is currently providing service to a user when the provider management interface 115 determines that it is time to head towards the destination 114, the service provider application 185 can wait until the service is completed and then inform the service provider 184 that he or she should head to the destination 114. Since the request for the current service being performed passed the deadline filter 139, this can happen only in situations where traffic conditions on the route worsen significantly or other aspects of the service request 171 take significantly longer than estimated.
Prior to reaching the destination 114, the destination filter 138 on the selection engine 130 filters out service requests 171 so that the provider is only offered service invitations 132 that are along the route from the provider's current location to the destination 114. Therefore, when the network computer system 100 receives a service request 171 from a user, the network computer system 100 checks the service start location and service destination and determines whether paths from the provider's current location to the service start location and service destination are near or along the route from the current location to the desired destination 114. If they are not, the selection engine 130 filters out the service provider 184.
According to examples provided herein, the network computer system 100 can include a content engine 120 that manages the manner in which content is displayed on the service requester devices 170 and/or the service provider devices 180. Regarding the service requester devices 170, the content engine 120 can provide content updates based on user inputs 179 on a user interface generated by the service provider application 185. For example, a user selection on a content feature of the service provider application 185 can cause the content engine 120 to generate a new screen on the service provider application 185 or cause a current screen to pivot between certain displayed features. When inputting a particular destination 114, the service provider 184 may utilize a location pin and map content and set the location pin on a particular location in the map content to input the destination 114. Additionally, the content engine 120 can adjust the look and feel of a deadline input box to overlay the map content, which can enable the service provider 184 to select a time for the deadline 116.
In various implementations, the requester data store 192 can store service requester profiles specific to the individual users of the on-demand service. Such information can include user preferences of service types, routine routes, service start locations 173 and service destinations 172, work addresses, home addresses, addresses of frequently visited locations (e.g., a gym, grocery store, mall, local airport, sports arena or stadium, concert venue, local parks, and the like). In addition, the provider data store 190 can store service provider profiles indicating information specific to individual providers, such as vehicle type, service qualifications, earnings data, and provider experience. Database 140 can also store historical data 141 regarding service requester and service provider liquidity for a given area, that is, how often a new service provider 184 is expected to make themselves available for on-demand services in the area.
FIG. 2 is a timeline illustrating examples of events that can occur while providing services in a deadline filter mode, in accordance with examples described herein. At the start of the timeline, the network computer system 100 can receive a destination and a deadline from a service provider that specify what time the service provider would like to stop providing service and where that service provider would like to be at that time. For example, a driver could select that he or she wants to be home at 7 p.m. In this example, the destination is the provider's home address and the deadline is 7 p.m.
At starting time 201, a provider management interface 115 of the network computer system 100 can process the destination and deadline request and update the mode assigned to the service provider to reflect the received destination and deadline. In some aspects, the provider management interface 115 can verify the destination and any constraints on the minimum and maximum acceptable deadlines to confirm the validity of the request. The provider management interface 115 can also determine whether the service provider meets any necessary conditions to activate the deadline filter mode. For example, features of the deadline filter mode, such as the ability to specify a destination, may be limited in frequency of use. Once verified, the provider management interface 115 can place the service provider in the deadline filter mode. In this mode, the network computer system 100 attempts to ensure that the service provider does not receive service invitations that would take the provider too far away from the destination such that he or she would be unable to reach the desired destination by the deadline.
Prior to the deadline threshold being reached, the network computer system 100 offers the service provider service invitations without any restrictions on direction. However, the offered service invitations are constrained by a deadline filter that checks whether the service provider has time to fulfill the service invitation and still reach the destination while providing services to requesting users along the way (i.e., traveling to the destination in destination filter mode). For example, when the network computer system 100 receives a service request from a user, the network computer system 100 estimates the time required for the service provider to travel from the current location to the service start location, the service start location to the service destination, and the service destination to the desired destination. In an example using transport services, the user is a prospective passenger that wants to be picked up at the service start location and dropped off at the service destination.
In order to determine whether a received service request passes the deadline filter, the network computer system 100 can calculate an expected time for the service provider to complete the service request. In one example, the expected time at completion is the current time plus an estimate for the time to travel from the current location to the service start location and then from the service start location to the service destination, taking into account factors such as traffic conditions and time required at each location to perform aspects of the service. The deadline filter can additionally estimate how long it should take the service provider to travel from the service destination to the desired destination while still accepting and fulfilling service requests along the way to the desired destination, expressed as the expected_time_to_arrival_with_destination_filter. One example estimate for that time is:
direct_time_to_destination_from_service_destination*1.5+20 minutes
The deadline filter calculation can estimate direct_time_to_destination_from_service_destination from mapping resources, such as the mapping engine 135, and the constants are configurable. The multiplier accounts for the fact that a longer distance tends to yield more intermittent service requests. The offset ensures enough buffer time when the destination is nearby. In other aspects, historical data collected from service providers in the destination filter mode are used to estimate the expected_time_to_arrival_with_destination_filter.
The deadline filter then adds the expected time at the service destination and the expected_time_to_arrival_with_destination_filter and compares the result to the deadline. If the result is on or before the deadline, the request passes the destination filter and the service provider is a possible candidate for fulfilling the service request. If the result is after the deadline, the network computer system 100 filters out the service provider from a candidate set of providers and instead chooses a different provider from the candidate set to fulfill the service request. In alternative implementations, the network computer system 100 can instead choose an optimal service provider from the candidate set of providers prior to checking whether the request passes any filters. In this case, if the chosen optimal service provider is in deadline filter mode, the network computer system 100 then checks whether the request passes the deadline filter, and if not, chooses the next available service provider.
In order to ensure that the service provider can reach the desired destination by the deadline, the network computer system 100 tracks the current location of the service provider and estimates how long it should take the service provider to reach the destination while providing services to requesting users along the way (i.e., traveling to the destination in destination filter mode). At periodic intervals while the service provider is in deadline filter mode, such as every time the current location of the service provider changes or once per minute, the network computer system 100 adds the estimate to the current time and compares that to the deadline to determine whether the deadline threshold has been reached.
Once the deadline threshold is reached at inflection point 210, the network computer system 100 informs the service provider that it is time to head to the destination through a prompt displayed on the service provider device 180. If the service provider is currently providing service to a user when the network computer system 100 determines that it is time to head towards the destination, the service provider application 185 can wait until the service is completed and then inform the service provider that he or she should head to the destination.
In response to the prompt to head to the destination, the service provider can choose to enter destination filter mode, set a new deadline, or remove the deadline entirely (e.g., by providing input). The network computer system 100 can then process the service provider response to the prompt. If the service provider chooses to enter destination filter mode, the network computer system 100 sets the service provider mode and expects the provider to travel towards the destination. From then on, the network computer system 100 offers the service provider only service invitations that are along the route from the current location to the destination. Therefore, in destination filter mode, the invites offered to the service provider should not take the service provider too far away from the route such that he or she cannot make it to the destination prior to the deadline 216. In some aspects, the service provider can configure destination filter mode settings so that service invitations can cause the deadline to be exceeded by a fudge factor (e.g., 5 minutes). Additionally, while in destination filter mode, the service provider can receive preferential treatment (i.e., boosting) from the network computer system 100 and is considered higher priority than providers in normal mode for service invitations that are along the route.
When the service provider is available to receive a new service invitation (either through rejecting an invitation or completing service), the network computer system 100 or the service provider device 180 itself can monitor the service provider location to determine if the provider has arrived at the desired destination. Once the provider has arrived at the desired destination, the service provider application 185 can place the service provider in an offline mode wherein the provider is not available to receive service invitations.
In one example use case, a service provider named Joe leaves his house at 10 a.m. to provide transport services to local passengers. As he leaves the house in the morning, he sets his desired destination to his home address in Palo Alto, Calif. and specifies an arrival deadline of 6 p.m. His provider status is updated to the online state (e.g., available to provide service) and he soon receives and accepts a service invitation 132 to transport a passenger to San Jose. While he is providing service, the provider status is in the busy or “on-trip” state.
At 11 a.m. in San Jose, Joe receives and accepts a service invitation with a drop off location in San Francisco. At 1 p.m. in San Francisco, Joe goes offline using the service provider application 185 and takes a one-hour lunch break. While on break, the network computer system 100 can retain Joe's destination and deadline settings so that they persist when he comes back online. At 2 p.m. in San Francisco, Joe comes online and receives a service invitation 132 sending him to Oakland, where he receives multiple local service invitations 132 and drives around the Oakland area.
At 4 p.m. in Oakland, a user near Joe requests a ride to San Jose. However, the network computer system 100 estimates that it would take Joe 1.5 hours to pick up the user and drive to San Jose in current traffic conditions. The network computer system 100 further estimates that Joe could not get from San Jose at 5:30 p.m. to his home in Palo Alto by the 6 p.m. deadline. Therefore, the network computer system 100 filters out Joe and chooses a different driver to take the user to San Jose. Instead, Joe receives a service invitation 132 back to San Francisco that meets the deadline threshold.
At 4:30 p.m. in San Francisco, another user near Joe requests a ride to South San Francisco. The network computer system 100 estimates that Joe would arrive by 5:15 p.m., and that the direct time from South San Francisco to Palo Alto is 40 minutes. Therefore, Joe's expected estimated time to arrival (ETA) would be 5:55 p.m. However, using the example destination filtering formula, the network computer system 100 estimates that it would take 80 minutes (1.5*40 minutes+20 minutes) for Joe to drive from South San Francisco to Palo Alto while fulfilling service requests along the route in destination filter mode. So despite being able to fulfill the service request to South San Francisco and reach his desired destination by the deadline, Joe would not have time to fulfill further service requests while driving from South San Francisco to Palo Alto. As a result, the network computer system 100 filters out Joe and chooses a different driver to take the user to South San Francisco.
Instead, Joe receives a request from a user who wants a ride to Menlo Park with an ETA at 5:25 p.m. The network computer system 100 estimates the time from Menlo Park to Joe's home as 6 minutes. Therefore, Joe's expected_time_to_arrival_with_destination_filter is 1.5*6 minutes+20 minutes, which is 29 minutes. As it is currently 5:25 p.m., Joe's expected arrival time at home while in destination filter mode is 5:54 p.m. This is before Joe's 6 p.m. deadline so he receives the service invitation, which he accepts.
Joe drops off the rider in Menlo Park at 5:25 p.m. The network computer system 100 determines that Joe should begin heading to his destination in order to reach it before the 6:00 p.m. deadline. A prompt appears on his device telling Joe that it is time to head home. After Joe confirms, the network computer system 100 switches Joe into destination filter mode to ensure he only receives service invitations that are near or along the route from his current location in Menlo Park to his desired destination in Palo Alto. That is, the network computer system 100 filters out Joe from a candidate pool of drivers for any invitations for services that are not in a similar direction as his route of travel. In some aspects, the network computer system 100 can determine that a request for service is along a route of travel when the request has a service start location and/or service destination that are within a threshold distance from a point along the route of travel.
At 5:28 p.m. in Menlo Park, Joe receives one final service invitation to pick up a nearby user and drop her off at an address roughly on the way and 8 minutes from Joe's house in Palo Alto. He receives the invitation because the network computer system 100 estimates he can make it to the drop off location by 5:50 p.m. At 5:50 p.m., Joe drops off the rider and drives home, where he arrives and goes offline at 5:58 p.m.
Methodology
FIGS. 3 through 5 are flow charts describing example methods used in filtering service requests by destination and deadline. While operations of the methods are described below as being performed by specific components of the network computer system 100, it will be appreciated that these operations need not necessarily be performed by the specific components identified, and could be performed by a variety of components and modules, potentially distributed over a number of machines. Accordingly, references may be made to elements of the network computer system 100 for the purpose of illustrating suitable components or elements for performing a step or sub step being described. Alternatively, at least certain ones of the variety of components and modules described in the network computer system 100 can be arranged within a single hardware, software, or firmware component. It will also be appreciated that some of the steps of these methods may be performed in parallel or in a different order than illustrated.
FIG. 3 is a flow chart describing an example method of filtering service requests by destination and deadline, according to examples described herein. The network computer system 100 can receive a destination and a deadline from a service provider that specify what time the service provider would like to stop providing service and where that service provider would like to be at that time (310). For example, a driver could select that he or she wants to be home at 7 p.m. In this example, the destination is the provider's home address and the deadline is 7 p.m.
A provider management interface 115 of the network computer system 100 can process the destination and deadline request and update the mode assigned to the service provider to reflect the received destination and deadline. In some aspects, the provider management interface 115 can verify the destination and any constraints on the minimum and maximum acceptable deadlines to confirm the validity of the request. The provider management interface 115 can also determine whether the service provider meets any necessary conditions to activate the deadline filter mode. For example, features of the deadline filter mode, such as the ability to specify a destination, may be limited in frequency of use. Once verified, the provider management interface 115 can place the service provider in the deadline filter mode (312). In this mode, the network computer system 100 attempts to ensure that the service provider does not receive service invitations that would take the provider too far away from the destination such that he or she would be unable to reach the desired destination by the deadline.
In order to ensure that the service provider can reach the desired destination by the deadline, the network computer system 100 tracks the current location of the service provider and estimates how long it should take the service provider to reach the destination while providing services to requesting users along the way. At periodic intervals while the service provider is in deadline filter mode, such as every time the current location of the service provider changes or once per minute, the network computer system 100 adds the estimate to the current time and compares that to the deadline to determine whether the deadline threshold has been reached (350).
The estimate of how long it should take the service provider to reach the destination includes estimates for the time it would take to get to the destination if the service provider went there directly from the current location plus any time spent providing services to requesting users along the way. In one aspect, the network computer system 100 can implement a destination filter mode that offers service providers only the service requests that the provider can fulfill along the way to the specified destination. In an example where the service provider is a driver offering transport services, the time spent providing services can account for expected delays that arise through taking a detour to pick riders up and drop them off as well as expected wait times for riders to get in and out of the car. This time can be expressed as the expected_time_to_arrival_with_destination_filter. One example estimate for that time is:
direct_time_to_destination_from_current_location*1.5+20 minutes
The direct_time_to_destination_from_current_location is estimated from mapping resources, such as the mapping engine 135, and the constants are configurable. The multiplier accounts for the fact that a longer distance tends to yield more intermittent service requests. The offset ensures enough buffer time when the destination is nearby. In other aspects, historical data collected from service providers in the destination filter mode are used to estimate the expected_time_to_arrival_with_destination_filter.
As soon as the calculated duration is equal to or greater than the time left until the deadline the service provider set, the network computer system 100 informs the service provider that it is time to head to the destination through a prompt displayed on the service provider device 180 (360). If the service provider is currently providing service to a user when the network computer system 100 determines that it is time to head towards the destination, the service provider application 185 can wait until the service is completed and then inform the service provider that he or she should head to the destination.
In response to the prompt to head to the destination, the service provider can choose to enter destination filter mode, set a new deadline, or remove the deadline entirely (e.g., by providing input). The network computer system 100 can then process the service provider response to the prompt (361). If the service provider chooses to enter destination filter mode, the network computer system 100 sets the service provider mode and expects the provider to travel towards the destination. From then on, the network computer system 100 offers the service provider only service invitations that are on the route from the current location to the destination. Therefore, in destination filter mode, the invites offered to the service provider should not take the service provider too far away from the route such that he or she cannot make it to the destination prior to the deadline. In some aspects, the service provider can configure destination filter mode settings so that service invitations can cause the deadline to be exceeded by a fudge factor (e.g., 5 minutes). Additionally, while in destination filter mode, the service provider can receive preferential treatment (i.e., boosting) from the network computer system 100 and is considered higher priority than providers in normal mode for service invitations that are along the route.
Prior to the deadline threshold being reached, the network computer system 100 offers the service provider service invitations without any restrictions on direction. However, the offered service invitations are constrained by a deadline filter that checks whether the service provider has time to fulfill the service invitation and still reach the destination while providing services to requesting users along the way. Therefore, when the network computer system 100 receives a service request from a user (320), the network computer system 100 estimates the time required for the service provider to travel from the current location to the service start location (322), the service start location to the service destination (324), and the service destination to the desired destination. In an example, the user is a prospective passenger that wants to be picked up at the service start location and dropped off at the service destination.
In order to determine whether a received service request passes the deadline filter, the network computer system 100 can calculate an expected time for the service provider to complete the service request. In one example, the expected time at completion is the current time plus an estimate for the time to travel from the current location to the service start location and then from the service start location to the service destination, taking into account factors such as traffic conditions and time required at each location to perform aspects of the service. The deadline filter can additionally estimate how long it should take the service provider to travel from the service destination to the desired destination while still accepting and fulfilling service requests along the way to the desired destination, expressed as the expected_time_to_arrival_with_destination_filter. One example estimate for that time is:
direct_time_to_destination_from_service_destination*1.5+20 minutes
As with the deadline threshold, the deadline filter calculation can estimate direct_time_to_destination_from_service_destination from mapping resources, such as the mapping engine 135, and the constants are configurable. The multiplier accounts for the fact that a longer distance tends to yield more intermittent service requests. The offset ensures enough buffer time when the destination is nearby. In other aspects, historical data collected from service providers in the destination filter mode are used to estimate the expected_time_to_arrival_with_destination_filter.
The deadline filter then adds the expected time at the service destination and the expected_time_to_arrival_with_destination_filter and compares the result to the deadline. If the result is on or before the deadline, the request passes the destination filter and the service provider is a possible candidate for fulfilling the service request (330). If the result is after the deadline, the network computer system 100 filters out the service provider from a candidate set of providers and instead chooses a different provider from the candidate set to fulfill the service request (332). In alternative implementations, the network computer system 100 can instead choose an optimal service provider from the candidate set of providers prior to checking whether the request passes any filters. In this case, if the chosen optimal service provider is in deadline filter mode, the network computer system 100 then checks whether the request passes the deadline filter, and if not, chooses the next available service provider. In another example, when the network computer system receives a service request, the network computer system can identify a set of candidate providers based on their locations and the start location of the service request. If the set of candidate providers includes a service provider in the deadline filter mode, the network computer system can determine, based on the computations described, whether that service provider should be included in the set of candidate providers. If that service provider is included in the set, the network computer system can perform a default selection process to select a service provider from this set or select that service provider (e.g., given a boost), depending on implementation.
If the service provider is chosen to fulfill the service request, the network computer system 100 sends a service invitation to the provider, who may accept or reject it. Whether the service provider accepts and performs the service or rejects the invite, the network computer system 100 processes the service provider selection and any results (334). When the service provider is available to receive a new service invitation, the network computer system 100 can resume monitoring whether the deadline threshold has been reached (350).
In some aspects, the network computer system 100 can continue monitoring the deadline threshold while the service provider is fulfilling a service request. If the service provider is currently providing service to a user when the network computer system 100 determines that it is time to head towards the destination, the service provider application 185 can wait until the service is completed and then inform the service provider that he or she should head to the destination. Since the request for the current service being performed passed the deadline filter, this can happen only in situations where traffic conditions on the route worsen significantly or other aspects of the service request take significantly longer than estimated.
FIG. 4 is a flow chart describing an example method of persisting destination and deadline settings when a service provider goes offline, according to examples described herein. The network computer system 100 can receive a destination and a deadline from a service provider that specify what time the service provider would like to stop providing service and where that service provider would like to be at that time (410). For example, a driver could select that he or she wants to be at a restaurant at 7 p.m. In this example, the destination is the restaurant specified by the service provider and the deadline is 7 p.m.
A provider management interface 115 of the network computer system 100 can process the destination and deadline request and update the mode assigned to the service provider to reflect the received destination and deadline. In some aspects, the provider management interface 115 can verify the destination and any constraints on the minimum and maximum acceptable deadlines to confirm the validity of the request. The provider management interface 115 can also determine whether the service provider meets any necessary conditions to activate the deadline filter mode. For example, features of the deadline filter mode, such as the ability to specify a destination, may be limited in frequency of use. Once verified, the provider management interface 115 can place the service provider in the deadline filter mode (412). In this mode, the network computer system 100 attempts to ensure that the service provider does not receive service invitations that would take the provider too far away from the destination such that he or she would be unable to reach the desired destination by the deadline.
In some aspects, a service provider can switch to an offline mode in which he or she is not available for receiving service invitations (420). For example, the service provider may go offline at the end of a planned shift or the end of the day. In other examples, the service provider takes a short break with the intention to resume accepting service invitations after the break. When a service provider in deadline filter mode goes offline, the network computer system 100 can retain the destination and deadline settings so that the service provider can resume operating in deadline filter mode when he or she comes back online.
In one implementation, the service provider application 185 or another background process on the service provider device 180 can continually monitor whether the deadline passes or expires while the service provider is offline (430). If the deadline passes, the service provider application 185 can remove the destination and deadline settings and update the network computer system 100 accordingly. In an alternate implementation, the network computer system 100 can continue to monitor the deadline even when the service provider is offline. If the deadline passes, the network computer system 100 can remove the destination and deadline settings from the provider data 190 (435).
Once the service provider chooses to resume receiving service requests through the service provider application 185, the network computer system 100 receives an indication that the provider is back online (440). In order to ensure that the service provider can reach the desired destination by the deadline, the network computer system 100 checks the current location of the service provider and estimates how long it should take the service provider to reach the destination while providing services to requesting users along the way. The network computer system 100 adds the estimate to the current time and compares that to the deadline to determine whether the deadline threshold has been reached (450).
The estimate of how long it should take the service provider to reach the destination includes estimates for the time it would take to get to the destination if the service provider went there directly from the current location plus any time spent providing services to requesting users along the way. In one aspect, the network computer system 100 can implement a destination filter mode that offers service providers only the service requests that the provider can fulfill along the way to the specified destination. In an example where the service provider is a driver, the time spent providing services can account for expected delays that arise through taking a detour to pick riders up and drop them off as well as expected wait times for riders to get in and out of the car. This time can be expressed as the expected_time_to_arrival_with_destination_filter. One example estimate for that time is:
direct_time_to_destination_from_current_location*1.5+20 minutes
The direct_time_to_destination_from_current_location is estimated from mapping resources, such as the mapping engine 135, and the constants are configurable. The multiplier accounts for the fact that a longer distance tends to yield more intermittent service requests. The offset ensures enough buffer time when the destination is nearby. In other aspects, historical data collected from service providers in the destination filter mode are used to estimate the expected_time_to_arrival_with_destination_filter.
As soon as the calculated duration is equal to or greater than the time left until the deadline the service provider set, the network computer system 100 informs the service provider that it is time to head to the destination through a prompt displayed on the service provider device 180 (460). In some implementations, the network computer system 100 can continue to monitor the current location of the service provider and determine whether the deadline threshold has been reached even while the provider is offline. If so, the network computer system 100 can prompt the offline service provider to begin heading towards the destination and/or come online and change to destination filter mode in order to reach the destination by the deadline.
In one implementation, the prompt generated in response to the deadline threshold being reached is a modal window displayed through the service provider application 185. This modal window can give the service provider three options.
In a first option, the service provider can choose to enter destination filter mode (462). The network computer system 100 places the provider in destination filter mode and begins filtering service invitations to only those that are on the route between the service provider's current location and the set destination (470). Upon choosing this option, the service provider application 185 can also display information related to the destination filter mode such as special conditions that may apply in that mode.
In a second option, the service provider can choose to delay entering destination filter mode and remain in deadline filter mode for longer by setting a new, later deadline (464).
In a third option, the service provider can choose to cancel the deadline and remove the destination (466). With this option, the provider is no longer in deadline filter mode and does not enter destination filter mode. Instead, the network computer system 100 places the service provider in regular mode indicating a normal online status (475).
FIG. 5 is a flow chart describing an example method of filtering service requests by destination, according to examples described herein. In one aspect, the network computer system 100 can receive a destination from a service provider that specifies where the provider is traveling (510). In another aspect, the network computer system 100 has a stored destination for a service provider who is in deadline filter mode. Once the deadline threshold for the deadline filter mode is reached, the network computer system 100 can transition the service provider into destination filter mode. For example, a driver can set a home address as the destination when the driver is headed home.
A provider management interface 115 of the network computer system 100 can process the destination request and update the mode assigned to the service provider to reflect the destination. In some aspects, the provider management interface 115 can verify the destination and any constraints on the destination to confirm the validity of the request. The provider management interface 115 can also determine whether the service provider meets any necessary conditions to activate the destination filter mode. For example, features of the destination filter mode may be limited in frequency of use. Once verified, the provider management interface 115 can place the service provider in the destination filter mode (512).
Prior to reaching the destination, the network computer system 100 filters out service requests so that the provider is only offered service invitations that are along the route from the provider's current location to the destination. Therefore, when the network computer system 100 receives a service request from a user (520), the network computer system 100 checks the service start location (522) and service destination (524) and determines whether paths from the provider's current location to the service start location and service destination are near or along the route from the current location to the desired destination (530). In one example, the user is a prospective passenger that wants to be picked up at the service start location and dropped off at the service destination. If the service start location and service destination are not near or along the provider's route from the current location to the desired destination (e.g., the service start location and/or service destination are not within a threshold distance from a point along the route of travel), the network computer system 100 filters out the service provider from a candidate pool of providers and instead chooses a different provider from the candidate pool to fulfill the service request (532). On the other hand, if the service start location and service destination are near or along the provider's route from the current location to the desired destination, the service provider is a viable candidate for fulfilling the service request, and the network computer system 100 can proceed to process service provider selection and results (534).
The network computer system 100 can utilize the current locations of the service providers in a region in order to choose an optimal service provider to fulfill the service request (535). As provided herein, the optimal service provider can be a service provider that is closest to the service requester with respect to distance or time, or can be a proximate service provider that is optimal for other reasons, such as the service provider's experience, the amount of time the service provider has been on the clock, the service provider's current earnings, and the like. In some implementations, the network computer system 100 can prioritize service providers in destination filter mode for service requests that are near or along the provider's route from the current location to the desired destination.
Once the optimal service provider is selected, the network computer system 100 can generate a service invitation to fulfill the service request and transmit the service invitation to the optimal service provider's device via the service provider application 185 (540). Upon receiving the service invitation, the optimal service provider can either accept or reject the invitation. Rejection of the invitation can cause the network computer system 100 to select a next available service provider from the candidate set of service providers to fulfill the service request (542). However, if the optimal service provider accepts (e.g., via an acceptance input on a user interface of the service provider application 185), then the acceptance input can be transmitted back to the network computer system 100, which can generate and transmit information identifying the optimal service provider to the service requester via the service requester application 175 on the service requester device 170 (544). The service provider then fulfills the service request at the service start location and/or service destination (545). In an example using transport services, the service provider picks up the service requester at the service start location and drops off the service requester at the service destination.
When the service provider is available to receive a new service invitation (either through rejecting an invitation or completing service), the network computer system 100 or the service provider device 180 itself can resume monitoring and checking the service provider location to determine if the provider has arrived at the desired destination (550). Once the provider has arrived at the desired destination, the service provider application 185 can place the service provider in an offline mode wherein the provider is not available to receive service invitations (560). Alternatively, the service provider application 185 can prompt the provider to choose whether to go offline or return to a regular service mode.
User Interface Examples
FIGS. 6A and 6B illustrate example user interfaces on a service provider device, according to examples described herein. In one example, execution of the service provider application 185 on the service provider device 180 can cause the device to generate an application interface on the device's touch-sensitive display.
In the example user interface illustrated in FIG. 6A, a service provider can enter deadline filtering mode by choosing a destination and a deadline that specify what time the service provider would like to stop providing service and where that service provider would like to be at that time (e.g., by providing input). For example, a driver providing transport services could select that he or she wants to be home at 7 p.m. In this example, the destination is the provider's home address and the deadline is 7 p.m. Once in deadline filtering mode, the network computer system 100 attempts to ensure that the service provider does not receive service invitations that would take the provider too far away from the destination such that he or she would be unable to reach the desired destination by the deadline.
In one implementation, when not currently providing service to a user, the service provider can select a menu icon on the service provider application 185 to request deadline filtering mode. In response, the service provider application 185 can display the interface shown in FIG. 6A to allow the provider to set a destination and a deadline. The service provider can choose the destination from saved locations or search for a new address to use as the destination. The nearest selectable deadline, or arrival time, that the service provider is allowed to select is the soonest time such that the network computer system 100 is confident that it can route the service provider from the current location to the destination in time while the service provider fulfills service requests along the way. In addition, the user interface can limit the latest selectable arrival time to a longest reasonable length of a shift (e.g., 12 hours). Once the service provider selects a destination and a deadline, the provider can press the DONE button to transmit the request to the network computer system 100.
In some aspects, the network computer system 100 can verify the destination and any constraints on the minimum and maximum acceptable deadlines to confirm the validity of the request. The network computer system 100 can also determine whether the service provider meets any necessary conditions to activate the deadline filter mode. For example, features of the deadline filter mode, such as the ability to specify a destination, may be limited in frequency of use. Once verified, the network computer system 100 can place the service provider in the deadline filter mode.
FIG. 6B illustrates an example modal window displayed when the deadline threshold has been reached. In order to ensure that the service provider can reach the desired destination by the deadline, the network computer system 100 tracks the current location of the service provider and estimates how long it should take the service provider to reach the selected destination while providing services to requesting users along the way. At periodic intervals while the service provider is in deadline filter mode, such as every time the current location of the service provider changes or once per minute, the network computer system 100 adds the estimate to the current time and compares that to the deadline to determine whether the deadline threshold has been reached
As soon as the deadline threshold is reached, the network computer system 100 informs the service provider that it is time to head to the destination through a prompt displayed on the service provider device 180 through the service provider application 185. If the service provider is currently providing service to a user when the network computer system 100 determines that it is time to head towards the destination, the service provider application 185 can wait until the service is completed and then inform the service provider that he or she should head to the destination.
When presented with the modal window shown in FIG. 6B, the service provider can choose to enter destination filter mode by selecting OK. From then on, the network computer system 100 offers the service provider only service invitations that are on the route from the current location to the destination. Therefore, in destination filter mode, the invites offered to the service provider should not take the service provider too far away from the route such that he or she cannot make it to the destination prior to the deadline. Alternatively, the service provider can select REMOVE to ignore the deadline and return to a normal online status mode. In a further alternative not illustrated, the service provider can choose a new deadline using an interface such as the one illustrated in FIG. 6A.
In some aspects, the user interface of the service provider application 185 can display an indication to the service provider that the provider is in deadline filter mode. This indication can also include the selected deadline. For example, the top portion of the user interface can display that the provider is online and that he or she has a “7:00 p.m. destination scheduled.” Furthermore, when the service provider is offline, the user interface can retain the deadline and continue to display the deadline in the illustrated status bar. In addition, a map displayed as part of the user interface can indicate the selected destination with an icon such as a star at the destination.
Service Provider Device
FIG. 7 is a block diagram illustrating an example service provider device executing a designated service provider application for an on-demand service, as described herein. In many implementations, the service provider device 780 can comprise a mobile computing device, such as a smartphone, tablet computer, laptop computer, VR or AR headset device, and the like. As such, the service provider device 780 can include typical telephony features such as a microphone 745, a camera 750, and a communication interface 710 to communicate with external entities using any number of wireless communication protocols. In certain aspects, the service provider device 780 can store a designated application (e.g., a service provider application 732) in a local memory 730. In many aspects, the service provider device 780 further stores information corresponding to a contacts list 734 and calendar appointments 736 in the local memory 730. In variations, the memory 730 can store additional applications executable by one or more processors 740 of the service provider device 780, enabling access and interaction with one or more host servers over one or more networks 760.
In response to a user input 718, the service provider application 732 can be executed by a processor 740, which can cause an application interface to be generated on a display screen 720 of the service provider device 780. The application interface can enable the service provider to, for example, check current price levels and availability for the on-demand arrangement service. In various implementations, the application interface can further enable the service provider to select from multiple ride service types, such as a carpooling service type, a regular ride-sharing service type, a professional ride service type, a van on-demand service type, a luxurious ride service type, and the like.
The provider can enter various states or modes, such as online mode, destination filter mode, and deadline filter mode via user inputs 718 provided on the application interface. For example, the provider can select which types of service he or she is available to provide as well as a desired destination 714 and deadline 716 to be at that destination. As provided herein, the service provider application 732 can further enable a communication link with a network computer system 700 over the network 760, such as the network computer system 100 as shown and described with respect to FIG. 1. Furthermore, as discussed herein, the service provider application 732 can display requester information 742 on the application interface that includes data regarding a service requester so that the provider can choose whether to accept or reject a service invitation received from the network computer system 700.
The processor 740 can transmit the provider status 713 (i.e., modes the provider is in) via a communications interface 710 to the backend network computer system 700 over a network 760. In various examples, the service provider device 780 can further include a GPS module 755, which can provide location data 762 indicating the current location of the provider to the network computer system 700 to, for example, select an optimal service provider or filter the provider based on destination 714 and deadline 716. In alternative aspects, hard-wired circuitry may be used in place of or in combination with software instructions to implement aspects described herein. Thus, aspects described are not limited to any specific combination of hardware circuitry and software.
Hardware Diagram
FIG. 8 is a block diagram that illustrates a computer system upon which examples described herein may be implemented. A computer system 800 can be implemented on, for example, a server or combination of servers. For example, the computer system 800 may be implemented as part of a network service for providing service services. In the context of FIG. 1, the network computer system 800 may be implemented using a computer system 800 such as described by FIG. 8. The network computer system 100 may also be implemented using a combination of multiple computer systems as described in connection with FIG. 8.
In one implementation, the computer system 800 includes processing resources 810, a main memory 820, a read-only memory (ROM) 830, a storage device 840, and a communication interface 850. The computer system 800 includes at least one processor 810 for processing information stored in the main memory 820, such as provided by a random access memory (RAM) or other dynamic storage device, for storing information and instructions which are executable by the processor 810. The main memory 820 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processor 810. The computer system 800 may also include the ROM 830 or other static storage device for storing static information and instructions for the processor 810. A storage device 840, such as a magnetic disk or optical disk, is provided for storing information and instructions.
The communication interface 850 enables the computer system 800 to communicate with one or more networks 880 (e.g., cellular network) through use of the network link (wireless or wired). Using the network link, the computer system 800 can communicate with one or more computing devices, one or more servers, and/or one or more self-driving vehicles. In accordance with examples, the computer system 800 receives service requests 882 from mobile computing devices of individual users. The executable instructions stored in the memory 830 can destination filtering instructions 824 and deadline filtering instructions 826, which the processor 810 executes to determine whether to filter a service provider based on destination and/or deadline. In doing so, the computer system can receive a provider status 884 for service providers operating throughout the given region, and the processor can select an optimal service provider from a set of available service providers and transmit a service invitation 852 to enable the service provider to accept or decline the service offer.
By way of example, the instructions and data stored in the memory 820 can be executed by the processor 810 to implement an example network computer system 100 of FIG. 1. In performing the operations, the processor 810 can receive service requests 882 and provider status 884 and submit service invitations 852 to facilitate fulfilling the service requests 882.
The processor 810 is configured with software and/or other logic to perform one or more processes, steps and other functions described with implementations, such as described by FIGS. 1 through 6, and elsewhere in the present application.
Examples described herein are related to the use of the computer system 800 for implementing the techniques described herein. According to one example, those techniques are performed by the computer system 800 in response to the processor 810 executing one or more sequences of one or more instructions contained in the main memory 820. Such instructions may be read into the main memory 820 from another machine-readable medium, such as the storage device 840. Execution of the sequences of instructions contained in the main memory 820 causes the processor 810 to perform the process steps described herein. In alternative implementations, hard-wired circuitry may be used in place of or in combination with software instructions to implement examples described herein. Thus, the examples described are not limited to any specific combination of hardware circuitry and software.
It is contemplated for examples described herein to extend to individual elements and concepts described herein, independently of other concepts, ideas or systems, as well as for examples to include combinations of elements recited anywhere in this application. Although examples are described in detail herein with reference to the accompanying drawings, it is to be understood that the concepts are not limited to those precise examples. As such, many modifications and variations will be apparent to practitioners skilled in this art. Accordingly, it is intended that the scope of the concepts be defined by the following claims and their equivalents. Furthermore, it is contemplated that a particular feature described either individually or as part of an example can be combined with other individually described features, or parts of other examples, even if the other features and examples make no mentioned of the particular feature. Thus, the absence of describing combinations should not preclude claiming rights to such combinations.

## Claims

1. A method for filtering requests for a network service, the method being performed by one or more processors of a computing system and comprising:
receiving, over a network, provider data corresponding to a specified destination and a deadline from a service provider;
tracking a current location of the service provider through a device equipped with one or more location-based resources;
receiving, over the network, request data corresponding to a plurality of requests for service from a plurality of user devices;
querying one or more mapping resources to determine travel time on a route from the current location to the specified destination for the service provider in a first mode, wherein the travel time is based at least on a distance between the current location and the specified destination, traffic conditions, and time to perform aspects of the network service; and
upon determining that the travel time added to a current time is within a programmed threshold of the deadline, transmitting, to the device, a notification to the service provider to change from the first mode to a second mode in which the computing system:
receives the current location of the service provider through the device equipped with the one or more location-based resources; and
based on the current location of the service provider, filters out requests for service which have a service start location and a service destination that are not within a threshold distance from a point on the route between the current location and the specified destination.

2. The method of claim 1, further comprising:
in response to receiving the provider data corresponding to the specified destination and the deadline, categorizing the service provider in the first mode in which the network service filters out, for that service provider, any of the plurality of requests for service in which the service provider is determined unable to provide service and travel to the specified destination before the deadline,
wherein the request data includes the service start location and the service destination for each of the requests for service, and wherein a request is identified as being assignable to the service provider when the service provider is determined to be able to travel along a route from (1) the current location to the service start location of that request, (2) the service start location of that request to the service destination of that request, and (3) the service destination of that request to the specified destination, before the deadline.

3. The method of claim 1, further comprising:
categorizing the service provider from the first mode to an offline mode when the service provider reaches the specified destination.

4. The method of claim 1, wherein the one or more location-based resources includes a global positioning system (GPS) receiver.

5. A network computer system comprising:
one or more processors; and
one or more memory resources storing instructions that, when executed by the one or more processors, cause the one or more processors to:
receive, over a network, provider data corresponding to a specified destination and a deadline from a service provider;
track a current location of the service provider through a device equipped with one or more location-based resources;
receive, over the network, request data corresponding to a plurality of requests for service from a plurality of user devices;
querying one or more mapping resources to determine travel time on a route from the current location to the specified destination for the service provider in a first mode, wherein the travel time is based at least on a distance between the current location and the specified destination, traffic conditions, and time to perform aspects of one or more services associated with the network computer system; and
upon determining that the travel time added to a current time is within a programmed threshold of the deadline, transmitting, to the device, a notification to the service provider to change from a first mode to a second mode in which the network computer system:
receives the current location of the service provider through the device equipped with the one or more location-based resources; and
based on the current location of the service provider, filters out requests for service which have a service start location and a service destination that are not within a threshold distance from a point on the route between the current location and the specified destination.

6. The network computer system of claim 5, further comprising instructions for:
in response to receiving the provider data corresponding to the specified destination and the deadline, categorizing the service provider in a the first mode in which the network computer system filters out, for that service provider, any of the plurality of requests for service in which the service provider is determined unable to provide service and travel to the specified destination before the deadline,
wherein the request data includes the service start location and the service destination for each of the requests for service, and wherein a request is identified as being assignable to the service provider when the service provider is determined to be able to travel along a route from (1) the current location to the service start location of that request, (2) the service start location of that request to the service destination of that request, and (3) the service destination of that request to the specified destination, before the deadline.

7. The network computer system of claim 5, further comprising instructions for:
categorizing the service provider from the first mode to an offline mode when the service provider reaches the specified destination.

8. The network computer system of claim 5, wherein the one or more location-based resources includes a global positioning system (GPS) receiver.

9. A non-transitory computer readable medium storing instructions that, when executed by one or more processors of a network computer system, cause the one or more processors to:
receive, over a network, provider data corresponding to a specified destination and a deadline from a service provider;
track a current location of the service provider through a device equipped with one or more location-based resources;
receive, over the network, request data corresponding to a plurality of requests for service from a plurality of user devices;
querying one or more mapping resources to determine travel time on a route from the current location to the specified destination for the service provider in a first mode, wherein the travel time is based at least on a distance between the current location and the specified destination, traffic conditions, and time to perform aspects of one or more services associated with the network computer system; and
upon determining that the travel time added to a current time is within a programmed threshold of the deadline, transmitting, to the device, a notification to the service provider to change from a first mode to a second mode in which the network computer system:
receives the current location of the service provider through the device equipped with the one or more location-based resources; and
based on the current location of the service provider, filters out requests for service which have a service start location and a service destination that are not within a threshold distance from a point on the route between the current location and the specified destination.

10. The non-transitory computer readable medium of claim 9, wherein the request data includes a service start location and a service destination for each of the requests for service, and wherein a request is identified as being assignable to the service provider when the service provider is determined to travel along on a route from (1) the current location to the service start location of that request, (2) the service start location of that request to the service destination of that request, and (3) the service destination of that request to the specified destination, before the deadline.

11. The non-transitory computer readable medium of claim 9, further comprising instructions for:
in response to receiving the provider data corresponding to the specified destination and the deadline, categorizing the service provider in a the first mode in which the network computer system filters out, for that service provider, any of the plurality of requests for service in which the service provider is determined unable to provide service and travel to the specified destination before the deadline,
wherein the request data includes the service start location and the service destination for each of the requests for service, and wherein a request is identified as being assignable to the service provider when the service provider is determined to be able to travel along a route from (1) the current location to the service start location of that request, (2) the service start location of that request to the service destination of that request, and (3) the service destination of that request to the specified destination, before the deadline.

12. The non-transitory computer readable medium of claim 9, further comprising instructions for:
categorizing the service provider from the first mode to an offline mode when the service provider reaches the specified destination.