Pre-computed service metric lookup for a network-based service
Claim Score by NHIP
Abstract
A network system for managing a network-based service (e.g., an on-demand transport service) is configured to pre-compute, based on historical data, a plurality of service metrics that are maintained in a searchable database. In response to user interaction with a user application to view available service options, the user application can cause session data indicating start and service locations to be transmitted to the network system. In response, the network system can translate the start and service locations to a first and second search keys, respectively. The search keys can be used to query the database for the relevant service metric for the session. The network system can transmit the relevant service metric to the user device to enable the user device to display information relating to the session (e.g., a price for requesting the network-based service) that is based at least in part on the relevant service metric.

Term
13.4 yearsto projected expiry
Projected expiry 13 February 2040, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
20 claims: 3 independent, 17 dependent
- 1A network system for managing a network-based service within a geographic region, comprising:one or more processors;and one or more memory resources storing instructions that, when executed by the one or more processors of the network system, cause the network system to: determine, based on historical data associated with past instances of the network-based service, a plurality of pre-computed service metrics associated with the network-based service;maintain the plurality of pre-computed service metrics in a database;in response to receiving, from a user device of a first user of the network-based service, session data associated with the first user, query the database using a start location and a service location indicated by the session data to retrieve a first service metric from the plurality of pre-computed service metrics maintained in the database;and in response to receiving, from the user device, request data corresponding to a request for the network-based service by the first user, associate the first service metric with the request for the network-based service by the first user.
- 14Broadest claimClaim Score 55, average(NHIP)A computer-implemented method comprising:determining, based on historical data associated with past instances of a network-based service, a plurality of pre-computed service metrics associated with the network-based service;maintaining the plurality of pre-computed service metrics in a database;in response to receiving, from a user device of a first user of the network-based service, session data associated with the first user, querying the database using a start location and a service location indicated by the session data to retrieve a first service metric from the plurality of pre-computed service metrics maintained in the database;and in response to receiving, from the user device, request data corresponding to a request for the network-based service by the first user, associating the first service metric with the request for the network-based service by the first user.
- 20A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a network system, cause the network system to:determine, based on historical data associated with past instances of a network-based service, a plurality of pre-computed service metrics associated with the network-based service;maintain the plurality of pre-computed service metrics in a database;in response to receiving, from a user device of a first user of the network-based service, session data associated with the first user, query the database using a start location and a service location indicated by the session data to retrieve a first service metric from the plurality of pre-computed service metrics maintained in the database;and in response to receiving, from the user device, request data corresponding to a request for the network-based service by the first user, associate the first service metric with the request for the network-based service by the first user.
Independent claims3
65 paragraphs in 4 sections, as filed
RELATED APPLICATION
0001This application claims benefit of priority to U.S. Provisional Patent Application No. 62/728,029, filed on Sep. 6, 2018, and titled “Pre-Computed Service Metric Lookup for A Network-Based Service”; the aforementioned application being hereby incorporated by reference in its entirety.
BACKGROUND
0002A network-based service can enable users to request and receive various network-based services through applications on mobile computing devices. The network-based service can match a service provider with a requesting user based on the current location of the service provider and a start location specified by the requesting user or determined based on the current location of the requesting user.
BRIEF DESCRIPTION OF THE DRAWINGS
0003The disclosure herein is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements, and in which:
0004<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram illustrating an example network system in communication with user devices and provider devices, in accordance with examples described herein;
0005<figref idref="DRAWINGS">FIGS. 2A and 2B</figref> are flow charts illustrating an example method of processing a set of session data and a set of request data received from a user device, in accordance with examples described herein;
0006<figref idref="DRAWINGS">FIGS. 3A and 3B</figref> are figures illustrating example user interfaces for a user application executing on a user device, in accordance with examples described herein;
0007<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram illustrating an example mobile computing device, in accordance with examples described herein; and
0008<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram that illustrates a computer system upon which examples described herein may be implemented.
DETAILED DESCRIPTION
0009A network system is provided herein that manages a network-based service (e.g., a transport service, a delivery service, etc.) linking available service providers (e.g., drivers and/or autonomous vehicles (AVs)) with requesting users (e.g., riders, service requesters) throughout a given region (e.g., San Francisco Bay Area). In doing so, the network system can receive requests for service from requesting users via a designated user application executing on the users' mobile computing devices (“user devices”). Based on a start location (e.g., a pick-up location where a service provider is to rendezvous with the requesting user), the network system can identify an available service provider and transmit an invitation to a mobile computing device of the identified service provider (“provider device”). Should the identified service provider accept the invitation, the network system can transmit directions to the provider device to enable the service provider to navigate to the start location and subsequently from the start location to a service location (e.g., a drop-off location where the service provider is to complete the requested service). The start location can be specified in the request and can be determined from a user input or from one or more geo-aware resources on the user device. The service location can also be specified in the request.
0010In determining an optimal service provider to fulfill a given service request, the network system can identify a plurality of candidate service providers to service the service request based on a start location indicated in the service request. For example, the network system can determine a geo-fence surrounding the start location (or a geo-fence defined by a radius away from the 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 start location, service provider with the shortest estimated travel time from the start location, service provider traveling or en-route to a location within a specified distance or specified travel time to a service location, etc.) from the candidate service providers to service the service request. In many examples, the service providers can either accept or decline the invitation based on, for example, the route being too long or impractical for the service provider.
0011In certain implementations, the user application allows a user to preview aspects of the network-based service prior to submitting a service request. For instance, in the context of an on-demand transport service, the user can enter a start location and a service location to preview the expected cost of the network-based service, the estimated time of arrival at the service location, and the like. By interacting with the user application, the user can preview aspects of different service types or classes including, for example, an economy service class, a rideshare pooling service class, a limousine service class, etc. In more detail, during these interactions to preview the network-based service, the user device can transmit to the network system session data that indicates the desired start and service locations. The network system can then compute and determine various aspects of the network-based service based on the received session data. Data is then transmitted from the network system to the user device to enable the user device to render and display graphics and text to allow the user to preview the network-based service. The user can then interact with the user application to submit a service request to cause the network system to identify an optimal service provider to fulfill the requested service. Parameters and variables determined by the network system in response to the session data to preview the service can be applied to the service requested by the user.
0012In response to the service request, the network system can determine a service parameter (e.g., a cost for the requested service) that is to be applied to prospective service request. The service parameter can be determined based on a dynamic parameter (e.g., a dynamically-determined cost that is determined based on live, real-time data) and a service metric. The dynamic parameter can be computed dynamically based on live data (e.g., a number of nearby service providers, a number of nearby users, etc.) associated with the network-based service. In some implementations, the service metric can be a maximum value for the service parameter. Thus, if the dynamic parameter exceeds the service metric, the service metric will be set as the service parameter for the prospective service request.
0013Instead of computing both the dynamic parameter and the service metric dynamically, the network system can offload the computations of the service metric such that it is pre-computed and retrieved in real-time in response to receiving the service request from the user device. The service metrics can be pre-computed based on historical data associated with the network-based service. As used herein, pre-computing a service metric can mean computing a service metric prior to receiving a set of session data such that the computed service metric can be stored in a searchable database and retrieved in response to receiving a set of session data from a user device.
0014According to embodiments, the geographic region can be divided into a plurality of subregions for purposes of managing the network-based service within the geographic region. In some implementations, service parameters for a given service request can be dynamically determined based on, for example, numbers of available service providers and active users within the same subregion (or within neighboring subregions) as the start location indicated in the service request. A plurality of clusters of subregions can also be defined for pre-computations of the service metrics. For example, a cluster of subregions can include a number of geographic subregions. And the pre-computation of the service metric can be made at the cluster level. For instance, a corresponding service metric can be pre-computed for each pair of clusters. As a simple example, a geographic region can include three clusters of geographic subregions—clusters A, B, and C. A service metric can be computed for each combination of subregion clusters (e.g., clusters A and A, clusters A and B, clusters A and C, clusters B and B, clusters B and C, and clusters C and C). Thus, for instance, in response to session data indicating a start location within cluster A and a service location within cluster B, the network system can query the searchable database to retrieve the service metric defined for the combination of clusters A and B. In some variations, the pre-computations of service metrics can be dependent on the direction of desired travel. Thus, different service metrics can be pre-computed for desired travel from cluster A to cluster B as for desired travel from cluster B to cluster A. In other variations, the pre-computed service metrics can be direction-agnostic.
0015According to embodiments, each of the service metrics can be pre-computed based on historical data associated with the network-based service. Each service metric can be associated with two subregion clusters and, as described herein, searched and retrieved from the database using the identifiers of its associated subregion clusters. The historical data used to pre-compute a given service metric associated with a first subregion cluster and a subregion cluster can be data associated with past instances of the network-based service rendered between the first and second subregion clusters. Using the example above of three subregion clusters (A, B, and C), the service metric associated with clusters A and B can be computed based on past instances of the network-based service fulfilled between the subregion cluster A and subregion cluster B (e.g., instances of the network-based service having a start location within subregion cluster A and service location in B, and/or vice versa) during a given period of time. In addition, the service metric can be a statistical measure of a quantifiable aspect of the past instances of the network-based service. For instance, the service metric associated with subregion clusters A and B can be the eightieth percentile value of costs paid by users for past instances of the network-based service between subregion clusters A and B. In this example, the use of the service metric can guarantee that the requesting user will be quoted a maximum of the 80% percentile value of the historical costs paid in the past by users for the network-based service between subregion clusters A and B when previewing the network-based service between those subregion clusters. Thus, in this example, in times of peak demand (e.g., during rush hour) where dynamically-determined costs are typically high, users can expect to pay no more than the 80% percentile value for this service. Other statistical measures can be utilized. For instance, the mean value or a value corresponding to a number of standard deviations from the mean value can also be used. In addition, different statistical measures may be used for different geographic regions or even for different subregion cluster pairs within the same geographic region.
0016In one aspect, the service metrics are maintained in a searchable database and can be queried by the network system in response to received session data. The relevant service metric in response to the session data can be queried based on a start location and a service location indicated in the session data using a two-step translation process whereby the start and service locations are translated to two search keys. The database can then be queried in real-time using the two search keys to retrieve the relevant service metric. In more detail, the start location and the service location can each be geographic coordinates (e.g., longitude and latitude) and can be first converted to two intermediate identifiers. The start location can be converted to a first intermediate identifier that identifies a first subregion in which the start location is located. The first intermediate identifier can then be converted to a first search key. The first search key can be the identifier of a first subregion cluster that includes the first subregion. Similarly, the service location can be converted to a second intermediate identifier that identifies a second subregion in which the service location is located. And the second intermediate identifier can be converted to a second search key that identifies a second subregion cluster that includes the second subregion. The first and second search keys can be used to query the database in real time to retrieve the relevant service metric in response to the received session data. This two-step translation process ensures that the clusters of subregions can be dynamically changed without affecting the process to query the database for the service metrics.
0017In some implementations, the clusters of subregions can be defined or determined based on the amount of historical data (e.g., number of past instances of the network-based service rendered) available for the computations of the service metric. In the above example of three subregion clusters (A, B, and C), cluster A can include more geographic subregions compared with clusters B and C because they correspond to regions of lower demand for or requests of the network-based service. As demand and usage trends change, the clusters can be redefined. Based on the redefined clusters, the translations from geographic cluster identifier (e.g., an intermediate identifier) to the database search keys (e.g., identifier for the redefined subregion cluster) can be modified. In this manner, the network system can be configured to continuously monitor data collected for past instances of the network-based service to determine whether to redefine some or all of the subregion clusters in the geographic region managed by the network system. In response to such a determination, the network system can redefine some or all of the subregion clusters within the geographic region and the corresponding translations. As described herein, the two-step translation process to translate geographic locations to database search keys enables the clusters to be redefined without significant changes to the translation process.
0018In certain implementations, whether the service parameter determination is based on a corresponding service metric (e.g., as a cap for the service parameter) can be based on the user and/or the start and service locations. In responding to a set of session data, the network system can first determine whether the service metric for the requested route is applicable to the requesting user. If the service metric applies for the requesting user for the requested route, the service metric can be queried from the database and the determination of the service parameter can be based on the retrieved service metric (e.g., as a cap for the service parameter). If the service metric does not apply for the requesting user for the requested route, the network system does not need to retrieve the service metric and simply determines the dynamic parameter as the service parameter. In one variation, a subset of the users of the network-based service can be associated with a package or product that caps the service parameter. Certain users of the network-based service can purchase a time-limited subscription package or product that caps the service parameter for a particular route. For example, a user can purchase a 30-day subscription package for capped fares between a first location (e.g., the user's home address) and a second location (e.g., the user's work address). In this example, any time the user requests service between the first and second locations, a corresponding service metric can be retrieved, and the service parameter can be determined based on the corresponding service metric. When the user requests service between to or from other locations, the network system can determine that no service metric is applicable to the user and the service parameter determined irrespective of any service metrics (e.g., the cost can be uncapped). As another example, the user can purchase a 10-day subscription or 10-use package for capped fares within certain areas of the geographic region (e.g., within San Francisco city limits, within Manhattan, etc.).
0019Among other benefits, embodiments described herein provide for a method and system to efficiently provide service metrics in response to session data received from a user device. By pre-computing the service metrics and maintaining them in a searchable database or lookup-table (LUT), the network system can retain the same functionalities as a conventional system while avoiding the performance of computationally-heavy tasks in real-time when responding to session data and service requests from users. During times of peak demand, when the network system is processing the highest numbers of requests from users, pre-computing the service metrics can significantly reduce the amount of computing power needed to maintain a steady and acceptable user experience (e.g., delays due to computational latencies). In addition, the two-step translation process to translate geographic locations (e.g., geographic coordinates) to database search keys (e.g., cluster identifiers) provides ensures that not only can the query for service metrics be performed in real-time in response to session data from users, but that the translation process is flexible enough such that the clusters can be redefined in response to altered usage or demand patterns. From a user experience perspective, examples described herein provide for a more consistent user experience in previewing, requesting, and utilizing the network-based service. In the context of the service parameter being an estimated cost of the network-based service and the service metric being a cap on the service parameter, the user can expect more consistency or less variations in the dynamically-computed cost of requesting the network-based service due to factors such as real-time demand.
0020As used herein, a computing device refers to devices corresponding to desktop computers, cellular devices or smartphones, personal digital assistants (PDAs), laptop computers, virtual reality (VR) or augmented reality (AR) headsets, tablet devices, television (IP Television), etc., that can provide network connectivity and processing resources for communicating with the system over a network. A computing device can also correspond to custom hardware, in-vehicle devices, or on-board computers, etc. The computing device can also operate a designated application configured to communicate with the network service.
0021One or more examples described herein provide that methods, techniques, and actions performed by a computing device are performed programmatically, or as a computer-implemented method. Programmatically, as used herein, means through the use of code or computer-executable instructions. These instructions can be stored in one or more memory resources of the computing device. A programmatically performed step may or may not be automatic.
0022One or more examples described herein can be implemented using programmatic modules, engines, or components. A programmatic module, engine, or component can include a program, a sub-routine, a portion of a program, or a software component or a hardware component capable of performing one or more stated tasks or functions. As used herein, 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.
0023Some examples described herein can generally require the use of computing devices, including processing and memory resources. For example, one or more examples described herein may be implemented, in whole or in part, on computing devices such as servers, desktop computers, cellular or smartphones, personal digital assistants (e.g., PDAs), laptop computers, VR or AR devices, printers, digital picture frames, network equipment (e.g., routers) and tablet devices. Memory, processing, and network resources may all be used in connection with the establishment, use, or performance of any example described herein (including with the performance of any method or with the implementation of any system).
0024Furthermore, one or more examples 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 mediums on which instructions for implementing examples disclosed herein can be carried and/or executed. In particular, the numerous machines shown with examples of the invention include processors and various forms of memory for holding data and instructions. Examples of computer-readable mediums include permanent memory storage devices, such as hard drives on personal computers or servers. Other examples of computer storage mediums include portable storage units, such as CD or DVD units, flash memory (such as carried on smartphones, multifunctional devices or tablets), 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 mediums. Additionally, examples may be implemented in the form of computer-programs, or a computer usable carrier medium capable of carrying such a program.
0025System Descriptions
0026<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram illustrating an example network system in communication with user devices and provider devices, in accordance with examples described herein. Network system <b>100</b> can implement or manage a network-based service (e.g., an on-demand transport service, an on-demand delivery service, etc.) that connects requesting users <b>182</b> with service providers <b>192</b> that are available to fulfill the users' service requests <b>183</b>. The network system <b>100</b> can provide a platform that enables on-demand services to be provided by an available service provider <b>192</b> for a requesting user <b>182</b> by way of a user application <b>181</b> executing on the user devices <b>180</b>, and a provider application <b>191</b> executing on the provider devices <b>190</b>. As used herein, a user device <b>180</b> and a provider device <b>190</b> can comprise a computing device with functionality to execute a designated application corresponding to the on-demand service managed by the network system <b>100</b>. In many examples, the user device <b>180</b> and the provider device <b>190</b> can comprise mobile computing devices, such as smartphones, tablet computers, VR or AR headsets, on-board computing systems of vehicles, smart watches, and the like. In one example, a service provider fulfilling a service request includes the service provider rendezvousing with the user at start location (e.g., a pick-up location) to pick up the user and transporting the user to a service location (e.g., a destination location).
0027The network system <b>100</b> can include a user device interface <b>115</b> to communicate with user devices <b>180</b> over one or more networks <b>170</b> via the user application <b>181</b>. According to examples, a requesting user <b>182</b> wishing to utilize the network-based service can launch the user application <b>181</b> and can cause user device <b>180</b> to transmit, by using the user application <b>181</b>, a service request <b>183</b> over the network <b>170</b> to the network system <b>100</b>. In certain implementations, the requesting user <b>182</b> can view multiple different service types managed by the network system <b>100</b>. In the context of an on-demand transport service, service types can include a ride-share service, an economy service, a luxury service, a professional service provider service (e.g., where the service provider is certified), a self-driving vehicle service, and the like. In certain implementations, the available service types can include a rideshare-pooling service class in which multiple users can be matched to be serviced by a service provider. The user application <b>181</b> can enable the user <b>182</b> to scroll through the available service types. The user application <b>181</b> can also enable the user <b>182</b> to enter the start and service locations for a prospective service request. In some examples, the user device <b>180</b> can automatically determine the start location based on the current location of the user <b>182</b> (e.g., as determined by on-board location-aware resources).
0028In one aspect, session data <b>185</b> can be generated by the user device <b>180</b> in response to the user entering the start and service locations within the user application <b>181</b> to preview aspects of the network-based service prior to submitting the service request <b>183</b>. The session data <b>185</b> can indicate the start and service locations. In response to receiving the session data <b>185</b>, the network system <b>100</b> can determine a dynamic parameter <b>131</b> and a service metric for the session (service metric <b>136</b>), in order to determine a service parameter in response to the session data <b>185</b>. Thereafter, the network system <b>100</b> can generate and transmit to the user device <b>180</b> service preview data <b>127</b> that indicates various aspects of the network-based service (e.g., estimated cost, ETA of service provider at start location, ETA to service location, locations of nearby service providers, etc.) for each of the available service types. The service preview data <b>127</b> can cause the user application <b>181</b> to display such information on the user device <b>180</b>. As the user scrolls through the available service types, the user interface can update to show visual representations of service providers for that service type on a map centered around the user <b>182</b> or the start location set by the user. The user <b>182</b> can interact with the user interface of the user application <b>181</b> to select a particular service type and transmit the service request <b>183</b>.
0029According to embodiments, the session data <b>185</b> can be received by a service metric look-up engine (SMLUE) <b>135</b> of the network system <b>100</b>. In certain implementations, the SMLUE <b>135</b> can first determine whether a service metric should be retrieved in response to the session data <b>185</b>. This determination can be based on the user or profile data associated with the user. For example, the user can be associated with or assigned a package or a product for capped costs for the network-based service between two locations. Thus, in response to the session data <b>185</b>, the SMLUE <b>135</b> can retrieve user data <b>153</b> from a database <b>145</b> to determine whether to apply a service metric in response to the received session data <b>185</b>. The database <b>145</b> can store user profile data <b>148</b> for each of the users of the network-based service, including any capped-cost subscriptions attached to the user <b>182</b>'s profile. The determination can also be based on the start and service locations indicated in the session data <b>185</b>. As an example, the user <b>182</b> can be associated with a capped-cost subscription for service between his or her home and work locations. In this example, in response to receiving the session data <b>185</b> indicating that service is desired between other locations, the SMLUE <b>135</b> can determine a service metric is not applicable for the session. If the SMLUE <b>135</b> determines, based on the user and/or the start and service locations, that a service metric applies for the received session data <b>185</b>, the SMLUE <b>135</b> can query a searchable database (e.g., database <b>145</b>) to retrieve the service metric for the session.
0030According to embodiments, the SMLUE <b>135</b> can query the service metric <b>136</b> for the session based on the start and/or service locations indicated in the session data <b>185</b>. A service metric LUT <b>149</b> be maintained in the database <b>145</b> and can store all the service metrics that are pre-computed for the network-based service in the geographic region managed by the network system <b>100</b>. The service metric LUT <b>149</b> can be queried using the search keys <b>137</b>. To query the service metric <b>136</b> for the session from the service metric LUT <b>149</b>, the SMLUE <b>135</b> can translate the start and service locations to search keys <b>137</b>.
0031In one example, the SMLUE <b>135</b> can translate the start and service locations to search keys <b>137</b> using a two-step translation process. The start and service locations can each be a set of geographic coordinates (e.g., longitude and latitude coordinates). The geographic region in which the network-based service is managed by the network system <b>100</b> can be divided into geographic subregions. Subsets of neighboring or nearby geographic subregions can be grouped together as subregion clusters. The start location can be converted to a first intermediate identifier that identifies a first geographic subregion in which the start location is located. The first intermediate identifier can then be converted to a first search key. The first search key can be an identifier that identifies the subregion cluster that includes the first geographic subregion. The service location can be converted to a second intermediate identifier that identifies a second geographic subregion in which the service location is located. The second intermediate identifier can then be converted to a second search key. The second search key can be an identifier that identifies the subregion cluster that includes the second geographic subregion. The first search key and the second search key can comprise the search keys <b>137</b>. Using the search keys <b>137</b>, service metric <b>136</b> for the session can be retrieved from the service metric LUT <b>149</b>.
0032In the examples described herein, the network system <b>100</b> can include a dynamic parameter engine <b>130</b> that can generate a dynamic parameter <b>131</b> in response to the session data <b>185</b>. In certain implementations, the dynamic parameter <b>131</b> can represent a dynamically-determined cost for the user <b>182</b> if the user proceeds to request the network-based service. The dynamic parameter engine <b>130</b> can retrieve live service data <b>147</b> from the database <b>145</b> to determine the dynamic parameter <b>131</b>. The dynamic parameter <b>131</b> can be determined based on, for example, a current level of demand and a current level of supply of the network-based service in the vicinity of the start location specified in the session data <b>185</b>. For example, the dynamic parameter engine <b>130</b> can determine the dynamic parameter <b>131</b> based on a number of active users (e.g., users actively interacting with the user application executing on their devices) and/or a number of service providers in the same geographic subregion or the same subregion cluster as the start location.
0033According to embodiments, the network system <b>100</b> can include a service engine <b>125</b> that can perform a number of functions in response to receiving the session data <b>185</b> and request data <b>183</b> from the user device <b>180</b>. In one aspect, in response to the session data <b>185</b>, the service engine <b>125</b> can determine a service parameter for the session. The service parameter can be used to generate service preview data <b>127</b> to be transmitted to the user device <b>180</b>. In some implementations, the service parameter can be an estimated cost if the user proceeds to request the network-based service by causing the user device <b>180</b> to transmit the request data <b>183</b>. In response to receiving the service preview data <b>127</b>, the user application <b>181</b> can cause the user device <b>180</b> to display content to enable the user <b>182</b> to view available options for the network-based service, including estimated costs for requesting the network-based service (e.g., the service parameter). The service engine <b>125</b> can determine the service parameter based on the queried service metric data <b>136</b> and the dynamically-generated dynamic parameter <b>131</b>. For example, if a service metric is determined to be applicable for the session, the value for the service parameter can be based on the dynamic parameter <b>131</b> but capped at the queried service metric <b>136</b>. If no service metric is determined to be applicable for the session (e.g., based on the user and/or the start and service locations), the service parameter can be uncapped and based on the dynamic parameter <b>131</b>.
0034In another aspect of the service engine <b>125</b>, in response to receiving the service request <b>183</b>, the service engine <b>125</b> can identify a candidate service provider <b>192</b> to fulfill the service request <b>183</b>. The service engine <b>125</b> can receive provider location data <b>194</b> transmitted from the provider devices <b>190</b> to identify an optimal service provider <b>192</b> to service the user's service request <b>183</b>. The optimal service provider <b>192</b> can be identified based on the service provider <b>192</b>'s location, ETA to the start location, status, availability, and the like. The service engine <b>125</b> can transmit an invitation <b>126</b> to the provider device <b>190</b> of the selected service provider <b>192</b>. The invitation <b>126</b> can be transmitted over the network <b>170</b> via a provider device interface <b>120</b> that communicates with provider devices <b>190</b>. In response to receiving the invitation <b>126</b>, the provider application <b>191</b> can display a prompt for the service provider <b>192</b> to accept or decline the invitation <b>126</b>. Should the service provider <b>192</b> accept the invitation <b>126</b>, the provider application <b>191</b> can cause the provider device <b>190</b> to transmit an acceptance <b>193</b> to the network system <b>100</b>. In response to receiving the acceptance <b>193</b> from the provider device <b>190</b>, the network system <b>100</b> and the service engine <b>125</b> can perform a number of operations to facilitate the fulfillment of the requested service by the service provider <b>192</b>. As an example, the service engine <b>125</b> generate an optimal route <b>127</b> for the service provider <b>192</b> to fulfilling the service request <b>183</b>. The route <b>127</b> can be generated based on map data <b>147</b> stored within a database <b>145</b>. The route <b>127</b> can include a segment from the current location of the service provider <b>192</b> (e.g., based on the provider location data <b>194</b>) to the start location and another segment from the start location to the service location. The route <b>127</b> can also include other intermediate locations such as a drop-off location for another user of a ride-share transport service, etc. The provider device interface <b>120</b> can transmit the route <b>127</b> to the provider device <b>190</b> via the one or more networks <b>170</b>. The provider device <b>190</b> can display, via the provider application <b>191</b>, turn-by-turn directions for the service provider <b>192</b> based on the route <b>127</b> generated by the service engine <b>125</b>. In some implementations, the service engine <b>125</b> can transmit the start and service locations to the service provider device <b>190</b> and the provider devices <b>190</b> and the provider application <b>191</b> can generate one or more routes and turn-by-turn directions for the service provider <b>192</b> necessary to fulfill the service request <b>183</b>.
0035In various examples, the network system <b>100</b> can maintain user data for the requesting user <b>182</b> in the database <b>145</b> in the form of user profile data <b>146</b>. The user profile data <b>146</b> can include information relating to services requested by the user <b>182</b> in the past, frequently visited locations associated with the network-based service (e.g., home location, office address, etc.), and the like. The user profile data <b>146</b> can also include payment information (e.g., credit/debit card information, etc.) used by the network system <b>100</b> to process the user <b>182</b>'s payments for the network-based service. In some implementations, the user <b>182</b> can enter payment information via the user application <b>191</b>. For instance, the user <b>182</b> can be prompted, either while setting up a user account or profile for the network-based service or before submitting a request for service.
0036In certain implementations, the network system <b>100</b> further includes a service metric generation engine <b>140</b> to pre-computer service metrics to populate the service metric LUT <b>149</b>. The service metric generation engine <b>140</b> can generate the service metrics based on historical service data <b>146</b> maintained by the database <b>145</b>. The historical service data <b>146</b> used to pre-compute a given service metric associated with a first subregion cluster and a subregion cluster can be data associated with past instances of the network-based service rendered between the first and second subregion clusters. The service metric can be a statistical measure (e.g., an eightieth percentile value, a standard deviation above or below the mean value, etc.) of a quantifiable aspect of the past instances of the network-based service. After the service metrics are computed and stored in the service metric LUT <b>149</b> maintained by the database <b>145</b>, the service metric generation engine <b>140</b> can update the service metrics stored in the service metric LUT <b>149</b> using more up-to-date historical service data <b>146</b>. The service metric generation engine <b>140</b> can further update one or more of the subregion clusters defined for the geographic region managed by the network system <b>100</b>. For example, based on the historical service data <b>146</b>, the service metric generation engine <b>140</b> can determine to update the subregions contained in one or more of the subregion clusters. In updating one or more of the subregion clusters, the service metric generation engine <b>140</b> can also transmit translation updates <b>141</b> to the SMLUE <b>135</b> to cause the SMLUE <b>135</b> to update the translation tables and caches used to translate locations to search keys.
0037Methodology
0038<figref idref="DRAWINGS">FIGS. 2A and 2B</figref> are flow charts illustrating an example method of processing a set of session data and a set of request data received from a user device, in accordance with examples described herein. In the below description of <figref idref="DRAWINGS">FIGS. 2A and 2B</figref>, references may be made with respect to <figref idref="DRAWINGS">FIG. 1</figref>. For instance, the example method illustrated in <figref idref="DRAWINGS">FIGS. 2A and 2B</figref> can be performed by an exemplary network system <b>100</b> illustrated in and described with respect to <figref idref="DRAWINGS">FIG. 1</figref>.
0039Referring to <figref idref="DRAWINGS">FIG. 2A</figref>, the network system can receive session data from a user device executing a user application (<b>210</b>). The session data can be generated by the user device in response to the user interacting with the user application to preview options and content for the network-based service prior to submitting a service request. The session data can be generated in response to, for example, the user opening the user application on the user device, the user entering a start location and/or a service location, etc. The start location can also be determined using one or more geo-aware resources (e.g., a GPS receiver) of the user device. The session data can indicate the start and service locations.
0040The network system can determine a dynamic parameter in response to receiving the session data (<b>215</b>). The dynamic parameter can be determined based on real-time data associated with the network-based service. For instance, the dynamic parameter can be determined based on a real-time measure of supply and demand of the network-based service near the start or service location indicated in the session data. As one example, the dynamic parameter can be determined based on a real-time number of active users (e.g., users actively interacting with the user application executing on their respective user devices) or available service providers located near the start or service locations (e.g., within a certain distance, in the same geographic subregion, in the same subregion cluster, etc.). In some embodiments, step <b>215</b> can be performed in parallel or contemporaneously with one or more of steps <b>220</b> to <b>245</b>.
0041In response to the session data, the network system can further determine whether a service metric is applicable to the session (<b>220</b>). This determination can be performed based on the user and/or the start and service locations. The network system can retrieve user profile data associated with the requesting user to determine whether the service metric is applicable to the user. In one variation, the network system can determine whether the service metric is applicable for the session based on the user's identity. That is, some users can be associated with the use of service metrics in determining their service parameters while other users may not. In addition, the determination of whether the service metric is applicable for the session can be based on the start and service location. In one example, the user can have purchased or be assigned a consistent cost package guaranteeing capped costs between two specific locations. Thus, if the user previews the network-based service between the two specific locations, the service metric is applicable. Otherwise, for other instances of the network-based service between other locations, no service metric is applicable to the user.
0042If the network system determines that a service metric is applicable for the session, the network system can retrieve the appropriate pre-computed service metric using the session data. The network system can perform a two-step translation process to generate search keys to query the service metric database (<b>225</b>). The network system can do so by first generating two intermediate identifiers based on the session data (<b>230</b>). The network system and can translate the start location to a first intermediate identifier (<b>231</b>). The first intermediate identifier can identify a first geographic sub-region in which the start location is located. The network system can access a cache or lookup table to quickly perform this translation. The network system can also translate the service location to a second intermediate identifier (<b>232</b>). The second intermediate identifier can identify a second geographic sub-region in which the service location is located. Thereafter, the network system can generate service metric database search keys based on the intermediate identifiers (<b>235</b>). The network system can translate the first intermediate identifier to a first search key (<b>236</b>). The first search key can be an identifier for a first subregion cluster that includes the first geographic subregion. The network system can also translate the second intermediate identifier to a second search key (<b>237</b>). The second search key can be an identifier for a second subregion cluster that includes a second geographic subregion.
0043The network system can query the service metric database for the appropriate service metric for the session using the search keys translated from the start and service locations (<b>240</b>). The network system can then determine the service parameter for the session based on the service metric retrieved for the session and the dynamic parameter determined for the session (<b>245</b>). In one implementation, the network system can resolve the service metric and the dynamic parameter to generate the service parameter. The service parameter can be based on the dynamic parameter but be capped at the value of the service metric.
0044If the network system determines that no service parameters are applicable to the session, the network system can use the dynamic parameter as the service parameter (<b>250</b>). In this case, the service parameter is not capped by any relevant service metrics. The network system can transmit the service parameter and other variables relevant to the session to the user device (<b>255</b>). In response, the user application can cause the user device to display content based on the service parameter. For instance, the user device can display content conveying information regarding the expected (or locked-in) cost for the network-based service from the start location to the service location should the user submit the service request. The user device can also display information such as an ETA of the service provider at the start location, an ETA of the user at the service location, and the like. In addition, information pertaining to multiple classes of service (e.g., an economy service, a luxury service, a rideshare pooling service, etc.) can be displayed on the user device. Different applicable service metrics can be retrieved for the multiple classes of service. In some instances, service metrics may be applicable to only a single class of service. In other cases, different service metrics may be applicable to two or more of multiple classes of service. After transmitting the service parameter and other variables for the session to the user device, the network system can await a service request from the user device (depicted in <figref idref="DRAWINGS">FIG. 2B</figref>).
0045Referring to <figref idref="DRAWINGS">FIG. 2B</figref>, the network system can receive a request data corresponding to a service request from the user device (<b>260</b>). If the request data indicates start and service locations that match those indicated in the session data received at step <b>210</b> (<figref idref="DRAWINGS">FIG. 2A</figref>), the service parameter determined at steps <b>245</b> or <b>250</b> can be applied for the instance of the network-based service resulting from the user's request (<b>265</b>). In addition, the network system can identify an optimal service provider to fulfill the requested service (<b>270</b>). The optimal service provider can be identified based on the location of the service provider relative to the start location, ETA of the service provider to the start location, the service provider's availability, the service provider's class of service, and the like. The network system can transmit an invitation to the identified service provider (<b>275</b>). At step <b>280</b>, the network system receives an acceptance from the identified service provider in response to the invitation transmitted at step <b>275</b>.
0046User Interface
0047<figref idref="DRAWINGS">FIGS. 3A and 3B</figref> are figures illustrating example user interfaces for a user application executing on a user device, in accordance with examples described herein. In the below description of <figref idref="DRAWINGS">FIGS. 3A and 3B</figref>, references may be made with respect to <figref idref="DRAWINGS">FIGS. 1 and 2</figref>. In particular, the example user interface illustrated in <figref idref="DRAWINGS">FIGS. 3A-B</figref> can be displayed by user device <b>180</b> of <figref idref="DRAWINGS">FIG. 1</figref> in previewing and requesting a network-based service.
0048Referring to <figref idref="DRAWINGS">FIG. 3A</figref>, the user application can display user interface <b>300</b> in response to receiving content data (e.g., service preview data <b>127</b> of <figref idref="DRAWINGS">FIG. 1</figref>) from the network system. The user can interact with the user application to enter a start location and a service location. In response, the user device can transmit to the network system a set of session data that indicates the start location and the service location. In response, the network system can generate content data to cause the user interface to display the user interface <b>300</b>.
0049The user interface <b>300</b> includes a map feature <b>305</b> that displays the start location <b>310</b> and the service location <b>315</b>. The map feature <b>305</b> also displays a route from the start location to the service location. In addition, the map feature <b>305</b> can also include an ETA of a service provider to the start location (“2 MIN”).
0050The user interface <b>300</b> can further include an indication <b>320</b> that a cost-capping feature has been applied for the session of the user. In particular, indication <b>320</b> is displayed as a banner with the text “Ride Pass applied.” The indication <b>320</b> can be selectively displayed based on the determination of whether any service metrics is applicable to the session for the user (e.g., step <b>220</b> of <figref idref="DRAWINGS">FIG. 2A</figref>). If the network system determines that a service metric is applicable based on the user and/or the start and service locations, the content data transmitted to the user device can cause the user device to display the indication <b>320</b>.
0051The user interface <b>300</b> can also display preview information <b>325</b> for a plurality of service classes. For each service class, the preview information <b>325</b> can include an estimated cost (e.g., “$6.99” for “Option 3”). As described herein, the estimated cost can be a service parameter determined by the network system in response to the session data, and, in the event that a cost-capping feature has been applied for the session, the estimated cost can be dependent on a pre-computed service metric. The preview information <b>325</b> can further display the estimated cost of the service without the cost-capping feature being applied so that the user can visualize the amount of cost savings associated with the cost-capping feature. Furthermore, the preview information <b>325</b> can include respective ETAs at the service location for each of the different classes of service. The user interface <b>300</b> can further include a feature <b>330</b> for submitting a service request for the selected class of service.
0052Referring to <figref idref="DRAWINGS">FIG. 3B</figref>, the user interface <b>350</b>, like user interface <b>300</b>, includes a map feature <b>355</b> that displays the start location <b>360</b> and the service location <b>365</b>. The map feature <b>355</b> also displays a route from the start location to the service location. In addition, the map feature <b>355</b> can also include an ETA of a service provider to the start location (“2 MIN”).
0053The user interface <b>350</b> can further include an indication <b>370</b> that a cost-capping feature has been applied for the session of the user. In particular, indication <b>370</b> is displayed as an icon with the text “Pass” to indicate that a cost-capping feature has been applied for the session. The indication <b>370</b> can be selectively displayed based on the determination of whether any service metrics is applicable to the session for the user (e.g., step <b>220</b> of <figref idref="DRAWINGS">FIG. 2A</figref>). If the network system determines that a service metric is applicable based on the user and/or the start and service locations, the content data transmitted to the user device can cause the user device to display the indication <b>370</b>.
0054The user interface <b>300</b> can also display preview information <b>375</b> for a plurality of service classes. For each service class, the preview information <b>375</b> can include an estimated cost (e.g., “$7.99” for “Option 3”). As described herein, the estimated cost can be a service parameter determined by the network system in response to the session data, and, in the event that a cost-capping feature has been applied for the session, the estimated cost can be dependent on a pre-computed service metric. Furthermore, the preview information <b>375</b> can include respective ETAs at the service location for each of the different classes of service. The user interface <b>350</b> can further include a feature <b>380</b> for submitting a service request for the selected class of service.
0055Hardware Diagrams
0056<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram illustrating an example mobile computing device, in accordance with examples described herein. In many implementations, the mobile computing device <b>400</b> can be a smartphone, tablet computer, laptop computer, VR or AR headset device, and the like. In the context of <figref idref="DRAWINGS">FIG. 1</figref>, the user device <b>180</b> and/or the provider device <b>190</b> may be implemented using a mobile computing device <b>400</b> as illustrated in and described with respect to <figref idref="DRAWINGS">FIG. 4</figref>.
0057According to embodiments, the mobile computing device <b>400</b> can include typical telephony features such as a microphone <b>470</b>, a camera <b>440</b>, and a communication interface <b>410</b> to communicate with external entities (e.g., network system <b>490</b> implementing or managing the network-based service) using any number of wireless communication protocols. The mobile computing device <b>400</b> can store a designated application (e.g., a service application <b>432</b>) in a local memory <b>430</b>. The service application <b>432</b> can correspond to one or more user applications for implementations of the mobile computing device <b>400</b> as user devices for the network-based service. The service application <b>432</b> can also correspond to one or more provider applications for implementations of the mobile computing device <b>400</b> as provider devices for the network-based service.
0058In response to an input <b>418</b>, the processor can execute the service application <b>432</b>, which can cause an application interface <b>442</b> to be generated on a display screen <b>420</b> of the mobile computing device <b>400</b>. In implementations of the mobile computing device <b>400</b> as user devices, the application interface <b>442</b> can enable a user to, for example, request for the network-based service. The request for service can be transmitted to the network system <b>490</b> as an outgoing service message <b>467</b>.
0059In various examples, the mobile computing device <b>400</b> can include a GPS module <b>460</b>, which can provide location data <b>462</b> indicating the current location of the mobile computing device <b>400</b> to the network system <b>490</b> over a network <b>480</b>. In some implementations, other location-aware or geolocation resources such as GLONASS, Galileo, or BeiDou can be used instead of or in addition to the GPS module <b>460</b>. The location data <b>462</b> can be used in generating a service request, in the context of the mobile computing device <b>400</b> operating as a user device. For instance, the user application can set the current location as indicated by the location data <b>462</b> as the default start location (e.g., a location where a selected service provider is to rendezvous with the user).
0060<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram that illustrates a computer system upon which examples described herein may be implemented. A computer system <b>500</b> can represent, for example, hardware for a server or combination of servers that may be implemented as part of a network service for providing on-demand services. In the context of <figref idref="DRAWINGS">FIG. 1</figref>, the network system <b>100</b> may be implemented using a computer system <b>500</b> or combination of multiple computer systems <b>500</b> as described by <figref idref="DRAWINGS">FIG. 5</figref>.
0061In one aspect, the computer system <b>500</b> includes processing resources (processor <b>510</b>), a main memory <b>520</b>, a memory <b>530</b>, a storage device <b>540</b>, and a communication interface <b>550</b>. The computer system <b>500</b> includes at least one processor <b>510</b> for processing information stored in the main memory <b>520</b>, 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 <b>510</b>. The main memory <b>520</b> also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processor <b>510</b>. The computer system <b>500</b> may also include the memory <b>530</b> or other static storage device for storing static information and instructions for the processor <b>510</b>. A storage device <b>540</b>, such as a magnetic disk or optical disk, is provided for storing information and instructions.
0062The communication interface <b>550</b> enables the computer system <b>500</b> to communicate with one or more networks <b>580</b> (e.g., a cellular network) through use of a network link (wireless or wired). Using the network link, the computer system <b>500</b> can communicate with one or more computing devices, one or more servers, and/or one or more self-driving vehicles. In accordance with some examples, the computer system <b>500</b> receives service requests from mobile computing devices of individual users. The executable instructions stored in the memory <b>530</b> can include provider selection instructions <b>522</b>, service metric generation instructions <b>524</b>, and service metric lookup instructions <b>526</b> to perform one or more of the methods described herein when executed.
0063By way of example, the instructions and data stored in the memory <b>520</b> can be executed by the processor <b>510</b> to implement an example network system <b>100</b> of <figref idref="DRAWINGS">FIG. 1</figref>. In performing the operations, the processor <b>510</b> can handle service requests and provider statuses and submit service invitations to facilitate fulfilling the service requests. The processor <b>510</b> executes instructions for the software and/or other logic to perform one or more processes, steps and other functions described with implementations, such as described by <figref idref="DRAWINGS">FIGS. 1 through 3A</figref>-B.
0064Examples described herein are related to the use of the computer system <b>500</b> for implementing the techniques described herein. According to one example, those techniques are performed by the computer system <b>500</b> in response to the processor <b>510</b> executing one or more sequences of one or more instructions contained in the main memory <b>520</b>. Such instructions may be read into the main memory <b>520</b> from another machine-readable medium, such as the storage device <b>540</b>. Execution of the sequences of instructions contained in the main memory <b>520</b> causes the processor <b>510</b> 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.
0065It 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.
Contents4
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2021192584A1 | Cited by | United States of America | Search report |
| US12462319B2 | Cited by | United States of America | Applicant |
| US11238555B2 | Cited by | United States of America | Search report |
| US11601511B2 | Cited by | United States of America | Applicant |
| US12438934B2 | Cited by | United States of America | Applicant |
| US11443271B2 | Cited by | United States of America | Applicant |
| US11068839B2 | Cited by | United States of America | Search report |
| US2024412166A1 | Cited by | United States of America | Search report |
| US2021192583A1 | Cited by | United States of America | Search report |
| US2021082077A1 | Cited by | United States of America | Search report |
| US12314989B2 | Cited by | United States of America | Search report |
| US2020175632A1 | Cited by | United States of America | Search report |
| US11948220B2 | Cited by | United States of America | Search report |
| US2024233060A1 | Cited by | United States of America | Search report |
| US2022164914A1 | Cited by | United States of America | Search report |
| US11954754B2 | Cited by | United States of America | Applicant |
3 members in 1 office; this record represents the family
Priority claims1
| Document | Office | Kind | Date |
|---|---|---|---|
| 201862728029 | United States of America | P |
Members3
| Document | Office | Kind | |
|---|---|---|---|
| US2020081933A1 | United States of America | A1 | |
| US11275809B2 | United States of America | B2 | |
| US2022156338A1 | United States of America | A1 |
56 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Supplemental Papers - Oath or DeclarationC600 | C600 | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| Application Is Now CompleteCOMP | COMP | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| Applicant has submitted a new specification to correct Corrected Papers problemsCORRSPEC | CORRSPEC | |
| Email NotificationEML_NTR | EML_NTR | |
| Notice of Incomplete ReplyINCR | INCR | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| Applicant has submitted new drawings to correct Corrected Papers problemsCORRDRW | CORRDRW | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTF | EML_NTF | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Corrected PaperCPAP | CPAP | |
| Cleared by OIPE CSRL194 | L194 | |
| A document that contains, at least in part, a written description of an invention, and of the manneSPECIFIC | SPECIFIC | |
| PTO/SB/69-Authorize EPO Access to Search ResultsSREXR141 | SREXR141 | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
1 recorded assignment at the USPTO, latest first
- Now
Now: Held by
UBER TECHNOLOGIES INC - 2021-12-13
Assignment of assignors interest.
- From
- KAKKUR, ATULBILEN, DANIELLEE, JAMES
and 6 moreShow fewer
JIANG, JUNGUO, LISAFENG, QINGGITLIN, SERGEYHOU, SONGYANCHEN, XIMING - To
- UBER TECHNOLOGIES, INC.
Recorded 2021-12-13, Signed 2021-12-13
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| Information on status: patent application and granting procedure in generalNOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONSSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINERSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| Fee payment procedureENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP |
Numbers
- Publication
- 20200081933
- Application
- 16562292
Titles
- English
- PRE-COMPUTED SERVICE METRIC LOOKUP FOR A NETWORK-BASED SERVICE
Patent term adjustment
- A delay
- +161 daysthe office missed an examination deadline
- Net adjustment
- 161 days
Classification
- CPC, 9
- G06F16/9537
- G06F16/1752
- G06F16/9538
- H04L67/18
- H04L67/32
- H04L67/1023
- H04L67/52
- H04L67/63
- H04L67/60
- IPC, 3
- G06F16 9537
- H04L29 08
- G06F16 9538