US20220414593A1 - Network computer system to implement predictive time-based determinations for fulfilling delivery orders - Google Patents
Network computer system to implement predictive time-based determinations for fulfilling delivery orders Download PDFInfo
- Publication number
- US20220414593A1 US20220414593A1 US17/902,253 US202217902253A US2022414593A1 US 20220414593 A1 US20220414593 A1 US 20220414593A1 US 202217902253 A US202217902253 A US 202217902253A US 2022414593 A1 US2022414593 A1 US 2022414593A1
- Authority
- US
- United States
- Prior art keywords
- order
- service
- requester
- time
- supplier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 20
- 238000006243 chemical reaction Methods 0.000 claims description 18
- 238000010801 machine learning Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 17
- 230000008859 change Effects 0.000 description 13
- 238000005457 optimization Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007935 neutral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
- G06Q10/0833—Tracking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
- G06Q10/0834—Choice of carriers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/029—Location-based management or tracking services
Definitions
- Examples provide for a network computer system to implement predictive time-based determinations for fulfilling delivery orders.
- on-demand services exist to offer users a variety of services: transportation, shipping, food delivery, groceries, pet sitting, mobilized task force and others.
- on-demand services leverage resources available through mobile devices, such as wireless (e.g., cellular telephony) devices, which offer developers a platform that can access sensors and other resources available through the mobile device.
- mobile devices such as wireless (e.g., cellular telephony) devices, which offer developers a platform that can access sensors and other resources available through the mobile device.
- Many on-demand services include dedicated applications (sometimes referred to as “apps”) to communicate with a network service through which an on-demand service is offered.
- FIG. 1 illustrates an example of a network computing system for arranging transport of delivery orders, according to one or more examples.
- FIG. 2 illustrates an example method for identifying suppliers for delivery service to individual requesters.
- FIG. 3 illustrates an example method for arranging transport for multiple delivery orders.
- FIG. 4 illustrates an example method for arranging transport for delivery orders in a manner that affects a provisioning level of the provided service.
- FIG. 5 illustrates another example method for arranging transport for delivery orders to minimize service provider wait time.
- FIG. 6 illustrates a computer system on which one or more embodiments can be implemented.
- FIG. 7 is a block diagram illustrating an example user device for use with examples as described.
- a network computing system implements operations to arrange transport services for delivery orders.
- a network computing system estimates a provisioning level for a given time interval for one or more regions.
- the provisioning level determination may be based on an estimated number of order requests, and a number of available service providers in the given region that are available to provide transport in fulfilling the order requests.
- the computer system selects a set of multiple suppliers for a respective supplier menu that is displayed on a mobile device of the requester. The selection of suppliers for individual requesters may be based at least in part on a current location of the requesters, and at least one of the estimated number of order requests or the estimated number of available service providers.
- a network computing system arranges transport for delivery orders by (i) predicting an order preparation time of the respective supplier for the order request; (ii) during a time interval that precedes the order preparation time, generating a request for a service provider, based at least in part on a determination that an arrival time of a matched service provider to the respective supplier is within a designated threshold of the order preparation time.
- An order delivery time for the requester may be estimated based at least in part on the predicted order preparation time and an estimated trip time from a location of the supplier to a location of requester.
- a client device refers to devices corresponding to desktop computers, cellular devices or smartphones, wearable devices, laptop computers, tablet devices, television (IP Television), etc., that can provide network connectivity and processing resources for communicating with the system over a network.
- a driver device can also correspond to custom hardware, in-vehicle devices, or on-board computers, etc.
- the client device and/or the driver device can also operate a designated application configured to communicate with the system 100 .
- the system 100 can enable other on-demand location-based services (e.g., a food truck service, a delivery service, an entertainment service) to be arranged between individuals and service providers.
- a user can request an on-demand service, such as a delivery service (e.g., food delivery, messenger service, food truck service, or product shipping) or an entertainment service (e.g., mariachi band, string quartet) using the system, and the system can select a service provider, such as a driver, food provider, band, etc., to provide the on-demand service for the user.
- a delivery service e.g., food delivery, messenger service, food truck service, or product shipping
- an entertainment service e.g., mariachi band, string quartet
- One or more embodiments 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. 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.
- 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.
- a module or component can exist on a hardware component independently of other modules or components.
- a module or component can be a shared element or process of other modules, programs or machines.
- Some embodiments described herein can generally require the use of computing devices, including processing and memory resources.
- computing devices including processing and memory resources.
- one or more embodiments described herein may be implemented, in whole or in part, on computing devices such as servers, desktop computers, cellular or smartphones, tablets, wearable electronic devices, laptop computers, 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 embodiment described herein (including with the performance of any method or with the implementation of any system).
- one or more embodiments 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 embodiments of the invention can be carried and/or executed.
- the numerous machines shown with embodiments of the invention include processor(s) 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 are all examples of machines and devices that utilize processors, memory, and instructions stored on computer-readable mediums. Additionally, embodiments may be implemented in the form of computer-programs, or a computer usable carrier medium capable of carrying such a program.
- FIG. 1 illustrates an example of a network computing system for arranging transport of delivery orders, according to one or more examples.
- a network computing system 100 provides a network delivery service that can be utilized by requesters, suppliers and service providers.
- the network computing system 100 may be implemented on a server, on a combination of servers, and/or on a distributed set of computing devices which communicate over a network such as the Internet. Still further, some examples provide for the network computing system 100 to be distributed using one or more servers and/or mobile devices.
- the network computing system 100 is implemented as part of, or in connection with a network system, where, for example, operators use service vehicles to provide transport-related services between locations.
- the network computing system 100 may be implemented using mobile devices of users, including service providers and requesters, with the individual devices executing a corresponding service application that causes the computing device to operate as an information inlet and/or outlet for the network computing system 100 .
- the system 100 implements a network platform, in connection with applications that run on mobile devices of the population of users.
- the users can include (i) operators (or “service providers”) of service vehicles, (ii) requesters who request and receive delivery orders transported by service providers, and (iii) suppliers, who provide requested delivery orders for transport. While some examples describe suppliers in context of food preparation (e.g., restaurant), the system 100 can be implemented to arrange delivery for other kinds of deliverable items, such as groceries, or serviced items. More generally, the system 100 may be implemented to arrange delivery of any type of item, including items which may require preparation.
- the system 100 includes a requester device interface 110 , a provider device interface 120 , a request handling component 128 , a supplier interface 130 , a matching component 140 , and one or more data stores which update information about requesters, order requests and providers. Additionally, the system 100 may include a provisioning subsystem 150 , to enable system 100 to adjust a provisioning level of the system 100 .
- the provisioning sub-system 150 enables a provisioning level of the system 100 to be estimated or otherwise ascertained with respect to an actual or expected demand from requesters in a given time period, and with respect to a given region (e.g., city or portions of city). Additionally, the provisioning sub-system 150 can be utilized to adjust the provisioning level with respect to the manner in which the system 100 provides a network service to arrange transport for delivery orders. In particular, the provisioning sub-system 150 can make adjustments to the ascertained provisioning level of the network service, in a manner that is optimized for objectives of the provided network service.
- various facets of the provided network service can be adjusted with fluctuations in demand from requesters, in order to, for example, maximize a number of order requests which can effectively be handled in a given duration of time.
- the optimization which can be performed through the network service may be implemented on a group level, so as to objectively accommodate the interests of service providers, suppliers, and requesters.
- the requester device interface 110 includes or performs processes that run on the network-side of the system 100 to establish communication channels with individual devices of requesters.
- the requesters may operate mobile devices (represented in FIG. 1 by the mobile device 104 ) on which a corresponding service application 106 may execute.
- the requesters may operate respective service applications 106 to request delivery services, and in some variations, other types transport-related services, such as human transport between a start location (or pickup location) and a destination (or drop-off).
- the requester device 102 may transmit requester information 103 to the system 100 .
- the requester information 103 may include an account identifier 105 , as well as the current location of the requester device 107 , which the service application 106 may obtain by interfacing with a satellite receiver or other location-aware resource of the requester device 102 . As described in greater detail, the requester information 103 can also be communicated with an order request 101 . In some variations, at least some of the requester information 103 (e.g., current location) may be communicated before a order request 101 is made on the requester device 102 .
- the provider device 104 initiates communications with the system 100 using the service application 116 .
- the service application 116 may correspond to a program (e.g., a set of instructions or code) that is downloaded and stored on the mobile device 104 of the service provider.
- the service provider can launch the service application 116 in order to utilize the system 100 to receive order requests and/or other type of service requests (e.g., transport requests).
- the service provider may operate a service vehicle to fulfill assigned service requests.
- the provider device 104 may repeatedly or continuously communicate service information 109 to the network computing system 100 .
- the service information 109 may include the provider's identifier 111 , and the provider's current location 113 , which may be determined by the service application interfacing with a satellite receiver of the provider device 104 .
- the provider device interface 120 includes or performs processes that run on the network-side of the system 100 to establish communication channels with individual devices of service providers.
- the device interface 110 can establish secure sockets with different types of mobile devices, which service providers of the system 100 can utilize when providing services using their respective vehicles.
- the service providers operate mobile devices (represented in FIG. 1 by the mobile device 104 ) on which a corresponding service application 116 may be operated.
- the service application 116 can automate operations which include indicating the availability of the service provider to provide service, communicate location information to enable the system 100 to monitor the location of the service provider's vehicle, receive information from the system 100 to facilitate the service provider in receiving order requests and fulfilling order requests, as well as communicating information to the system 100 for various purposes, including provisioning determination.
- the system 100 may include an active provider data store 134 that maintains records 135 that associate individual providers with their respective current location 113 and service status 133 .
- each service provider may start a shift by operating the service application 116 (e.g., opening the application on the provider's device 104 ), and then toggling a state feature provided by the service application 116 to ‘on duty’.
- the service application 116 communicates the activation of the state feature to the system 100 via the provider device interface 120 .
- the provider device interface 120 processes the service information 109 received from individual service providers. For each service provider, the provider device interface 120 extracts and stores the current location 113 of the provider device 104 with the provider's identifier 115 in the provider status store 134 .
- the service data store 134 may reflect the most current location of each service provider.
- the requester device interface 110 and the provider device interface 120 can each include or use an application programming interface (API), such as an externally facing API, to communicate data with the provider and requester devices 102 , 104 , respectively.
- API application programming interface
- the system 100 can establish secure communication channels via secure access channels over the network through any number of methods, such as web-based forms, programmatic access via RESTful APIs, Simple Object Access Protocol (SOAP), remote procedure call (RPC), scripting access, etc.
- the supplier interface 130 may correspond to a programmatic interface that transmits order requests from requesters to a terminal of a supplier.
- the supplier interface 130 transmits delivery orders to a computer system (e.g., reservation ordering system, point-of-sale device, dedicated take-out terminal, etc.) of the supplier.
- the supplier may operate a mobile device on which a service application for suppliers is provided, in order to receive order requests from the system 100 .
- the supplier may access the system 100 via, for example, a website or application interface (e.g., supplier service application) in order to accept order requests, as well as to provide information as to the preparation status of a order request. Additionally, the supplier may access the system 100 in order to provide menus or descriptions (including text and images) of available items for delivery.
- the system 100 may maintain a supplier library 126 , which includes a record 125 for each supplier.
- Each supplier record 125 may associate a respective supplier with an account identifier 127 , as well as a supplier location 129 and a set of deliverable items 131 provided by that supplier.
- the supplier may specify the items 131 via the supplier interface 130 .
- the supplier items 131 may be provided as an electronic document, or combination of records provided by the supplier, which can be retrievable and rendered on a requester device 102 in the form of, for example, a menu.
- the supplier items 131 may include a restaurant menu, or items for a restaurant menu.
- the requester device 102 when the requester launches the service application 106 , the requester device 102 provides the system 100 with the current location 107 of the requester.
- the requester can specify a service location for the delivery order that is different than the requester's current location 107 .
- the requester device interface 110 may communicate the requester's current location 107 (or alternatively, the service location specified by the requester) to a menu component 112 , and the menu component 112 may use the current location of the requester to retrieve item information 117 , representing a selection of the supplier's deliverable items 131 , from the supplier library 126 .
- the requester device interface 110 may communicate menu content 119 to the requester device 102 , via the service application 106 .
- the menu content 119 may also communicate one or more service value parameters 171 , indicating a charge or consideration which the requester will incur for receiving delivery of a requested item from the supplier.
- the user can browse through the menu content 119 in order to view a list of suppliers, and view items which each available supplier has available for delivery.
- the service application 106 may enable the user to interact with the menu on the requester device 102 , in order to select items for a delivery order. Upon making a selection for delivery order, the service application 106 may cause the requester device 102 to transmit a order request 101 to the system 100 .
- the requester status store 132 records instances when the service application 106 is launched on the requester device 102 .
- the requester status store 132 may associate a record with the requester of the requester device 102 (e.g., based on the account information provided by the requester device), and the record may reflect the state of the requester 100 to as being active.
- the requester's record may be updated and associated with the order request 101 .
- the order request 101 may be received by the requester device interface 110 and recorded in a requester-status store 132 .
- the requester device interface 110 and the menu component 112 may implement a geographic constraint for individual requesters, based on a service range parameter 169 .
- the service range parameter 169 may define a distance (e.g., travel distance) from the service location of the desired order request, from which available suppliers may be made available to the requester for purpose of order requests.
- the service range parameter 169 may be set to 2 miles or 12 minutes of travel time, and the menu component 112 may implement a filter to remove suppliers who are outside of a distance identified by the range parameter 169 . In this way, the service application 106 running on the requester device 102 is not provided with menu content 119 reflecting deliverable items from a supplier that is outside of the range parameter 169 .
- the range parameter 169 may be used to establish tiers amongst suppliers, with respect to the service location of a given order request 101 .
- the menu component 112 may, for example, implement tier logic 118 that sets alternative order request rules for suppliers based at least in part on a tier designation assigned to individual suppliers.
- the tier logic 118 may assign tier designations based in part on the location of the supplier as compared to the service location of the order request.
- the tier logic 118 may designate different minimum order sizes or values for order requests of suppliers, based in part on the tier designations of the respect suppliers.
- the tier logic 118 may implement one or more service value parameters 171 to determine different service values for delivery from different suppliers, based on the tier designation of the respective suppliers with respect to the service location.
- the request handling component 128 acts on the incoming order request 101 , and updates the status of the order request 101 as the order request is processed. Initially, the request handling component 128 may send a communication 139 to the supplier of the order request 101 , where the communication 139 identifies the items of a requester's order request 101 . The communication 139 may be communicated to a selected supplier view the supplier interface 130 . In some implementations, the supplier may acknowledge or confirm the communication 139 . For example, the supplier may provide input through a supplier service application, by messaging or other platform to acknowledge the communication 139 .
- the request handling component 128 can also trigger the matching component 140 to initiate a matching process to select a service provider for the order request 101 .
- the request handling component 128 may time when to trigger the matching component 140 , based on an expected time when the corresponding delivery order for the order request 101 is prepared.
- the timing of when to trigger the matching component 140 may include, for example, the request handling component 128 estimating an order preparation time.
- the request handling component 128 may time (e.g., delaying) the trigger for the matching component 140 based on a comparison of the preparation time and an estimated duration that includes an estimated time interval for when a service provider is matched to the delivery request and an estimated time interval for when the service provider travels to the location of the supplier to pick up the corresponding delivery order.
- the matching component 140 may be triggered so that the estimated arrival time of the service provider at the location of the supplier (e.g., time to match corresponding order request 101 to service provider and time for service provider to travel to location of the supplier) is within a threshold window of time of an estimated order preparation time for the supplier and/or items of the respective order request 101 .
- the determination of the delivery order preparation time may be made based on, for example, information associated with the supplier.
- the supplier store 126 may associate preparation time values with the supplier, and/or with the items that individual suppliers make available for delivery requests 101 .
- the order preparation time may be developed from models which monitor order requests from individual suppliers over a given time period.
- the request handling component 128 may determine, from the estimated order time of an item and/or supplier, that the preparation time is likely to be less than the estimated duration for matching the corresponding order request to a service provider and for the matched service provider to arrive at the location of the supplier. In such examples, the request handling component 128 may delay sending the communication 139 (for the corresponding order request 101 ) to the supplier specified by the respective order request 101 until after a service provider is matched to the respective order request 101 . In such examples, the delay in sending the communication 139 for the respective order request 101 may be measured so that the estimated order preparation time falls within a window of time that is estimated for a matched service provider to arrive at the location of the supplier.
- the matching component 140 may match the order request 101 to an available service provider based at least in part on the current location of individual providers with respect to the location of the supplier. In some variations, the matching component 140 may also match the order request 101 based on a desired arrival time for the provider at the location of the supplier. Thus, for example, the proximity of the service provider may not necessarily be a decisive selection criterion for selecting a given service provider.
- the request handling component 128 may select and implement batch decision logic 138 , in order to implement rules and parameters for determining when delivery orders can be batched.
- Batching may refer to instances when a service provider handles two delivery orders.
- the batch decision logic 138 may implement batching in accordance with one or multiple set of rules and/or parameters from which a decision can programmatically be made.
- the batch decision logic 138 may vary, so that different rules, parameters, and/or parametric values may be utilized to determine when batching can be performed.
- the batch decision logic 138 may implement alternative rules that determine (i) whether or not batching is permitted under any circumstances; and (ii) if batching is permitted, conditions under which multiple delivery orders may be batched.
- the conditions which may determine or influence batching decisions may include (i) a same supplier condition, in which batching of delivery orders is permitted when the delivery orders are prepared by a same supplier; (ii) a timing condition, which may set a window of time with respect to when order requests are prepared and/or delivered with respect to one another before batching is permitted; (iii) a supplier location condition, in which batching of delivery orders is permitted when the delivery orders are prepared by suppliers that satisfy a geographic condition with respect to each supplier's location and/or delivery location; and/or (iv) provisioning conditions, where a provisioning level determination 155 determines or influences batching decisions.
- batching may be maximized with respect to permissibility when, for example, an inadequate number of service providers are present to handle order requests. Conversely, batching may be minimized when there is oversupply of service providers, as separate service providers can be used to deliver orders which could otherwise be batched.
- timing parameters 167 may be utilized, as determined by the provisioning subsystem 150 , in order to determine when batching of delivery orders is permitted.
- the request handling component 128 may utilize one or more timing parameters 167 to minimize a wait time incurred by the service provider while at the supplier. For example, in the context of food preparation, if the arrival time of the service provider exceeds the time when the food is prepared, the prepared food may become cold or less desirable. At the same time, if the arrival time of the service provider is before when the prepared food is ready, the service provider is waiting, and thus underutilized.
- the request handling component 128 may include logic to initiate the matching process in a window of time that precedes an expected preparation time for the requested delivery order, so that an assigned service provider will arrive at the supplier location just when the requested delivery order is prepared and ready for pickup.
- FIG. 5 illustrates an example method which can be implemented by, for example, the request handling component 128 to control the selection of a service provider based at least in part on a determination of an optimized arrival time.
- the batch decision logic 138 may permit delivery orders to be batched if they are from the same supplier, and deliverable by a given service provider to multiple recipients at different locations within a predetermined time limit.
- the predetermined time limit may be set to, for example, order preparation time (or order pickup time) and/or order delivery time.
- one or more timing parameters 167 may set a limit of when the last batched order can be picked up and/or delivered with respect to the delivery order's preparation time and/or order request time (e.g., when the respective order request 101 was made).
- the timing parameter 167 may set a comparable window of time as between the pickup time or delivery time of each delivery order that is to be batched.
- other timing parameter(s) 167 may control when delivery orders can be batched from a given supplier.
- the batch decision logic 138 may implement alternative rules, which enable, for example, a service provider to handle delivery orders from different suppliers, subject to additional criteria being satisfied.
- the batch decision logic 138 may permit delivery orders from different providers to be batched, provided that, for example, the different suppliers satisfy a proximity condition with regard to their respective locations (e.g., suppliers are in same building, next to each other, on same block, within walking distance, etc.).
- the batch decision logic 138 may permit delivery orders from different providers to be batched, provided that, for example, the different suppliers satisfy a routing condition, such as the different suppliers being aligned along a route for purpose of delivery.
- the request handling component 128 can monitor the provider via updates to the provider location (e.g., as maintained in the provider status store 134 ). In particular, the request handling component 128 can track the provider to the location of the supplier, and from the location of the supplier to the service location of the order request 101 .
- the status of the requester's order request may be repeatedly updated by the request handling component 128 in the requester status store 132 , to reflect events such as (i) the order request 101 being communicated to the supplier; (ii) the supplier acknowledging the order request; (iii) one or more progress indicators for the order request being prepared, including when a corresponding delivery order is ready; (iv) a service provider picking up the corresponding delivery order; (v) progress of the service provider to the service location identified in a order request; and/or (vi) arrival of the service provider at the service location of the requester (e.g., the requester's current location, or specified location).
- events such as (i) the order request 101 being communicated to the supplier; (ii) the supplier acknowledging the order request; (iii) one or more progress indicators for the order request being prepared, including when a corresponding delivery order is ready; (iv) a service provider picking up the corresponding delivery order; (v) progress of the service provider to the service location identified in a order
- predictive information that may be useful to the requester may be determined and communicated to the requester device 102 .
- the estimated delivery time may be predicted initially before the requester makes the order request 101 .
- the delivery time may be updated for the requester.
- the delivery time may be updated as the matching component 140 identifies a service provider and as the request handling component 128 tracks the service provider from pickup to the location of the delivery order.
- the matching component 140 (and/or the request handling component 128 ) may change the associated state of the service provider, to reflect, for example, one or more unavailable states.
- the states of the service provider may include available, assigned to order request, on route to supplier, at supplier, on route to requester, and completing order request.
- the request handling component 128 may trigger an account manager 136 .
- the account manager 136 may record the fulfillment of the order request with respect to the accounts of the service provider, supplier, and requester. In some examples, a charge or other consideration is withdrawn from an account of the requester for the acquired delivery. Likewise, the account manager 136 may credit an account of the supplier for providing the delivery order. The account of the service provider may also be credited based at least partially on the service value parameter 171 associated with the fulfilled order request 101 .
- the provisioning sub-system 150 includes a provisioning level determination (“PLD”) component 152 , a forecasting component 154 and a provisioning level adjustment (“PLA”) component 156 .
- the PLD component 152 can estimate a provisioning level for a given region, either during a current time interval or for a future time interval, based on forecasted information from the forecasting component 154 .
- the provisioning level 155 can reflect a determination, for a given interval of time, of the adequacy of the number of service providers for the number of service requests that are to be handled.
- the forecasting component 154 may generate a forecast for one or more facets of the provisioning level determination.
- the forecasting component 154 can predict the number of service requests that are to be received by the system 100 over an immediate time interval, or for a time interval in the future.
- the forecasting component 154 may also forecast, or otherwise estimate a number of service providers that are (or will be) available in a given region to fulfill order requests 101 .
- the PLA component 156 can implement logic to adjust the provisioning level 155 of the system 100 , in a manner that optimizes for one or more service objectives of the system 100 .
- the provisioning sub-system 150 may utilize a variety of models 153 , including predictive models 153 A and/or optimization models 153 B.
- the predictive models 153 A can include tree-based models, deep learning models, neural network models, and/or regression models.
- the predictive models 153 A may be generated and trained to predict provisioning level determinations (e.g., number of order requests, conversion rate from requesters who have service application running without placing order, etc.) and timing predictions (e.g., order preparation time).
- the optimization models 153 B may include, for example, respective convex and non-convex models, and combine tutorial optimization models.
- a model development component 158 develops respective models 153 A, 153 B using machine learning processes, by which, for example, the models are trained and tuned over time, using real-time information (e.g., from requester data store 132 and/or provider data store 134 ) and historical information 159 .
- the model development component 158 may develop one or more models 153 for use by the provisioning subsystem 150 .
- the provisioning models 153 may include a conversion model that enables the forecasting component 154 to use real-time information to generate a forecast 157 for the number of order requests.
- the conversion model may, for example, utilize as input real-time information, obtained from the requester status store 132 , corresponding to the number of active requesters who have not yet made a order request.
- the model development component 158 may analyze historical information 159 (e.g., prior snapshots of the requester status store 132 during prior time periods) to detect (i) an active requester session event, coinciding with a requester initiating a session with the system 100 by launching the service application 106 on their respective device 102 ; and (ii) a conversion event, coinciding with an active requester making a order request.
- Other information which may be determined from analysis of historical data may include, for example, a length of time for a conversion event to take place for individual requesters, and the suppliers which an active requester viewed.
- the model development component 158 may record the occurrences of events (e.g., active requester session event, conversion event) over a continuous interval of time.
- the model development component 158 may utilize input parameters which reflect a velocity value (or acceleration value or other derivative thereof) with request to a number of order requests, a number of active requesters, and/or a number of converted requesters.
- model development component 158 may also develop predictive models for use in forecasting delivery requests for future intervals, when pertinent real-time information does not yet exist.
- the model development component 158 may develop such predictive models 153 using historical information, such as through statistical analysis, to predict a number of active requesters that may come online in a given time interval, a conversion rate of active requesters, and/or a number of order requests which may be generated from the population of users.
- the model development component 158 may also account for contextual information. For example, the model development component 158 may associate the historical information with day of week, time of day, month of year, events (e.g., sporting events), weather and other related information.
- events e.g., sporting events
- the forecasting component 154 may utilize the models 153 generated by the model development component 158 to make one or more forecasts 157 as to demand in a current time interval and/or one or more future time intervals (e.g., number of order requests which may be received in a given duration of time). According to an example, the forecasting component 154 obtains real-time information from the requester status store 132 in order to forecast a number of order requests which may be received in a current (e.g., over the next hour) or near future interval (over the next four hours).
- the real-time information may include, for example, a number of active requesters who have yet to make an order request, the amount of time each active requester has spent viewing the menu content 119 for individual suppliers, and/or the suppliers (e.g., respective menu of suppliers) which were viewed by the respective requesters.
- the forecasting component 154 may utilize, for example, a conversion model to predict a number of order requests which the system 100 will receive in a current or immediate time interval, as well as for upcoming time intervals (e.g., number of service requests which may be received in the next four 1-hour time slots).
- the forecasting component 154 may also utilize the models 153 generated by the model development component 158 to estimate the number of order requests that the system 100 is expected to receive in future time intervals.
- the model development component 158 may generate a schedule that identifies an expected number of order requests for time slots of an upcoming future time interval (e.g., hourly order request projections for each day of an upcoming week).
- the model development component 158 may also monitor the requester status store 132 in order to compare a forecast 157 of the forecasting component 154 with respect to the number of order requests received (or the number of active requesters, etc.) with the actual outcome. Based on the comparison, the model development component 158 may tune the models 153 deployed by the forecasting component 154 .
- the model development component 158 may develop and implement predictive models regarding timing-related characteristics of individual suppliers.
- the model determination component 158 may monitor the requester status store 132 to determine statistical samples of one or more timing-related characteristics of individual suppliers.
- a timing-related characteristic of a supplier may correspond to preparation time for the supplier to prepare a delivery order.
- the timing-related characteristics can identify the amount of time that a service provider typically expends upon arriving at the location of the supplier and departing with the delivery order.
- the model determination component 158 obtains data points for the length of in which a supplier (e.g., restaurant) takes to prepare a food item for a delivery order.
- the timing related characteristics may be associated with the supplier and the corresponding supplier record 125 .
- the PLD component 152 may estimate the provisioning level 155 for current and future intervals of time based on forecasts 157 , as well as service provider availability projections.
- the provisioning level 155 corresponds to a metric (e.g., a ratio) that is based on a comparison of (i) an estimated number of order requests received in a given time period for a given region, and (ii) a number of service providers in the given region that are likely to be available to provide delivery service for the order requests.
- the estimated number of service providers may be determined from, for example, real-time information (e.g., as determined from the provider status store 132 ), as well as from historical information (e.g., snapshots of the provider status store 132 in prior time intervals).
- the PLA component 156 may implement a set of provisioning parameters 165 based on the provisioning level 155 .
- the provisioning parameters 165 may define respective parametric values for use with rules, process or other logic of a network delivery service. Additionally, the provisioning parameters 165 , when changed, affect a provisioning level of the network service in accordance with a generally known relationship. According to some examples, a change in a provisioning parameter may increase or decrease a number of service requests (e.g., order requests) that the network computing system 100 may handle, based on a known or expected relationship with respect to the change in the provisioning parameter.
- service requests e.g., order requests
- the provisioning parameters 165 may have a default value when, for example, the provisioning level 155 is neutral (e.g., expected number of order requests to match available service providers), or otherwise at a desired value.
- the PLA component 156 may adjust the value of the provisioning parameters 165 in order to adjust the provisioning level 155 .
- the provisioning parameters 165 may affect various facets of the delivery service implemented by system 100 .
- the PLA component 156 may utilize multiple sets of provisioning parameters based on the sub-region or region considered.
- the provisioning parameters 165 reflect a facet or aspect of the service provided by the system 100 which can be adjusted to cause a predicted change to the provisioning level 155 of the service provided.
- the values for the individual provisioning parameters 165 may be based on an optimization determination for one or more objectives of the system 100 . The optimization determination may be made through implementation of one or more optimization processes (shown as optimization logic 166 ) which optimize aspects of the provisioning level for a particular service objective 161 .
- the system 100 may implement one or multiple service objectives 161 , such as maximizing a number of order requests which are handled in a given duration of time, or minimizing a delivery time for order requests which are received.
- the values of the provisioning parameters 165 may thus be determined by the particular objective, or set of objectives, of the selected optimization process.
- a relationship between the individual provisioning parameters 165 and the provisioning level 155 may also be predetermined or otherwise known. For example, an adjustment in the value of a given one of the provisioning parameters 165 may be known to have a likely impact in increasing the number of service requests which are handled by the system 100 , while at the same time negatively impacting another objective of reducing the service time for order requests.
- the model development component 158 may, for example, establish relationships between the values of the individual provisioning parameters 165 and the impact of the provisioning parameter value on the provisioning level 155 for a given region or time interval.
- the relationships may be granular (e.g., a change to provisioning parameter will increase the number of service requests which can be handled through the system 100 ) or more precise (e.g., a change to provisioning parameter will have a percentage impact (e.g., 5%) on the conversion rate).
- the provisioning parameters 165 include one or more timing parameters 167 , a service range parameter 169 , and a service value parameter 171 .
- the one or more timing parameters 167 may reflect a target time interval or a time-limited constraint (e.g., maximum acceptable time interval) by which a particular event in the fulfillment of a order request is to take place.
- the timing parameter 167 may reflect either a target time or time-limited constraint, for one or more of (i) the delivery time (e.g., from the time that the order request 101 is made until when the order is delivered to the requester); (ii) a wait time incurred by the service provider, such as measured by an interval between when the service provider arrives and departs from the location of the supplier; (iii) a time interval from when a delivery order is prepared until it is picked up; and/or (iv) a time interval from when a delivery order is prepared until it is delivered.
- the request handling component 128 is able to batch a greater number of order requests, as the amount of time by which order requests can be matched to one another is increased.
- the service range parameter 169 may reflect a range, such as a travel or absolute distance, between the location of the supplier and the service location of an order request.
- the service range parameter 169 may be expressed as a travel distance, reflecting a time and/or distance of travel from the location of the supplier to the service location of the order request.
- the service range parameter 169 may be used by, for example, the menu component 112 to identify which suppliers of the supplier store 126 can be used for the menu items 131 .
- the menu component 112 may query the supplier store 126 for suppliers who have locations 129 that satisfy a proximity condition with respect to the current location 107 of the requester, where the proximity condition is based on the service range parameter 169 .
- the menu component 112 may select a greater number of suppliers from which items 131 may be used to generate the menu content 119 on the requester device 102 . Conversely, by decreasing the value of the service range parameter 169 , the menu component 112 may select a fewer number of supplies from which items 131 can be used to generate menu content 119 for the requester device 102 .
- the increase or decrease with respect to the number of suppliers which are provided to individual requesters can affect the number of order requests 101 which the system receives, as requesters are more likely to generate order requests 101 when a greater number of options are available.
- the provisioning sub-system 150 may forecast an increase in the conversion rate, such that a greater number of order requests 101 are received over a given time period.
- the forecasted number of order requests 101 may be used to engage existing service providers and generally generate a greater number of service requests for service provider.
- the optimization logic 166 may balance the value of the service range 169 in view of constraints such as added cost to service providers, in order to meet a service level objective (e.g., greater number of order requests fulfilled through the system 100 ).
- the service value parameter 171 may reflect a service value that is charged to the requester as part of the delivery order. As described with various examples, the service value parameter 171 may fluctuate to accommodate factors such as distance a service provider travels to fulfill the service order, tier designations for suppliers and/or availability of service providers. In some examples, the service value parameter 171 may be used to adjust the number of available service providers during a given time interval. For example, the service value parameter 171 may also be utilized by the account manager 136 , which can adjust a credit or value to the service provider based on changes to the service value parameter 171 .
- the service value parameter 171 may be raised, reflecting greater value and reward for service providers to assist with order requests in the given region.
- the service value parameter 171 may be communicated to the provider device interface 120 , where the service value may be published to nearby providers.
- the provider device interface 120 may also publish the increase in the service value parameter 171 to draw in more service providers. In this way, the change in the service value parameter 171 may increase or decrease the number of service providers who operate in a given region.
- FIG. 2 illustrates an example method for identifying suppliers for delivery service to individual requesters.
- FIG. 3 illustrates an example method for arranging transport for multiple delivery orders.
- FIG. 4 illustrates an example method for arranging transport for delivery orders in a manner that affects a provisioning level of the provided service.
- FIG. 5 illustrates another example method for arranging transport for delivery orders to minimize service provider wait time.
- a network computing system causes the mobile device of individual requesters to transmit their respective location ( 210 ).
- the requester devices 102 may execute service applications 106 which access a satellite receiver or other location-aware resource of the mobile device.
- a requester may open the service application 106 on their respective mobile device 102 to initiate a session with the network computing system 200 .
- the network computing system 200 transmits information (e.g., menu content 119 ) to identify suppliers (e.g., restaurants) within a designated range of the requester ( 220 ).
- the suppliers may be identified by providing a supplier menu to the requester device.
- the requester may browse menus from multiple suppliers that are within the designated service range with respect to the current location of the requester.
- the designated range may reflect a threshold distance of travel between the location of the supplier and the current location of the requester.
- the designated range may be based at least in part on a provisioning level determination for the given region ( 222 ) (e.g., a comparison of the estimated number of order requests and the number of available service providers). For example, as described with an example of FIG.
- the designated range may be determined by the service parameter 169 , which the provisioning sub-system 150 may determine based on the determined provisioning level 155 and the implementation of optimization processes by the optimization logic 166 .
- the system 100 may change the designated service range so that a greater or lesser number of suppliers are available to a given requester.
- system 100 may also adjust other parameters, such as the service value 171 (e.g., provide additional incentive for service providers to drive extra distance), based on a known or predicted relationship between the change in the value of the respective service parameters and the provisioning level 155 .
- the selection of suppliers for a given requester may be dynamic and based on the current location of the requester ( 224 ).
- the system 100 may monitor the location of the mobile devices of individual requesters, and reselect the suppliers that are displayed on the respective mobile devices based on an updated location of the requester.
- FIG. 2 may reflect when the requester device 102 is placed in a pre-requests state, such as when the requester opens the service application 106 to browse available menus.
- the provisioning sub-system 150 may utilize the pre-request state of the requester in determining the provisioning level 155 for a sub-region where the requester is located.
- the provisioning sub-system 150 may also generate a forecast based on, for example, a prediction as to whether the requester will generate an order request 101 .
- the prediction of whether the user will generate the order request 101 may be based in part on a predicted or observed conversion rate as to the number of requesters who view menu content 119 from suppliers of the region and those who generate a respective order request using the menu content 119 .
- the system 100 may implement a service to arrange transport for order requests.
- the system 100 may receive order requests from requester devices of a given region, with each order request specifying a respective supplier ( 310 ).
- the system 100 selects a service provider to transport a corresponding delivery order from a corresponding supplier to a location of the requester ( 320 ).
- the network computing system determines a provisioning level indicator for the given region, for a current or future time interval ( 330 ).
- the provisioning level indicator may be determined at least in part by requester devices 102 , which communicate with the system 100 using the respective service application 106 .
- the system 100 selects the service provider for individual order requests by selecting one of multiple available decision logics to implement for the given region in the given time interval, where the selection of the decision logic is based at least in part on the determined provisioning level indicator ( 340 ).
- the system 100 may implement the selected decision logic to determine whether individual delivery orders, generated in response to respective order requests, can be batched for delivery to respective requesters. When delivery orders are batched, the same service provider may transport the respective delivery orders to their respective destinations.
- the system 100 may implement a first decision logic to batch multiple delivery orders for delivery to respective requesters based on the multiple delivery orders satisfying at least a first timing criterion ( 342 ).
- the timing criterion may be parameterized (e.g., timing parameter 167 ) and subject to change, based on conditions such as provided by provisioning level markers and determinations.
- the system 100 may relax the timing parameter 167 in order to provide additional time for matched delivery orders to take place.
- the timing criterion may be based on, for example, the delivery time (e.g., change in delivery time for each of multiple delivery orders that are batched together).
- the timing criterion may correspond to a wait time incurred by the service provider, such as measured by an interval between when the service provider arrives and departs from the location of the supplier.
- the timing parameter may correspond to a time interval from when a delivery order is prepared until it is picked up.
- the timing criterion may correspond to a time interval from when a delivery order is prepared until it is delivered.
- the request handling component 128 is able to batch a greater number of order requests, as the amount of time by which order requests can be matched to one another is increased.
- the system 100 arranges transport for delivery orders in a given region, in accordance with a set of provisioning parameters ( 410 ).
- the system 100 receives order requests from corresponding requester devices, with each order request specifying a respective supplier. Additionally, the system 100 matches each received order request to a respective service provider, in order to transport a corresponding delivery order from a respective supplier to a location of the respective requester of the service request.
- the set of provisioning parameters may include a service value parameter, and at least one of a service batching parameter or a service range parameter.
- the network computing system may determine a forecast for expected service requests that are received for a given region, during a current or immediate time interval ( 420 ).
- the forecast may be determined from a model that utilizes real-time information.
- the model determination component 158 accesses the requester data store 132 to determine the number of active requesters who initiated a session with the system 100 , but who have not yet made a delivery order.
- the system 100 determines the provisioning level 155 for the given region during the upcoming time interval, based at least in part on the forecast ( 430 ). Based on the forecast, the system 100 makes a determination as to whether any of the provisioning parameters 165 in the set should be adjusted to change the provisioning level to a desired target ( 440 ). Thus, the system 100 may change the value of the provisioning parameters 165 in order to adjust the determined or forecasted provisioning level 155 .
- the service value 171 may be changed to, for example, increase the number of service providers.
- the service range 169 may be increased or decreased to increase or decrease demand (e.g., conversion rate increases with more choices for requesters).
- the provisioning parameters are adjusted in accordance with one or more optimization processes which are based on service level objectives ( 442 ).
- the service level objectives may correspond to, for example, maximizing a number of service requests which are processed over a given time period, minimizing a travel distance of service providers, and/or minimizing a wait time of requesters for delivery orders.
- the system 100 receives order requests from requesters of a given region, and the system selects individual service providers for each order request.
- the system 100 selects the service provider by predicting an order preparation time of the supplier of the order request ( 510 ).
- the system 100 may develop a predictive model using historical information and/or real-time monitoring ( 512 ).
- the model development component 158 of the system 100 may develop a predictive model based on information determined from the requester status store 132 .
- the model development component 158 may monitor the requester status store 132 and/or the provider status store 134 in order to determine instances when a service provider arrived at the location of the supplier early, before the delivery order was prepared.
- the determination may be made by identifying instances when the service provider had to wait before leaving.
- the presumption that can be made from the service provider waiting may be that the delivery order was not yet prepared at the time when the provider arrives at the location of the supplier.
- the departure time of the service provider may be used to estimate the preparation time for the delivery order.
- the arrival and departure times may be determined automatically, based on, for example, the current location of the provider device 104 .
- the system 100 may attempt to select a service provider during a time interval that precedes the predicted order preparation time ( 520 ).
- the matching component 140 may, for example, be triggered by the request handling component 128 to generate a request to identify a service provider who can be assigned to travel to the location of the supplier and arrive at a time that is within a window of margin with respect to the predicted order preparation time ( 522 ).
- a determination is made as to whether the order request can be immediately matched to a service provider ( 525 ). If the order request is matched to the service provider, then the service provider may be tracked to arrive at the supplier within the window of margin ( 528 ).
- the requester may receive an estimated time for the delivery order to arrive at the requester's location based on the arrival time of the service provider at the location of the supplier ( 532 ).
- the system 100 may continue to monitor and update the requester through the stags of the delivery order.
- the process may be repeated at ( 520 ).
- the service handling component 128 may trigger the matching component 140 again, at a different time interval, to find a match for the order request.
- the process may be repeated over the time interval preceding the predicted order preparation time. As the window to match the order request to the service provider gets smaller, the region(s) which the matching component 140 attempts to match becomes closer to the location of the supplier.
- FIG. 6 illustrates a computer system on which one or more embodiments can be implemented.
- a computer system 600 can be implemented on, for example, a server or combination of servers.
- the computer system 600 may be implemented as part of the of an example of FIG. 1 .
- the computer system 600 can implement a method such as described with examples of FIG. 2 through FIG. 5 .
- the computer system 600 includes processing resources 610 , memory resources 620 (e.g., read-only memory (ROM) or random-access memory (RAM)), a storage device 640 , and a communication interface 650 .
- the computer system 600 includes at least one processor 610 for processing information stored in the main memory 620 , 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 610 .
- the main memory 620 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processor 610 .
- the computer system 600 may also include the memory resources 620 or other static storage device for storing static information and instructions for the processor 610 .
- the storage device 640 such as a magnetic disk or optical disk, is provided for storing information and instructions.
- the communication interface 650 enables the computer system 600 to communicate with one or more networks (e.g., cellular network) through use of the network link 680 (wireless or a wire).
- the computer system 600 can communicate with one or more computing devices, specialized devices and modules, and one or more servers.
- the executable instructions stored in the memory 630 can include instructions 642 , to implement a network computing system such as described with an example of FIG. 1 .
- the executable instructions stored in the memory 620 may also implement a method, such as described with one or more examples of FIG. 2 through FIG. 5 .
- examples described herein are related to the use of the computer system 600 for implementing the techniques described herein.
- techniques are performed by the computer system 600 in response to the processor 610 executing one or more sequences of one or more instructions contained in the memory 620 .
- Such instructions may be read into the memory 620 from another machine-readable medium, such as the storage device 640 .
- Execution of the sequences of instructions contained in the memory 620 causes the processor 610 to perform the process steps described herein.
- hard-wired circuitry may be used in place of or in combination with software instructions to implement examples described herein.
- the examples described are not limited to any specific combination of hardware circuitry and software.
- FIG. 7 is a block diagram illustrating an example user device for use with examples as described.
- a user device 700 may execute a designated service application for a network service implemented through a network computing system 100 such as described with an example of FIG. 1 .
- a user device 700 can include a mobile computing device, such as a smartphone, tablet computer, laptop computer, VR or AR headset device, and the like.
- the user device 700 can include typical telephony and/or tablet features such as a microphone 745 , a camera 750 , a satellite receiver 760 , and a communication interface 710 to communicate with external entities using any number of wireless communication protocols.
- the user device 700 can store a designated application (e.g., a service app 732 ) in a local memory 730 .
- the memory 730 can store additional applications executable by one or more processors 740 of the user device 700 , enabling access and interaction with one or more host servers over one or more networks 780 .
- the service application 732 can interact with the computer system 700 to display an application interface 742 on a display screen 720 of the user device 700 .
- the application interface 742 can be used to display menu content 119 , and enable the requester to make order requests from the network computing system 100 .
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Economics (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
- Examples provide for a network computer system to implement predictive time-based determinations for fulfilling delivery orders.
- Numerous on-demand services exist to offer users a variety of services: transportation, shipping, food delivery, groceries, pet sitting, mobilized task force and others. Typically, on-demand services leverage resources available through mobile devices, such as wireless (e.g., cellular telephony) devices, which offer developers a platform that can access sensors and other resources available through the mobile device. Many on-demand services include dedicated applications (sometimes referred to as “apps”) to communicate with a network service through which an on-demand service is offered.
-
FIG. 1 illustrates an example of a network computing system for arranging transport of delivery orders, according to one or more examples. -
FIG. 2 illustrates an example method for identifying suppliers for delivery service to individual requesters. -
FIG. 3 illustrates an example method for arranging transport for multiple delivery orders. -
FIG. 4 illustrates an example method for arranging transport for delivery orders in a manner that affects a provisioning level of the provided service. -
FIG. 5 illustrates another example method for arranging transport for delivery orders to minimize service provider wait time. -
FIG. 6 illustrates a computer system on which one or more embodiments can be implemented. -
FIG. 7 is a block diagram illustrating an example user device for use with examples as described. - According to some examples, a network computing system implements operations to arrange transport services for delivery orders.
- In some examples, a network computing system estimates a provisioning level for a given time interval for one or more regions. The provisioning level determination may be based on an estimated number of order requests, and a number of available service providers in the given region that are available to provide transport in fulfilling the order requests. For individual requesters within the given region, the computer system selects a set of multiple suppliers for a respective supplier menu that is displayed on a mobile device of the requester. The selection of suppliers for individual requesters may be based at least in part on a current location of the requesters, and at least one of the estimated number of order requests or the estimated number of available service providers.
- In variations, a network computing system arranges transport for delivery orders by (i) predicting an order preparation time of the respective supplier for the order request; (ii) during a time interval that precedes the order preparation time, generating a request for a service provider, based at least in part on a determination that an arrival time of a matched service provider to the respective supplier is within a designated threshold of the order preparation time. An order delivery time for the requester may be estimated based at least in part on the predicted order preparation time and an estimated trip time from a location of the supplier to a location of requester.
- As used herein, a client device refers to devices corresponding to desktop computers, cellular devices or smartphones, wearable devices, laptop computers, tablet devices, television (IP Television), etc., that can provide network connectivity and processing resources for communicating with the system over a network. A driver device can also correspond to custom hardware, in-vehicle devices, or on-board computers, etc. The client device and/or the driver device can also operate a designated application configured to communicate with the
system 100. - While some examples described herein relate to transport services, the
system 100 can enable other on-demand location-based services (e.g., a food truck service, a delivery service, an entertainment service) to be arranged between individuals and service providers. For example, a user can request an on-demand service, such as a delivery service (e.g., food delivery, messenger service, food truck service, or product shipping) or an entertainment service (e.g., mariachi band, string quartet) using the system, and the system can select a service provider, such as a driver, food provider, band, etc., to provide the on-demand service for the user. - One or more embodiments 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.
- One or more embodiments 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.
- Some embodiments described herein can generally require the use of computing devices, including processing and memory resources. For example, one or more embodiments described herein may be implemented, in whole or in part, on computing devices such as servers, desktop computers, cellular or smartphones, tablets, wearable electronic devices, laptop computers, 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 embodiment described herein (including with the performance of any method or with the implementation of any system).
- Furthermore, one or more embodiments 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 embodiments of the invention can be carried and/or executed. In particular, the numerous machines shown with embodiments of the invention include processor(s) 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, embodiments may be implemented in the form of computer-programs, or a computer usable carrier medium capable of carrying such a program.
-
FIG. 1 illustrates an example of a network computing system for arranging transport of delivery orders, according to one or more examples. According to examples, anetwork computing system 100 provides a network delivery service that can be utilized by requesters, suppliers and service providers. Thenetwork computing system 100 may be implemented on a server, on a combination of servers, and/or on a distributed set of computing devices which communicate over a network such as the Internet. Still further, some examples provide for thenetwork computing system 100 to be distributed using one or more servers and/or mobile devices. In some variations, thenetwork computing system 100 is implemented as part of, or in connection with a network system, where, for example, operators use service vehicles to provide transport-related services between locations. In variations, thenetwork computing system 100 may be implemented using mobile devices of users, including service providers and requesters, with the individual devices executing a corresponding service application that causes the computing device to operate as an information inlet and/or outlet for thenetwork computing system 100. - In some examples, the
system 100 implements a network platform, in connection with applications that run on mobile devices of the population of users. For a given geographic region, the users can include (i) operators (or “service providers”) of service vehicles, (ii) requesters who request and receive delivery orders transported by service providers, and (iii) suppliers, who provide requested delivery orders for transport. While some examples describe suppliers in context of food preparation (e.g., restaurant), thesystem 100 can be implemented to arrange delivery for other kinds of deliverable items, such as groceries, or serviced items. More generally, thesystem 100 may be implemented to arrange delivery of any type of item, including items which may require preparation. - With reference to an example of
FIG. 1 , thesystem 100 includes arequester device interface 110, aprovider device interface 120, arequest handling component 128, asupplier interface 130, amatching component 140, and one or more data stores which update information about requesters, order requests and providers. Additionally, thesystem 100 may include aprovisioning subsystem 150, to enablesystem 100 to adjust a provisioning level of thesystem 100. - As described with some examples, the
provisioning sub-system 150 enables a provisioning level of thesystem 100 to be estimated or otherwise ascertained with respect to an actual or expected demand from requesters in a given time period, and with respect to a given region (e.g., city or portions of city). Additionally, theprovisioning sub-system 150 can be utilized to adjust the provisioning level with respect to the manner in which thesystem 100 provides a network service to arrange transport for delivery orders. In particular, theprovisioning sub-system 150 can make adjustments to the ascertained provisioning level of the network service, in a manner that is optimized for objectives of the provided network service. In this manner, various facets of the provided network service can be adjusted with fluctuations in demand from requesters, in order to, for example, maximize a number of order requests which can effectively be handled in a given duration of time. Moreover, the optimization which can be performed through the network service may be implemented on a group level, so as to objectively accommodate the interests of service providers, suppliers, and requesters. - The
requester device interface 110 includes or performs processes that run on the network-side of thesystem 100 to establish communication channels with individual devices of requesters. The requesters may operate mobile devices (represented inFIG. 1 by the mobile device 104) on which acorresponding service application 106 may execute. The requesters may operaterespective service applications 106 to request delivery services, and in some variations, other types transport-related services, such as human transport between a start location (or pickup location) and a destination (or drop-off). When theservice application 106 is launched on therequester device 102, therequester device 102 may transmitrequester information 103 to thesystem 100. Therequester information 103 may include anaccount identifier 105, as well as the current location of therequester device 107, which theservice application 106 may obtain by interfacing with a satellite receiver or other location-aware resource of therequester device 102. As described in greater detail, therequester information 103 can also be communicated with anorder request 101. In some variations, at least some of the requester information 103 (e.g., current location) may be communicated before aorder request 101 is made on therequester device 102. - According to some examples, the
provider device 104 initiates communications with thesystem 100 using theservice application 116. Theservice application 116 may correspond to a program (e.g., a set of instructions or code) that is downloaded and stored on themobile device 104 of the service provider. The service provider can launch theservice application 116 in order to utilize thesystem 100 to receive order requests and/or other type of service requests (e.g., transport requests). The service provider may operate a service vehicle to fulfill assigned service requests. Once the communication channel is established by theprovider device 104 using theservice application 116, theprovider device 104 may repeatedly or continuously communicateservice information 109 to thenetwork computing system 100. Theservice information 109 may include the provider'sidentifier 111, and the provider'scurrent location 113, which may be determined by the service application interfacing with a satellite receiver of theprovider device 104. - The
provider device interface 120 includes or performs processes that run on the network-side of thesystem 100 to establish communication channels with individual devices of service providers. For example, thedevice interface 110 can establish secure sockets with different types of mobile devices, which service providers of thesystem 100 can utilize when providing services using their respective vehicles. In some examples, the service providers operate mobile devices (represented inFIG. 1 by the mobile device 104) on which acorresponding service application 116 may be operated. Among other functionality, theservice application 116 can automate operations which include indicating the availability of the service provider to provide service, communicate location information to enable thesystem 100 to monitor the location of the service provider's vehicle, receive information from thesystem 100 to facilitate the service provider in receiving order requests and fulfilling order requests, as well as communicating information to thesystem 100 for various purposes, including provisioning determination. - The
system 100 may include an activeprovider data store 134 that maintainsrecords 135 that associate individual providers with their respectivecurrent location 113 andservice status 133. By way of example, each service provider may start a shift by operating the service application 116 (e.g., opening the application on the provider's device 104), and then toggling a state feature provided by theservice application 116 to ‘on duty’. Theservice application 116 communicates the activation of the state feature to thesystem 100 via theprovider device interface 120. Theprovider device interface 120 processes theservice information 109 received from individual service providers. For each service provider, theprovider device interface 120 extracts and stores thecurrent location 113 of theprovider device 104 with the provider'sidentifier 115 in theprovider status store 134. As the service provider's location changes (e.g., with movement of the service provider's vehicle), subsequent communications from theprovider device 104 via theprovider device interface 120 can be used to update theprovider status store 134. In this way, theservice data store 134 may reflect the most current location of each service provider. - In some examples, the
requester device interface 110 and theprovider device interface 120 can each include or use an application programming interface (API), such as an externally facing API, to communicate data with the provider andrequester devices system 100 can establish secure communication channels via secure access channels over the network through any number of methods, such as web-based forms, programmatic access via RESTful APIs, Simple Object Access Protocol (SOAP), remote procedure call (RPC), scripting access, etc. - The
supplier interface 130 may correspond to a programmatic interface that transmits order requests from requesters to a terminal of a supplier. The context of food delivery, thesupplier interface 130 transmits delivery orders to a computer system (e.g., reservation ordering system, point-of-sale device, dedicated take-out terminal, etc.) of the supplier. In some examples, the supplier may operate a mobile device on which a service application for suppliers is provided, in order to receive order requests from thesystem 100. The supplier may access thesystem 100 via, for example, a website or application interface (e.g., supplier service application) in order to accept order requests, as well as to provide information as to the preparation status of a order request. Additionally, the supplier may access thesystem 100 in order to provide menus or descriptions (including text and images) of available items for delivery. - The
system 100 may maintain asupplier library 126, which includes arecord 125 for each supplier. Eachsupplier record 125 may associate a respective supplier with anaccount identifier 127, as well as asupplier location 129 and a set ofdeliverable items 131 provided by that supplier. The supplier may specify theitems 131 via thesupplier interface 130. Thesupplier items 131 may be provided as an electronic document, or combination of records provided by the supplier, which can be retrievable and rendered on arequester device 102 in the form of, for example, a menu. By way of example, thesupplier items 131 may include a restaurant menu, or items for a restaurant menu. - According to some examples, when the requester launches the
service application 106, therequester device 102 provides thesystem 100 with thecurrent location 107 of the requester. In some variations, the requester can specify a service location for the delivery order that is different than the requester'scurrent location 107. Therequester device interface 110 may communicate the requester's current location 107 (or alternatively, the service location specified by the requester) to amenu component 112, and themenu component 112 may use the current location of the requester to retrieveitem information 117, representing a selection of the supplier'sdeliverable items 131, from thesupplier library 126. Therequester device interface 110 may communicatemenu content 119 to therequester device 102, via theservice application 106. As described with some examples below, themenu content 119 may also communicate one or moreservice value parameters 171, indicating a charge or consideration which the requester will incur for receiving delivery of a requested item from the supplier. The user can browse through themenu content 119 in order to view a list of suppliers, and view items which each available supplier has available for delivery. Theservice application 106 may enable the user to interact with the menu on therequester device 102, in order to select items for a delivery order. Upon making a selection for delivery order, theservice application 106 may cause therequester device 102 to transmit aorder request 101 to thesystem 100. - In some examples, the
requester status store 132 records instances when theservice application 106 is launched on therequester device 102. In such cases, therequester status store 132 may associate a record with the requester of the requester device 102 (e.g., based on the account information provided by the requester device), and the record may reflect the state of the requester 100 to as being active. Once theorder request 101 is received from therequester device 102, the requester's record may be updated and associated with theorder request 101. - The
order request 101 may be received by therequester device interface 110 and recorded in a requester-status store 132. In some examples, therequester device interface 110 and themenu component 112 may implement a geographic constraint for individual requesters, based on aservice range parameter 169. Theservice range parameter 169 may define a distance (e.g., travel distance) from the service location of the desired order request, from which available suppliers may be made available to the requester for purpose of order requests. For example, theservice range parameter 169 may be set to 2 miles or 12 minutes of travel time, and themenu component 112 may implement a filter to remove suppliers who are outside of a distance identified by therange parameter 169. In this way, theservice application 106 running on therequester device 102 is not provided withmenu content 119 reflecting deliverable items from a supplier that is outside of therange parameter 169. - As an addition or variation, the
range parameter 169 may be used to establish tiers amongst suppliers, with respect to the service location of a givenorder request 101. Themenu component 112 may, for example, implementtier logic 118 that sets alternative order request rules for suppliers based at least in part on a tier designation assigned to individual suppliers. Thetier logic 118 may assign tier designations based in part on the location of the supplier as compared to the service location of the order request. Based on implementation, thetier logic 118 may designate different minimum order sizes or values for order requests of suppliers, based in part on the tier designations of the respect suppliers. As an addition or variation, thetier logic 118 may implement one or moreservice value parameters 171 to determine different service values for delivery from different suppliers, based on the tier designation of the respective suppliers with respect to the service location. - According to some examples, the
request handling component 128 acts on theincoming order request 101, and updates the status of theorder request 101 as the order request is processed. Initially, therequest handling component 128 may send acommunication 139 to the supplier of theorder request 101, where thecommunication 139 identifies the items of a requester'sorder request 101. Thecommunication 139 may be communicated to a selected supplier view thesupplier interface 130. In some implementations, the supplier may acknowledge or confirm thecommunication 139. For example, the supplier may provide input through a supplier service application, by messaging or other platform to acknowledge thecommunication 139. - The
request handling component 128 can also trigger thematching component 140 to initiate a matching process to select a service provider for theorder request 101. In some examples, therequest handling component 128 may time when to trigger thematching component 140, based on an expected time when the corresponding delivery order for theorder request 101 is prepared. The timing of when to trigger thematching component 140 may include, for example, therequest handling component 128 estimating an order preparation time. In particular, therequest handling component 128 may time (e.g., delaying) the trigger for thematching component 140 based on a comparison of the preparation time and an estimated duration that includes an estimated time interval for when a service provider is matched to the delivery request and an estimated time interval for when the service provider travels to the location of the supplier to pick up the corresponding delivery order. By way of example, thematching component 140 may be triggered so that the estimated arrival time of the service provider at the location of the supplier (e.g., time to match correspondingorder request 101 to service provider and time for service provider to travel to location of the supplier) is within a threshold window of time of an estimated order preparation time for the supplier and/or items of therespective order request 101. - The determination of the delivery order preparation time may be made based on, for example, information associated with the supplier. For example, the
supplier store 126 may associate preparation time values with the supplier, and/or with the items that individual suppliers make available for delivery requests 101. As described with some examples, the order preparation time may be developed from models which monitor order requests from individual suppliers over a given time period. - In some examples, the
request handling component 128 may determine, from the estimated order time of an item and/or supplier, that the preparation time is likely to be less than the estimated duration for matching the corresponding order request to a service provider and for the matched service provider to arrive at the location of the supplier. In such examples, therequest handling component 128 may delay sending the communication 139 (for the corresponding order request 101) to the supplier specified by therespective order request 101 until after a service provider is matched to therespective order request 101. In such examples, the delay in sending thecommunication 139 for therespective order request 101 may be measured so that the estimated order preparation time falls within a window of time that is estimated for a matched service provider to arrive at the location of the supplier. - The
matching component 140 may match theorder request 101 to an available service provider based at least in part on the current location of individual providers with respect to the location of the supplier. In some variations, thematching component 140 may also match theorder request 101 based on a desired arrival time for the provider at the location of the supplier. Thus, for example, the proximity of the service provider may not necessarily be a decisive selection criterion for selecting a given service provider. - In some examples, the
request handling component 128 may select and implementbatch decision logic 138, in order to implement rules and parameters for determining when delivery orders can be batched. Batching may refer to instances when a service provider handles two delivery orders. Thebatch decision logic 138 may implement batching in accordance with one or multiple set of rules and/or parameters from which a decision can programmatically be made. Thebatch decision logic 138 may vary, so that different rules, parameters, and/or parametric values may be utilized to determine when batching can be performed. In particular, thebatch decision logic 138 may implement alternative rules that determine (i) whether or not batching is permitted under any circumstances; and (ii) if batching is permitted, conditions under which multiple delivery orders may be batched. By way of example, the conditions which may determine or influence batching decisions may include (i) a same supplier condition, in which batching of delivery orders is permitted when the delivery orders are prepared by a same supplier; (ii) a timing condition, which may set a window of time with respect to when order requests are prepared and/or delivered with respect to one another before batching is permitted; (iii) a supplier location condition, in which batching of delivery orders is permitted when the delivery orders are prepared by suppliers that satisfy a geographic condition with respect to each supplier's location and/or delivery location; and/or (iv) provisioning conditions, where aprovisioning level determination 155 determines or influences batching decisions. - With respect to provisioning conditions, some examples provide that batching may be maximized with respect to permissibility when, for example, an inadequate number of service providers are present to handle order requests. Conversely, batching may be minimized when there is oversupply of service providers, as separate service providers can be used to deliver orders which could otherwise be batched.
- With respect to timing conditions, some examples provide for the
batch decision logic 138 to utilizetiming parameters 167, as determined by theprovisioning subsystem 150, in order to determine when batching of delivery orders is permitted. For example, therequest handling component 128 may utilize one ormore timing parameters 167 to minimize a wait time incurred by the service provider while at the supplier. For example, in the context of food preparation, if the arrival time of the service provider exceeds the time when the food is prepared, the prepared food may become cold or less desirable. At the same time, if the arrival time of the service provider is before when the prepared food is ready, the service provider is waiting, and thus underutilized. Therequest handling component 128 may include logic to initiate the matching process in a window of time that precedes an expected preparation time for the requested delivery order, so that an assigned service provider will arrive at the supplier location just when the requested delivery order is prepared and ready for pickup.FIG. 5 illustrates an example method which can be implemented by, for example, therequest handling component 128 to control the selection of a service provider based at least in part on a determination of an optimized arrival time. - In variations, the
batch decision logic 138 may permit delivery orders to be batched if they are from the same supplier, and deliverable by a given service provider to multiple recipients at different locations within a predetermined time limit. The predetermined time limit may be set to, for example, order preparation time (or order pickup time) and/or order delivery time. For example, one ormore timing parameters 167 may set a limit of when the last batched order can be picked up and/or delivered with respect to the delivery order's preparation time and/or order request time (e.g., when therespective order request 101 was made). As an addition or alternative, thetiming parameter 167 may set a comparable window of time as between the pickup time or delivery time of each delivery order that is to be batched. In variations, other timing parameter(s) 167 may control when delivery orders can be batched from a given supplier. - With respect to supplier location conditions, the
batch decision logic 138 may implement alternative rules, which enable, for example, a service provider to handle delivery orders from different suppliers, subject to additional criteria being satisfied. As an alternative to a same supplier condition, for example, thebatch decision logic 138 may permit delivery orders from different providers to be batched, provided that, for example, the different suppliers satisfy a proximity condition with regard to their respective locations (e.g., suppliers are in same building, next to each other, on same block, within walking distance, etc.). As another example, thebatch decision logic 138 may permit delivery orders from different providers to be batched, provided that, for example, the different suppliers satisfy a routing condition, such as the different suppliers being aligned along a route for purpose of delivery. - Once the
matching component 140 selects a provider for theorder request 101, therequest handling component 128 can monitor the provider via updates to the provider location (e.g., as maintained in the provider status store 134). In particular, therequest handling component 128 can track the provider to the location of the supplier, and from the location of the supplier to the service location of theorder request 101. The status of the requester's order request may be repeatedly updated by therequest handling component 128 in therequester status store 132, to reflect events such as (i) theorder request 101 being communicated to the supplier; (ii) the supplier acknowledging the order request; (iii) one or more progress indicators for the order request being prepared, including when a corresponding delivery order is ready; (iv) a service provider picking up the corresponding delivery order; (v) progress of the service provider to the service location identified in a order request; and/or (vi) arrival of the service provider at the service location of the requester (e.g., the requester's current location, or specified location). - Additionally, in examples, predictive information that may be useful to the requester may be determined and communicated to the
requester device 102. For example, the estimated delivery time may be predicted initially before the requester makes theorder request 101. As theorder request 101 is processed by the supplier, the delivery time may be updated for the requester. Likewise, the delivery time may be updated as thematching component 140 identifies a service provider and as therequest handling component 128 tracks the service provider from pickup to the location of the delivery order. - Similarly, the matching component 140 (and/or the request handling component 128) may change the associated state of the service provider, to reflect, for example, one or more unavailable states. For example, the states of the service provider may include available, assigned to order request, on route to supplier, at supplier, on route to requester, and completing order request.
- Once the service provider is detected to have completed the delivery service, the
request handling component 128 may trigger anaccount manager 136. Theaccount manager 136 may record the fulfillment of the order request with respect to the accounts of the service provider, supplier, and requester. In some examples, a charge or other consideration is withdrawn from an account of the requester for the acquired delivery. Likewise, theaccount manager 136 may credit an account of the supplier for providing the delivery order. The account of the service provider may also be credited based at least partially on theservice value parameter 171 associated with the fulfilledorder request 101. - According to some examples, the
provisioning sub-system 150 includes a provisioning level determination (“PLD”) component 152, aforecasting component 154 and a provisioning level adjustment (“PLA”)component 156. The PLD component 152 can estimate a provisioning level for a given region, either during a current time interval or for a future time interval, based on forecasted information from theforecasting component 154. Theprovisioning level 155 can reflect a determination, for a given interval of time, of the adequacy of the number of service providers for the number of service requests that are to be handled. Theforecasting component 154 may generate a forecast for one or more facets of the provisioning level determination. For example, theforecasting component 154 can predict the number of service requests that are to be received by thesystem 100 over an immediate time interval, or for a time interval in the future. Theforecasting component 154 may also forecast, or otherwise estimate a number of service providers that are (or will be) available in a given region to fulfill order requests 101. ThePLA component 156 can implement logic to adjust theprovisioning level 155 of thesystem 100, in a manner that optimizes for one or more service objectives of thesystem 100. - The
provisioning sub-system 150 may utilize a variety ofmodels 153, including predictive models 153A and/or optimization models 153B. By way of example, the predictive models 153A can include tree-based models, deep learning models, neural network models, and/or regression models. By way of example, the predictive models 153A may be generated and trained to predict provisioning level determinations (e.g., number of order requests, conversion rate from requesters who have service application running without placing order, etc.) and timing predictions (e.g., order preparation time). The optimization models 153B may include, for example, respective convex and non-convex models, and combine tutorial optimization models. - In some examples, a
model development component 158 develops respective models 153A, 153B using machine learning processes, by which, for example, the models are trained and tuned over time, using real-time information (e.g., fromrequester data store 132 and/or provider data store 134) andhistorical information 159. - In some examples, the
model development component 158 may develop one ormore models 153 for use by theprovisioning subsystem 150. Theprovisioning models 153 may include a conversion model that enables theforecasting component 154 to use real-time information to generate aforecast 157 for the number of order requests. The conversion model may, for example, utilize as input real-time information, obtained from therequester status store 132, corresponding to the number of active requesters who have not yet made a order request. In variations, themodel development component 158 may analyze historical information 159 (e.g., prior snapshots of therequester status store 132 during prior time periods) to detect (i) an active requester session event, coinciding with a requester initiating a session with thesystem 100 by launching theservice application 106 on theirrespective device 102; and (ii) a conversion event, coinciding with an active requester making a order request. Other information which may be determined from analysis of historical data may include, for example, a length of time for a conversion event to take place for individual requesters, and the suppliers which an active requester viewed. Additionally, themodel development component 158 may record the occurrences of events (e.g., active requester session event, conversion event) over a continuous interval of time. For example, themodel development component 158 may utilize input parameters which reflect a velocity value (or acceleration value or other derivative thereof) with request to a number of order requests, a number of active requesters, and/or a number of converted requesters. - As an addition or alternative, the
model development component 158 may also develop predictive models for use in forecasting delivery requests for future intervals, when pertinent real-time information does not yet exist. Themodel development component 158 may develop suchpredictive models 153 using historical information, such as through statistical analysis, to predict a number of active requesters that may come online in a given time interval, a conversion rate of active requesters, and/or a number of order requests which may be generated from the population of users. - In determining conversion or other predictive models, the
model development component 158 may also account for contextual information. For example, themodel development component 158 may associate the historical information with day of week, time of day, month of year, events (e.g., sporting events), weather and other related information. - The
forecasting component 154 may utilize themodels 153 generated by themodel development component 158 to make one ormore forecasts 157 as to demand in a current time interval and/or one or more future time intervals (e.g., number of order requests which may be received in a given duration of time). According to an example, theforecasting component 154 obtains real-time information from therequester status store 132 in order to forecast a number of order requests which may be received in a current (e.g., over the next hour) or near future interval (over the next four hours). The real-time information may include, for example, a number of active requesters who have yet to make an order request, the amount of time each active requester has spent viewing themenu content 119 for individual suppliers, and/or the suppliers (e.g., respective menu of suppliers) which were viewed by the respective requesters. Based on the real-time information, theforecasting component 154 may utilize, for example, a conversion model to predict a number of order requests which thesystem 100 will receive in a current or immediate time interval, as well as for upcoming time intervals (e.g., number of service requests which may be received in the next four 1-hour time slots). As an addition or variation, theforecasting component 154 may also utilize themodels 153 generated by themodel development component 158 to estimate the number of order requests that thesystem 100 is expected to receive in future time intervals. For example, themodel development component 158 may generate a schedule that identifies an expected number of order requests for time slots of an upcoming future time interval (e.g., hourly order request projections for each day of an upcoming week). - According to some examples, the
model development component 158 may also monitor therequester status store 132 in order to compare aforecast 157 of theforecasting component 154 with respect to the number of order requests received (or the number of active requesters, etc.) with the actual outcome. Based on the comparison, themodel development component 158 may tune themodels 153 deployed by theforecasting component 154. - In some variations, the
model development component 158 may develop and implement predictive models regarding timing-related characteristics of individual suppliers. Themodel determination component 158 may monitor therequester status store 132 to determine statistical samples of one or more timing-related characteristics of individual suppliers. By way of example, a timing-related characteristic of a supplier may correspond to preparation time for the supplier to prepare a delivery order. As another example, the timing-related characteristics can identify the amount of time that a service provider typically expends upon arriving at the location of the supplier and departing with the delivery order. In this way, themodel determination component 158 obtains data points for the length of in which a supplier (e.g., restaurant) takes to prepare a food item for a delivery order. The timing related characteristics may be associated with the supplier and the correspondingsupplier record 125. - The PLD component 152 may estimate the
provisioning level 155 for current and future intervals of time based onforecasts 157, as well as service provider availability projections. In some examples, theprovisioning level 155 corresponds to a metric (e.g., a ratio) that is based on a comparison of (i) an estimated number of order requests received in a given time period for a given region, and (ii) a number of service providers in the given region that are likely to be available to provide delivery service for the order requests. The estimated number of service providers may be determined from, for example, real-time information (e.g., as determined from the provider status store 132), as well as from historical information (e.g., snapshots of theprovider status store 132 in prior time intervals). - The
PLA component 156 may implement a set ofprovisioning parameters 165 based on theprovisioning level 155. Theprovisioning parameters 165 may define respective parametric values for use with rules, process or other logic of a network delivery service. Additionally, theprovisioning parameters 165, when changed, affect a provisioning level of the network service in accordance with a generally known relationship. According to some examples, a change in a provisioning parameter may increase or decrease a number of service requests (e.g., order requests) that thenetwork computing system 100 may handle, based on a known or expected relationship with respect to the change in the provisioning parameter. Theprovisioning parameters 165 may have a default value when, for example, theprovisioning level 155 is neutral (e.g., expected number of order requests to match available service providers), or otherwise at a desired value. When the provisioning level fluctuates away from a neutral or desirable level, thePLA component 156 may adjust the value of theprovisioning parameters 165 in order to adjust theprovisioning level 155. - The
provisioning parameters 165 may affect various facets of the delivery service implemented bysystem 100. Thus, for example thePLA component 156 may utilize multiple sets of provisioning parameters based on the sub-region or region considered. According to examples, theprovisioning parameters 165 reflect a facet or aspect of the service provided by thesystem 100 which can be adjusted to cause a predicted change to theprovisioning level 155 of the service provided. In particular, the values for theindividual provisioning parameters 165 may be based on an optimization determination for one or more objectives of thesystem 100. The optimization determination may be made through implementation of one or more optimization processes (shown as optimization logic 166) which optimize aspects of the provisioning level for a particular service objective 161. Thesystem 100 may implement one or multiple service objectives 161, such as maximizing a number of order requests which are handled in a given duration of time, or minimizing a delivery time for order requests which are received. The values of theprovisioning parameters 165 may thus be determined by the particular objective, or set of objectives, of the selected optimization process. - According to some examples, a relationship between the
individual provisioning parameters 165 and theprovisioning level 155 may also be predetermined or otherwise known. For example, an adjustment in the value of a given one of theprovisioning parameters 165 may be known to have a likely impact in increasing the number of service requests which are handled by thesystem 100, while at the same time negatively impacting another objective of reducing the service time for order requests. Themodel development component 158 may, for example, establish relationships between the values of theindividual provisioning parameters 165 and the impact of the provisioning parameter value on theprovisioning level 155 for a given region or time interval. The relationships may be granular (e.g., a change to provisioning parameter will increase the number of service requests which can be handled through the system 100) or more precise (e.g., a change to provisioning parameter will have a percentage impact (e.g., 5%) on the conversion rate). - By way of example, the
provisioning parameters 165 include one ormore timing parameters 167, aservice range parameter 169, and aservice value parameter 171. The one ormore timing parameters 167 may reflect a target time interval or a time-limited constraint (e.g., maximum acceptable time interval) by which a particular event in the fulfillment of a order request is to take place. For example, thetiming parameter 167 may reflect either a target time or time-limited constraint, for one or more of (i) the delivery time (e.g., from the time that theorder request 101 is made until when the order is delivered to the requester); (ii) a wait time incurred by the service provider, such as measured by an interval between when the service provider arrives and departs from the location of the supplier; (iii) a time interval from when a delivery order is prepared until it is picked up; and/or (iv) a time interval from when a delivery order is prepared until it is delivered. According to some examples, when one ormore timing parameters 167 are relaxed, therequest handling component 128 is able to batch a greater number of order requests, as the amount of time by which order requests can be matched to one another is increased. - The
service range parameter 169 may reflect a range, such as a travel or absolute distance, between the location of the supplier and the service location of an order request. In some examples, theservice range parameter 169 may be expressed as a travel distance, reflecting a time and/or distance of travel from the location of the supplier to the service location of the order request. Theservice range parameter 169 may be used by, for example, themenu component 112 to identify which suppliers of thesupplier store 126 can be used for themenu items 131. Themenu component 112 may query thesupplier store 126 for suppliers who havelocations 129 that satisfy a proximity condition with respect to thecurrent location 107 of the requester, where the proximity condition is based on theservice range parameter 169. By increasing the value of theservice range parameter 169, themenu component 112 may select a greater number of suppliers from whichitems 131 may be used to generate themenu content 119 on therequester device 102. Conversely, by decreasing the value of theservice range parameter 169, themenu component 112 may select a fewer number of supplies from whichitems 131 can be used to generatemenu content 119 for therequester device 102. The increase or decrease with respect to the number of suppliers which are provided to individual requesters can affect the number oforder requests 101 which the system receives, as requesters are more likely to generateorder requests 101 when a greater number of options are available. For example, by increasing theservice range parameter 169, theprovisioning sub-system 150 may forecast an increase in the conversion rate, such that a greater number oforder requests 101 are received over a given time period. The forecasted number of order requests 101 may be used to engage existing service providers and generally generate a greater number of service requests for service provider. Theoptimization logic 166 may balance the value of theservice range 169 in view of constraints such as added cost to service providers, in order to meet a service level objective (e.g., greater number of order requests fulfilled through the system 100). - The
service value parameter 171 may reflect a service value that is charged to the requester as part of the delivery order. As described with various examples, theservice value parameter 171 may fluctuate to accommodate factors such as distance a service provider travels to fulfill the service order, tier designations for suppliers and/or availability of service providers. In some examples, theservice value parameter 171 may be used to adjust the number of available service providers during a given time interval. For example, theservice value parameter 171 may also be utilized by theaccount manager 136, which can adjust a credit or value to the service provider based on changes to theservice value parameter 171. For example, if more service providers are needed to facilitate handling of an unexpected number of order requests for a given area, theservice value parameter 171 may be raised, reflecting greater value and reward for service providers to assist with order requests in the given region. As shown by an example ofFIG. 1 , theservice value parameter 171 may be communicated to theprovider device interface 120, where the service value may be published to nearby providers. Theprovider device interface 120 may also publish the increase in theservice value parameter 171 to draw in more service providers. In this way, the change in theservice value parameter 171 may increase or decrease the number of service providers who operate in a given region. -
FIG. 2 illustrates an example method for identifying suppliers for delivery service to individual requesters.FIG. 3 illustrates an example method for arranging transport for multiple delivery orders.FIG. 4 illustrates an example method for arranging transport for delivery orders in a manner that affects a provisioning level of the provided service.FIG. 5 illustrates another example method for arranging transport for delivery orders to minimize service provider wait time. In describing examples ofFIG. 2 throughFIG. 5 , reference is made to elements of an example ofFIG. 1 for purpose of illustrating a suitable component for performing a step or sub-step being described. - With reference to an example of
FIG. 2 , a network computing system causes the mobile device of individual requesters to transmit their respective location (210). For example, therequester devices 102 may executeservice applications 106 which access a satellite receiver or other location-aware resource of the mobile device. A requester may open theservice application 106 on their respectivemobile device 102 to initiate a session with the network computing system 200. - When the session is initiated, the network computing system 200 transmits information (e.g., menu content 119) to identify suppliers (e.g., restaurants) within a designated range of the requester (220). The suppliers may be identified by providing a supplier menu to the requester device. The requester may browse menus from multiple suppliers that are within the designated service range with respect to the current location of the requester. The designated range may reflect a threshold distance of travel between the location of the supplier and the current location of the requester. In some examples, the designated range may be based at least in part on a provisioning level determination for the given region (222) (e.g., a comparison of the estimated number of order requests and the number of available service providers). For example, as described with an example of
FIG. 1 , the designated range may be determined by theservice parameter 169, which theprovisioning sub-system 150 may determine based on thedetermined provisioning level 155 and the implementation of optimization processes by theoptimization logic 166. Thus, thesystem 100 may change the designated service range so that a greater or lesser number of suppliers are available to a given requester. With increase in range,system 100 may also adjust other parameters, such as the service value 171 (e.g., provide additional incentive for service providers to drive extra distance), based on a known or predicted relationship between the change in the value of the respective service parameters and theprovisioning level 155. - As an addition or variation, in some examples, the selection of suppliers for a given requester may be dynamic and based on the current location of the requester (224). For example, the
system 100 may monitor the location of the mobile devices of individual requesters, and reselect the suppliers that are displayed on the respective mobile devices based on an updated location of the requester. - An example of
FIG. 2 may reflect when therequester device 102 is placed in a pre-requests state, such as when the requester opens theservice application 106 to browse available menus. Theprovisioning sub-system 150 may utilize the pre-request state of the requester in determining theprovisioning level 155 for a sub-region where the requester is located. Theprovisioning sub-system 150 may also generate a forecast based on, for example, a prediction as to whether the requester will generate anorder request 101. For example, the prediction of whether the user will generate theorder request 101 may be based in part on a predicted or observed conversion rate as to the number of requesters who viewmenu content 119 from suppliers of the region and those who generate a respective order request using themenu content 119. - With reference to an example of
FIG. 3 , thesystem 100 may implement a service to arrange transport for order requests. In providing the service, thesystem 100 may receive order requests from requester devices of a given region, with each order request specifying a respective supplier (310). For each of the order requests, thesystem 100 selects a service provider to transport a corresponding delivery order from a corresponding supplier to a location of the requester (320). Additionally, in providing the service, the network computing system determines a provisioning level indicator for the given region, for a current or future time interval (330). The provisioning level indicator may be determined at least in part byrequester devices 102, which communicate with thesystem 100 using therespective service application 106. - The
system 100 selects the service provider for individual order requests by selecting one of multiple available decision logics to implement for the given region in the given time interval, where the selection of the decision logic is based at least in part on the determined provisioning level indicator (340). Thesystem 100 may implement the selected decision logic to determine whether individual delivery orders, generated in response to respective order requests, can be batched for delivery to respective requesters. When delivery orders are batched, the same service provider may transport the respective delivery orders to their respective destinations. - According to some examples, the
system 100 may implement a first decision logic to batch multiple delivery orders for delivery to respective requesters based on the multiple delivery orders satisfying at least a first timing criterion (342). As described with various examples, the timing criterion may be parameterized (e.g., timing parameter 167) and subject to change, based on conditions such as provided by provisioning level markers and determinations. By way of example, thesystem 100 may relax thetiming parameter 167 in order to provide additional time for matched delivery orders to take place. - In various examples, the timing criterion may be based on, for example, the delivery time (e.g., change in delivery time for each of multiple delivery orders that are batched together). In other examples, the timing criterion may correspond to a wait time incurred by the service provider, such as measured by an interval between when the service provider arrives and departs from the location of the supplier. As an addition or variation, the timing parameter may correspond to a time interval from when a delivery order is prepared until it is picked up. Still further, the timing criterion may correspond to a time interval from when a delivery order is prepared until it is delivered. According to some examples, when one or
more timing parameters 167 are relaxed, therequest handling component 128 is able to batch a greater number of order requests, as the amount of time by which order requests can be matched to one another is increased. - With reference to an example of
FIG. 4 , thesystem 100 arranges transport for delivery orders in a given region, in accordance with a set of provisioning parameters (410). In arranging transport for delivery orders, thesystem 100 receives order requests from corresponding requester devices, with each order request specifying a respective supplier. Additionally, thesystem 100 matches each received order request to a respective service provider, in order to transport a corresponding delivery order from a respective supplier to a location of the respective requester of the service request. The set of provisioning parameters may include a service value parameter, and at least one of a service batching parameter or a service range parameter. - The network computing system may determine a forecast for expected service requests that are received for a given region, during a current or immediate time interval (420). In some examples, the forecast may be determined from a model that utilizes real-time information. For example, the
model determination component 158 accesses therequester data store 132 to determine the number of active requesters who initiated a session with thesystem 100, but who have not yet made a delivery order. - The
system 100 determines theprovisioning level 155 for the given region during the upcoming time interval, based at least in part on the forecast (430). Based on the forecast, thesystem 100 makes a determination as to whether any of theprovisioning parameters 165 in the set should be adjusted to change the provisioning level to a desired target (440). Thus, thesystem 100 may change the value of theprovisioning parameters 165 in order to adjust the determined or forecastedprovisioning level 155. For example, theservice value 171 may be changed to, for example, increase the number of service providers. Likewise, theservice range 169 may be increased or decreased to increase or decrease demand (e.g., conversion rate increases with more choices for requesters). - In some examples, the provisioning parameters are adjusted in accordance with one or more optimization processes which are based on service level objectives (442). The service level objectives may correspond to, for example, maximizing a number of service requests which are processed over a given time period, minimizing a travel distance of service providers, and/or minimizing a wait time of requesters for delivery orders.
- In an example of
FIG. 5 , thesystem 100 receives order requests from requesters of a given region, and the system selects individual service providers for each order request. Thesystem 100 selects the service provider by predicting an order preparation time of the supplier of the order request (510). In order to predict the order preparation time, thesystem 100 may develop a predictive model using historical information and/or real-time monitoring (512). For example, themodel development component 158 of thesystem 100 may develop a predictive model based on information determined from therequester status store 132. In some examples, themodel development component 158 may monitor therequester status store 132 and/or theprovider status store 134 in order to determine instances when a service provider arrived at the location of the supplier early, before the delivery order was prepared. The determination may be made by identifying instances when the service provider had to wait before leaving. The presumption that can be made from the service provider waiting may be that the delivery order was not yet prepared at the time when the provider arrives at the location of the supplier. In such cases, the departure time of the service provider may be used to estimate the preparation time for the delivery order. In some examples, the arrival and departure times may be determined automatically, based on, for example, the current location of theprovider device 104. - The
system 100 may attempt to select a service provider during a time interval that precedes the predicted order preparation time (520). Thematching component 140 may, for example, be triggered by therequest handling component 128 to generate a request to identify a service provider who can be assigned to travel to the location of the supplier and arrive at a time that is within a window of margin with respect to the predicted order preparation time (522). In some examples, a determination is made as to whether the order request can be immediately matched to a service provider (525). If the order request is matched to the service provider, then the service provider may be tracked to arrive at the supplier within the window of margin (528). Additionally, the requester may receive an estimated time for the delivery order to arrive at the requester's location based on the arrival time of the service provider at the location of the supplier (532). Thesystem 100 may continue to monitor and update the requester through the stags of the delivery order. - If the
matching component 140 fails to immediately find a matched service provider for the order request, then the process may be repeated at (520). Theservice handling component 128 may trigger thematching component 140 again, at a different time interval, to find a match for the order request. The process may be repeated over the time interval preceding the predicted order preparation time. As the window to match the order request to the service provider gets smaller, the region(s) which thematching component 140 attempts to match becomes closer to the location of the supplier. -
FIG. 6 illustrates a computer system on which one or more embodiments can be implemented. Acomputer system 600 can be implemented on, for example, a server or combination of servers. For example, thecomputer system 600 may be implemented as part of the of an example ofFIG. 1 . Likewise, thecomputer system 600 can implement a method such as described with examples ofFIG. 2 throughFIG. 5 . - In one implementation, the
computer system 600 includes processingresources 610, memory resources 620 (e.g., read-only memory (ROM) or random-access memory (RAM)), astorage device 640, and acommunication interface 650. Thecomputer system 600 includes at least oneprocessor 610 for processing information stored in themain memory 620, such as provided by a random-access memory (RAM) or other dynamic storage device, for storing information and instructions which are executable by theprocessor 610. Themain memory 620 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by theprocessor 610. Thecomputer system 600 may also include thememory resources 620 or other static storage device for storing static information and instructions for theprocessor 610. Thestorage device 640, such as a magnetic disk or optical disk, is provided for storing information and instructions. - The
communication interface 650 enables thecomputer system 600 to communicate with one or more networks (e.g., cellular network) through use of the network link 680 (wireless or a wire). Using thenetwork link 680, thecomputer system 600 can communicate with one or more computing devices, specialized devices and modules, and one or more servers. The executable instructions stored in the memory 630 can include instructions 642, to implement a network computing system such as described with an example ofFIG. 1 . The executable instructions stored in thememory 620 may also implement a method, such as described with one or more examples ofFIG. 2 throughFIG. 5 . - As such, examples described herein are related to the use of the
computer system 600 for implementing the techniques described herein. According to an aspect, techniques are performed by thecomputer system 600 in response to theprocessor 610 executing one or more sequences of one or more instructions contained in thememory 620. Such instructions may be read into thememory 620 from another machine-readable medium, such as thestorage device 640. Execution of the sequences of instructions contained in thememory 620 causes theprocessor 610 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. -
FIG. 7 is a block diagram illustrating an example user device for use with examples as described. In an example, a user device 700 may execute a designated service application for a network service implemented through anetwork computing system 100 such as described with an example ofFIG. 1 . In many implementations, a user device 700 can include a mobile computing device, such as a smartphone, tablet computer, laptop computer, VR or AR headset device, and the like. As such, the user device 700 can include typical telephony and/or tablet features such as amicrophone 745, acamera 750, asatellite receiver 760, and acommunication interface 710 to communicate with external entities using any number of wireless communication protocols. In certain aspects, the user device 700 can store a designated application (e.g., a service app 732) in alocal memory 730. In variations, thememory 730 can store additional applications executable by one ormore processors 740 of the user device 700, enabling access and interaction with one or more host servers over one ormore networks 780. - In response to a user input 718 (e.g., search input), the
service application 732 can interact with the computer system 700 to display anapplication interface 742 on adisplay screen 720 of the user device 700. When the user device 700 is used as a requester device, theapplication interface 742 can be used to displaymenu content 119, and enable the requester to make order requests from thenetwork computing system 100. - 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. 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 having rights to such combinations.
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/902,253 US20220414593A1 (en) | 2017-11-02 | 2022-09-02 | Network computer system to implement predictive time-based determinations for fulfilling delivery orders |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/802,395 US11436554B2 (en) | 2017-11-02 | 2017-11-02 | Network computer system to implement predictive time-based determinations for fulfilling delivery orders |
US17/902,253 US20220414593A1 (en) | 2017-11-02 | 2022-09-02 | Network computer system to implement predictive time-based determinations for fulfilling delivery orders |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/802,395 Continuation US11436554B2 (en) | 2017-11-02 | 2017-11-02 | Network computer system to implement predictive time-based determinations for fulfilling delivery orders |
Publications (1)
Publication Number | Publication Date |
---|---|
US20220414593A1 true US20220414593A1 (en) | 2022-12-29 |
Family
ID=66243107
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/802,395 Active 2039-10-27 US11436554B2 (en) | 2017-11-02 | 2017-11-02 | Network computer system to implement predictive time-based determinations for fulfilling delivery orders |
US17/902,253 Pending US20220414593A1 (en) | 2017-11-02 | 2022-09-02 | Network computer system to implement predictive time-based determinations for fulfilling delivery orders |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/802,395 Active 2039-10-27 US11436554B2 (en) | 2017-11-02 | 2017-11-02 | Network computer system to implement predictive time-based determinations for fulfilling delivery orders |
Country Status (5)
Country | Link |
---|---|
US (2) | US11436554B2 (en) |
JP (1) | JP7423517B2 (en) |
BR (1) | BR112020008710A2 (en) |
CA (1) | CA3080753A1 (en) |
WO (1) | WO2019090024A1 (en) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10190886B2 (en) | 2017-01-04 | 2019-01-29 | Uber Technologies, Inc. | Network system to determine a route based on timing data |
US11416792B2 (en) | 2017-04-19 | 2022-08-16 | Uber Technologies, Inc. | Network system capable of grouping multiple service requests |
US20190130320A1 (en) * | 2017-11-02 | 2019-05-02 | Uber Technologies, Inc. | Network computer system to implement dynamic provisioning for fulfilling delivery orders |
US10915853B2 (en) * | 2018-02-28 | 2021-02-09 | DoorDash, Inc. | System for dynamic effort-based delivery value predictive updates |
US20200065734A1 (en) * | 2018-08-23 | 2020-02-27 | Uber Technologies, Inc. | Network computing system to coordinate timing of delivery services |
US11449917B2 (en) | 2018-09-05 | 2022-09-20 | Uber Technologies, Inc. | Network computing system for providing interactive menus and group recommendations |
US11397911B2 (en) | 2018-11-15 | 2022-07-26 | Uber Technologies, Inc. | Network computer system to make effort-based determinations for delivery orders |
EP3683742A1 (en) | 2019-01-18 | 2020-07-22 | Naver Corporation | Method for computing at least one itinerary from a departure location to an arrival location |
EP3745331A1 (en) * | 2019-05-29 | 2020-12-02 | Naver Corporation | Methods for preprocessing a set of non-scheduled lines within a multimodal transportation network of predetermined stations and for computing at least one itinerary from a departure location to an arrival location |
US11216770B2 (en) | 2019-09-13 | 2022-01-04 | Uber Technologies, Inc. | Optimizing service requests in transport supply-constrained sub-regions |
JP2021068199A (en) * | 2019-10-24 | 2021-04-30 | 株式会社エニキャリ | Commodity delivery system and commodity delivery program |
US20220309420A1 (en) * | 2020-02-11 | 2022-09-29 | Martin Garcia-Brosa | Coordinated delivery of dining experiences |
US20220318708A1 (en) * | 2020-02-11 | 2022-10-06 | Martin Garcia-Brosa | Coordinated delivery of dining experiences |
KR102315856B1 (en) * | 2021-04-07 | 2021-10-21 | 주식회사 커넥트9 | Rider Auto-Allocation System for Food Delivery |
KR102403710B1 (en) * | 2021-10-26 | 2022-05-30 | 쿠팡 주식회사 | Electronic apparatus for processing delivery order and method thereof |
US20230245037A1 (en) * | 2022-01-31 | 2023-08-03 | Walmart Apollo, Llc | Automatically predicting arrival times for stops in a delivery route |
WO2023204350A1 (en) * | 2022-04-21 | 2023-10-26 | 쿠팡 주식회사 | Operation method of electronic device for providing information for delivery demand control and electronic device supporting same |
KR20230164998A (en) * | 2022-05-26 | 2023-12-05 | 쿠팡 주식회사 | Method for processing order and apparatus thereof |
US20240177108A1 (en) * | 2022-11-30 | 2024-05-30 | Maplebear Inc. (Dba Instacart) | Generating recommendations for pickers servicing orders placed with an online concierge system based on actual and forecasted orders |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7881986B1 (en) * | 2005-03-10 | 2011-02-01 | Amazon Technologies, Inc. | Method and system for event-driven inventory disposition |
US20160034845A1 (en) * | 2014-07-30 | 2016-02-04 | Uber Technologies, Inc. | Arranging a transport service for multiple users |
US20180025407A1 (en) * | 2015-02-02 | 2018-01-25 | Beijing Didi Infinity Technology And Development Co., Ltd. | Methods and systems for order processing |
US20190130354A1 (en) * | 2017-10-30 | 2019-05-02 | DoorDash, Inc. | Depot dispatch protocol for aggregating on-demand deliveries |
Family Cites Families (154)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US886587A (en) | 1907-06-29 | 1908-05-05 | Mergenthaler Linotype Gmbh | Linotype-machine. |
US6006159A (en) | 1995-08-14 | 1999-12-21 | Schmier; Kenneth J. | Public transit vehicle arrival information system |
DE19743024A1 (en) | 1997-09-29 | 1999-04-08 | Daimler Chrysler Ag | Road vehicle with automatic guidance and communication system |
US6756913B1 (en) | 1999-11-01 | 2004-06-29 | Mourad Ben Ayed | System for automatically dispatching taxis to client locations |
AU3274201A (en) | 2000-01-07 | 2001-07-24 | Ez2Get, Inc. | Method and system for automatic dispatching of delivery service |
US20050209913A1 (en) | 2000-04-05 | 2005-09-22 | Wied William J | Computer based system and method for facilitating commerce between shippers and carriers |
US6862572B1 (en) | 2000-04-21 | 2005-03-01 | De Sylva Robert F. | System and method for facilitating interaction between businesses, delivery agents, and customers |
US7139721B2 (en) | 2000-05-10 | 2006-11-21 | Borders Louis H | Scheduling delivery of products via the internet |
US6553379B1 (en) | 2000-08-16 | 2003-04-22 | Caa Ag | Address data storage device |
JP2002207809A (en) * | 2001-01-06 | 2002-07-26 | Yasushi Tsuneyama | Method for searching home delivery store for meal or the like |
US7912744B2 (en) * | 2001-01-12 | 2011-03-22 | Energy Control Technologies | Automated service broker |
US20020152128A1 (en) | 2001-04-13 | 2002-10-17 | Charles Walch | System and method for delivery of remotely ordered items |
US20020188492A1 (en) | 2001-06-11 | 2002-12-12 | Borton Robert L. | Food-making, -delivery, and -carry-out system and method |
JP2002366807A (en) * | 2001-06-12 | 2002-12-20 | Matsushita Electric Works Ltd | Electronic commerce assistance system and electronic commerce system, program for electronic commerce assistance system, program for electronic commerce system, recording medium where the programs are recorded, and electronic equipment |
JP2003192139A (en) * | 2001-12-28 | 2003-07-09 | Fumio Kobayashi | Delivery support system, method, device and program |
US20040030572A1 (en) | 2002-05-03 | 2004-02-12 | Helen Campbell | Same day product and document delivery management system and process |
JP2004102342A (en) * | 2002-09-04 | 2004-04-02 | Ricoh Co Ltd | Delivery mediation service providing method, delivery service support device and program |
US20040181454A1 (en) | 2003-03-12 | 2004-09-16 | Michael Manno | Web-based point-of sale system |
US20040210621A1 (en) | 2003-04-18 | 2004-10-21 | Antonellis Robert J. | Method and system for order optimization |
US7119716B2 (en) | 2003-05-28 | 2006-10-10 | Legalview Assets, Limited | Response systems and methods for notification systems for modifying future notifications |
US20040260470A1 (en) | 2003-06-14 | 2004-12-23 | Rast Rodger H. | Conveyance scheduling and logistics system |
US10687166B2 (en) | 2004-09-30 | 2020-06-16 | Uber Technologies, Inc. | Obtaining user assistance |
US9805395B2 (en) | 2012-01-19 | 2017-10-31 | Dizpersion Corporation | Online marketing system and method |
JP2006347659A (en) * | 2005-06-14 | 2006-12-28 | Nec Corp | Delivery system, server, delivery method and program |
CN101652789A (en) | 2007-02-12 | 2010-02-17 | 肖恩·奥沙利文 | Shared transport system and service network |
US20090048890A1 (en) | 2007-08-16 | 2009-02-19 | Burgh Stuart G | Delivery Management System for Quick Service Restaurants |
JP2009080565A (en) * | 2007-09-25 | 2009-04-16 | Chugoku Electric Power Co Inc:The | Home delivery service intermediary system and method |
JP2010039961A (en) * | 2008-08-08 | 2010-02-18 | Saroute:Kk | Delivery operation support system, and delivery prediction time calculation method and program |
US8239276B2 (en) | 2008-09-30 | 2012-08-07 | Apple Inc. | On-the-go shopping list |
US20100153279A1 (en) | 2008-09-30 | 2010-06-17 | Walter Zahn | Systems and methods for global transportation,vetting, and payment |
US8315802B2 (en) | 2009-02-11 | 2012-11-20 | Telogis, Inc. | Systems and methods for analyzing the use of mobile resources |
US9230259B1 (en) | 2009-03-20 | 2016-01-05 | Jpmorgan Chase Bank, N.A. | Systems and methods for mobile ordering and payment |
JP5296652B2 (en) * | 2009-09-30 | 2013-09-25 | 富士通フロンテック株式会社 | Order information display device, order information display system, and order information display method |
EP3522081A1 (en) | 2009-12-04 | 2019-08-07 | Uber Technologies, Inc. | System and method for arranging transport amongst parties through use of mobile devices |
US20110258134A1 (en) | 2010-04-16 | 2011-10-20 | Klassic Corporation | Method and system for providing adaptive processing and delivery of food catering orders |
US9805536B2 (en) | 2011-01-20 | 2017-10-31 | Cfph, Llc | Multi-system distributed processing of delivery and/or referral information for orders |
US10032210B2 (en) | 2011-02-08 | 2018-07-24 | Cfph, Llc | Apparatus, article of manufacture and methods for purchasing arbitrage |
US20120203619A1 (en) | 2011-02-09 | 2012-08-09 | Lutnick Howard W | Multi-system distributed processing of group goals |
US20120253878A1 (en) | 2011-03-29 | 2012-10-04 | Trapeze Software Inc. | Method and system for scheduling paratransit service |
US20160012394A1 (en) | 2011-07-07 | 2016-01-14 | Karl Vance REED | Order fulfillment system |
US20130031001A1 (en) | 2011-07-26 | 2013-01-31 | Stephen Patrick Frechette | Method and System for the Location-Based Discovery and Validated Payment of a Service Provider |
US20130073327A1 (en) | 2011-09-20 | 2013-03-21 | Benjamin J. Edelberg | Urban transportation system and method |
US20130246207A1 (en) | 2012-03-19 | 2013-09-19 | Uber Technologies, Inc. | System and method for dynamically adjusting prices for services |
US20140214465A1 (en) | 2012-05-26 | 2014-07-31 | Israel L'Heureux | Processing restaurant orders within computing systems |
US9066206B2 (en) | 2012-07-03 | 2015-06-23 | Uber Technologies, Inc. | System and method for providing dynamic supply positioning for on-demand services |
US9569100B2 (en) | 2012-07-22 | 2017-02-14 | Magisto Ltd. | Method and system for scribble based editing |
KR20140016053A (en) | 2012-07-30 | 2014-02-07 | 주식회사 한진 | Transportation matching system and transportation matching method |
AP2015008313A0 (en) | 2012-08-07 | 2015-03-31 | Stonethrow Telecomm Ltd | System for automatically matching a service requestor with a service provider based on their proximity and establishing a voice call between them |
US20140058902A1 (en) | 2012-08-21 | 2014-02-27 | Ovni, Inc. | Distributed system for remote ordering |
KR102047493B1 (en) | 2012-08-24 | 2019-11-21 | 삼성전자주식회사 | Method and mobile terminal for providing transport service information, method and server for managing transport service, and method and vehicle for providing transport service |
GB201215193D0 (en) | 2012-08-25 | 2012-10-10 | Dalp Daniel | Order delivery system |
KR20150048817A (en) | 2012-09-28 | 2015-05-07 | 인터컨티넨탈 그레이트 브랜즈 엘엘씨 | System and method for suggesting commestibles |
US20140129302A1 (en) | 2012-11-08 | 2014-05-08 | Uber Technologies, Inc. | Providing a confirmation interface for on-demand services through use of portable computing devices |
JP5276746B1 (en) | 2012-11-21 | 2013-08-28 | オーシャンズ株式会社 | Information sharing system using maps |
US9870555B2 (en) | 2012-11-30 | 2018-01-16 | Ncr Corporation | Customer interaction manager on a restaurant computer |
WO2014099680A2 (en) | 2012-12-17 | 2014-06-26 | United States Postal Service | System and method of coordinating distribution of an item |
US20140188750A1 (en) | 2012-12-26 | 2014-07-03 | Alternative Courier, Inc. | Method For Shipping |
KR20140101501A (en) | 2013-02-08 | 2014-08-20 | 에스케이플래닛 주식회사 | Method for goods purchase of location information, system and apparatus thereof |
US20140229099A1 (en) | 2013-02-12 | 2014-08-14 | Broadcom Corporation | Location aware appointment management application |
WO2014160298A1 (en) | 2013-03-14 | 2014-10-02 | Sciencestyle Capital Partners, Llc | Providing food-portion recommendations to faciliate dieting |
US20140278635A1 (en) | 2013-03-15 | 2014-09-18 | Bringaroo, LLC | Delivery methods and systems utilizing a stand-by delivery driver |
US9159994B2 (en) | 2013-03-15 | 2015-10-13 | Wildcat Discovery Technologies, Inc. | High energy materials for a battery and methods for making and use |
US10223719B2 (en) | 2013-03-25 | 2019-03-05 | Steven B. Schoeffler | Identity authentication and verification |
US20140351164A1 (en) | 2013-05-22 | 2014-11-27 | ANS Tech, LLC | Method of sequencing a delivery route |
US20150073925A1 (en) | 2013-05-23 | 2015-03-12 | Gavon Augustus Renfroe | System and Method for Integrating Business Operations |
US9292889B2 (en) | 2013-06-18 | 2016-03-22 | Zume Pizza, Inc. | Systems and methods of preparing food products |
US9569766B2 (en) | 2013-11-18 | 2017-02-14 | Paypal, Inc. | Auto-detection of merchant payment preferences |
US9984348B2 (en) | 2013-11-29 | 2018-05-29 | Fedex Corporate Services, Inc. | Context management of a wireless node network |
US9684627B1 (en) | 2013-12-13 | 2017-06-20 | Google Inc. | Determining a likelihood of completion of a task |
US20150204684A1 (en) | 2014-01-21 | 2015-07-23 | Abtin Rostamian | Methods and systems of multi-dimensional automated ride-sharing optimization |
US9754331B1 (en) | 2014-01-30 | 2017-09-05 | Grubhub Holdings Inc. | System and method for managing group orders |
US9990601B2 (en) | 2014-02-17 | 2018-06-05 | Bruce E. Stuckman | System, delivery device and methods for use therewith |
US9852391B2 (en) | 2014-02-22 | 2017-12-26 | Mena360 Dwc-Llc | System and method for logistics network utilizing mobile device location information |
US20150248689A1 (en) | 2014-03-03 | 2015-09-03 | Sunil Paul | Systems and methods for providing transportation discounts |
US20150363843A1 (en) | 2014-04-23 | 2015-12-17 | United Parcel Service Of America, Inc. | Dynamic provisioning of pick-up, delivery, transportation, and/or sortation options |
US20150310379A1 (en) | 2014-04-28 | 2015-10-29 | Ford Global Technologies, Llc | Shared vehicle systems and methods |
US9569740B2 (en) | 2014-05-06 | 2017-02-14 | Elwha Llc | System and methods for directiing one or more transportation vehicle units to transport one or more end users |
US9599481B2 (en) | 2014-05-06 | 2017-03-21 | Elwha Llc | System and methods for identifying one or more transportation vehicle units with or without package delivery obligation for transporting one or more end users |
US9792574B2 (en) | 2014-05-06 | 2017-10-17 | Elwha Llc | System and methods for verifying that one or more end user transport directives do not conflict with one or more package delivery directives |
US20150347964A1 (en) | 2014-06-03 | 2015-12-03 | Hti, Ip, L.L.C. | Method and system for distributing delivery of items |
US20160012391A1 (en) | 2014-07-08 | 2016-01-14 | Rick Burnett | Shipper and Carrier Interaction Optimization Platform |
US20160042303A1 (en) | 2014-08-05 | 2016-02-11 | Qtech Partners LLC | Dispatch system and method of dispatching vehicles |
US20160078516A1 (en) | 2014-09-17 | 2016-03-17 | Umm Al-Qura University | Wasul transport application |
US10546341B2 (en) | 2014-09-30 | 2020-01-28 | Flo Solutions, Llc | System, computer-readable storage medium, and method for operation management |
US20160104113A1 (en) | 2014-10-13 | 2016-04-14 | Marc Gorlin | Peer to Peer Delivery System |
US20160104112A1 (en) | 2014-10-13 | 2016-04-14 | Marc Gorlin | Peer to Peer Delivery System |
US10366434B1 (en) | 2014-10-22 | 2019-07-30 | Grubhub Holdings Inc. | System and method for providing food taxonomy based food search and recommendation |
US20160132792A1 (en) | 2014-11-10 | 2016-05-12 | Carzac, Inc. | Systems and methods for facilitating transportation transactions |
US20160140589A1 (en) | 2014-11-14 | 2016-05-19 | International Business Machines Corporation | Retail customer engagement zones |
US10437435B2 (en) | 2014-11-21 | 2019-10-08 | Deliveright Logistics, Inc | Delivery management systems and methods for zero-inventory distribution |
US20160148287A1 (en) | 2014-11-21 | 2016-05-26 | Peach Labs, Inc. | Lunch order communication |
US20160171507A1 (en) | 2014-12-11 | 2016-06-16 | Connectivity, Inc. | Systems and Methods for Identifying Customers of Businesses Through Gathered Named Entity Data |
US9384505B1 (en) | 2014-12-12 | 2016-07-05 | Laura Cao | System and method for image based viewing and ordering |
KR102290966B1 (en) | 2015-01-19 | 2021-08-19 | 클리어 데스티네이션 인크. | Systems and methods for managing and optimizing delivery networks |
US10133995B1 (en) | 2015-02-19 | 2018-11-20 | Square, Inc. | Courier network management |
CN104751272A (en) | 2015-03-04 | 2015-07-01 | 径圆(上海)信息技术有限公司 | Intelligent order scheduling method and server, electric vehicle, mobile terminal and system |
US10360616B2 (en) | 2015-03-23 | 2019-07-23 | Amazon Technologies, Inc. | System and methods for prioritization of items for delivery |
US10839438B2 (en) | 2015-03-27 | 2020-11-17 | Creator, Inc. | Method for queuing orders at a food assembly apparatus |
US11023990B2 (en) | 2015-04-15 | 2021-06-01 | Uber Technologies, Inc. | Programmatically providing information in connection with location-based services to service providers |
US20160353235A1 (en) | 2015-06-01 | 2016-12-01 | Accenture Global Services Limited | Location-based order recommendations |
US20160328669A1 (en) | 2015-05-04 | 2016-11-10 | Uber Technologies, Inc. | On-demand delivery system |
JP2017523543A (en) * | 2015-06-15 | 2017-08-17 | メッシュ コリア カンパニー リミテッドMesh Korea Co., Ltd. | Method for processing delivery information and confirming dispatch and server |
US9733096B2 (en) | 2015-06-22 | 2017-08-15 | Waymo Llc | Determining pickup and destination locations for autonomous vehicles |
US10586273B1 (en) | 2015-07-30 | 2020-03-10 | DoorDash, Inc. | Managing couriers for fast deliveries |
US11144870B2 (en) | 2015-09-21 | 2021-10-12 | United Parcel Service Of America, Inc. | Systems and methods for reserving space in carrier vehicles to provide on demand delivery services |
US10148624B2 (en) | 2015-09-25 | 2018-12-04 | Mcafee, Llc | Secure service matching |
US10152743B1 (en) | 2015-09-28 | 2018-12-11 | Amazon Technologies, Inc. | Techniques for providing shared-order functionality for a community of users |
US10127519B2 (en) | 2015-10-23 | 2018-11-13 | Prahfit, Inc. | Apparatus and method for predictive dispatch for geographically distributed, on-demand services |
KR101821752B1 (en) | 2015-11-10 | 2018-01-24 | 중소기업은행 | Order systems for delivery food |
US9939279B2 (en) * | 2015-11-16 | 2018-04-10 | Uber Technologies, Inc. | Method and system for shared transport |
US20170169385A1 (en) | 2015-12-15 | 2017-06-15 | Wal-Mart Stores, Inc. | Method and apparatus for delivering items |
US20170178057A1 (en) | 2015-12-18 | 2017-06-22 | Mena360 Dwc-Llc | Logistics navigation routing using mobile device location capabilities |
US10176448B1 (en) | 2015-12-30 | 2019-01-08 | Square, Inc. | Generation of dynamic delivery zones for merchants |
CN108701290B (en) | 2016-01-21 | 2021-12-03 | 硕腾丹麦公司 | System and method for collecting batches of food products |
CN107153882B (en) | 2016-03-03 | 2021-10-15 | 北京嘀嘀无限科技发展有限公司 | Method and system for predicting passenger taxi taking time distribution interval |
US9993735B2 (en) | 2016-03-08 | 2018-06-12 | Electronic Arts Inc. | Multiplayer video game matchmaking optimization |
US10242574B2 (en) | 2016-03-21 | 2019-03-26 | Uber Technologies, Inc. | Network computer system to address service providers to contacts |
CA3020517A1 (en) | 2016-04-08 | 2017-10-12 | Zume, Inc. | On-demand robotic food assembly and related systems, devices and methods |
CA3023635C (en) | 2016-05-20 | 2023-03-28 | United Parcel Service Of America, Inc. | Sharing location information with a recipient |
CN107424022B (en) | 2016-05-23 | 2022-02-11 | 北京嘀嘀无限科技发展有限公司 | Order pushing method and system |
JP6170261B1 (en) * | 2016-05-25 | 2017-07-26 | 楽天株式会社 | Information processing apparatus, information processing method, and information processing program |
US10029787B1 (en) * | 2016-06-30 | 2018-07-24 | X Development Llc | Interactive transport services provided by unmanned aerial vehicles |
WO2018017903A1 (en) | 2016-07-20 | 2018-01-25 | ClusterTruck Holdings, LLC | System and method for communication routing, transportation coordination and product creation |
US11087252B2 (en) | 2016-08-16 | 2021-08-10 | Teleport Mobility, Inc. | Interactive real time system and real time method of use thereof in conveyance industry segments |
US10296200B2 (en) | 2016-09-08 | 2019-05-21 | Gt Gettaxi Limited | Drag and drop map for marking pickup and drop off locations on a predetermined line |
US20180089621A1 (en) | 2016-09-29 | 2018-03-29 | Ford Global Technologies, Llc | Method and apparatus for coordinated food delivery |
US10304147B2 (en) | 2016-10-31 | 2019-05-28 | Kevin Kelly | Drive-thru / point-of-sale automated transaction technologies and apparatus |
US11769062B2 (en) | 2016-12-07 | 2023-09-26 | Charles Northrup | Thing machine systems and methods |
US10308430B1 (en) | 2016-12-23 | 2019-06-04 | Amazon Technologies, Inc. | Distribution and retrieval of inventory and materials using autonomous vehicles |
US10190886B2 (en) | 2017-01-04 | 2019-01-29 | Uber Technologies, Inc. | Network system to determine a route based on timing data |
US11614751B2 (en) | 2017-01-23 | 2023-03-28 | Massachusetts Institute Of Technology | System for on-demand high-capacity ride-sharing via dynamic trip-vehicle assignment and related techniques |
US20180225796A1 (en) | 2017-02-08 | 2018-08-09 | Uber Technologies, Inc. | Resource Allocation in a Network System |
US10697783B2 (en) | 2017-04-03 | 2020-06-30 | Uber Technologies, Inc. | Coordinating travel on a public transit system and a travel coordination system |
US20180300660A1 (en) | 2017-04-18 | 2018-10-18 | Lyft, Inc. | Systems and methods for provider claiming and matching of scheduled requests |
US11416792B2 (en) | 2017-04-19 | 2022-08-16 | Uber Technologies, Inc. | Network system capable of grouping multiple service requests |
US10839695B2 (en) | 2017-05-11 | 2020-11-17 | Uber Technologies, Inc. | Network computer system to position service providers using provisioning level determinations |
US20190035037A1 (en) | 2017-07-25 | 2019-01-31 | Arnold Chase | Virtual restaurant system |
US11112793B2 (en) | 2017-08-28 | 2021-09-07 | Motional Ad Llc | Mixed-mode driving of a vehicle having autonomous driving capabilities |
US10818186B2 (en) | 2017-10-18 | 2020-10-27 | Maplebear, Inc. | Optimizing task assignments in a delivery system |
US11037055B2 (en) | 2017-10-30 | 2021-06-15 | DoorDash, Inc. | System for dynamic estimated time of arrival predictive updates |
US20190132699A1 (en) | 2017-11-02 | 2019-05-02 | Uber Technologies, Inc. | Computing system to implement network delivery service |
US20190132702A1 (en) | 2017-11-02 | 2019-05-02 | Uber Technologies, Inc. | Network computer system to selectively batch delivery orders |
US20190130320A1 (en) | 2017-11-02 | 2019-05-02 | Uber Technologies, Inc. | Network computer system to implement dynamic provisioning for fulfilling delivery orders |
US11481457B2 (en) | 2017-11-28 | 2022-10-25 | Uber Technologies, Inc. | Menu personalization |
US20190295440A1 (en) | 2018-03-23 | 2019-09-26 | Nutrino Health Ltd. | Systems and methods for food analysis, personalized recommendations and health management |
US20200065734A1 (en) | 2018-08-23 | 2020-02-27 | Uber Technologies, Inc. | Network computing system to coordinate timing of delivery services |
US11449917B2 (en) | 2018-09-05 | 2022-09-20 | Uber Technologies, Inc. | Network computing system for providing interactive menus and group recommendations |
US20200090248A1 (en) | 2018-09-13 | 2020-03-19 | Uber Technologies, Inc. | Network computing system for determining interest levels for consumable items |
US20200151660A1 (en) | 2018-11-14 | 2020-05-14 | Uber Technologies, Inc. | Network computing system for detecting auditory indicators of activity |
US11397911B2 (en) | 2018-11-15 | 2022-07-26 | Uber Technologies, Inc. | Network computer system to make effort-based determinations for delivery orders |
US10467563B1 (en) | 2019-02-18 | 2019-11-05 | Coupang, Corp. | Systems and methods for computerized balanced delivery route pre-assignment |
US10467562B1 (en) | 2019-02-18 | 2019-11-05 | Coupang, Corp. | Systems and methods for computerized balanced delivery route assignment |
US20200311618A1 (en) | 2019-03-26 | 2020-10-01 | Uber Technologies, Inc. | Multimodal network-based service |
US11216770B2 (en) | 2019-09-13 | 2022-01-04 | Uber Technologies, Inc. | Optimizing service requests in transport supply-constrained sub-regions |
-
2017
- 2017-11-02 US US15/802,395 patent/US11436554B2/en active Active
-
2018
- 2018-11-02 BR BR112020008710-6A patent/BR112020008710A2/en unknown
- 2018-11-02 CA CA3080753A patent/CA3080753A1/en active Pending
- 2018-11-02 JP JP2020524508A patent/JP7423517B2/en active Active
- 2018-11-02 WO PCT/US2018/058859 patent/WO2019090024A1/en active Application Filing
-
2022
- 2022-09-02 US US17/902,253 patent/US20220414593A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7881986B1 (en) * | 2005-03-10 | 2011-02-01 | Amazon Technologies, Inc. | Method and system for event-driven inventory disposition |
US20160034845A1 (en) * | 2014-07-30 | 2016-02-04 | Uber Technologies, Inc. | Arranging a transport service for multiple users |
US20180025407A1 (en) * | 2015-02-02 | 2018-01-25 | Beijing Didi Infinity Technology And Development Co., Ltd. | Methods and systems for order processing |
US20190130354A1 (en) * | 2017-10-30 | 2019-05-02 | DoorDash, Inc. | Depot dispatch protocol for aggregating on-demand deliveries |
Non-Patent Citations (1)
Title |
---|
Laetitia Dablanc, The Rise of On-Demand ‘Instant Deliveries’ in European Cities, 13 Sep 2017 (Year: 2017) * |
Also Published As
Publication number | Publication date |
---|---|
US20190130350A1 (en) | 2019-05-02 |
WO2019090024A1 (en) | 2019-05-09 |
JP2021501944A (en) | 2021-01-21 |
CA3080753A1 (en) | 2019-05-09 |
US11436554B2 (en) | 2022-09-06 |
JP7423517B2 (en) | 2024-01-29 |
BR112020008710A2 (en) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220414593A1 (en) | Network computer system to implement predictive time-based determinations for fulfilling delivery orders | |
US20190132702A1 (en) | Network computer system to selectively batch delivery orders | |
US20190132699A1 (en) | Computing system to implement network delivery service | |
US20190130320A1 (en) | Network computer system to implement dynamic provisioning for fulfilling delivery orders | |
US12044542B2 (en) | Optimization of network service based on an existing service | |
US11674810B2 (en) | Network computer system to arrange pooled transport services | |
US10928210B2 (en) | Method and system for shared transport | |
US20160300318A1 (en) | Fare determination system for on-demand transport arrangement service | |
US11416792B2 (en) | Network system capable of grouping multiple service requests | |
JP2023162429A (en) | Computing system for implementing network delivery service | |
CN111562991A (en) | Context notification for network-based services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
AS | Assignment |
Owner name: UBER TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NGUYEN, THANH LE;KANG, LEI;GU, MINGSHUAI;AND OTHERS;SIGNING DATES FROM 20180731 TO 20180801;REEL/FRAME:064384/0188 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |