===== Truck hiring project: Synopsis, business opportunity and questions ===== A fleet of trucks that plies from Mumbai to Nagpur is having to return empty-handed. A lot of business can be added and trips used wisely if the return trips too have cargo. Our client has an unorganised way to allow booking of cargo for the return trips. They are able to use only 10% of the return trips this way. ==== Questions ==== Q: Are return trip bookings only for the entire length from Nagpur to Mumbai? Or do they also take bookings for other cities on the route, thus partially monetising their return trip? E.g. Nashik, Aurangabad, etc. A: ... please answer here ... Q: Are specific localities important? Do trucks also agree to load or deliver cargo in a locality within a city that they are not bound for? E.g. will a truck bound for Bhiwandi depot agree to deliver cargo to Vashi or Borivali? A: ... please answer here ... ===== Trucks ===== Trucks are registered to the system with the following information. * Registration number, e.g. MH01 CL2868 * Name of the driver * Driver’s phone number * Driver’s license number * Type of the truck: one of open loader, closed loader, container, tanker. * Capacity of truck in tonnes. All trucks are owned by the drivers. All trucks will have GPS modules fitted in them. ===== The hiring process ===== The hiring process is carried out in the following phases. * Issuing a hiring request: This is where the person (we will call him the ‘hirer’), issues a request for a truck on which he can load cargo and get it delivered. * The system looks for available trucks and presents ‘hire suggestions’, which are trucks that can fulfill the hirer's request. * The hirer picks one of the suggested trucks. * After the hirer pays, the trip is considered purchased. * The driver of the chosen truck gets an SMS requesting him to confirm that he can do the trip. * If the driver is indeed proceeding towards Mumbai and is willing to load the hirer's cargo, then he will say YES. * If the driver is not ready to go to Mumbai that day for any reason or if he is unwilling to take the extra rounds to load and unload cargo, he will say NO. * The driver communicates the response to the system admin / call centre. If the driver rejects, then the admin proceeds to refund the tariff. Otherwise the trip proceeds as planned. ===== Issuing a hiring request ===== Let’s say Ajay wants to hire a truck to get some goods delivered between Itwari in Nagpur to Mulund in Mumbai. Here are some parameters that he chooses. * Type of the truck: the hirer can choose multiple types in order of priority. * Minimum capacity he requires * Maximum capacity he is willing to pay for * The earliest date on which his goods are ready in Itwari and can be loaded in a truck. * The latest date by which the goods should reach Mulund. * The complete address from which the goods are to be loaded (somewhere in Itwari). * The complete address to which the goods are to be delivered (somewhere in Mulund). In addition, a hiring request ID is auto-generated, so that each request can be tracked and logged into a database. This request ID is linked to a specific hirer, identified by his/her phone number as the username. ==== Questions ==== Q: Can a trip be booked in advance, e.g one that starts a day or a week from today? Or can trips can only be booked such that they start today? A: ... please answer here ... Q: If trips need to be booked in advance, is the company keeping a record of which truck will be available at Nagpur on a specific date and will leave on a specific date? A: ... please answer here ... Q: Is information about cargo required? E.g. type of cargo, weight, etc. Is there something that needs to be shown to authorities, that we can help generate based on the type of cargo? A: ... please answer here ... Q: To hire, does the hirer need to provide personal info other than his/her name and phone number? A: ... please answer here ... Q: How is the expense to hirer decided/displayed? Is it negotiable? If so will it have discount coupons on a standard rate or a rate keyed in ? A: ... please answer here ... Q: Can a person hire more than one truck in the same order? A: ... please answer here ... ===== Hire suggestions ===== After a request is issued, the system finds trucks that fit the required conditions. The trucks are listed in a list that the hirer can see and choose from. Here is what’s shown in the list. * The day on which the truck leaves Nagpur (or the source city). This is also the loading date. * The day on which the truck reaches Mumbai (or the destination city). This is also the delivery date. * The type of the truck. * The capacity of the truck. * Trip tariff By default, the list will be sorted by ascending order of delivery date, i.e. the truck that can get the goods at the earliest date will be shown at the top. However, the hirer can sort it by load date, tariff, truck type or capacity either in ascending or descending order. ==== Questions ==== Q: What is the pricing structure for the trucks? We need it in order to calculate tariff. A: ... please answer here ... Q: Is the the full tariff to be paid upfront or is it an advance amount? Is the advance a fixed amount for all trips or is it a percentage of the total tariff? A: ... please answer here ... Q: Let’s say that there are trucks with capacities of 10, 20 and 30 tonnes. Ajay’s cargo’s weight is 16 tonnes. So he requests for a 20 tonne truck. But right now, only 30 tonne trucks are free for a trip. While showing the list of options available, what tariff is shown and billed? Is Ajay allowed to pay for 20 tonnes as per his request or does he need to pay the tariff for the entire 30 tonnes, which is the true capacity of the trucks. A: ... please answer here ... Q: Let’s say multiple trucks of the same type and same capacity leave Nagpur on the same day and reach Mumbai on the same day. However the drivers decide to price things differently. One of them is cheaper and another one is costlier. Does it make sense to show ONLY the cheapest option or should we show all the options? A: ... please answer here ... Q: The same question above can also be applied to truck capacity. Let’s consider Ajay’s cargo of 16 tonnes and his request for a minimum of a 20-tonne truck. If 20-tonne trucks are available, then should 30/40-tonne trucks even be shown as choices? Should we simply show the smallest truck accommodating the request or should we show all options? A: ... please answer here ... Q: If there is only ONE truck as the solution for a request, should we skip the selection screen and go straight to the confirmation screen considering that one option? A: ... please answer here ... ===== Confirmation and payment ===== After choosing an option or if the app skips the selection screen due to only one option being available, the hirer is shown all the details of the hire once again. Here is the info shown as per the hirer’s selection or as per the single option available. * The date on which the truck leaves Nagpur (loading date). * The date on which the truck reaches Mumbai (delivery date). * The truck type. * Capacity in tonnes. * Tariff. The tariff should be transparent, showing details of slabs based on distance and weight. It should also show the GST breakup and any seperate charges, such as driver charges, toll, etc., if those are collected from the hirer. The payment options are to be discussed. Right now, we are considered HDFC payment gateway, PayTM and UPI. ==== Questions ==== Q: What is the invoice format for a booking? A: ... please answer here ... ===== Payment receipt ===== After payment from the hirer, the first step is to confirm the payment. The steps depends on the payment system used. However, our system will track the following details of each payment. All payment systems furnish the details. * A transaction ID as returned by the payment system. This ID can be used with the payment system’s APIs to track a particular payment. * The amount paid, which should equal the tariff. * The status of the payment, which can be one of: * Paid: the payment is finished and the chosen truck is ready for the trip. * Pending: the payment system hasn’t confirmed the receipt of payment. The system needs to wait and watch out for the confirmation or an impending rejection. * Rejected: the payment system has rejected the payment. This may be due to shortage of funds, blocking of account or wrong credentials such as CVV or OTP. The payment system is often helpful with an error message. * Cancelled: This status is due to the hirer changing his/her mind and cancelling the payment before completing it. * Rejection reason: If the payment was unsuccessful (rejected), then the reason for rejection is stored here. Each payment status is linked to a hiring request ID, so that payment or non-payment of requests can be tracked. An SMS is sent to the hirer’s phone after payment is complete. Note that this SMS only confirms that our app received the money. A seperate SMS is sent with the trip details. ===== Purchased trip ===== Once payment is complete and confirmed, a new trip is created. This trip takes care of the hirer’s conditions. The new trip has the following info. * The hiring request ID which results in this trip. * A trip ID which uniquely identifies this trip. * The starting date of the trip. * The completion date of the trip. ===== Confirmed / rejected trip ===== Once the payment is complete, the driver of the truck receives an SMS, which gives him the following details: * Loading date from Nagpur * Loading address at Nagpur * Date for reaching Mumbai * Destination address at Mumbai Most likely, the driver accepts the trip. But sometimes, things happen and the driver either is forced to reject or willingly rejects the trip. Either way, a call between the driver and the admin. The driver is given a certain amount of time to respond with a YES. If there is no response within that time, a NO is assumed and the trip is rejected. When a trip is rejected, the tariff is refunded. After the driver's response is updated in the system, the hirer gets an SMS. * If the trip is rejected, an apology and an intimation for the reversal of tariff are issued. * If the trip is accepted, then the truck's registration number, the driver's name and his mobile number are sent. ==== Questions ==== Q: Apart from multiple copies of invoice, are there more documents that we need to generate for the purpose of the trip? A: ... please answer here ... ===== Trip tracking ===== A trip can be tracked throughout it’s lifetime. The status is available online and important status updates are SMSed to the hirer. Here are the proposed trip statuses. * Upcoming: The trip hasn’t started yet. * Loading: The truck is loading cargo at the source. * In transit: The truck is proceeding towards destination. This is the longest running status of the truck. * Complete: The truck has reached its destination. * Cancelled before start: If the hirer cancels the trip before it starts, i.e. cancellation in the ‘upcoming’ state. * Cancelled during trip: If the hirer cancels the trip during the ‘loading’ or ‘in transit’ state. * Rejected by driver: If the driver rejects the trip when he is notified about it. * Cancelled by driver: If the driver of the truck cancels the trip while it is in transit. * Cancelled by system: If someone inside the system, such as the admin, cancels the trip. * Suspended: If the trip has to stop temporarily for some reason, e.g. a broken truck, a closed highway, weather conditions, etc. The driver calls in the admin, who marks the status as ‘suspended’. The status is immediately notified to the hirer, who can cancel or wait for the trip to proceed. Refunding / compensation policies will kick in. ==== Questions ==== Q: What are the refunding / compensation / penalty policies result from cancellations and suspensions. A: ... please answer here ... Q. At what points can trips be cancelled? Are my points sufficient or are there additional / less points of cancellation? A: ... please answer here ... Q: How is the integrity / safety of the cargo verified? A: ... please answer here ... Q: How is damage to cargo refunded? A: ... please answer here ... ===== Truck status ===== The truck status represents the status of every truck in the fleet. While there are 80 trucks in the fleet, only a handful of them are in Nagpur and ready for the next trip back to Mumbai. Within those, only some are free to take bookings online, while the others are already booked through offline means. Here is the list of statuses that trucks can be in. * At Nagpur: Truck is at Nagpur, but its next trip to Mumbai is undecided. * Ready: Truck is at Nagpur and the date for its next trip to Mumbai is confirmed. * Booked offline: Such as truck has been booked for a trip through offline means such as telephone, written contract, etc. * On the road: The truck is headed to Mumbai with booked cargo. * Off the road: Truck is off the road right now, due to need for service or expired documents * Not at Nagpur: Truck is in Mumbai. * Location unknown: If the truck has failed to update its co-ordinates for the last 10 minutes. See the point below. Trucks will also send out their GPS co-ordinates every minute. The latest co-ordinates are stored. This helps show the trucks on a map and also to find trucks that are in Nagpur right now and possibly ready for hire. ===== Role of the admin ===== The admin is responsible for managing records where automation is not yet possible and the changes need authority. Here are some responsibilities of the admin. The list is not exhaustive and is based on the synopsis so far. * Addition of new trucks to the fleet. * Removal of trucks from the fleet. * Manual updation of a truck’s co-ordinates. * Change the status of a truck, especially if it has to be pulled off the road temporarily. * Change the status of a trip, especially if it is cancelled by the driver or by the admin himself. * If a truck is at Nagpur, the admin can update the date on which the truck should be called back to Mumbai. * If a truck changes hands, then update the name and phone number of the new owner. * If a truck’s registration number changes, then change the record. * If the driver rejects a trip, then change the status of the trip to 'rejected by driver' and initiate a tariff reversal. * If a trip has to be delayed for any reason, then change the loading / delivery date. Before the change in date, the admin talks with the hirer to see if the delay is okay. * While a hirer may book a truck using the app, he may later prefer to perform other operations such as cancellation using a phone call. In such cases, the admin updates the system on behalf of the hirer. * The hirer may suddenly prefer a change of date, either for loading or for delivery. In such cases, the admin manually frees up the truck that was attached to the trip. Then he finds another truck that satisfies the new conditions of the hirer. The admin will sanction the changes after any re-booking charges are taken care of and difference in tariff is paid up.