The unspoken fact of delivery is that some things just aren't meant to be waited for.
There are rules and facts and just general common knowledge for how we should approach an order, how to get it to the customer as fresh as humanly possible and how best to interact with the shop you're receiving from as well as the customer at the end. What do you do in that silent middle ground? Your time is your income, so when do you decide to let this current order go? As soon as it doesn't make sense.
First of all, every order is income, right? Actually, no it's not. That little “add-on” order you accepted because it's literally next door, and should only add 1 minute to your total time? Now you're waiting an extra 5 to 10 minutes for the order to even be prepared, another 3-5 for them to package it, and the 1-2 minutes to get it into your car, start it and start that GPS.
Best case scenario there, you've added 8 minutes, not to mention the extra 2 minutes for the light you have to wait at. That's 10 minutes for $3.50. I'll play to both sides of this order in a second, but let's take that initial order instead, shall we? Your order for $110 worth of food, with a total of, let's say $22 before tip (if any, amirite?) is waiting behind 3 customers' orders.
You tell the customer the usual line, “Sorry it's taking so long, the wait is insane right now” and promise to be on your way the second it's in the bag. I have a couple of choices you can make, as I have made them myself.
Number one, wait it out. It's possible you're going to get “extended wait pay”, right? Not always, some platforms don't help their drivers with anything of the sort. Your $22 should cover gas, time and energy. Myself personally, $22 gets me exactly 20 minutes waiting unless my platform has guaranteed bonus pay for the wait.
Choice number two, cancel when you learn the estimated wait time. Honestly, I would never do this simply for the fact that I may not have another delivery for another 15 minutes at least. Time waiting is money missing. Reach out to the customer and let them know you can't take the job, however it will be back on the platform and another driver will be able to bring it as soon as it's actually ready at the restaurant.
No harm, no foul, right? Decide if your acceptance rate or cancellation rate will impact your deliveries offered in the future.
We are the face of these services, and whatever face we show to a client (because, yes, that's what customers are) will determine how much we make in the long run.
Your action for this delivery will impact the next driver who may lose a tip through no fault of their own. Or, declining to fulfill your obligation to a delivery could spell the end of your career delivering on that platform.
So let me answer that question I posed for you, “when do you cancel the order?”
You cancel it when the money isn't worth it.
But only cancel if you can give someone else a fair shot. Give yourself a fair shot in return, because who knows? That order may come full-circle and you may have it again while waiting.
Above all else, never “cancel” an order, “move it forward”.