SYSTEM FOR CONNECTING A DRIVER AND A RIDER

Abstract
A system for connecting a driver and a rider comprises a processor and an interface. The processor is configured to select a driver for a requested ride from the rider. The interface is configured to, in the event that the driver accepts the rider, provide a connect notification to the rider. The connect notification comprises an image associated with the driver, an image associated with the driver's car, and an anonymized interface for contacting the driver.
Description
BACKGROUND OF THE INVENTION

Mobile device technology enables people to communicate from any location. However, people still need to move between locations. Even though there are many people driving and there are many people who wish to go to a different location from where they are, the people who wish to go are not typically driven by the many people driving.





BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.



FIG. 1 is a block diagram illustrating an embodiment of a system for connecting a driver and a rider.



FIG. 2 is a block diagram illustrating an embodiment of a lift management system.



FIG. 3 is a block diagram illustrating an embodiment of a user system.



FIG. 4 is a diagram illustrating an embodiment of a user device display for a default display for indicating a pickup address to a rider system.



FIG. 5 is a diagram illustrating an embodiment of a user device display for indicating a dropoff address to a rider system.



FIG. 6 is a diagram illustrating an embodiment of a user device display for indicating to a rider system to request a ride.



FIG. 7 is a diagram illustrating an embodiment of a user device display for indicating to a rider that drivers are being contacted.



FIG. 8 is a diagram illustrating an embodiment of a user device display for indicating to a rider that a driver has accepted a ride request.



FIG. 9 is a diagram illustrating an embodiment of a user device display for indicating to a rider that the ride is complete.



FIG. 10 is a diagram illustrating an embodiment of a user device display for menu options.



FIG. 11 is a diagram illustrating an embodiment of a user device display for a default display for a driver system.



FIG. 12 is a diagram illustrating an embodiment of a user device display for receiving a ride request for a driver system.



FIG. 13 is a diagram illustrating an embodiment of a user device display for a driver system while driving to pick up a passenger.



FIG. 14 is a diagram illustrating an embodiment of a user device display for rating a passenger for a driver system.



FIG. 15 is a flow diagram illustrating an embodiment of a process for getting a ride.



FIG. 16 is a flow diagram illustrating an embodiment of a process for giving a ride.



FIG. 17 is a flow diagram illustrating an embodiment of a process for indicating a lead location.





DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.


A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.


A system for connecting a driver and a rider comprises an interface for providing a display information with potential drivers to the rider; and, in the event that a selected driver accepts the rider, providing a connect notification to the rider; wherein the connect notification comprises: an image associated with the driver, an image associated with the driver's car, and an anonymized interface for contacting the driver. The system for connecting a driver and a rider additionally comprises a processor configured to determine whether the selected driver accepts the rider. In some embodiments, the system for connecting a driver and a rider additionally comprises a memory coupled to the processor and configured to provide the processor with instructions.


A system for connecting a driver and a rider is disclosed. A system for connecting a driver and a rider comprises an app running on a mobile device used by a prospective driver and a prospective rider. In some embodiments, the app comprises a driver mode and a rider mode and can be toggled between the two modes. When a rider starts the app he receives a display of drivers that may be able to give him a ride. The rider can issue a ride request if desired. When the rider issues a ride request, the system provides a notification to a selected driver. In some embodiments, the selected driver has a time limit to respond to the notification. If the driver elects to deny the notification, the notification is provided to a next selected driver. If the driver elects to accept the notification, the driver and the rider are connected. A connection notification is provided to the driver. In some embodiments, the driver receives information regarding the rider (e.g., an image, a specific location for pickup, an anonymized contact number, etc.). A connect notification is provided to the rider. The connect notification comprises images associated with the driver and the driver's car, and an anonymized interface for contacting the driver. In some embodiments, the anonymized interface comprises a button the rider can use to contact the driver via the system for connecting a driver and a rider without revealing any of the driver's personal information to the rider. The driver drives to the location of the rider, picks him/her up, and drives him/her to his/her destination. When the ride is complete, the rider is presented with an interface including a suggested donation for the driver and a driver rating screen. At the end of each day, the driver is presented with a donation summary indicating the total donations received over the course of the day's driving.



FIG. 1 is a block diagram illustrating an embodiment of a system for connecting a driver and a rider. In the example shown, FIG. 1 comprises network 100. In various embodiments, network 100 comprises one or more of the following: a local area network, a wide area network, a wired network, a wireless network, the Internet, an intranet, a storage area network, a cellular network, or any other appropriate communication network. Rider system 102 and driver system 104 comprise user systems (e.g., computing systems for operation by users). In some embodiments, one or more of rider system 102 and driver system 104 comprises a system accessed by a user directly (e.g., the user is in proximity with the user system). In some embodiments, one or more of user system 102 and user system 104 comprises a system accessed by a user remotely (e.g., the user is not in proximity with the user system, and accesses the user system via network 100 and a separate user system). In the example shown, rider system 102 and driver system 104 comprise mobile devices (e.g., smartphones, tablet computers, etc.). Rider system 102 and driver system 104 comprise systems accessing lift management system 106 (e.g., accessing lift management system 106 via network 100). In various embodiments, there are 2, 5, 22, 122, 4320, 26100, or any other appropriate number of user systems (e.g., rider systems and driver systems) accessing lift management system 106. Lift management system 106 comprises a system for managing drivers giving riders lifts. In some embodiments, lift management system 106 comprises a system for connecting a rider and a driver. In some embodiments, lift management system 106 comprises a system for managing rider donations. In some embodiments, lift management system 106 comprises a system for dispatching drivers. In various embodiments, lift management system 106 comprises a computer, a computer with multiple processors, multiple computers connected via a local network, multiple computers connected via a wide area network, multiple computers connected via the Internet, multiple computers connected via network 100, or any other appropriate computing system or systems. In various embodiments, the processors comprising rider system 102, driver system 104, and lift management system 106 comprise any one of a variety of proprietary or commercially available single or multi-processor systems (e.g., an Intel™-based processor) or other type of commercially available processor able to support communications in accordance with each particular embodiment and application.



FIG. 2 is a block diagram illustrating an embodiment of a lift management system. In some embodiments, lift management system 200 comprises lift management system 106 of FIG. 1. In the example shown, lift management system 200 comprises interface 202. In various embodiments, interface 202 comprises an interface for receiving ride requests, sending rider notifications, receiving rider accept and deny indications, sending connect notifications, receiving location information, sending and receiving ride start notifications, sending and receiving ride complete notifications, sending and receiving donation information, sending and receiving driver rating information, sending and receiving rider rating information, sending donation summary information, or sending or receiving any other appropriate information. In some embodiments, interface 202 communicates with a user system (e.g., a driver mobile device or a rider mobile device) via a network. Processor 204 comprises a processor for receiving and processing and providing information. In some embodiments, processor 204 communicates with interface 202. Processor 204 receives information from interface 202 and determines what information should be sent by interface 202. In some embodiments, processor 204 determines whether a driver is offered a request from a rider. Memory 206 comprises a memory coupled to processor 204 and configured to provide processor 204 with instructions. Driver database 208 comprises driver information (e.g., driver names, driver schedules, driver histories, driver ratings, driver donation amounts, driver images, driver car images, etc.) Rider database comprises rider information (e.g., rider names, rider histories, rider ratings, rider donation amounts, rider images, etc.). Map database 212 comprises map information. In some embodiments, processor 204 uses map information from map database 212 to plan routes.



FIG. 3 is a block diagram illustrating an embodiment of a user system. In some embodiments, user system 300 of FIG. 3 comprises rider system 102 of FIG. 1. In some embodiments, user system 300 of FIG. 3 comprises driver system 104 of FIG. 1. In the example shown, user system 300 comprises interface 302. In various embodiments, interface 302 comprises an interface for sending ride requests, receiving rider notifications, sending rider accept and deny indications, receiving connect notifications, sending location information, sending and receiving ride start notifications, sending and receiving ride complete notifications, sending and receiving donation information, sending and receiving driver rating information, sending and receiving rider rating information, receiving donation summary information, or sending or receiving any other appropriate information. Processor 304 receives information from interface 302 and determines what information should be sent by interface 302. Memory 306 comprises a memory coupled to processor 304 and configured to provide processor 304 with instructions. GPS (e.g., global positioning system) 308 comprises a GPS for determining a user system position. In some embodiments, GPS position information is transmitted by interface 302 to a lift management system.



FIG. 4 is a diagram illustrating an embodiment of a user device display for a default display for indicating a pickup address to a rider system. In some embodiments, the diagram of FIG. 4 illustrates the display of rider system 102 of FIG. 1. In the example shown, rider system 400 comprises display 402. Display 402 comprises a default display for a rider system. Display 402 comprises map 404, displaying the local area around the rider system. Map 404 comprises local roads and geographical features, car icons indicating active driver systems (e.g., car icon 406) and a pin icon indicating the rider system position (e.g., pin icon 408). In some embodiments, the set of car icons indicating active driver systems comprises a set of potential drivers. Display 402 additionally comprises pickup address entry field 410 and set pickup button 412. Pickup address entry field 410 comprises a field for a rider to enter an address to be picked up at. In some embodiments, a rider types a pickup address into pickup address entry field 410. In some embodiments, pickup address entry field 410 defaults to a default pickup address. In some embodiments, the default pickup address is the rider current address. In some embodiments, the default pickup address comprises an address derived from the rider current address (e.g., an address cluster lead location). In some embodiments, the default pickup address comprises a commonly used pickup address. In some embodiments, the rider can access a list of commonly used pickup addresses (e.g., by tapping on pickup address entry field 410, by swiping up on map 404, by tapping on a commonly used addresses button, or by performing any other appropriate user interface action). Set pickup button 412 initiates request of a ride using the currently entered or selected pickup address.



FIG. 5 is a diagram illustrating an embodiment of a user device display for indicating a dropoff address to a rider system. In some embodiments, the diagram of FIG. 5 illustrates the display of rider system 102 of FIG. 1. In the example shown, rider system 500 comprises display 502. Display 502 comprises a display for a rider system after initiation of a request of a ride with a pickup address (e.g., using set pickup button 412 of FIG. 4). Display 502 comprises map 504, displaying the local area around the rider system. Display 502 additionally comprises dropoff address entry field 506 and set dropoff button 508. Dropoff address entry field 506 comprises a field for a rider to enter an address to be dropped off at. In some embodiments, a rider types a dropoff address into dropoff address entry field 506. In some embodiments, dropoff address entry field 506 defaults to a default dropoff address. In some embodiments, the default pickup address is the rider home address. In some embodiments, the default dropoff address comprises a commonly used dropoff address. In some embodiments, the rider can access a list of commonly used dropoff addresses (e.g., by tapping on dropoff address entry field 506, by swiping up on map 504, by tapping on a commonly used addresses button, or by performing any other appropriate user interface action). Set dropoff button 508 continues request of a ride using the currently entered or selected dropoff address.


In some embodiments, a request for a ride is made without indicating a dropoff address to the rider system, and the dropoff address is indicated by the rider directly to the driver after pickup. In various embodiments, the rider sets a user setting (e.g., on a user settings display) indicating that he does not want to indicate a dropoff addresses, the rider is queried after indicating a pickup address whether he wants to indicate a dropoff address, the rider enters no dropoff address into dropoff address entry field 506, it is determined whether or not a dropoff address is indicated (e.g., entered, not entered, not preferred, preferred, selected, not selected, etc.), or the rider indicates whether or not to indicate a dropoff address in any other appropriate way.



FIG. 6 is a diagram illustrating an embodiment of a user device display for indicating to a rider system to request a ride. In some embodiments, the diagram of FIG. 6 illustrates the display of rider system 102 of FIG. 1. In the example shown, rider system 600 comprises display 602. Display 602 comprises a display for a rider system after indication of a dropoff address for a ride (e.g., using set dropoff button 508 of FIG. 5). In some embodiments, display 602 comprises a display for a rider system after indication of a pickup address for a ride (e.g., using set pickup button 412 of FIG. 2) and indication not to indicate a dropoff address. Display 602 comprises map 604, displaying the local area around the rider system and the path of the ride to be requested. Display 602 additionally comprises pickup address display 606, dropoff address display 608, and request ride button 610. The rider using rider system 600 reviews the path of the ride shown on map 604 and the displayed pickup and dropoff addresses. In some embodiments, the rider can return to the pickup address entry screen, (e.g., shown in FIG. 4) by indicating to pickup address display 606, and the rider can return to the dropoff address entry screen, (e.g., shown in FIG. 5) by indicating to dropoff address display 608. If the user decides the addresses are correct and wants to request the ride, he makes an indication to request ride by activating button 610.



FIG. 7 is a diagram illustrating an embodiment of a user device display for indicating to a rider that drivers are being contacted. In some embodiments, the diagram of FIG. 7 illustrates the display of rider system 102 of FIG. 1. In the example shown, rider system 700 comprises display 702. Display 702 comprises a display for a rider system after indicating to request a ride (e.g., using request ride button 610 of FIG. 6). Display 702 comprises map 704, displaying the local area around the rider system and the path of the requested ride. Display 702 additionally comprises contacting drivers box 706, indicating to the rider the path of the requested ride and that drivers are being contacted. In various embodiments, lift management system receives information from rider system 700 indicating a request for a ride (e.g., pick up address, dropoff address, etc.), determines a driver to request whether the driver will pick up the rider, receives acceptance of the request for picking up the rider, providing driver and rider with acceptance information, receiving ride start and stop information (e.g., start time, stop time, rating, etc.), donation information (e.g., amount donated, summary of donation information, etc.), or any other appropriate system function.



FIG. 8 is a diagram illustrating an embodiment of a user device display for indicating to a rider that a driver has accepted a ride request. In some embodiments, the diagram of FIG. 8 illustrates the display of rider system 102 of FIG. 1. In the example shown, rider system 800 comprises display 802. Display 802 comprises a display for a rider system indicating that a driver has accepted the ride. Display 802 comprises map 804, displaying the local area around the rider system and the path of the ride. Display 802 additionally comprises driver information, including the driver name, driver rating, driver image 806, and driver car image 808. Driver image 806 and driver car image 808 are shown in order that the rider will be better able to identify the driver upon arrival. Display 802 additionally comprises call driver button 810. In some embodiments, when the rider indicates to call by activating driver button 810, an audio connection is made between the rider system and the driver system, enabling the rider and the driver to talk. In some embodiments, call driver button 810 is anonymized, such that none of the driver's information is revealed to the rider (e.g., the driver's phone number), and that after the ride is complete, the rider will no longer be able to contact the driver directly. In some embodiments, none of the rider's information is revealed to the driver (e.g., the rider's phone number), and that after the ride is complete, the driver will no longer be able to contact the rider directly.


After the driver accepts the ride request, the driver drives to the pickup location and meets the rider. Upon arrival at the pickup location, a notification is sent to the rider that the driver has arrived. The rider then boards the driver's car. When the ride starts, the rider receives a ride start notification. In some embodiments, the ride start notification comprises an audio notification. The rider is then taken to the desired destination. In some embodiments, while the ride is underway, the rider is provided with a music playlist for the ride. In some embodiments, while the ride is underway, the driver is provided with a music playlist for the ride enabling the playlist to be played over the vehicle sound system. In some embodiments, while the ride is underway, the driver and/or the rider are provided with a music playlist for the ride. When the destination is reached, the driver indicates that the ride is complete. In various embodiments, the rider and/or the driver are provided with mutually compatible interest information—for example, similar likes, similar work experience, similar other material for interesting conversation topics during the ride, or any other appropriate information. In some embodiments, the interest information is determined by comparing social media web page information (e.g., facebook pages).



FIG. 9 is a diagram illustrating an embodiment of a user device display for indicating to a rider that the ride is complete. In some embodiments, the diagram of FIG. 9 illustrates the display of rider system 102 of FIG. 1. In the example shown, rider system 900 comprises display 902. Display 902 comprises a display for a rider system indicating that the ride is complete and the rider should set a driver donation and a driver rating. Display 902 comprises donation amount display 904 and modify donation button 906. In some embodiments, donation amount display initially displays a default donation. In some embodiments, the default donation is determined based on the ride duration, ride distance, and ride region. For example, a suggested donation is $3+$1.75 per mile+$0.40 per minute with a minimum of $6. In another example, a suggested donation is $2+$2.15 per mile+$0.30 per minute with a minimum of $5. In various embodiments, modify donation button 906 allows a rider to modify the donation to any desired amount, a selection of amounts, any amount equal to or above a minimum amount, any amount equal to or lower than a maximum amount, or any other appropriate amount. Driver rating interface 908 comprises a driver rating interface for allowing the rider to rate the driver. When a user has satisfactorily chosen a driver donation and rating, he makes an indication by activating submit button 910 to submit the donation and rating information.



FIG. 10 is a diagram illustrating an embodiment of a user device display for menu options. In some embodiments, the diagram of FIG. 10 illustrates the display of rider system 102 of FIG. 1. In some embodiments, the diagram of FIG. 10 illustrates the display of driver system 104 of FIG. 1. In the example shown, user system 1000 comprises display 1002. Display 1002 comprises a display for displaying menu options. In the example shown, menu options comprise home button 1004, settings button 1006, help button 1008, and driver mode on button 1010 and driver mode off button 1012. Home button 1004 brings a user to a home screen. Settings button 1006 brings a user to a settings screen (e.g., a screen that enables a user to set a phone number, an email address, a credit card information, and a coupon information). Help button 1008 brings a user to a help screen. Driver mode on button 1010 turns on driver mode, and driver mode off button 1012 turns off driver mode. In some embodiments, turning off driver mode comprises turning on passenger mode. In various embodiments, driver mode on or off is selected using a pair of buttons, using a sliding switch, using a menu, using radio buttons, or using any other appropriate user interface device. In some embodiments, a user must get prior approval before being allowed to activate driver mode. In some embodiments, a user is not able to see the driver mode switch in the event that the user is not approved for being a driver.



FIG. 11 is a diagram illustrating an embodiment of a user device display for a default display for a driver system. In some embodiments, the diagram of FIG. 11 illustrates the display of driver system 104 of FIG. 1. In the example shown, driver system 1100 comprises display 1102. Display 1102 comprises a default display for a driver system. Display 1102 comprises map 1104, displaying the local area around the driver system. Map 1104 comprises local roads and geographical features, car icons indicating other active driver systems and a pin icon indicating the driver system position. Display 1102 additionally comprises waiting for passenger requests display 1106, indicating the driver system is waiting for passenger requests. In various embodiments, display 1102 indicates a time since last ride, a probably time to next ride, or any other appropriate information.



FIG. 12 is a diagram illustrating an embodiment of a user device display for receiving a ride request for a driver system. In some embodiments, a ride request comprises a rider notification. In some embodiments, the diagram of FIG. 12 illustrates the display of driver system 104 of FIG. 1. In the example shown, driver system 1200 comprises display 1202. Display 1202 comprises rider information, including a rider name, a rider rating, a rider location and estimated travel time to pick up the rider, and rider photo 1204. Display 1202 comprises map 1206, displaying the local area around the driver system and the path to pick up the rider. Display 1202 additionally comprises accept button 1208. In some embodiments, the ride request comprises a time limit for the driver to accept the ride request. Accept button 1208 displays the remaining time the driver has to accept the ride request. If the driver makes an indication by activating accept button 1208, the driver system registers that the request has been accepted, and the driver and the rider are connected. The driver then begins to drive to pick up the passenger.


In some embodiments, in the event that the driver does not accept the ride request, the ride request is sent to the next selected driver—for example, the lift management system determines a next driver and provides a driver request to the driver. In some embodiments, the next selected driver comprises one of a set of potential drivers. In some embodiments, the driver is informed of a destination (e.g., by displaying the destination on the map or in text).



FIG. 13 is a diagram illustrating an embodiment of a user device display for a driver system while driving to pick up a passenger. In some embodiments, the diagram of FIG. 13 illustrates the display of driver system 104 of FIG. 1. In the example shown, driver system 1300 comprises display 1302. Display 1302 comprises rider information, call button 1304, and navigate button 1306. In some embodiments, when the driver activates call button 1304 (e.g., taps), an audio connection is made between the driver system and the rider system, enabling the driver and the rider to talk. In some embodiments, call driver button 1304 is anonymized, such that none of the rider's information is revealed to the driver, and that after the ride is complete, the driver will no longer be able to contact the rider directly. When the driver activates navigate button 1306, a set of turn-by-turn directions is shown on display 1302, taking the driver to the rider. Display 1302 additionally comprises map 1308, displaying the local area around the driver system and the driver's progress along the path to pick up the rider. Display 1302 additionally comprises start ride button 1310. After the passenger has boarded the car, the driver indicates to start ride button 1310 to start the ride duration meter. In various embodiments, start ride button 1310 comprises a button, a slider, a switch, or any other appropriate user interface device.


In some embodiments, after the driver activates start ride button 1310 to start the ride duration meter, the driver then drives to the rider destination. When the driver has reached the rider destination, the driver indicates to an end ride button that the ride is complete. In various embodiments, the end ride button comprises a button, a slider, a switch, or any other appropriate user interface device.



FIG. 14 is a diagram illustrating an embodiment of a user device display for rating a passenger for a driver system. In some embodiments, the diagram of FIG. 14 illustrates the display of driver system 104 of FIG. 1. In the example shown, driver system 1400 comprises display 1402. Display 1402 comprises rider information, rider rating interface 1404, and submit button 1406. Rider rating interface 1404 comprises a rider rating interface for allowing the driver to rate the rider. When a driver has satisfactorily chosen a rider rating, he makes an indication to submit button 1406 to submit the rating information.



FIG. 15 is a flow diagram illustrating an embodiment of a process for getting a ride. In some embodiments, the process of FIG. 15 is used by a rider using a rider system (e.g., rider system 102 of FIG. 1) to get a ride using a lift management system (e.g., lift management system 106 of FIG. 1). In 1500, an indication is received of the application starting. For example, the rider starts the ride app and the ride app indicates to the lift management server that it is operating. Information for display is provided to show potential drivers to a rider. In 1502, an indication is received that a ride is requested. For example, the rider requests a ride by indicating in the app and the app provides an indication which is received by the lift management server. In some embodiments, the ride request incudes a pickup location. In some embodiments, a ride request includes a dropoff location (e.g., that is typed in as part of the request, as selected from a list, as selected on a map, as selected from a top destination lists, etc.). In some embodiments, the top destination list is for an individual. In 1504, a connect notification is provided. For example, a driver is selected for a requested ride from the rider, the requested ride is provided to the driver, the driver is asked with a time limit whether the requested ride is accepted, and the driver accepts. The driver connection is indicated to the rider. The connect notification indicates that a driver has accepted the ride request. In various embodiments, the connection notification includes one or more of the following: an image of the driver or associated with the driver (e.g., an icon), an image of the driver's car or associated with the driver's car (e.g., an icon), an interface for contacting the driver (e.g., an anonymized contact interface for contacting or calling the driver where the rider does not know the number of the driver and the driver does not know if called the number of the rider), a start location (e.g., a current location of the rider, a lead location—for example, a location associated with the current location but preferred such as a front door of a building based on the a current location inside the building or a corner near by the house instead of in front of the house, etc., a destination, or any other appropriate information. In 1506, a notification is received of the ride starting. For example, the rider meets the driver (e.g., after the driver drives to the rider). The rider boards the vehicle. The rider system provides a notification of the ride starting. In some embodiments, the rider system does not provide an indication of a ride start to the lift system manager. In 1508, a notification is received of the ride completing. For example, the rider rides the vehicle to the destination. The rider system provides notification of the ride complete to the lift management system. In some embodiments, the rider system does not provide an indication of the ride completion to the lift management system. In 1510, donation and rating information is received. For example, the rider exits the vehicle. The rider provides a donation and/or a rating for the ride and this information is provided to the lift management system. The donation is debited from a pre-provided and pre-authorized credit card to the account of the driver. The aggregated total donation for the driver is stored so that it can be provided to the driver at the end of the current shift session or in a summary report.



FIG. 16 is a flow diagram illustrating an embodiment of a process for giving a ride. In some embodiments, the process of FIG. 16 is used by a driver using a driver system (e.g., driver system 104 of FIG. 1) to give a ride using a lift management system (e.g., lift management system 106 of FIG. 1. In 1600, an indication is received of the application starting. For example, the driver starts the ride app. In 1602, an indication is received of being in a driver mode. For example, the driver indicates driver mode to the ride app. The app indicates to the lift management system that the app is in driver mode. A driver waits for a rider, as long as is necessary. In 1604, it is determined whether a driver is selected. In the event that a driver is not selected, control passes to 1604. In the event that a driver is selected, control passes to 1606. In 1606, a rider request is provided. For example, the driver is provided with a rider request. In 1608, an indication is received of the rider request acceptance. For example, the driver indicates acceptance of the rider request to the lift management system. In the event that the driver accepts (e.g., within a time window, the driver accepts), the driver is provided with a connect notification including rider information (e.g., a picture associated with the rider, an interface for anonymized communication, a music playlist, topics for conversation, mutual interests, mutual acquaintances, similarities in job histories, similarities in living locations, similarities in tastes, etc.), a pickup location if not already provided, a destination, if appropriate, or any other appropriate information. In 1610, an indication is received of a ride start. For example, the driver drives to the rider location. The rider then boards the driver vehicle. The driver indicates that the ride has started (e.g., a time of starting a ride and a location of starting a ride), and this is received by the lift management system. In 1612, an indication is received of a ride stop. For example, the driver drives to the rider destination. In some embodiments, the rider destination was entered into the ride request and is received by the ride app. In some embodiments, a destination is selected from a top destination list (e.g., by selecting on a map of top destinations, selecting from a text list, in a history table, etc.). In some embodiments, the rider tells the driver the destination directly. When the destination is reached, the driver indicates the ride is complete and this is indicated to the lift management system (e.g., the stop time, the stop location, etc.). The rider then exits the driver vehicle. In 1614, a rider rating is received. For example, the driver then rates the rider and the rating is transmitted to and received by the lift management system. In 1616, it is determined whether the driving shift is complete. If it is determined that the driving shift is not complete, control passes to 1604. If it is determined that the driving shift is complete, control passes to 1618. In 1618, a donation summary is received. For example, the driver receives a donation summary of all the donations received for the driving shift.



FIG. 17 is a flow diagram illustrating an embodiment of a process for indicating a lead location. In some embodiments, a lead location comprises a location chosen to represent a cluster of nearby locations. For example, if a rider was picked up four times from slightly different locations near the entry to his office, the four pickups would naturally form a cluster, and the office address would more appropriately represent the cluster than the back alley address or the next door address. In 1700, pickup and dropoff events are recorded. Each event comprises a location, a time, a means of entering the location into the app, and any other appropriate information. In 1702, each event is associated with a location cluster. In some embodiments, events are associated with a location cluster using the k-means algorithm. In some embodiments, events are associated with a location cluster by associating them with a set of other events with nearby locations. In 1704, each event is associated with a weight. In some embodiments, the weight is determined by determining the method that was used to enter the location in to the app (e.g., the selector). For example, a typed address (e.g., weighted 1000) is weighted more than moving a pin manually on a map (e.g., weighted 25), which in turn is weighted more than a global positioning location (e.g., weighted 3). In 1706, event weights for each distinct location in the location cluster are summed. For instance, if there are four events in the location cluster with the identical associated locations, their weights are summed and associated with the location. In 1708, the location in the cluster with the highest total weight is determined. In 1710, the location in the cluster with the highest total weight is indicated as the cluster lead location. If a location is entered into the app later that is grouped with the same location cluster, the location will then be represented by the cluster lead location rather than the entered location.


In some embodiments, the addresses are normalized so that a location that a location that has been used multiple times appears only once in the list of addresses for a cluster. Each time someone selects their pick-up or drop-off locations, the method with which they selected that location is stored. We sum up these location selectors per address per cluster. So a cluster would look like the following:


a. cluster 1

    • i. Location A
      • 1. selector: defaultList
      • 2. selector: defaultList
      • 3. selector: typedInput
    • ii. Location B
      • 1. selector: unknown


Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.

Claims
  • 1. A computer-implemented method comprising: generating, via one or more servers, a plurality of pickup location clusters from historical events comprising historical pickup locations corresponding to requestor computing devices by utilizing a clustering algorithm to cluster the historical events according to relationships between the historical pickup locations and stored locations associated with user accounts;generating, via the one or more servers, a plurality of lead locations for the plurality of pickup location clusters by determining event weights for the historical events and combining the historical events corresponding to the plurality of pickup location clusters according to the event weights;receiving, via the one or more servers from a requestor computing device, a ride request indicating a requested pickup location;determining that the requested pickup location corresponds to a pickup location cluster from the plurality of pickup location clusters;based on determining that the requested pickup location corresponds to the pickup location cluster, selecting, via the one or more servers, a lead location for the pickup location cluster from the plurality of lead locations as a pickup location for the ride request; andproviding, for display on the requestor computing device, a pickup location pin indicating the pickup location for the ride request.
  • 2. The computer-implemented method of claim 1, wherein generating the plurality of pickup location clusters comprises clustering the historical pickup locations based on distances between the historical pickup locations.
  • 3. The computer-implemented method of claim 1, wherein receiving the ride request indicating the requested pickup location comprises one or more of: receiving an indication of user input placing a pin on a digital map displayed on the requestor computing device;receiving an indication of user input entering a typed address in an address entry field displayed on the requestor computing device;receiving in indication of user input selecting an address from a list of commonly used pickup addresses presented via the requestor computing device; ordetermining a global positioning location of the requestor computing device for the ride request.
  • 4. The computer-implemented method of claim 1, wherein generating the plurality of lead locations comprises: determining, for a certain pickup location cluster from among the plurality of pickup location clusters, a first location weight for a first historical pickup location and a second location weight for a second historical pickup location within the certain pickup location cluster; andselecting the second historical pickup location as a lead location for the certain pickup location cluster based on determining that the second location weight is greater than the first location weight.
  • 5. The computer-implemented method of claim 4, further comprising determining the first location weight and the second location weight by combining individual weights associated with historical events that occurred at the first historical pickup location and the second historical pickup location, respectively.
  • 6. The computer-implemented method of claim 1, further comprising: storing, within a computer database, an account location for a user account associated with the requestor computing device;generating an additional pickup location cluster from a plurality of historical pickup locations of previous ride requests received from the requestor computing device of the user account, wherein the plurality of historical pickup locations occur within a distance of the account location; andselecting the account location as a lead location for the additional pickup location cluster.
  • 7. The computer-implemented method of claim 1, wherein determining that the requested pickup location corresponds to the pickup location cluster comprises determining that the requested pickup location is within a distance of the lead location of the pickup location cluster.
  • 8. A system comprising: at least one processor; andat least one non-transitory computer readable storage medium storing instructions that, when executed by the at least one processor, cause the system to: generate, via one or more servers, a plurality of pickup location clusters from historical events comprising historical pickup locations corresponding to requestor computing devices by utilizing a clustering algorithm to cluster the historical events according to relationships between the historical pickup locations and stored locations associated with user accounts;generate, via the one or more servers, a plurality of lead locations for the plurality of pickup location clusters by determining event weights for the historical events and combining the historical events corresponding to the plurality of pickup location clusters according to the event weights;receive, via the one or more servers from a requestor computing device, a ride request indicating a requested pickup location;determine that the requested pickup location corresponds to a pickup location cluster from the plurality of pickup location clusters;based on determining that the requested pickup location corresponds to the pickup location cluster, select, via the one or more servers, a lead location for the pickup location cluster from the plurality of lead locations as a pickup location for the ride request; andprovide, for display on the requestor computing device, a pickup location pin indicating the pickup location for the ride request.
  • 9. The system of claim 8, further comprising instructions that, when executed by the at least one processor, cause the system to generate the plurality of pickup location clusters comprises clustering the historical pickup locations based on distances between the historical pickup locations.
  • 10. The system of claim 8: further comprising instructions that, when executed by the at least one processor, cause the system to receive the ride request indicating the requested pickup location by one or more of: receiving an indication of user input placing a pin on a digital map displayed on the requestor computing device;receiving an indication of user input entering a typed address in an address entry field displayed on the requestor computing device;receiving in indication of user input selecting an address from a list of commonly used pickup addresses presented via the requestor computing device; ordetermining a global positioning location of the requestor computing device for the ride request.
  • 11. The system of claim 8, further comprising instructions that, when executed by the at least one processor, cause the system to generate the plurality of lead locations comprises: determining, for a certain pickup location cluster from among the plurality of pickup location clusters, a first location weight for a first historical pickup location and a second location weight for a second historical pickup location within the certain pickup location cluster; andselecting the second historical pickup location as a lead location for the certain pickup location cluster based on determining that the second location weight is greater than the first location weight.
  • 12. The system of claim 11, further comprising instructions that, when executed by the at least one processor, cause the system to determine the first location weight and the second location weight by combining individual weights associated with historical events that occurred at the first historical pickup location and the second historical pickup location, respectively.
  • 13. The system of claim 8, further comprising instructions that, when executed by the at least one processor, cause the system to: storing, within a computer database, an account location for a user account associated with the requestor computing device;generating an additional pickup location cluster from a plurality of historical pickup locations of previous ride requests received from the requestor computing device of the user account, wherein the plurality of historical pickup locations occur within a distance of the account location; andselecting the account location as a lead location for the additional pickup location cluster.
  • 14. The system of claim 8, further comprising instructions that, when executed by the at least one processor, cause the system to determine that the requested pickup location corresponds to the pickup location cluster by determining that the requested pickup location is within a distance of the lead location of the pickup location cluster.
  • 15. A non-transitory computer readable medium storing instructions thereon that, when executed by at least one processor, cause a computer system to: generate, via one or more servers, a plurality of pickup location clusters from historical events comprising historical pickup locations corresponding to requestor computing devices by utilizing a clustering algorithm to cluster the historical events according to relationships between the historical pickup locations and stored locations associated with user accounts;generate, via the one or more servers, a plurality of lead locations for the plurality of pickup location clusters by determining event weights for the historical events and combining the historical events corresponding to the plurality of pickup location clusters according to the event weights;receive, via the one or more servers from a requestor computing device, a ride request indicating a requested pickup location;determine that the requested pickup location corresponds to a pickup location cluster from the plurality of pickup location clusters;based on determining that the requested pickup location corresponds to the pickup location cluster, select, via the one or more servers, a lead location for the pickup location cluster from the plurality of lead locations as a pickup location for the ride request; andprovide, for display on the requestor computing device, a pickup location pin indicating the pickup location for the ride request.
  • 16. The non-transitory computer readable medium of claim 15, further comprising instructions that, when executed by the at least one processor, cause the computer system to generate the plurality of pickup location clusters comprises clustering the historical pickup locations based on distances between the historical pickup locations.
  • 17. The non-transitory computer readable medium of claim 15, further comprising instructions that, when executed by the at least one processor, cause the computer system to receive the ride request indicating the requested pickup location by one or more of: receiving an indication of user input placing a pin on a digital map displayed on the requestor computing device;receiving an indication of user input entering a typed address in an address entry field displayed on the requestor computing device;receiving in indication of user input selecting an address from a list of commonly used pickup addresses presented via the requestor computing device; ordetermining a global positioning location of the requestor computing device for the ride request.
  • 18. The non-transitory computer readable medium of claim 15, further comprising instructions that, when executed by the at least one processor, cause the computer system to generate the plurality of lead locations comprises: determining, for a certain pickup location cluster from among the plurality of pickup location clusters, a first location weight for a first historical pickup location and a second location weight for a second historical pickup location within the certain pickup location cluster; andselecting the second historical pickup location as a lead location for the certain pickup location cluster based on determining that the second location weight is greater than the first location weight.
  • 19. The non-transitory computer readable medium of claim 15, further comprising instructions that, when executed by the at least one processor, cause the computer system to generate the plurality of lead locations comprises: determining, for a certain pickup location cluster from among the plurality of pickup location clusters, a first location weight for a first historical pickup location and a second location weight for a second historical pickup location within the certain pickup location cluster; andselecting the second historical pickup location as a lead location for the certain pickup location cluster based on determining that the second location weight is greater than the first location weight.
  • 20. The non-transitory computer readable medium of claim 15, further comprising instructions that, when executed by the at least one processor, cause the computer system to: storing, within a computer database, an account location for a user account associated with the requestor computing device;generating an additional pickup location cluster from a plurality of historical pickup locations of previous ride requests received from the requestor computing device of the user account, wherein the plurality of historical pickup locations occur within a distance of the account location; andselecting the account location as a lead location for the additional pickup location cluster.
CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No. 16/673,120, filed on Nov. 4, 2019, which is a continuation of U.S. application Ser. No. 13/828,913, filed on Mar. 14, 2013, now U.S. Pat. No. 10,467,554, issued on Oct. 16, 2019. The aforementioned applications are hereby incorporated by reference in their entirety.

Continuations (2)
Number Date Country
Parent 16673120 Nov 2019 US
Child 18179592 US
Parent 13828913 Mar 2013 US
Child 16673120 US