SYSTEMS AND METHODS FOR IMPROVED SHARED TRANSPORTATION SERVICES AND IMPROVED QUEUED TRANSPORTATION SERVICES

Systems and methods for providing discounts for shared transportation are described. A transportation server receives, from a client device of a first user, a first request for a shared transportation service. The transportation server receives, from a client device of a second user, a second request to join the shared transportation service. The transportation server calculates a first price for the first user for the shared transportation service based on at least a portion of a shared transportation service trip. The transportation server calculates a second price for the second user for the shared transportation service trip based on at least the portion of a shared transportation service trip.

FIELD OF THE INVENTION

The present disclosure generally relates to transportation services and, more specifically, to systems and methods for providing transportation discounts in shared rides.

DETAILED DESCRIPTION OF THE INVENTION

Example systems and methods for providing transportation discounts for multiple passengers of a shared transportation service are described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of example embodiments. It will be evident, however, to one skilled in the art that the present technology may be practiced without these specific details.

A transportation server may provide an online environment in which drivers and passengers may connect with one another for shared transportation services. The transportation server determines discount payments required by each passenger of a shared transportation service trip. In some embodiments, discount payment amounts required by each passenger may be similar. In other embodiments, discount payment amounts required by each passenger may be different. In some embodiments, a payment may be offered to a driver in exchange for the driver accepting an additional passenger for the shared transportation service trip.

A first passenger may use a software application on the first passenger's computing device to send a request for a shared transportation service. In some embodiments, the software application displays a discount price the first passenger will be required to pay for the shared transportation service.

In response to the request for the shared transportation service sent from the first passenger's computing device, the transportation server may match the first passenger with a driver who will perform the shared transportation service. The transportation server books the first passenger for the shared transportation service to be performed by the driver. The transportation server may send a verification message to the first passenger's computing device. The purpose of the verification message is to verify whether the first passenger intended to request the shared transportation service—as opposed to a non-shared transportation service. The verification message may provide to the first passenger a selectable option to opt-out of the requested shared transportation service. In some embodiments, the purpose may be to further notify the first passenger of other information required for the shared transportation service.

If the transportation server receives a response to the verification message from the first passenger's computing device, the transportation server cancels the first passenger's request for the shared transportation service. If the transportation server does not receive a response to the verification message from the first passenger's computing device within a period of time, the transportation server notifies one or more drivers of the request for the shared transportation service through a software application on each drivers' respective computing device, and a driver may choose to perform the shared transportation service which will include the first passenger and one or more additional passengers.

A second passenger may use the software application on the second passenger's computing device to view a representation of the shared transportation service established between the driver and the first passenger. In some embodiments, the software application displays a discount price the second passenger will be required to pay for joining the shared transportation service established between the driver and the first passenger.

The second passenger may use the software application on the second passenger's computing device to send a request to join the shared transportation service established between the first passenger and the driver. The driver may choose to accept the second passenger's request to join the shared transportation service via the driver's computing device. In some embodiments, the transportation server sends to the driver's computing device a payment amount to be paid to the driver in exchange for accepting the second passenger's request to join the shared transportation service. The driver's computing device sends data to the transportation server representative of the driver's acceptance of the second passenger's request to join the shared transportation service. In some embodiments, the transportation server sends data to the driver's computing device indicating a selectable option to cancel the second passenger's request to join the shared transportation service. In other embodiments, the transportation server sends data to the first passenger's computing device indicating a selectable option to cancel the second passenger's request to the join the shared transportation service.

The transportation server establishes the shared transportation service between the driver, the first passenger and the second passenger. In one embodiment, the transportation server sends shared transportation service data to the first passenger's computing device and the second passenger's computing device.

The shared transportation service data sent from the transportation server to the first passenger's computing device can be based on the first passenger's desired starting location and desired destination location and can also be based on the second passenger's desired starting location and desired destination location. In some embodiments, in order to be respectful of the second passenger's privacy, the shared transportation service data based on the second passenger's desired starting location and desired destination that is sent to the first passenger's computing device may be based on a result of the transportation server modifying (or obscuring) the second passenger's desired starting location and desired destination. For example, the transportation server sends a zip code or cross-streets associated with the second passenger's desired destination for display on the first passenger's computing device.

The shared transportation service data sent from the transportation server to the second passenger's computing device can be based on the second passenger's desired starting location and desired destination location and can also be based on the first passenger's desired starting location and desired destination location. In some embodiments, in order to be respectful of the first passenger's privacy, the shared transportation service data based on the first passenger's desired starting location and desired destination that is sent to the second passenger's computing device may be based on a result of the transportation server modifying (or obscuring) the first passenger's desired starting location and desired destination. For example, the transportation server sends a zip code or cross-streets associated with the first passenger's desired destination for display on the second passenger's computing device.

By establishing the shared transportation service between the driver, the first passenger and the second passenger, the transportation server defines a shared transportation service trip (hereinafter “shared trip”) to be performed by the driver. The shared trip will transport the first passenger to a first destination desired by the first passenger (hereinafter “First Destination”). The shared trip will also transport the second passenger to a second destination desired by the second passenger (hereinafter “Second Destination”). In addition, the first passenger and the second passenger will accompany each other during at least a portion of the shared trip. Once the shared trip is established, the transportation server determines payments required by the first passenger and the second passenger in exchange for the shared trip.

In some embodiments, the First Destination and the Second Destination are the same location. In other embodiments, the First Destination and the Second Destination are not the same location. In some embodiments, the first passenger and the second passenger begin the shared trip from the same location. In other embodiments, the first passenger and the second passenger begin the shared trip from different locations.

In some embodiments, the driver performing the shared trip logs shared trip events by entering at least one input into the driver's computing device. For example, the driver enters a shared trip event into the driver's computing device each time a respective passenger begins and ends the shared trip. The driver's computing device sends data representative of each logged shared trip event to the transportation server. In some embodiments, the transportation server uses the data representative of a shared trip event to initiate fulfillment of a discount payment from a passenger of the shared trip.

The transportation server may facilitate payment between the driver and the passengers of a shared trip. In particular, the transportation server determines discount payments required from both the first and second passengers in exchange for the shared trip. For example, the first passenger's discount payment determined by the transportation server may be less than a payment determined by the transportation server for a non-shared transportation service that transports the first passenger to the First Destination. In addition, the second passenger's discount payment may be less than a payment determined by the transportation server for a non-shared transportation service that transports the second passenger to the Second Destination.

In some embodiments, an amount of a first discount payment required by the first passenger in exchange for the shared trip may be different than an amount of a second discount payment required by the second passenger in exchange for the shared trip. In one embodiment, the difference in the amounts of the first and second discount payments is based at least on a detour portion(s) of the shared trip the first passenger had to experience due to the second passenger's desired starting location and/or desired destination. In other embodiments, the difference in amounts of the first and second discount payments may be based at least on a detour portion(s) of the shared trip the second passenger had to experience due to the first passenger's desired starting location and/or desired destination. It is understood that a detour portion of a shared trip is a portion of the shared trip that a passenger would not have had to experience but for the starting location and/or destination location of another passenger of the shared trip.

In other embodiments, the difference in the amounts of the first and second discount payments is based at least on a portion of the shared trip during which either the first passenger or the second passenger is unaccompanied. In other embodiments, the difference in the amounts of the first and second discount payments is based at least on a portion of the shared trip during which the first and the second passenger accompany each other during the shared trip.

In some embodiments, the difference in the amounts of the first and second discount payments is based at least on a portion of the shared trip during which the first passenger accompanies the second passenger due to the second passenger's desired destination (i.e. the Second Destination) being different than the first passenger's desired destination (i.e. the First Destination). In other embodiments, the difference in the amounts of the first and second discount payments is based at least on a portion of the shared trip during which the second passenger accompanies the first passenger due to the first passenger's desired destination (i.e. the First Destination) being different than the second passenger's desired destination (i.e. the Second Destination).

In some embodiments, the difference in the amounts of the first and second discount payments is based at least on a portion of the shared trip during which the first passenger is unaccompanied due to the second passenger's desired destination (i.e. the Second Destination) being different than the first passenger's desired destination (i.e. the First Destination). In other embodiments, the difference in the amounts of the first and second discount payments is based at least on a portion of the shared trip during which the second passenger is unaccompanied due to the first passenger's desired destination (i.e. the First Destination) being different than the second passenger's desired destination (i.e. the Second Destination).

In some embodiments, the difference in the amounts of the first and second discount payments is based at least on a portion of the shared trip during which the first passenger is unaccompanied due to the second passenger's starting location being different than the first passenger's starting location. In other embodiments, the difference in the amounts of the first and second discount payments is based at least on a portion of the shared trip during which the second passenger is unaccompanied due to the first passenger's starting location being different than the second passenger's starting location.

In other embodiments, the difference in the amounts of the first and second discount payments may be based at least on a portion of the shared trip required due to the first passenger's starting location and/or desired destination. The difference in the amounts of the first and second discount payments may be based at least on a portion of the shared trip required due to the second passenger's starting location and/or desired destination.

It is understood that shared transportation services that define a shared trip amongst a plurality of passengers may be provided to the passengers at a discount or at a premium rate, which may be automatically and dynamically based on any suitable characteristics and/or factors associated with the particular shared transportation service requested. For example, a particular request for shared transportation may be fulfilled at a discounted rate based on a location of a driver and/or a location of a passenger near the time of the shared transportation request, based on a destination associated with the shared transportation request, and the like. Providing adjusted pricing may create a capability to discount or otherwise modify the characteristics of a shared transportation service trip based on identifying a location relating to a driver and/or passenger (e.g., a starting location, a destination location, etc.) as a hotspot location that may be associated with the adjusted pricing. A hotspot location may be a geographical location of any suitable size (e.g., a particular radius around a city center, a landmark, a neighborhood, etc.) that is associated with adjusted pricing (e.g., a discount) adjustable based on characteristics of a shared transportation request.

The transportation server may determine whether a requested shared transportation service is associated with a hotspot location (e.g., travels through a hotspot, travels within a hotspot, etc.) based on any suitable factors, such as the particular starting location and the destination location requested by the passenger, a passenger's location near the time of the request (e.g., using a service for detecting a location of a passenger's computing device, such as global positioning system (GPS)), a destination location estimated based on a passenger's calendar entry or any other suitable predictive technology, a destination location determined by a driver based on any variety and/or combination of user inputs (e.g., advice from a passenger, an intermediate stop requested and/or required by a driver and/or passenger, a driver indicating the end of a trip, etc.), and the like.

A hotspot location may be established in any suitable manner, such as by a sponsor responsible for a monetary discount associated with the hotspot location, a driver, a passenger, the transportation server, an entity associated with a pickup and/or drop-off location, a crowd-sourced decision-making manner of determining a hotspot location (e.g., through a voting system), an entity in a rewards program who is rewarded by being given the ability to set a particular hotspot location (e.g., which in some embodiments may be automated), a third-party associated with any of the above, and the like.

FIG. 1is a schematic diagram showing an example of a system100for providing a transportation marketplace. The system100includes a transportation server104, one or more client devices108, and a third party server110. The components of the system100are connected directly or over a network102, which may be any suitable network. In various embodiments, one or more portions of the network102may include an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, or any other type of network, or a combination of two or more such networks.

The transportation server104may include a network-addressable computing system that may facilitate communication between drivers and passengers and may obtain and utilize data relevant to drivers and/or passengers stored in the database(s)106.

The client device108may be any suitable computing device that may be used by a driver and/or a passenger to communicate with one another, such as a smart phone, a personal digital assistant (PDA), a mobile phone, a personal computer, a laptop, a computing tablet, or any other device suitable for communication.

The third party server110may be any server that may be accessed by the transportation server104and/or the client device108to obtain information relevant to transportation services (e.g., public transportation, location-based services, etc.).

FIG. 2is a block diagram showing example components of a transportation server104. The transportation server104includes an input module205, an output module210, a transportation module215, a user profile module220, a payment module225, and a payment adjustment module230.

The input module205may be a hardware-implemented module which receives and processes any inputs from one or more components of system100ofFIG. 1(e.g., one or more client devices108, third party server110, etc.). The inputs may include requests related to transportation, payment information, and the like. For example, the inputs may be related to request for shared transportation.

The output module210may be a hardware-implemented module which sends any outputs to one or more components of system100ofFIG. 1(e.g., one or more client devices108, third party server110, etc.). The outputs may include information about available drivers, passengers requesting transportation, and the like. For example, the outputs may be related to one or more passengers that have requested shared transportation.

The transportation module215may be a hardware-implemented module which manages, facilitates, and controls transportation requests (such as shared transportation requests) from passengers and/or drivers. For example, when a request for shared transportation is received from one or more passengers, the transportation module215may determine and generate a list of drivers available to fulfill the request.

The user profile module220may be a hardware-implemented module which manages, controls, stores, and accesses information associated with drivers and/or passengers. The information may be stored in and accessed from the database(s)106shown inFIG. 1. The information managed by the user profile module220may include any information associated with a driver(s) and/or passenger(s), such as preferences, vehicle information, background information of a driver, ratings of drivers and/or passengers, payment information of drivers and/or passengers, and the like.

The payment module225may be a hardware-implemented module which manages, facilitates, and controls payments between drivers and passengers. The payment module225may also determine suggested prices associated with shared transportation requests based on the characteristics of the request (e.g., distance to be traveled, etc.).

The payment adjustment module230may be a hardware-implemented module which manages, facilitates, determines, identifies, and calculates adjustment payments (e.g., a discount, a premium, etc.) based on characteristics of the shared transportation service requested by one or more passengers.

FIG. 3is a block diagram showing example components of a client device108. The client device may be a computing device of a driver(s) and/or a passenger(s) and may include a driver application300and/or a passenger application350.

The driver application300may be a software application associated with the transportation server104ofFIGS. 1-2. The driver application may include an input module305, an output module310, a settings module315, and a location module320.

The input module305may be a hardware-implemented module that may receive and process any inputs from a driver, including inputs related to responses to shared transportation requests from one or more passengers, inputs related to preferences of the driver, inputs related to events during a particular shared transportation service trip, and the like.

The output module310may be a hardware-implemented module that may send any outputs to one or more components of system100ofFIG. 1(e.g., other client devices108, third party server110, transportation server104, etc.). The outputs may include responses to shared transportation service requests, location of the client device108, and the like.

The settings module315may be a hardware-implemented module that may manage, store, and access settings indicated by a driver, such as a starting location, destination location, price, a rating of a passenger, a casual carpool preference, and the like. It is understood that a starting location can be a passenger's desired pick-up location and a destination location can be a passenger's desired drop-off location.

The location module320may be a hardware-implemented module that may determine a location of the client device108. The location module320may determine location in any suitable manner (e.g., using a third party server110, GPS capabilities on the client device108, etc.).

The passenger application350may be a software application associated with the transportation server104ofFIGS. 1-2. The passenger application may include an input module355, an output module260, a settings module265, and a location module370.

The input module355may be a hardware-implemented module that may receive and process any inputs from a passenger, including inputs related to a shared transportation service request, inputs related to preferences of the passenger, and the like.

The output module260may be a hardware-implemented module that may send any outputs to one or more components of system100ofFIG. 1(e.g., other client devices108, third party server110, transportation server104, etc.). The outputs may include shared transportation service requests, location of the client device108, and the like.

The settings module365may be a hardware-implemented module that may manage, store, and access settings indicated by a passenger, such as a starting location, a destination location, a price preference, a driver rating, a driver response rate, a casual carpooling preference, a preferred estimated time of arrival, and the like.

The location module370may be a hardware-implemented module that may determine a location of the client device108. The location module370may determine location in any suitable manner (e.g., using a third party server110, GPS capabilities on the client device108, etc.).

FIG. 4is a flowchart showing an example method400of providing discounts for shared transportation. The operations ofFIG. 4may be performed by components of the transportation server104ofFIG. 2.

In operation402, the hardware-implemented input module205receives a first request from a first user for a shared transportation service. For example, the first request may be sent from a computing device associated with a first passenger.

In operation404, the hardware-implemented input module205receives a second request from a second user to join the shared transportation service. For example, the second request may be sent from a computing device associated with a second passenger. Based on the first request and the second request, the transportation server104defines a shared trip between the first user and the second user.

In operation406, the hardware-implemented payment adjustment module230calculates a first price for the first user based at least on a portion of a shared transportation service trip.

In operation408, the hardware-implemented payment adjustment module230calculates a second price for the second user based at least on the portion of a shared transportation service trip. In one embodiment, the first price may be different than the second price due to the first user or the second user being unaccompanied during the portion of the shared transportation service trip.

It is understood that, in various embodiments, any and/or all of the modules of the transportation server104can be involved in performing operations404,406and408.

In some embodiments, a first passenger may book a transportation service to be performed by a driver via a 3rdparty server. The first passenger's computing device and/or the driver's computing device may send data representative of the transportation service booked via the 3rdparty server to the transportation server.

The transportation server may send data to the second passenger's computing device representative of the transportation service booked via the 3rdparty server. The second passenger's computing device may send a request to the transportation server to join the transportation service booked via the 3rdparty server. Based on the second passenger's request to join, the transportation server establishes a shared trip between the first passenger, the second passenger and the driver. The transportation server determines a payment required by the second passenger in exchange for joining the transportation service booked via the 3rdparty server. The transportation server determines payments to be dispersed to the first passenger and/or the driver of the transportation service booked via the 3rdparty server.

Payments dispersed to the first passenger and/or the driver can be determined in exchange for the first passenger and/or the driver providing the data representative of the transportation service booked via the 3rdparty server to the transportation server.

In some embodiments, the transportation server may match the first passenger and the second passenger based on their respective desired starting locations and/or their respective desired destinations. In some embodiments, the first passenger and the second passenger may send a request to be matched for a shared trip to the transportation server. The transportation server may establish a shared trip based on matching the first passenger and the second passenger. Upon establishing the shared trip for the first passenger and the second passenger, the transportation server identifies a driver indicated as available to perform the shared trip. The transportation server books an available driver to perform the shared trip. In some embodiments, the transportation server sends a request for an available driver to a 3rdparty server in order to book an available driver to perform the shared trip for the first passenger and the second passenger.

In some embodiments, the transportation server establishes a shared trip for a first passenger before receiving a request from a second passenger to join the shared trip. The transportation server determines a discount payment required by the first passenger in exchange for the shared trip. The discount payment is also determined prior to receiving the request from the second passenger to join the shared trip. Once the transportation server has established the shared trip for the first passenger and has determined the first passenger's required payment, the transportation server sends data representative of the shared trip to the second passenger's computing device or to a 3rdparty server. The transportation receives a request from the second passenger, sent from the computing device or the 3rdparty server, to join the shared trip. The transportation server adds the second passenger to the shared trip based on receipt of the second passenger's request to join the shared trip.

In some embodiments, the transportation server establishes a transportation service to be performed by a driver on behalf of a first passenger. The first passenger's computing device or the driver's computing device sends to the transportation server a price for a potential passenger to join the transportation service. The transportation server sends data representative of the price to join the transportation service to the second passenger's computing device. The transportation server receives an acceptance of the price from the second passenger's computing device. Based on receipt of the acceptance of the price, the transportation server establishes the transportation service as a shared trip between the first passenger and the second passenger.

In some embodiments, the first passenger is also the driver performing the shared transportation service. The transportation server sends data representative of the transportation service performed by the first passenger to the second passenger's computing device. The transportation server receives a request to join the transportation service performed by the first passenger from the second passenger's computing device. Based on receipt of the request to join, the transportation server books the second passenger for the transportation service performed by the first passenger. The transportation server determines a payment required by the second passenger in exchange for joining the transportation service performed by the first passenger.

In some embodiments, a request for a shared transportation service may relate to a hotspot location associated with a particular characteristic, and the request may be provided to one or more drivers relevant to the particular characteristic. For example, the request may be related to an estimated time of arrival, a rating of a driver, a type of driver, a type of vehicle, and the like, and the request may be sent to drivers associated with one or more of these characteristics.

Example systems and methods for queuing transportation services are described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of example embodiments. It will be evident, however, to one skilled in the art that the present technology may be practiced without these specific details.

Embodiments described below provide for an automated method for convenient, efficient allocation of personal transportation and other on-demand transportation resources and transportation services over a data communications network. These embodiments may also be extended for use in a variety of scenarios in which a mobile resource requires scheduling and allocation of that resource.

A transportation server may provide an online environment in which drivers and passengers may connect with one another for transportation services. The transportation server determines payments required by each passenger of a transportation service. In some embodiments, a transportation service may comprise a trip from a starting location to a destination location. In some embodiments, a transportation service may be a trip from a pick-up location associated with a passenger to a drop-off location associated with the passenger. In various embodiments, an upcoming transportation service may be a transportation service to be performed by a particular driver, from a pick-up location to a drop-off location, after the particular driver completes a transportation service that is currently in progress.

In some embodiments, a driver may be currently performing a transportation service to transport a first passenger from the first passenger's pick-up location to the first passenger's drop-off location. The transportation server may request and receive a current location of the driver's computing device while the driver is performing the transportation service for the first passenger.

The transportation server determines an eligibility area. For example, the transportation server defines the eligibility area as an area surrounding the first passenger's drop-off location. The transportation server receives an indication that the transportation service performed by the driver is currently located within the eligibility area while transporting the first passenger. Based on receiving the indication that the transportation service performed by the driver is currently located within the eligibility area, the transportation server determines the driver is eligible to be booked for performing an upcoming transportation service for one or more passengers.

In some embodiments, the transportation server determines the driver is eligible to be booked for performing an upcoming transportation service for one or more passengers that are currently located within a particular distance from the first passenger's drop-off location. In some embodiments, the transportation server determines the driver is eligible to be booked for performing an upcoming transportation service for one or more passengers that are currently located within a particular distance from the eligibility area. The transportation server may send data to one or more computing devices indicating the driver is eligible to be booked for performing an upcoming transportation service.

A second passenger may use a software application on the second passenger's computing device to view a representation of the upcoming transportation service to be performed by the driver. In some embodiments, the second passenger views the representation of the upcoming transportation service while the driver is performing the transportation service to transport the first passenger to the first passenger's drop-off location. The transportation server may determine a payment required by the second passenger for the upcoming transportation service. The transportation server may send data indicating the payment to be displayed on the second passenger's computing device while the driver is performing the transportation service to transport the first passenger to the first passenger's drop-off location.

The transportation server determines an expected time of arrival at a pick-up location of the second passenger for the upcoming transportation service to be performed by the driver. In some embodiments, the transportation server determines the expected time of arrival for the upcoming transportation service while the driver is performing the transportation service for the first passenger. The transportation server determines a first amount of time until the transportation service arrives at the drop-off location of the first passenger. The transportation server determines a second amount of time until the transportation service arrives at the pick-up location of the second passenger from the drop-off location of the first passenger. The transportation server determines the expected time of arrival at the pick-up location of the second passenger based at least on the first amount of time and the second amount of time. The transportation server may send data indicating the expected time of arrival to be displayed on the second passenger's computing device while the driver is performing the transportation service to transport the first passenger to the first passenger's drop-off location.

The second passenger may use the software application on the second passenger's computing device to send a request to book the upcoming transportation service to be performed by the driver. The transportation server receives the request to book the upcoming transportation service from the second passenger's computing device while the driver performs the transportation service on behalf of the first passenger.

In some embodiments, the transportation server may send to the driver's computing device a payment amount to be paid to the driver in exchange for accepting the second passenger's request to book the upcoming transportation service. In some embodiments, while the driver performs the transportation service on behalf of the first passenger, the driver's computing device sends data to the transportation server representative of the driver's acceptance of the second passenger's request to book the upcoming transportation service.

The transportation server may facilitate payment between the driver and the second passenger upon completion of the upcoming transportation service.

It is understood that transportation services, including upcoming transportation services, may be provided to one or more passengers at a discount or at a premium rate, which may be automatically and dynamically based on any suitable characteristics and/or factors associated with the particular transportation service requested. For example, a particular request for an upcoming transportation service may be fulfilled at a discounted rate based on a location of a driver and/or a location of a passenger near the time of the request for the upcoming transportation service, based on a destination (i.e. drop-off location) associated with the request for the upcoming transportation service, and the like.

FIG. 5is a block diagram showing example components of a transportation server1104. The transportation server1104may include an input module1205, an output module1210, a transportation module1215, a user profile module1220, an eligibility area module1225, a time of arrival module1230, a payment module1235and a payment adjustment module1240.

The input module1205may be a hardware-implemented module which may receive and process any inputs from one or more components of system100ofFIG. 1(e.g., one or more client devices108, third party server110, etc.). The inputs may include requests related to transportation, requests for upcoming transportation services, indications of a driver's computing device, payment information, and the like.

The output module1210may be a hardware-implemented module which may send any outputs to one or more components of system100ofFIG. 1(e.g., one or more client devices108, third party server110, etc.). The outputs may include information about available drivers (such as drivers eligible to be booked for upcoming transportation services), passengers requesting transportation, passengers requesting upcoming transportation services, and the like.

The transportation module1215may be a hardware-implemented module which may manage, facilitate, and control information related to transportation requests for and acceptances of upcoming transportation services from passengers and drivers, respectively. For example, the transportation module1215may determine and generate a list of drivers eligible to be booked to perform an upcoming transportation service(s) for one or more passengers.

The user profile module1220may be a hardware-implemented module which may manage, control, store, and access information associated with drivers and/or passengers. The information may be stored in and accessed from the database(s)106shown inFIG. 1. The information managed by the user profile module1220may include any information associated with a driver(s) and/or passenger(s), such as preferences, vehicle information, background information of a driver, ratings of drivers and/or passengers, payment information of drivers and/or passengers, and the like.

The eligibility area module1225may be a hardware-implemented module which may manage, facilitate, and control information related to an eligibility area(s) for driver(s) and/or passenger(s). For example, the eligibility area module1225may determine an eligibility area based on at least one or a current location of a driver's computing device, a current location of a passenger's computer device, a pick-up location, a drop-off location, congestion statistics, and the like.

The time of arrival module1225may be a hardware-implemented module which may manage, facilitate, and control information related to an expected time of arrival. The time of arrival module1225may determine an expected time of arrival based at least on a first amount of time until an in-progress transportation service performed by a driver reaches a drop-off location of a current passenger and a second amount of time required for the driver to travel from the drop-off location of the current passenger to a pick-up location of a new passenger. In some embodiments, an expected time of arrival may be a specific time the driver will most likely arrive at the pick-up location of a new passenger. In various embodiments, an expected time of arrival may be an amount of time until the driver arrives at the pick-up location of a new passenger.

The payment module1235may be a hardware-implemented module which may manage, facilitate, and control payments between drivers and passengers. The payment module1225may also determine suggested prices associated with requests for upcoming transportation services based on the characteristics of the request (e.g., distance to be traveled, etc.).

The payment adjustment module1240may be a hardware-implemented module which may manage, facilitate, determine, identify, and calculate adjustment payments (e.g., a discount, a premium, etc.) based on characteristics of the upcoming transportation service requested by one or more passengers. Such characteristics that influence the amount of the payment be characteristics of the driver and/or the passenger(s).

FIG. 6is a block diagram showing example components of a client device1108. The client device may be a computing device of a driver(s) and/or a passenger(s) and may include a driver application1300and/or a passenger application1350.

The driver application1300may be a software application associated with the transportation server1104ofFIG. 5. The driver application may include an input module1305, an output module1310, a settings module1315, and a location module1320.

The input module1305may be a hardware-implemented module that may receive and process any inputs from a driver, including inputs related to responses to a request(s) for an upcoming transportation service from one or more passengers, inputs related to preferences of the driver, and the like.

The output module1310may be a hardware-implemented module that may send any outputs to one or more components of system100ofFIG. 1(e.g., other client devices108, third party server110, transportation server104, etc.). The outputs may include indications of a current location of the client device108, indications of a current location of the client device108within an eligibility area, acceptance and/or denial of requests for upcoming transportation services, and the like.

The settings module1315may be a hardware-implemented module that may manage, store, and access settings indicated by a driver, such as starting location, destination location, price, a rating of a passenger, a casual carpool preference, and the like.

The location module1320may be a hardware-implemented module that may determine a location of the client device108. The location module1320may determine a location in any suitable manner (e.g., using a third party server110, GPS capabilities on the client device108, etc.).

The passenger application1350may be a software application associated with the transportation server1104ofFIG. 5. The passenger application may include an input module1355, an output module1360, a settings module1365, and a location module1370.

The input module1355may be a hardware-implemented module that may receive and process any inputs from a passenger, including inputs related to a request for an upcoming transportation service, inputs related to preferences of the passenger, and the like.

The output module1360may be a hardware-implemented module that may send any outputs to one or more components of system100ofFIG. 1(e.g., other client devices108, third party server110, transportation server104, etc.). The outputs may include requests for an upcoming transportation service, location of the client device108, and the like.

The settings module1365may be a hardware-implemented module that may manage, store, and access settings indicated by a passenger, such as a starting location, a destination location, a price preference, a driver rating, a driver response rate, a casual carpooling preference, a preferred estimated time of arrival, and the like.

The location module1370may be a hardware-implemented module that may determine a location of the client device108. The location module1320may determine a location in any suitable manner (e.g., using a third party server110, GPS capabilities on the client device108, etc.).

FIG. 7is a flowchart showing an example method1400of queuing a transportation service. The operations ofFIG. 7may be performed by components of the transportation server1104ofFIG. 5.

In operation1402, the hardware-implemented input module1205may receive an indication that a transportation service currently transporting a first passenger is located within an eligibility area.

In operation1404, the hardware-implemented payment module1235and/or the hardware-implemented payment adjustment module1240may determine a payment required by a second passenger for the transportation service. For example, the payment required by the second passenger may be for an upcoming transportation service performed by a driver after the driver completes the transportation service on behalf of the first passenger.

In some embodiments, the payment required by the second passenger may be sent, by the hardware-implemented output module1201, for display at the second passenger's computing device—where display of the payment required by the second passenger occurs while the driver performs the transportation service on behalf of the first passenger. The payment required by the second passenger may be related to a rating of a driver, a type of driver, a type of vehicle, characteristics of the driver and/or the passenger, and the like.

In operation1406, the hardware-implemented time of arrival module1230may determine an expected time of arrival of the transportation service at a pick-up location of the second passenger. In some embodiments, the hardware-implemented time of arrival module1230may determine an expected time of arrival of an upcoming transportation service at the pick-up location of the second passenger.

In some embodiments, the expected time of arrival may be sent, by the hardware-implemented output module1201, for display at the second passenger's computing device—where display of the expected time of arrival occurs while the driver performs the transportation service on behalf of the first passenger.

It is understood that, in various embodiments, any and/or all of the modules of the transportation server1104may be involved in performing operations1402,1404and1406.

FIG. 8is a diagram showing an eligibility area, according to some embodiments.FIG. 8illustrates a route of a current transportation service performed by a driver on behalf of a first passenger that begins at pick-up location1502and ends at drop-off location1506. An eligibility area1508surrounds the drop-off location1506of the first passenger. A current location1504of the driver's computing device is inside the eligibility area1508. Based on the current location1504of the driver's computing device being within the eligibility area1508, the driver is eligible to be booked for an upcoming transportation service while the driver performs the current transportation service on behalf of the first passenger.

FIG. 8further illustrates a route of an upcoming transportation service that begins at a pick-up location1510of a second passenger and ends at a drop-off location1512of the second passenger. In some embodiments, the second passenger may be able to book the driver for the upcoming transportation service based on the second passenger's pick-up location1510. For example, the driver is eligible to be booked for the upcoming transportation service by the second passenger based on a distance between the second passenger's pick-up location1510and the first passenger's drop-off location1506. In various embodiments, the driver is eligible to be booked for the upcoming transportation service by the second passenger based on a distance between the second passenger's pick-up location1510and the eligibility area1508.

In some embodiments, a request for an upcoming transportation service from the second passenger is a request for a trip performed by the driver from pick-up location1510to drop-off location1512. In various embodiments, an expected time of arrival is based at least on an amount of time for the driver to travel from current location1504to drop-off location1506and an amount of time to travel from drop-off location1506to pick-up location1510.

In some embodiments, a request for an upcoming transportation service may relate to an estimated time of arrival, a rating of a driver, a type of driver, a type of vehicle, and the like, and the request may be sent to drivers associated with one or more of these characteristics.

Example systems and methods for improved shared transportation services and improved queued transportation services are described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of example embodiments. It will be evident, however, to one skilled in the art that the present technology may be practiced without these specific details.

Embodiments described below provide for an automated method for convenient, efficient allocation of personal transportation and other on-demand transportation resources and transportation services over a data communications network. These embodiments may also be extended for use in a variety of scenarios in which a mobile resource requires scheduling and allocation of that resource.

A transportation server may provide an online environment in which drivers and users (e.g. passengers) may connect with one another for transportation services. The transportation server determines payments required by each passenger of a transportation service. In some embodiments, a transportation service may comprise a trip (or route) from a starting location to a destination location. In some embodiments, a transportation service may be a trip (or route) from a pick-up location associated with a passenger to a drop-off location associated with the passenger. In various embodiments, an upcoming transportation service may be a transportation service to be performed by a particular driver, from a pick-up location to a drop-off location, after the particular driver completes a transportation service that is currently in progress.

FIG. 9is a block diagram showing example components of a transportation server2104. The transportation server2104may include an input module2205, an output module2210, a transportation module2215, a user profile module2220, a booking window module2225, a maximum occupancy module2230, a payment module2235and a dynamic route modification module2240.

The input module2205is a hardware-implemented module to receive and process any inputs from one or more components of system100ofFIG. 1(e.g., one or more client devices108, third party server110, etc.). The inputs may include requests related to transportation, requests for upcoming transportation services, indications of a driver's computing device, payment information, and the like.

The output module2210is a hardware-implemented module to send any outputs to one or more components of system100ofFIG. 1(e.g., one or more client devices108, third party server110, etc.). The outputs may include information about available drivers (such as drivers eligible to be booked for upcoming transportation services), passengers requesting transportation, passengers requesting upcoming transportation services, and the like.

The transportation module2215is a hardware-implemented module to manage, facilitate, and control information related to transportation requests for and acceptances of upcoming transportation services from passengers and drivers, respectively. For example, the transportation module2215may determine and generate a list of drivers eligible to be booked to perform an upcoming transportation service(s) for one or more passengers.

The user profile module2220is a hardware-implemented module to manage, control, store, and access information associated with drivers and/or passengers.

The information may be stored in and accessed from the database(s)106shown inFIG. 1. The information managed by the user profile module2220may include any information associated with a driver(s) and/or passenger(s), such as preferences, vehicle information, background information of a driver, ratings of drivers and/or passengers, payment information of drivers and/or passengers, and the like.

The booking window module2225is a hardware-implemented module to manage, facilitate, and control information related to booking a user(s) for a shared transportation service. In some embodiments, the booking window module2225identifies a user with a desired pick-up and/or drop-off location that is within a threshold of proximity to at least a portion of a route of a shared transportation service that has already been booked by another user. In other embodiments, the booking window module2225identifies a user with a desired pick-up and/or drop-off location that is within a threshold of proximity to at least a portion of a route of a shared transportation service currently transporting one or more users to their respective desired drop-off locations.

The maximum occupancy module2225is a hardware-implemented module to manage, facilitate, and control information related to a maximum number of users allowed on a shared transportation service. In some embodiments, the maximum occupancy module2225identifies a maximum number of occupants allowed for a shared transportation service that has already been booked by one or more users. In some embodiments, the maximum occupancy module2225identifies a maximum number of occupants allowed a shared transportation service currently transporting one or more user to their respective desired drop-off locations. In some embodiments, the maximum occupancy module2225determines when a current occupancy of a shared transportation service is below a maximum number of occupancy. In some embodiments, the maximum occupancy module2225determines when a current occupancy of a shared transportation service is equal to a maximum number of occupancy. In some embodiments, the maximum occupancy module2225determines when a shared transportation service will be available to be booked by one or more additional users in order for the shared transportation service to reach the maximum number of occupancy during at least a portion of a route the shared transportation service.

The payment module2235is a hardware-implemented module to manage, facilitate, and control payments between drivers and passengers. In some embodiments, payment module2225determines suggested prices associated with shared transportation services that have already been booked by one or more users. In some embodiments, payment module2225determines suggested prices associated with shared transportation services currently transporting one or more users to their respective desired drop-off locations.

In some embodiments, the payment module2235determines prices based at least on one of: the one or more users who booked the shared transportation service, at least a portion of a current route of the shared transportation service, at least a portion of a modified route of the shared transportation service, a current location of the shared transportation service, a pick-up location and/or drop-off location of the one or more users and a requested pick-up time and/or a requested drop-off time of the one or more users.

The dynamic route modification module2240is a hardware-implemented module to manage, facilitate, determine, identify, and calculate modifications to a route of a shared transportation service. In some embodiments, the dynamic route modification module2240modifies at least a portion of a route of a shared transportation service already booked by a user based on a pick-up location and/or drop-off location of an additional user. In some embodiments, the dynamic route modification module2240modifies at least a portion of a route of a shared transportation service currently transporting one more users to their respective desired drop-off locations based on a pick-up location and/or drop-off location of an additional user.

In some embodiments, the dynamic route modification module2240modifies at least a portion of a route of a shared transportation service already booked by a user based on a desired pick-up time and/or a desired drop-off time of an additional user. In some embodiments, the dynamic route modification module3240modifies at least a portion of a route of a shared transportation service currently transporting one more users to their respective desired drop-off locations based on a pick-up time and/or drop-off time of an additional user.

FIG. 10is a block diagram showing example components of a client device2108. The client device may be a computing device of a driver(s) and/or a passenger(s) and may include a driver application2300and/or a passenger application2350.

The driver application2300is a software application associated with the transportation server2104ofFIG. 9. The driver application2300includes an input module2305, an output module2310, a settings module2315, and a location module2320.

The input module2305is a hardware-implemented module to receive and process any inputs from a driver, including inputs related to responses to a request(s) for any kind of transportation service from one or more users (e.g. passengers), inputs related to preferences of the driver, and the like.

The output module2310is a hardware-implemented module to send any outputs to one or more components of system100ofFIG. 1(e.g., other client devices108, third party server110, transportation server104, etc.). The outputs may include indications of a current location of the client device108, indications of a current location of the client device108with respect to a pick-up location(s) and/or drop-off location(s), acceptance and/or denial of requests for transportation services, and the like.

The settings module2315is a hardware-implemented module to manage, store, and access settings indicated by a driver, such as starting location, destination location, price, a rating of a passenger, a casual carpool preference, and the like.

The location module2320is a hardware-implemented module that may determine a location of the client device108. The location module2320may determine a location in any suitable manner (e.g., using a third party server110, GPS capabilities on the client device108, etc.).

The passenger application2350is a software application associated with the transportation server2104ofFIG. 9. The passenger application2350includes an input module2355, an output module2360, a settings module2365, and a location module2370.

The input module2355is a hardware-implemented module to receive and process any inputs from a passenger (e.g. a user), including inputs related to a request for any kind of transportation service, inputs related to preferences of the passenger, and the like.

The output module2360is a hardware-implemented module to send any outputs to one or more components of system100ofFIG. 1(e.g., other client devices108, third party server110, transportation server104, etc.). The outputs may include requests for a transportation service, location of the client device108, and the like.

The settings module2365is a hardware-implemented module to manage, store, and access settings indicated by a passenger, such as a pick-up location, a drop-off location, a price preference, a driver rating, a driver response rate, a casual carpooling preference, a preferred estimated time of arrival, and the like.

The location module2370is a hardware-implemented module to determine a location of the client device2108. The location module2320may determine a location in any suitable manner (e.g., using a third party server110, GPS capabilities on the client device108, etc.).

Expanded Matching Window and Dynamic Re-Routing

FIG. 11is a flowchart2400showing an example method of dynamically modifying a route of a shared transportation service, according to some embodiments. In some embodiments, the operations ofFIG. 11are performed by components of the transportation server2104ofFIG. 9.

In operation2402, the transportation server2104calculates a first price for a first user for booking a shared transportation service that will include at least one unidentified additional user (e.g. an additional user(s) that has yet to book the shared transportation service). It is understood that the transportation server2104calculates a discount price for the first user based on an expectation that the transportation server2104will identify one or more additional users who will join the shared transportation service.

The shared transportation service includes a route that includes a first pick-up location desired by the first user and a first drop-off location desired by the first user. In some embodiments, the route of the shared transportation service also accounts for a pick-up time desired by the first user and a desired drop-off time desired by the first user.

In operation2404, the transportation server2104receives, from a client device of the first user, a first request to book the shared transportation service according to the first price.

In operation2406, the transportation server2104calculates a second price for a second user for booking the shared transportation service modified to include a second pick-up location desired by the second user and a second drop-off location desired by the second user. In some embodiments, the shared transportation service is also modified to account for a pick-up time desired by the second user and a desired drop-off time desired by the second user. It is understood that the transportation server2104also calculates a discount price for the second user since the first user has already booked the shared transportation service according to the first price.

In operation2408, the transportation server2104receives, from a client device of the second user, a second request to book according to the second price the shared transportation service modified to include the second pick-up location and the second drop-off location.

It is understood that, in various embodiments, any and/or all of the modules of the transportation server2104may be involved in performing operations2402,2404,2406and2408.

FIG. 12is a diagram showing a user booking a shared transportation service that is currently transporting another user to a drop-off location, according to some embodiments. In some embodiments, the actions, events, calculations and route modifications discussed below with respect toFIG. 12are performed by components of the transportation server2104ofFIG. 9.

FIG. 12illustrates a first moment of time2500at which a first user books a shared transportation service from pick-up location2502-1to drop-off location2502-2.FIG. 12also illustrates a second moment of time2504at which a second user books the shared transportation service from pick-up location2506-1to drop-off location2506-2. The second moment of time2504at which the second user books the shared transportation service occurs after the shared transportation service arrives at the pick-up location2502-1desired by the first user.

In various embodiments, the transportation server2104dynamically modifies a route of a shared transportation service to include pick-up locations and drop-off locations requested by multiple users. The transportation server2104receives an indication from a client device of a first user that the first user is seeking transportation from a first pick-up location2502-1to a first drop-off location2502-2. The transportation server2104defines the shared transportation service according to a route from the first pick-up location2502-1to the first drop-off location2502-2desired by the first user.

The transportation server2104defines the shared transportation service as available to be booked and/or to be routed towards additional, unknown pick-up locations and one or more additional, unknown drop-off locations desired by respective, unidentified additional users. Once identified by the transportation server2104, the additional users will be able to book rides on the shared transportation service. In some embodiments, one or more additional users will accompany the first user during at least a portion of the route of the shared transportation service.

Prior to identifying the additional users of the shared transportation service, the transportation server2104calculates a first price for the first user to book the shared transportation service to transport the first user along a route that includes the first pick-up location2502-1and the first drop-off location2502-2. Since the shared transportation service is defined according to a route that can be dynamically modified to include pick-up and drop-off locations of yet to be identified additional users who will join the shared transportation service, the transportation server2104calculates the first price at a discount price. The transportation server2104receives a first request from the client device of the first user to book the shared transportation service according to the first price.

In some embodiments, in order to calculate the first price, the transportation server2104accesses data to determine the first price. The data may include, but is not limited to: current traffic data, past traffic data, predicted future traffic data, data that describes when and/or where other users tend to join shared transportation services, data representative of current locations of other users seeking transportation, data representative of current conditions along the route from the first pick-up location2502-1to the first drop-off location2502-2desired by the first user and data representative of current locations of one or more drivers.

The transportation server2104receives an indication from a client device of a second user(s) that the second user is seeking transportation from a second pick-up location2506-1to a second drop-off location2506-2. In order to determine a second price for the second user, the transportation server2104dynamically modifies the shared transportation service. For example, the transportation server2104dynamically modifies the route of the shared transportation service with respect to a current location of the shared transportation service. The route is modified to also include the second pick-up location2506-1and the second drop-off location2506-2desired by the second user. In some embodiments, the transportation server2104modifies the route based at least on a current location of the shared transportation service with respect to the second pick-up location2506-1and/or the second drop-off location2506-2desired by the second user. In some embodiments, the transportation server2104modifies the route based at least on a current location of the shared transportation service with respect to a pick-up time desired by the second user and/or a drop-off time desired by the second user.

The transportation server2104calculates a second price for the second user for the modified, shared transportation service. Since the first user has already booked the shared transportation service according to the first price, the transportation server2104calculates the second price as a discount price as well. The transportation server2104receives a request from the client device of the second user to book the modified, shared transportation service according to the second price.

In some embodiments, the transportation server2104calculates the second price for the second user after the shared transportation service has calculated the first price for the first user. In some embodiments, the transportation server2104calculates the second price for the second user while the shared transportation service is currently en route to the first pick-up location2502-2. In some embodiments, the transportation server2104calculates the second price for the second user while the shared transportation service is currently en route from the first pick-up location2502-1to the first drop-off location2502-2desired by the first user. In some embodiments, the transportation server2104calculates the second price for the second user based at least on a current location of the shared transportation service with respect to the second pick-up location2506-1and/or the second drop-off location2506-2desired by the second user.

In some embodiments, in order to calculate the second price for the second user, the transportation server2104accesses and utilizes the same type of data used to determine the first price. In order to calculate a price of any additional user, the transportation server2104accesses and utilizes the same type of data used to determine the first price. It is further understood that, in various embodiments, the transportation server2104accesses and utilizes the same type of data used in price calculation for determining and modifying at least a portion of a route.

Ride Chaining

FIG. 13is a diagram showing a shared transportation service dynamically modified to allow for a maximum number of users to utilize the shared transportation service. In some embodiments, the actions, events, calculations and route modifications discussed below with respect toFIG. 13are performed by components of the transportation server2104ofFIG. 9.

FIG. 13illustrates a first moment of time2600at which a first user books a shared transportation service from pick-up location2602-1to drop-off location2602-2.FIG. 13also illustrates a second moment of time2604at which a second user books the shared transportation service from pick-up location2606-1to drop-off location2606-2.FIG. 13also illustrates a third moment of time2608at which a third user books the shared transportation service from pick-up location2610-1to drop-off location2610-2.FIG. 13also illustrates a fourth moment of time2612at which a fourth user books the shared transportation service from pick-up location2614-1to drop-off location2614-2.

The second moment of time2604at which the second user books the shared transportation service occurs after the shared transportation service arrives at the pick-up location2602-1desired by the first user. The third moment of time2608at which the third user books the shared transportation service occurs after the shared transportation service arrives at the pick-up location2606-1desired by the second user. The fourth moment of time2612at which the fourth user books the shared transportation service occurs before the shared transportation service arrives at the drop-off locations2602-2,2606-2,2610-2desired by the first, second and third users, respectively.

In some embodiments, the transportation server2104defines and/or identifies a maximum number of users that can concurrently use the shared transportation service. According to a non-limiting example, as illustrated inFIG. 13, the shared transportation service may be an automobile that has a maximum occupancy of 3 seats that can be concurrently occupied during at least a portion of a route of the shared transportation service. The transportation server2104dynamically modifies a route of the shared transportation service so that the shared transportation service experiences the maximum occupancy during at least a portion of the route.

Reference numerals2616and2618ofFIG. 13indicate that the maximum occupancy has been reached during at least a portion of the route of the shared transportation service. Reference numeral2616indicates that transportation server2104has determined a route for the shared transportation service that at least includes drop-off locations2602-2,2606-2,2610-2whereby the first, second and third users accompany each other. Reference numeral2618indicates that transportation server2104has determined a modified route for the shared transportation service that includes drop-off locations2602-2,2610-2,2614-2whereby the first, third and fourth users accompany each other.

It is understood that, in various embodiments, the transportation server2104receives a current location of the shared transportation service as the shared transportation service is en route to the drop-off location2606-2desired by the second user. Based on the current location of the shared transportation service, the transportation server2104determines the shared transportation service will be under the maximum occupancy after the shared transportation service arrives at the drop-off location2606-2.

Prior to the shared transportation service's arrival at the drop-off location2606-2, the transportation server2104receives an indication from a client device of the fourth user that the fourth user is seeking transportation from pick-up location2614-1to drop-off location2614-2. Based on at least one of (a) the current route and (b) the current location of the shared transportation service, (c) the current time, (d) the pick-up location614-1, (e) the drop-off location614-2and (f) additional data related to past, current and/or predicted future traffic, the transportation server2104determines a new route for the shared transportation service that includes locations2602-2,2610-2,2614-1and2614-2such that the shared transportation service will again reach the maximum occupancy by having the fourth user accompany the first user and the third user (See Reference Numeral2618).

The transportation server2104calculates a price for the fourth user to book the shared transportation service. The transportation server2104receives from a client device of the fourth user, a request to book according to the fourth price the shared transportation service modified to include the pick-up location2614-1and the drop-off location2614-2requested by the fourth user.

Package Delivery

It is understood that the transportation server2104can modify a route of a shared transportation service to include a pick-up location and/or a delivery location of one or more packages. In some embodiments, route modification can be made to account for a desired pick-up time of the one or more packages and/or a desired delivery time of the one or more packages. In some embodiments, the transportation server2104modifies a route to include a pick-up location of a package that is to be delivered at a delivery location at a desired time. The transportation server2104may further modify the route to arrive at a pick-up location and drop-off location of one or more additional users (and/or one or more additional packages) before the delivery of the package.

It is understood that the transportation server2104can modify a route of a shared transportation service based on a starting location and a destination location desired by a driver of the shared transportation service. In other words, the transportation server2104modifies the route to account for the starting location and a destination location desired by the driver as additional users book and join the shared transportation service.

Number of Parties

It is understood that the transportation server2104can modify a route of a shared transportation service based on a particular pick-up location desired by a plurality of additional users. In some embodiments, the plurality of additional user may also desire a same drop-off location. In other embodiments, the plurality of additional user may desire different drop-off locations even though they joined the shared transportation service at the same particular pick-up location.

It is understood that the transportation server2104can modify a route of a shared transportation service based on a particular drop-off location desired by a plurality of additional users. In some embodiments, the plurality of additional user may join the shared transportation service at different respective pick-up locations even though they desired the same particular drop-off location.

Example computer system3500includes a processor3502(e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory3504, and a static memory3506, which communicate with each other via a bus3508. Computer system3500may further include a video display device3510(e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). Computer system3500also includes an alphanumeric input device3512(e.g., a keyboard), a user interface (UI) navigation device3514(e.g., a mouse or touch sensitive display), a disk drive unit3516, a signal generation device3518(e.g., a speaker) and a network interface device3520.

Disk drive unit3516includes a machine-readable medium3522on which is stored one or more sets of instructions and data structures (e.g., software)3524embodying or utilized by any one or more of the methodologies or functions described herein. Instructions3524may also reside, completely or at least partially, within main memory3504, within static memory3506, and/or within processor3502during execution thereof by computer system3500, main memory3504and processor3502also constituting machine-readable media.