Aisle seven, and the store is out of the 12-pack of Simply Lemonade. There's a 6-pack two feet over and a store brand gallon on the bottom shelf. You've got 34 items in the cart, a phone in your other hand, and a member who hasn't answered a text in eleven minutes.
Subs are the part of this job I've taken the most bad ratings over. Shipt trains you on the app. It doesn't really train you on this.
The setting they picked probably isn't what they meant
At checkout a member chooses how they want out of stock items handled. Shipt's help page lists three options: "Contact me," where you ask about every out of stock item and offer suggestions. "Do not substitute," where you don't look for a replacement at all. And "Choose a backup," where they pick the replacement item themselves ahead of time and you only text if you have to.
The default is contact me.
That matters more than it sounds like it should. Most members never picked anything. They clicked through checkout and Shipt handed them the default. So "contact me" on your screen means one of two things: either this person genuinely wants a say in every item, or they never looked at that screen and are now in a meeting.
You find out which one within about four minutes of the first text.
Write the text so it can be answered in one word
Most of the problem is solved right here.
Bad version: "Hi! Unfortunately they are out of the Simply Lemonade, what would you like me to do?"
That text puts the work on them. They have to picture the shelf, guess what's there, and type a paragraph back.
Better version, with a photo of the shelf attached: "Simply Lemonade 12-pack is out. I can do the 6-pack for $4.99, or the store brand gallon for $3.29. Reply 1 or 2, or say skip and I'll refund it."
Three choices, one of which is doing nothing, and a picture so they can see you're not making it up. Members answer that one. They answer it fast.
Your numbers are masked both directions, by the way, so they know the text is coming through Shipt and not from some stranger. Shipt's help page also says members need a device that can receive images to get these messages. If somebody notes they're on a landline, call instead.
Send them as you hit them
Some shoppers save every sub for the register. Don't. By then the member has five decisions to make at once and you're standing in a checkout lane burning unpaid minutes.
Text when you hit the empty shelf, then keep shopping while they think. That's the point of doing it early. The reply lands while you're three aisles away and you double back once instead of standing there.
The exception is when four things in the same aisle are out, which happens on a Sunday evening. Then it's one text with all four, not four texts in ninety seconds. Nobody wants their phone going off like that.
Decide what silence means before it happens
They won't always answer. Have a rule so you're not relitigating it in the store every time.
Mine is three lines. Same product, different size or a store brand of the identical thing, I sub it. Anything brand specific, kid specific, or diet specific, I refund it. And if the only replacement costs meaningfully more than the original, I refund that too.
That last one is where shoppers get burned, and it's worth understanding why.
Price is the complaint you don't see coming
When a member places an order, Shipt authorizes their card for the order total plus a small allowance for substitutions and special requests. What they actually get charged is the cost of what they received. If the final total runs past the original, Shipt captures the difference as a second charge.
So when you swap a $4.29 store brand oat milk for the $7.49 name brand because it was the only one left, that member sees a second charge hit their account. For oat milk they didn't pick.
Out of stock items that get refunded do the opposite. They lower the charge.
I've never had anyone complain about a refund. Not once. I've had plenty of people complain about a substitute that cost more than the thing they ordered.
Do not substitute means do not substitute
Refund it and move on.
Don't text to check whether they really meant it. Don't grab something close because you think you're being helpful. That member went out of their way to change a setting off the default, which is more effort than most people put into the whole order.
Photograph the empty shelf
Not the substitute, the hole where the item should be. Tag included if you can get it in frame.
Costs you four seconds and it ends the entire category of "my shopper didn't even look." Members can see the price tag, the empty space, and the timestamp. It also makes the two options you're offering feel like real options rather than you picking whatever was closest.
Check the order once more before you check out
Members can add items up to an hour before the pickup window, and you get a notification when they do. Notifications get missed. Mine get missed constantly, usually while I'm typing a sub text with a cart wedged sideways in a narrow aisle.
Glance at the item list before you head for a register. Finding an added item at self checkout is a minor annoyance. Finding it in the car is a redo.
What actually costs you the rating
It's rarely the substitute itself. It's the surprise.
A member who got a text, saw a photo, picked option 2, and got option 2 does not leave a bad rating over a lemonade brand. A member who ordered gluten free bread and found regular bread in the bag is a different situation entirely, and that one isn't really about your score.
The pattern in every bad rating I've gotten over subs is the same. Something changed and they found out when they opened the bag.
Take the surprise out and most of the problem leaves with it.
Auto Tip Map is an Android app that saves every order, tip, and address automatically. Useful after the kind of order where you spent twenty minutes texting from aisle seven, because next time that address comes up you'll know whether it was worth it.