Server and method for facilitating processing order for on-demand service
The server system addresses supply crunch issues by dynamically adjusting search and compensation strategies, ensuring reliable on-demand service fulfillment during challenging conditions.
Patent Information
- Application Number
- PCT/SG2025/050197
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-22
- Filing Date
- 2025-03-18
- Publication Date
- 2025-10-30
AI Technical Summary
Existing on-demand service systems face challenges in reliably fulfilling orders during supply crunch areas and times, such as heavy rain in CBDs or wee hours, due to limited search radius and inadequate surge pricing, leading to unmet user demands.
A server system that dynamically adjusts search strategies based on predetermined areas and times, allowing for extended radius searches and tailored compensation, ensuring efficient allocation of delivery service providers.
Enhances order fulfillment by optimizing provider allocation and pricing during supply crunch conditions, improving reliability and user satisfaction.
Smart Images

Figure SG2025050197_30102025_PF_FP_ABST
Abstract
Description
SERVER AND METHOD FOR FACILITATING PROCESSING ORDER FOR ON-DEMAND SERVICETECHNICAL FIELD
[0001] Various embodiments relate to a server and a method for facilitating processing an order for an on-demand service.BACKGROUND
[0002] Due to development of information technology, a user (who in some contexts herein may also be referred to as a “requester”, a “consumer”, a “customer”, or a “Pax”) may request an on-demand service using a computing device. The on-demand service may allow the user to fulfil the user’s demand via an immediate access to goods and / or services. The user may request the on-demand service, for example, a delivery service or a transport service (also referred to as an “e-hailing service”), using a user interface presented on the computing device. To request the on-demand service, the user may make an order (also referred to as a “booking”) for the on-demand service.
[0003] On or before making the order, the user may send a request for a fare-check for the order, to check an estimated fare (for example, a delivery fare) for the on-demand service and determine whether to proceed to make the order considering the estimated fare. After a server for the on-demand service receives the order for the on-demand service from the user, the server may allocate the received order to a delivery service provider (who in some contexts herein may also be referred to as a “driver”, a “driver partner”, a “Dax”, a “delivery partner” or a “delivery agent”), and the delivery service provider may perform the on-demand service forthe received order. For example, the delivery service provider may move to a destination (that in some contexts herein may also be referred to as a “drop-off point”, a “delivery point”, a “delivery location” or a “meeting point”) to perform the on-demand service for the received order.
[0004] However, in a specific area and during a specific time period (also referred to as a “supply crunch area and time”), for example, a heavy rain time in a central business district (CBD), wee hours in outskirts, and all the time in a specific island (for example, Sentosa), it may be challenging to provide a reliable fulfilment of the on-demand service to the users, even for those who are less price-sensitive
[0005] Conventionally, to allocate the order to the delivery service provider, there may be a certain upper bound for a radius (that in some contexts herein may also be referred to as a “range”, a “dynamic radius”, an “MRR (multi-round radius)” or a “dynamic MRR”) to search nearby delivery service providers. For example, if the upper bound is configured as 5 km of the radius, the server may not be able to retrieve and allocate a delivery service provider who is available 5.1 km away and is willing to fulfil the order for the on-demand service.
[0006] In addition, conventionally, in pricing the fare, the server may aggregate information about a supply and a demand in a Geohash level and smooth the aggregated information to nearby geographical grids A surge may be based on a nearby regions’ (areas’) supply-demand ratio in an overall way, and a surcharge may not consider such extreme cases of summoning a delivery service provider further away (not nearby). Moreover, the server may pay the delivery service providers a flat far-pick-up compensation, which may compensate them for the far pickup but may not scale beyond an ability to extend the radius marginally.
[0007] Therefore, there is a need to provide a solution for facilitating processing the order for the on-demand service, for example, in the supply crunch area and time.SUMMARY
[0008] According to various embodiments, there is a server for facilitating processing an order for an on-demand service, the server comprising: a memory configured to store instructions; a communication interface configured to receive a request for a fare-check for the order for the on-demand service from a computing device; and a processor for executing the stored instructions and configured to: obtain information about the order, including first information about a location relating to the order and second information about time relating to the order for the on-demand service; determine whether the order relates to a predetermined area and time, based on whether the location relating to the order relates to a predetermined area and the time relating to the order relates to a predetermined time; if it is determined that the order does not relate to the predetermined area and time, search one or more delivery service providers based on a first search option, by retrieving the one or more delivery service providers located within a predetermined range from the location relating to the order, if it is determined that the order relates to the predetermined area and time, search the one or more delivery service providers based on a second search option, by retrieving at least a predetermined number of the one or more delivery service providers; and allocate the order to a delivery service provider selected from the one or more delivery service providers
[0009] In some embodiments, if it is determined that the order relates to the predetermined area and time, the processor is further configured to: retrieve a plurality of available delivery service providers for the order; and retrieve at least the predetermined number of the one or more delivery service providers from the plurality of available delivery service providers, based on a distance between the location relating to the order and locations of each of the plurality of available delivery service providers.
[0010] In some embodiments, the processor is further configured to: determine that the order relates to the predetermined area and time, if the location relating to the order relates to the predetermined area and the time relating to the order relates to the predetermined time; and determine that the order does not relate to the predetermined area and time, if the location relating to the order does not relate to the predetermined area and / or the time relating to the order does not relate to the predetermined time.
[0011] In some embodiments, the processor is further configured to change between the first search option and the second search option for an allocation of the order, based on whether it is determined that the order relates to the predetermined area and time.
[0012] In some embodiments, if it is determined that the order relates to the predetermined area and time, the processor is further configured to: determine a fare for the on-demand service before the allocation of the order, based on an assumption that the order will get allocated to any one of delivery service providers located outside the predetermined range from the location relating to the order; and compensate the delivery service provider selected from the one or more delivery service providers, based on the determined fare.
[0013] In some embodiments, if the predetermined number is 1, the processor is configured to allocate the order to the delivery service provider.
[0014] In some embodiments, if the predetermined number is equal to or greater than 2, the processor is configured to: match information about each of the one or more delivery service providers with the information about the order; select the delivery service provider from the one or more delivery service providers based on the matching; and allocate the order to the delivery service provider selected from the one or more delivery service providers.
[0015] In some embodiments, the location relating to the order includes a latitude and a longitude of a pick-up point and / or a destination for the order.
[0016] According to various embodiments, there is a method for facilitating processing an order for an on-demand service, the method comprising: receiving a request for a fare-check for the order for the on-demand service from a computing device, obtaining information about the order, including first information about a location relating to the order and second information about time relating to the order for the on-demand service; determining whether the order relates to a predetermined area and time, based on whether the location relating to the order relates to a predetermined area and the time relating to the order relates to a predetermined time; if it is determined that the order does not relate to the predetermined area and time, searching one or more delivery service providers based on a first search option, by retrieving the one or more delivery service providers located within a predetermined range from the location relating to the order; if it is determined that the order relates to the predetermined area and time, searching the one or more delivery service providers based on a second search option, by retrieving at least a predetermined number of the one or more delivery service providers, and allocating the order to a delivery service provider selected from the one or more delivery service providers.
[0017] In some embodiments, the method further comprises: if it is determined that the order relates to the predetermined area and time, retrieving a plurality of available delivery service providers for the order; and retrieving at least the predetermined number of the one or more delivery service providers from the plurality of available delivery service providers, based on a distance between the location relating to the order and locations of each of the plurality of available delivery service providers.
[0018] In some embodiments, the method further comprises: determining that the order relates to the predetermined area and time, if the location relating to the order relates to the predetermined area and the time relating to the order relates to the predetermined time; and determining that the order does not relate to the predetermined area and time, if the locationrelating to the order does not relate to the predetermined area and / or the time relating to the order does not relate to the predetermined time.
[0019] In some embodiments, the method further comprises: changing between the first search option and the second search option for an allocation of the order, based on whether it is determined that the order relates to the predetermined area and time.
[0020] In some embodiments, the method further comprises: if it is determined that the order relates to the predetermined area and time, determining a fare for the on-demand service before the allocation of the order, based on an assumption that the order will get allocated to any one of delivery service providers located outside the predetermined range from the location relating to the order; and compensating the delivery service provider selected from the one or more delivery service providers, based on the determined fare.
[0021] In some embodiments, the method further comprises: if the predetermined number is 1, allocating the order to the delivery service provider.
[0022] In some embodiments, the method further comprises: if the predetermined number is equal to or greater than 2, matching information about each of the one or more delivery service providers with the information about the order; selecting the delivery service provider from the one or more delivery service providers based on the matching; and allocating the order to the delivery service provider selected from the one or more delivery service providers.
[0023] In some embodiments, the location relating to the order includes a latitude and a longitude of a pick-up point and / or a destination for the order.10024 ] According to various embodiments, a data processing apparatus configured to perform the method of any one of the above embodiments is provided.
[0025] According to various embodiments, a computer program element comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any one of the above embodiments is provided.
[0026] According to various embodiments, a computer-readable medium comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any one of the above embodiments is provided. The computer-readable medium may include a non-transitory computer-readable medium.BRIEF DESCRIPTION OF THE DRAWINGS
[0027] The invention will be better understood with reference to the detailed description when considered in conjunction with the non-limiting examples and the accompanying drawings, in which:- FIGS. 1 and 2 illustrate infrastructures of a system including a server for facilitating processing an order for an on-demand service according to various embodiments.- FIG. 3 illustrates a block diagram of a server for facilitating processing an order for an on-demand service according to various embodiments.- FIG. 4 illustrates a flowchart for a method for facilitating processing an order for an on- demand service according to various embodiments.- FIG. 5 illustrates a data flow diagram of a server for facilitating processing an order for an on-demand service according to various embodiments.- FIG. 6 illustrates an exemplary diagram showing an area tag according to various embodiments.DETAILED DESCRIPTION
[0028] The following detailed description refers to the accompanying drawings that show, by way of illustration, specific details and embodiments in which the disclosure may be practiced.These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure. Other embodiments may be utilized and structural, and logical changes may be made without departing from the scope of the disclosure. The various embodiments are not necessarily mutually exclusive, as some embodiments can be combined with one or more other embodiments to form new embodiments.
[0029] Embodiments described in the context of one of a server and a method are analogously valid for the other server and method. Similarly, embodiments described in the context of a server are analogously valid for a method, and vice-versa.
[0030] Features that are described in the context of an embodiment may correspondingly be applicable to the same or similar features in the other embodiments. Features that are described in the context of an embodiment may correspondingly be applicable to the other embodiments, even if not explicitly described in these other embodiments. Furthermore, additions and / or combinations and / or alternatives as described for a feature in the context of an embodiment may correspondingly be applicable to the same or similar feature in the other embodiments.
[0031] In the context of various embodiments, the articles “a”, “an” and “the” as used with regard to a feature or element include a reference to one or more of the features or elements.
[0032] As used herein, the term “and / or” includes any and all combinations of one or more of the associated listed items.
[0033] Throughout the description, the term “module” may be understood as an application specific integrated circuit (ASIC), an electronic circuit, a combinational logic circuit, a field programmable gate array (FPGA), a processor which executes code, other suitable hardware components which provide the described functionality, or any combination thereof. The term of “module” may include a memory which stores code executed by the processor.
[0034] In the following, embodiments will be described in detail.
[0035] FIGS. 1 and 2 illustrate infrastructures of a system 200 including a server 100 for facilitating processing an order for an on-demand service according to various embodiments.
[0036] As shown in FIG. 1, the system 200 may include, but is not limited to, the server 100, a database system 140, a network 150, a plurality of first computing devices 160 each associated with a plurality of users 161 (who in some contexts herein may also be referred to as a “requester”, a “consumer”, a “customer” or a “Pax”), a plurality of second computing devices 170 (not shown) each associated with a plurality of delivery service providers 171 (who in some contexts herein may also be referred to as a “driver”, a “driver partner”, a “Dax”, a “delivery partner” or a “delivery agent”), and a plurality of third computing devices 180 (not shown) each associated with a plurality of item providers 181 (who in some contexts herein may also be referred to as a “merchant”, a “Mex”, a “food provider” or a “restaurant”). In some embodiments, the users 161 may include a consumer (who in some contexts herein may also be referred to as an “eater” or a “passenger”) for the on-demand service. For example, a user 161a may be the same as the consumer. As another example, the user 161a may be different from the consumer and use the on-demand service for and / or on behalf of the consumer.
[0037] In some embodiments, the on-demand service may be a service allowing the user 161a to fulfil the user’s demand via an immediate access to items and / or services The user 161a may request the on-demand service, such as a transport service (also referred to as an “e-hailing service”) or an item delivery service, using a user interface presented on a first computing device 160a. The user 161a may make an order for the on-demand service.|0038| In some embodiments, the user 161a may use an application (app), for example, a mobile application, provided by the server 100. For example, the server 100 may be controlled and / or managed by an on-demand service platform provider. The application may be installed in the first computing device 160a associated with the user 161a, to interact with the server 100 for the on-demand service.
[0039] In some embodiments, the network 150 may include, but is not limited to, a Local AreaNetwork (LAN), a Wide Area Network (WAN), a Global Area Network (GAN), or any combination thereof. The network 150 may provide a wireline communication, a wireless communication, or a combination of the wireline and wireless communication between the server 100 and the plurality of first computing devices 160, between the server 100 and the plurality of second computing devices 170, and between the server 100 and the plurality of third computing devices 180. As shown in FIG. 2, the network 150 may provide the wireline communication, the wireless communication, or the combination of the wireline and wireless communication between the first computing device 160a of the plurality of first computing devices 160 and a second computing device 170a of the plurality of second computing devices 170.
[0040] In some embodiments, the plurality of first computing devices 160 may be connectable to the server 100 via the network 150. In some embodiments, the plurality of first computing devices 160 may be arranged in data or signal communication with the server 100 via the network 150. In some embodiments, the plurality of first computing devices 160 may include, but is not limited to, at least one of the following: a mobile phone, a tablet computer, a laptop computer, a desktop computer, a head-mounted display and a smart watch. In some embodiments, the plurality of first computing devices 160 may be associated with the plurality of users 161 respectively. For example, the plurality of first computing devices 160 may belong to the plurality of users 161 respectively. For example, the first computing device 160a may belong to the user 161a who is the consumer. As another example, the first computing device 160a may belong to the user 161a requesting the delivery of the item to the consumer who is a recipient of the on-demand service.
[0041] In some embodiments, the first computing device 160a may include a location sensor. In some embodiments, the location sensor may communicate with at least one of a globalpositioning satellite (GPS) server, a network server, and a Wi-Fi server, to detect a location of the first computing device 160a. In some embodiments, the first computing device 160a may generate information about the location of the first computing device 160a.
[0042] In some embodiments, the server 100, for example, implemented by a server computer, may include a communication interface 110, a processor 120, and a memory 130 (as will be described with reference to FIG. 3).
[0043] In some embodiments, the server 100 may communicate with the plurality of first computing devices 160 via the network 150. In some embodiments, the user 161a may make an order (also referred to as a “booking”) for the on-demand service using the first computing device 160a. In some embodiments, the first computing device 160a may receive the order from the user 161a for the on-demand service. The first computing device 160a may send the order to the server 100 via the network 150. In some embodiments, the first computing device 160a may send the information about the location of the first computing device 160a to the server 100 via the network 150. The location of the first computing device 160a may be considered as a location of the user 161a. In some embodiments, the location of the user 161a may be considered as a destination of the on-demand service. In some other embodiments, the first computing device 160a may send information about an address of the user 161a, and the address of the user 161a may be considered as the destination of the on-demand service. In some other embodiments, the first computing device 160a may send information about an address of the recipient of the delivery, and the address of the recipient may be considered as the destination of the on-demand service.
[0044] In some embodiments, on or before making the order, the user 161a may send a request for a fare-check for the order, to check an estimated fare (for example, a delivery fare) for the on-demand service and determine whether to proceed to make the order considering the fare. In some embodiments, the first computing device 160a may receive the request for the farecheck from the user 161a. In some embodiments, the first computing device 160a may send the request for the fare-check to the server 100 via the network 150. In some embodiments, the first computing device 160a may send the information about the location of the first computing device 160a to the server 100 via the network 150. The location of the first computing device 160a may be considered as the location of the user 161a. In some embodiments, the location of the user 161a may be considered as the destination of the on-demand service. In some other embodiments, the first computing device 160a may send the information about the address of the user 161a to the server 100 via the network 150, and the address of the user 161a may be considered as the destination of the on-demand service. In some other embodiments, the first computing device 160a may send information about the address of the recipient of the delivery to the server 100 via the network 150, and the address of the recipient may be considered as the destination of the on-demand service. In some embodiments, in response to the request for the fare-check, the server 100 may send information about the fare (i.e. estimated fare) for the order for the on-demand service to the first computing device 160a via the network 150. In some embodiments, the first computing device 160a may receive the information about the fare for the order from the server 100 via the network 150, and display the information about the fare for the order on the user interface presented on the first computing device 160a.
[0045] In some embodiments, the system 200 may further include a database 141 In some embodiments, the database 141 may be a part of the database system 140 which may be external to the server 100. The server 100 may communicate with the database 141. In some other embodiments, although not shown, the database 141 may be implemented locally in the memory 130 of the server 100.
[0046] In some embodiments, the server 100 may communicate with the plurality of second computing devices 170 via the network 150. In some embodiments, the plurality of second computing devices 170 may be arranged in data or signal communication with the server 100via the network 150. In some embodiments, the plurality of second computing devices 170 may include, but is not limited to, at least one of the following: a mobile phone, a tablet computer, a laptop computer, a desktop computer, a head-mounted display and a smart watch. In some embodiments, the plurality of second computing devices 170 may be associated with the plurality of delivery service providers 171 respectively. For example, the plurality of second computing devices 170 may belong to the plurality of delivery service providers 171 respectively.
[0047] In some embodiments, the user 161a may make the order, using the first computing device 160a, after checking the fare. In some embodiments, the server 100 may receive the order from the first computing device 160a. After the server 100 receives the order from the first computing device 160a, the server 100 may allocate (assign) the order to a suitable delivery service provider 171a. In some embodiments, the second computing device 170a associated with the delivery service provider 171a may send information about a location of the second computing device 170a to the server 100 via the network 150. The location of the second computing device 170a may be considered as a location of the delivery service provider 171a. In some embodiments, the location of the delivery service provider 171a may be considered as a current location of the delivery service provider 171a, and may change while the delivery service provider 171a moves to the destination (en route to the destination). In some embodiments, the server 100 may provide the second computing device 170a with a map relating to a route from the current location of the second computing device 170a (which may be considered as the location of the delivery service provider 171a) to the destination for providing the on-demand service, en route to the destination.
[0048] In some embodiments, the server 100 may communicate with the plurality of third computing devices 180 via the network 150. In some embodiments, the plurality of third computing devices 180 may be arranged in data or signal communication with the server 100via the network 150. In some embodiments, the plurality of third computing devices 180 may include, but is not limited to, at least one of the following: a mobile phone, a tablet computer, a laptop computer, a desktop computer, a head-mounted display and a smart watch. In some embodiments, the plurality of third computing devices 180 may be associated with the plurality of item providers 181 respectively. For example, the plurality of third computing devices 180 may belong to the plurality of item providers 181 respectively.
[0049] FIG. 3 illustrates a block diagram of a server 100 for providing information for an on- demand service according to various embodiments.
[0050] As shown in FIG. 3, the server 100, for example, implemented by a server computer, may include a communication interface 110, a processor 120, and a memory 130.
[0051] In some embodiments, the memory 130 (also referred to as a “database”) may store input data and / or output data temporarily or permanently. In some embodiments, the memory 130 may be configured to store instructions. In some embodiments, the memory 130 may store program code which allows the server 100 to perform a method 300 (as will be described with reference to FIG. 4). In some embodiments, the program code may be embedded in a Software Development Kit (SDK). The memory 130 may include an internal memory of the server 100 and / or an external memory. The external memory may include, but is not limited to, an external storage medium, for example, a memory card, a flash drive, and a web storage.
[0052] In some embodiments, the communication interface 1 10 may allow a plurality of first computing devices 160 to communicate with the processor 120 of the server 100 via the network 150, as shown in FIGS. 1 and 2. As shown in FIGS. 1 and 2, each of the plurality of first computing devices 160 may belong to each of users 161 who want to make the order for the on-demand service. In some embodiments, the communication interface 110 may transmit signals to the plurality of first computing devices 160, and / or receive signals from the plurality of first computing devices 160, via the network 150. For example, as shown in FIGS. 1 and 2,a first computing device 160a may belong to a user 161a who wants to make the order for the on-demand service, and the communication interface 110 may transmit signals to the first computing device 160a, and / or receive signals from the first computing device 160a via the network 150.
[0053] In some embodiments, the communication interface 110 may allow a plurality of second computing devices 170 to communicate with the processor 120 of the server 100 via the network 150, as shown in FIGS. 1 and 2. As shown in FIGS. 1 and 2, each of the plurality of second computing devices 170 may belong to each of a plurality of delivery service providers 171 who may pick up an item from an item provider 181 a and deliver the item to the consumer (i.e. a destination) and / or who may transport the consumer to the destination. In some embodiments, the communication interface 110 may transmit signals to the plurality of second computing devices 170, and / or receive signals from the plurality of second computing devices 170, via the network 150.
[0054] In some embodiments, the communication interface 110 may allow a plurality of third computing devices 180 to communicate with the processor 120 of the server 100 via the network 150, as shown in FIG. 1. As shown in FIG. 1, each of the plurality of third computing devices 180 may belong to each of a plurality of item providers 181 who may prepare an item, for example, food, for the order. In some embodiments, the communication interface 110 may transmit signals to the plurality of third computing devices 180, and / or receive signals from the plurality of third computing devices 180, via the network 150.[0055| The processor 120 may include, but is not limited to, a microprocessor, an analogue circuit, a digital circuit, a mixed-signal circuit, a logic circuit, an integrated circuit, a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), a Digital Signal Processor (DSP), a Field Programmable Gate Array (FPGA), an Application Specific Integrated Circuit (ASIC),or any combination thereof. Any other kind of implementation of the respective functions, which will be described below in further detail, may also be understood as the processor 120.
[0056] In some embodiments, the processor 120 may be connectable to the communication interface 110. In some embodiments, the processor 120 may be arranged in data or signal communication with the communication interface 110 to transmit / receive the signals.
[0057] In some embodiments, the communication interface 110 may receive a plurality of orders (also referred to as “a plurality of bookings”) for the on-demand service from the plurality of first computing devices 160 each associated with the plurality of users 161 (who in some contexts herein may also be referred to as “consumers 161” or “requesters 161”). In some embodiments, the processor 120 may receive the plurality of orders for the on-demand service from the communication interface 110. For example, the communication interface 110 may receive an order (also referred to as a “booking”) for the on-demand service from the first computing device 160a associated with the user 161a (who in some contexts herein may also be referred to as a “consumer 161a” or a “requester 161a”), and the processor 120 may receive the order for the on-demand service from the communication interface 110.
[0058] In some embodiments, on or before making the order, the first computing device 160a may send a request for a fare-check for the order to the communication interface 110, so that the user 161a may check an estimated fare (for example, a delivery fare) for the on -demand service and determine whether to proceed to make the order considering the fare.
[0059] In some embodiments, the processor 120 may obtain information about the order from the communication interface 110. For example, the processor 120 may obtain the information about the order from data relating to the request for the fare-check for the order. For example, the data relating to the request for the fare-check may include the data configuring the request for the fare-check, including the information about the order. In some embodiments, theinformation about the order may include first information about a location relating to the order and second information about time relating to the order.
[0060] In some embodiments, the location relating to the order may include a location of the first computing device 160a. For example, the location of the first computing device 160a may be considered as a location of the user 161a. For example, the location of the user 161a may be considered as a pick-up point of the on-demand service (for example, in the e-hailing service). As another example, the location of the user 161a may be considered as a destination of the on- demand service (for example, in the item delivery service). In some other embodiments, the first computing device 160a may send information about an address of the user 161 a, and the location relating to the order may include the address of the user 161a. For example, the address of the user 161a may be considered as the pick-up point of the on-demand service (for example, in the e-hailing service). As another example, the address of the user 161a may be considered as the destination of the on-demand service (for example, in the item delivery service). In some other embodiments, the first computing device 160a may send information about an address of the recipient of the delivery that the user 161a manually inputted, and the location relating to the order may include the address of the recipient of the delivery. For example, the address of the recipient of the delivery may be considered as the destination of the on-demand service (for example, in the item delivery service).
[0061] In some embodiments, the location relating to the order may include at least one of a latitude and a longitude of the pick-up point for the order. In some other embodiments, the location relating to the order includes at least one of a latitude and a longitude of the destination for the order. In some other embodiments, the location relating to the order includes at least one of the latitude and the longitude of the pick-up point and at least one of the latitude and the longitude of the destination for the order.
[0062] In some embodiments, the time relating to the order may include a time that the user161a attempts to check the estimated fare for the order, for example, the time that the request for the fare-check is made. In some other embodiments, the time relating to the order may include an estimated time that the order will be made. In some other embodiments, the user 161a may make the order for a future delivery time, and the time relating to the order may include the future delivery time designated by the user 161a.
[0063] In some embodiments, the processor 120 may analyse the obtained information about the order. In some embodiments, the processor 120 may extract the first information about the location relating to the order and the second information about the time relating to the order from the obtained information about the order.
[0064] In some embodiments, the processor 120 may determine whether the order relates to a predetermined area and time (also referred to as a “supply crunch area and time”), based on whether the location relating to the order relates to a predetermined area (also referred to as a “supply crunch area”) and the time relating to the order relates to a predetermined time (also referred to as a “supply crunch time”).
[0065] It may be appreciated that, before providing the fare to the user 161a in response to the request for the fare-check, it may be desired to inquire the processor 120 to search for the nearest delivery service provider 171a and provide an estimated time of arrival (ETA), but in this scenario, a QPS (queries for second) may be too high and thus incur high costs. According to various embodiments, the processor 120 may use the supply crunch area and time, which may have long ETA (for example, having ETA longer than a predetermined threshold) and / or have received orders without a supply of the delivery service providers 171.
[0066] In some embodiments, the memory 130 and / or the database 141 may store a list of at least one predetermined area. For example, the at least one predetermined area may include a central business district (CBD), an island (for example, Sentosa), and outskirts. In someembodiments, the processor 120 may update the list of the at least one predetermined area, for example, periodically or when an event occurs. For example, the processor 120 may receive information about an area with a low supply and a high demand of the delivery service providers 171, and add the area into the list of the at least one predetermined area. In some embodiments, the processor 120 may analyse the first information about the location relating to the order, and determine whether the location relating to the order relates to the predetermined area. For example, if the location of the first computing device 160a is the central business district (CBD), the processor 120 may determine that the location relating to the order relates to the supply crunch area.
[0067] In some embodiments, the memory 130 and / or the database 141 may store a list of at least one predetermined time. For example, the at least one predetermined time may include a fixed time, such as wee hours (for example, 12 am to 6 am) and rush hours (for example, 8 am to 10 am and 6 pm to 8pm). As another example, the at least one predetermined time may further include a variable time which may depend on environments, such as rainy time or snowy time. In some embodiments, the processor 120 may update the list of the at least one predetermined time, for example, periodically or when an event occurs. For example, the processor 120 may receive information about time with a low supply and a high demand of the delivery service providers 171, and add the time into the list of the at least one predetermined time. In some embodiments, the processor 120 may analyse the second information about the time relating to the order, and determine whether the time relating to the order relates to the predetermined time. For example, if the time that the first computing device 160a sent the request for the fare-check for the order is in the middle of rush hours, the processor 120 may determine that the time relating to the order relates to the supply crunch time.
[0068] In some embodiments, if the location relating to the order relates to the predetermined area and the time relating to the order relates to the predetermined time, the processor 120 maydetermine that the order relates to the supply crunch area and time. In some embodiments, if the location relating to the order does not relate to the predetermined area and / or the time relating to the order does not relate to the predetermined time, the processor 120 may determine that the order does not relate to the supply crunch area and time. In some embodiments, the processor 120 may change between the first search option and the second search option for an allocation of the order, based on whether it is determined that the order relates to the supply crunch area and time.
[0069] In some embodiments, if it is determined by the processor 120 that the order does not relate to the supply crunch area and time, the processor 120 may search one or more delivery service providers 171 based on a first search option. In some embodiments, the first search option may be retrieving the one or more delivery service providers 171 located within a predetermined range (also referred to as a “predetermined radius”) from the location relating to the order. In some embodiments, the processor 120 may retrieve the one or more delivery service providers 171 located within the predetermined range from the location relating to the order. For example, the processor 120 may retrieve the one or more delivery service providers 171 located within 5 km from the location of the first computing device 160a.
[0070] In some embodiments, if it is determined by the processor 120 that the order relates to the supply crunch area and time, the processor 120 may search the one or more delivery service providers 171 based on a second search option In some embodiments, the second search option may be retrieving at least a predetermined number of the one or more delivery service providers 171. In some embodiments, the processor 120 may retrieve at least the predetermined number of the one or more delivery service providers 171. For example, the processor 120 may retrieve the nearest predetermined number of the one or more delivery service providers 171. For example, the processor 120 may retrieve at least five (5) delivery service providers 171 regardless of whether the five (5) delivery service providers 171 are located within 5 Ion fromthe location of the first computing device 160a. In this manner, during the supply crunch area and time, the conventional search radius (range) according to the first search option may not meet the search target, so the search mode of a combination of a large radius and / or no radius and K eligible drivers may be used. The processor 120 may use an MLD (Multi Level Dijkstra: a Max-flow Min-cut algorithm to find the shortest route between two points) index to optimise a search condition of the large radius, and perform normal latency in this case.
[0071] In some embodiments, under the second search option, the processor 120 may retrieve a plurality of available delivery service providers 171 for the order. In some embodiments, the processor 120 may retrieve (extract) at least the predetermined number of the one or more delivery service providers 171 from the plurality of available delivery service providers 171, based on a distance between the location relating to the order and locations of each of the plurality of available delivery service providers 171. In some embodiments, the processor 120 may retrieve the plurality of available delivery service providers 171 equal to or greater than the predetermined number, prioritise the plurality of available delivery service providers 171 based on the distance between the location relating to the order (for example, the location of the first computing device 160a) and locations of each of the plurality of available delivery service providers 171, and retrieve (extract) five (5) delivery service providers 171 from the plurality of available delivery service providers 171 based on the distance. In this manner, the five (5) delivery service providers 171 relatively close to the location of the first computing device 160a may be retrieved (extracted).100721 In some embodiments, under the second search option, the processor 120 may retrieve (extract) the plurality of available delivery service providers 171 equal to or greater than the predetermined number, regardless of whether they are within the predetermined range (i.e. no radius), and then retrieve (extract) the predetermined number of the delivery service providers 171 from the plurality of available delivery service providers 171 . In some other embodiments,under the second search option, the processor 120 may extend the predetermined range (i.e. large radius), and retrieve the plurality of available delivery service providers 171 that are within the extended range equal to or greater than the predetermined number, and retrieve (extract) the predetermined number of the delivery service providers 171 from the plurality of available delivery service providers 171.
[0073] In some embodiments, the processor 120 may calculate the fare (i.e. estimated fare) for the order for the on-demand service, before allocation of the order. For example, the processor 120 may calculate the fare for the order based on at least one of the location of the first computing device 160a and the destination of the on-demand service In some embodiments, the processor 120 may send information about the fare for the order for the on-demand service to the communication interface 110. In some embodiments, the communication interface 110 may send the information about the fare for the order to the first computing device 160a. In some embodiments, the first computing device 160a may receive the information about the fare for the order from the communication interface 110, and display the information about the fare for the order on the user interface presented on the first computing device 160a.
[0074] In some embodiments, after the user 161a checks the fare (i.e. estimated fare) presented on the first computing device 160a, the user 161a may make the (confirmed) order for the on- demand service based on the fare. In some embodiments, the first computing device 160a may send the order for the on-demand service to the communication interface 1 10, and the communication interface 110 may send the order for the on-demand service to the processor 120.
[0075] In some embodiments, the processor 120 may allocate the order to a delivery service provider 171a selected from the one or more delivery service providers 171. In some embodiments, the processor 120 may match information about each of the one or more delivery service providers 171 with the information about the order. For example, the information abouteach of the one or more delivery service providers 171 may include at least one of characteristics and preference of the each of the one or more delivery service providers 171. As an example, the characteristics may include a vehicle type (for example, a 4 seater car, a 6 seater car, a motorcycle, a bicycle, a scooter, etc.). As an example, the preference may include a preferable delivery area (for example, a central business district (CBD), outskirts, etc.), and a preferable type of a pick-up point and a destination (for example, a designated point of an office building, a taxi stand, etc ). In some embodiments, the information about the order may include at least one of desired delivery characteristics and geographical characteristics of the order. For example, the desired delivery characteristics of the order may include a desired vehicle type for the order (for example, a motorcycle for a delivery of ice cream). As another example, the geographical characteristics of the order may include, but not be limited to, at least one of an area, a pick-up point, a destination, and a route relating to the order.
[0076] In some embodiments, the processor 120 may compare the information about each of the one or more delivery service providers 171 with the information about the order, to match the information. In some embodiments, the processor 120 may select the delivery service provider 171a from the one or more delivery service providers 171 based on the matching results. In some embodiments, the processor 120 may select the delivery service provider 171a that matches the most information about the order. In some embodiments, the processor 120 may allocate the order to the delivery service provider 171a selected from the one or more delivery service providers 171.100771 In some other embodiments, the processor 120 may prioritise the one or more delivery service providers 171 based on the matching results. For example, the processor 120 may give the highest priority to the delivery service provider 171a that matches the most information about the order. In some embodiments, the processor 120 may send a request for accepting the order to each of the one or more delivery service providers 171 sequentially (for example, in10 seconds gap) based on the priorities, and allocate the order to the delivery service provider 171a that accepted the order first.
[0078] In some other embodiments, the processor 120 may send a request for accepting the order to each of the one or more delivery service providers 171 at the same time, and allocate the order to the delivery service provider 171a that accepted the order first.
[0079] In some embodiments, during the supply crunch area and time, the processor 120 may skip a usual allocation strategy (for example, the first search option), and try to retrieve the nearest-K eligible delivery service providers 171 from an underlying LBS (Location-based services) system. This retrieval may not consider the predetermined range, but target finding at least “K” delivery service providers 171 (the second search option may be referred to as a “radius-less option” or a “radius-less search”).
[0080] In some embodiments, under the second search option, if the predetermined number is one (1) (i.e. when K=l), a direct assignment option may be used, and the processor 120 may allocate the order to the one delivery service provider 171a.
[0081] In some embodiments, under the second search option, if the predetermined number is equal to or greater than two (2), the processor 120 may match the information about each of the one or more delivery service providers 171 with the information about the order, select the delivery service provider 171a from the one or more delivery service providers 171 based on the matching results, and allocate the order to the delivery service provider 171 a selected from the one or more delivery service providers 171. For example, the processor 120 may run a similar KM (Kuhn-Munkres) algorithm to dispatch an aggregated demand (i.e. allocating the order) within a dispatch system to the best-matched delivery service provider 171a. The KM algorithm is also known as a Hungarian method, and is a combinatorial optimisation algorithm that solves the assignment problem in polynomial time. In some other embodiments, the processor 120 may prioritise the one or more delivery service providers 171 based on thematching results, send a request for accepting the order to each of the one or more delivery service providers 171 sequentially (for example, in 10 seconds gap) based on the priorities, and allocate the order to the delivery service provider 171a that accepted the order first. In some other embodiments, the processor 120 may send a request for accepting the order to each of the one or more delivery service providers 171 at the same time, and allocate the order to the delivery service provider 171a that accepted the order first.
[0082] In some embodiments, if it is determined by the processor 120 that the order relates to the supply crunch area and time, the processor 120 may determine the fare for the on -demand service before the allocation of the order, based on an assumption that the order will get allocated to any one of delivery service providers 171a located outside the predetermined range from the location relating to the order. As an example, a surcharge fare may be computed and added to a normal fare. For example, under the second search option, the processor 120 may retrieve (extract) at least the predetermined number of the one or more delivery service providers 171, and some of the retrieved delivery service providers 171 may be within the predetermined range from the location relating to the order (for example, the location of the first computing device 160a), and the other of the retrieved delivery service providers 171 may be outside the predetermine range from the location of the first computing device 160a. Before the allocation of the order, the processor 120 may determine the fare based on the assumption that the order will get allocated to the other of the retrieved delivery service providers 171 who may be outside the predetermine range from the location of the first computing device 160a. In some embodiments, the processor 120 may send the information about the fare to the first computing device 160a, and the user 161a may make the order based on the determined fare. Thereafter, the processor 120 may allocate the order the delivery service provider 171a selected from the one or more delivery service providers 171.
[0083] In some embodiments, the processor 120 may compensate the delivery service provider 171a selected from the one or more delivery service providers 171, based on the determined fare. For example, if the order is allocated to the delivery service provider 171a that is outside the predetermine range from the location of the first computing device 160a, the processor 120 may compensate the delivery service provider 171a based on the determine fare. As another example, if the order is allocated to the delivery service provider 171a that is within the predetermine range from the location of the first computing device 160a, the processor 120 may also compensate the delivery service provider 171a based on the determine fare. In this manner, the delivery service provider 171 a may be compensated for his / her effort during a long pick-up.
[0084] As described above, various embodiments may propose a solution that may deal with a specific supply crunch area and time situation by finding the delivery service providers 171 that may be further away than a usual nearby search radius. In addition, the various embodiments may surface this option (for example, the second search option) to the user 161a with an optimal fare to compensate the delivery service providers’ 171 extra pick-up efforts.
[0085] As described above, during the supply-crunch area and time, the various embodiments may search the nearest K delivery service providers 171, regardless of how far they are, instead of a radius-based search (for example, the first search option) for the delivery service providers 171, before the allocation stage To reduce a traffic load which may be required for the radiusless search (for example, the second search option), the various embodiments may provide an improved scalable system and tool to define the supply-crunch area and time enabling the radius-less search, and send the traffic load to the LBS system within the area and time constraint.
[0086] FIG. 4 illustrates a flowchart for a method 300 for facilitating processing an order for an on-demand service according to various embodiments. According to various embodiments, the method 300 for processing the order for the on-demand service may be provided.
[0087] In some embodiments, the method 300 may include a step 301 of receiving a request for a fare-check for the order for the on-demand service from a computing device.
[0088] In some embodiments, the method 300 may include a step 302 of obtaining information about the order, including first information about a location relating to the order and second information about time relating to the order for the on-demand service.
[0089] In some embodiments, the method 300 may include a step 303 of determining whether the order relates to a predetermined area and time, based on whether the location relating to the order relates to a predetermined area and the time relating to the order relates to a predetermined time.
[0090] In some embodiments, the method 300 may include a step 304 of if it is determined that the order does not relate to the predetermined area and time, searching one or more delivery service providers based on a first search option, by retrieving the one or more delivery service providers located within a predetermined range from the location relating to the order.
[0091] In some embodiments, the method 300 may include a step 305 of if it is determined that the order relates to the predetermined area and time, searching the one or more delivery service providers based on a second search option, by retrieving at least a predetermined number of the one or more delivery service providers.|0092| In some embodiments, the method 300 may include a step 306 of allocating the order to a delivery service provider selected from the one or more delivery service providers.
[0093] Although not shown, in some embodiments, before the step 306, the method 300 may include an additional step of determining a fare for the on-demand service before the allocation of the order. In some embodiments, the fare may be determined based on an assumption thatthe order will get allocated to any one of delivery service providers located outside the predetermined range from the location relating to the order.
[0094] Although not shown, in some embodiments, before the step 306, the method 300 may further include an additional step of providing the determined fare for the on-demand service to the computing device.
[0095] Although not shown, in some embodiments, before the step 306, the method 300 may further include an additional step of receiving the (confirmed) order for the on-demand service from the computing device.
[0096] FIG 5 illustrates a data flow diagram of a server for facilitating processing an order for an on-demand service according to various embodiments. FIG. 6 illustrates an exemplary diagram showing an area tag according to various embodiments.
[0097] In FIG. 5, an Ops team 401 may refer to an operations team. GeoTools 402 may refer to a tool used by the Ops team 401 to create an area object 404. Borders 403 may refer to a service that interprets and maintains a list of areas. An area 404 (also referred to as an “area service” or the “area object”) may refer to a closed polygon defined by a series of latitudelongitude coordinates. An area storage 405 may refer to (assuming) the database that stores the individual area definitions. An allocation 406 may refer to a process that requires configurations that are defined in these areas by the Ops teams 401 These configurations may be used in a matching process later on.
[0098] As shown in FIG. 5, arrows (a) refer to a configuration dataflow. The Ops team 401 of the on-demand service platform provider may create the area object 404 for a specific island (for example, Sentosa, as shown in FIG. 6) with custom policies and configurations. For example, a radius and a delivery fee (i.e. the fare) for this specific island may be customised. As an example, the radius may be much larger than the other areas, and the delivery fee may be higher than other areas. In some embodiments, the on-demand service platform providermay provide a model, for example, a unified model, to define the custom policies, including, but not limited to, batching, allocation, and pricing, in a specific area for specific times.
[0099] As shown in FIG. 5, arrows (b) refer to a runtime dataflow. The allocation 406 may pass a latitude and a longitude (lat / long) relating to the order (booking), and an area service (i.e. the area) 404 may resolve the area and return the configurations.
[0100] In some embodiments, the area object (i.e. the area) 404 may contain a geofence, for example, CRUD (create, read, update, and delete) geofence, with one or more polygons, which may be the purposes of this area, such as batching or allocation. The unified model may allow the on-demand service platform provider to define the area and time based configurations according to needs of the on-demand service platform provider.
[0101] In some embodiments, with the support of the unified model, a processor 120 of a server 100 may identify users who open an application (app) within the supply crunch area and time and trigger the new radius-less option for them.
[0102] In some embodiments, as shown in FIG. 6, in Sentosa, the processor 120 may have a higher default upper-bound radius (as an upstream / downstream service protection even in a radius-less option) and pricing coefficient (also referred to as a “fare coefficient”) separately. In some embodiments, as shown in FIG. 6, an upper bound (ub) and a lower bound (lb) may be provided. For example, the upper bound and the lower bound may be human-set (for example, set by an operator or a manager of an on-demand service platform provider) bounds so that values may remain within a reasonable range. The upper bound-radius may limit the maximum distance / time that the processor 120 will pull a delivery service provider from. The pricing coefficient may refer to a fare per km or a fare per minute.
[0103] In some embodiments, as shown in FIG. 6, the processor 120 may define the configurations of the area, for example, Sentosa, as follows. In FIG. 6, the area tag of “Area:Sentosa” may refer to a label given to the area defined by the set of latitude / longitude forming the polygon encompassing Sentosa:Sentosa Area of time-sensitive (e.g. 8am - 10am)"ArealD": 12,"AreaName": "Sentosa","CountrylD": 4,"CitylD": 6,"IsCityLevel " : false,"GeofencelD": 2134,"Purpose": "Allocation","TF": "FF""Tags": [],"TimesliceConfig": ["StartTime": "0 8 * * *","EndTime": "0 10 * *"Tags": [{"Key": "lb_meter","Value": "500"},{"Key": "ub_meter","Value": " 15000"},{"Key": "pricing_coefficient","Value": "xxx"}]}]}
[0104] While the disclosure has been particularly shown and described with reference to specific embodiments, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. The scope of the invention is thus indicated by the appended claims and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced.
Claims
CLAIMS1. A server for facilitating processing an order for an on-demand service, the server comprising: a memory configured to store instructions; a communication interface configured to receive a request for a fare-check for the order for the on-demand service from a computing device; and a processor for executing the stored instructions and configured to: obtain information about the order, including first information about a location relating to the order and second information about time relating to the order for the on-demand service; determine whether the order relates to a predetermined area and time, based on whether the location relating to the order relates to a predetermined area and the time relating to the order relates to a predetermined time; if it is determined that the order does not relate to the predetermined area and time, search one or more delivery service providers based on a first search option, by retrieving the one or more delivery service providers located within a predetermined range from the location relating to the order; if it is determined that the order relates to the predetermined area and time, search the one or more delivery service providers based on a second search option, by retrieving at least a predetermined number of the one or more delivery service providers; and allocate the order to a delivery service provider selected from the one or more delivery service providers.
2. The server according to claim 1, wherein, if it is determined that the order relates to the predetermined area and time, the processor is further configured to:retrieve a plurality of available delivery service providers for the order; and retrieve at least the predetermined number of the one or more delivery service providers from the plurality of available delivery service providers, based on a distance between the location relating to the order and locations of each of the plurality of available delivery service providers.
3. The server according to claim 1 or claim 2, wherein the processor is further configured to: determine that the order relates to the predetermined area and time, if the location relating to the order relates to the predetermined area and the time relating to the order relates to the predetermined time; and determine that the order does not relate to the predetermined area and time, if the location relating to the order does not relate to the predetermined area and / or the time relating to the order does not relate to the predetermined time.
4. The server according to any one of claims 1 to 3, wherein, the processor is further configured to change between the first search option and the second search option for an allocation of the order, based on whether it is determined that the order relates to the predetermined area and time.
5. The server according to claim 4, wherein, if it is determined that the order relates to the predetermined area and time, the processor is further configured to: determine a fare for the on-demand service before the allocation of the order, based on an assumption that the order will get allocated to any one of delivery service providers located outside the predetermined range from the location relating to the order; andcompensate the delivery service provider selected from the one or more delivery service providers, based on the determined fare.
6. The server according to any one of claims 1 to 5, wherein, if the predetermined number is 1, the processor is configured to allocate the order to the delivery service provider.
7. The server according to any one of claims 1 to 6, wherein, if the predetermined number is equal to or greater than 2, the processor is configured to: match information about each of the one or more delivery service providers with the information about the order; select the delivery service provider from the one or more delivery service providers based on the matching; and allocate the order to the delivery service provider selected from the one or more delivery service providers.
8. The server according to any one of claims 1 to 7, wherein the location relating to the order includes a latitude and a longitude of a pick-up point and / or a destination for the order9. A method for facilitating processing an order for an on-demand service, the method comprising: receiving a request for a fare-check for the order for the on-demand service from a computing device; obtaining information about the order, including first information about a location relating to the order and second information about time relating to the order for the on-demand service;determining whether the order relates to a predetermined area and time, based on whether the location relating to the order relates to a predetermined area and the time relating to the order relates to a predetermined time; if it is determined that the order does not relate to the predetermined area and time, searching one or more delivery service providers based on a first search option, by retrieving the one or more delivery service providers located within a predetermined range from the location relating to the order; if it is determined that the order relates to the predetermined area and time, searching the one or more delivery service providers based on a second search option, by retrieving at least a predetermined number of the one or more delivery service providers; and allocating the order to a delivery service provider selected from the one or more delivery service providers.
10. The method according to claim 9, further comprising: if it is determined that the order relates to the predetermined area and time, retrieving a plurality of available delivery service providers for the order; and retrieving at least the predetermined number of the one or more delivery service providers from the plurality of available delivery service providers, based on a distance between the location relating to the order and locations of each of the plurality of available delivery service providers.
11. The method according to claim 9 or claim 10, further comprising: determining that the order relates to the predetermined area and time, if the location relating to the order relates to the predetermined area and the time relating to the order relates to the predetermined time; anddetermining that the order does not relate to the predetermined area and time, if the location relating to the order does not relate to the predetermined area and / or the time relating to the order does not relate to the predetermined time.
12. The method according to any one of claims 9 to 11, further comprising: changing between the first search option and the second search option for an allocation of the order, based on whether it is determined that the order relates to the predetermined area and time.
13. The method according to claim 12, further comprising: if it is determined that the order relates to the predetermined area and time, determining a fare for the on-demand service before the allocation of the order, based on an assumption that the order will get allocated to any one of delivery service providers located outside the predetermined range from the location relating to the order; and compensating the delivery service provider selected from the one or more delivery service providers, based on the determined fare.
14. The method according to any one of claims 9 to 13, further comprising: if the predetermined number is 1, allocating the order to the delivery service provider.
15. The method according to any one of claims 9 to 14, further comprising: if the predetermined number is equal to or greater than 2, matching information about each of the one or more delivery service providers with the information about the order; selecting the delivery service provider from the one or more delivery service providers based on the matching; andallocating the order to the delivery service provider selected from the one or more delivery service providers.
16. The method according to any one of claims 9 to 15, wherein the location relating to the order includes a latitude and a longitude of a pick-up point and / or a destination for the order.
Citation Information
Patent Citations
Resource Allocation in a Network System
US20180225796A1
Systems and methods for transport capacity scheduling
US20200134767A1
Method and system for on-demand customized services
US20210319378A1
Server and method of determining a fee surge for an on-demand service
US20230289840A1
Methods, systems, and devices for managing service requests and pricing policies for services provided by service providers to users
WO2021186211A1