Building Instacart Pickup
Tags: On Demand, Mobile App Development, Technology News, Machine Learning, Fulfillment

Building Instacart Pickup

By: Kevin Henrikson

I’m driving with my family from San Mateo to Juniper Lake for a camping trip. I need to stock up my cooler on the way, but I want to make sure we get to our campsite before it gets dark — it’s a long drive. I don’t have the time to shop at my regular grocery store, so I open up my Instacart app to see if any store along my route is offering curbside pickup with the new Instacart Pickup product. I pick my store of choice along Interstate 80, fill up my cart, and follow the in-app prompts to my designated pickup parking spot.

The experience is powered by a ton of new features we packed into the app including:

“Pick Your Pickup” UX that lets customers easily view and select the pickup location most convenient to their route.

that lets customers easily view and select the pickup location most convenient to their route. Smart Storefronts that adapt to location-specific store inventories.

that adapt to location-specific store inventories. Opt-in, location-based alerts that allow customers to let the shopper know when they’re on the way and getting close.

that allow customers to let the shopper know when they’re on the way and getting close. Customized navigation and prompts which sends customers to the mapping app of their choice, automatically directing drivers from their current location to the store. As a customer nears a store, we send them prompts in real-time to guide them to the handoff location.

which sends customers to the mapping app of their choice, automatically directing drivers from their current location to the store. As a customer nears a store, we send them prompts in real-time to guide them to the handoff location. Send a Friend or Family Member which lets customers share their order details with friends and family to delegate pickup to another driver. Place the order and send a friend to pick it up!

While Pickup and Delivery products share a lot of the same technological DNA, Pickup flips the script of the typical delivery service model, folding the customer into the fulfillment chain’s last mile. When you involve the customer in the fulfillment flow, it presents a bunch of really interesting technical challenges for engineering and product teams.

Building a dynamic storefront

In our Delivery product, we identify a store location to deliver from based on the items a customer puts in their cart. With Pickup, customers choose their exact store — not just the actual retailer but the exact physical location of the store they want to pick up from. This prompted us to build a storefront that changes from location-to-location to reflect store-specific inventories.

When a pickup customer selects a store along their route, they’ll see location-specific inventories as they fill up their cart.

Our Item Availability model underpins this dynamic storefront. It relies on a combination of historical found/not-found rates, inventory data, and other inputs to predict whether the customer’s preferred items are in stock at any given store location along the customer’s route.

Sticking the landing

In contrast to the passive, one- and two-hour delivery windows available in our Delivery Product, with Pickup, customers participate in a choreographed curbside handoff. Even the smallest hitches and delays are magnified if you’re on the road with a kid in the car seat behind you, trying to get to a campsite before dark. We rely on a host of machine learning models, geolocation technologies, and in-app prompts to nail the second-by-second hand-off.

In-app prompts guide customers to designated curbside pickup areas.

Once a customer selects their store of choice and completes their order, our Drive Time model looks at historical transit times to estimate how long it will take a customer to arrive at the store. We’ve traced rings of geofences around each pickup-eligible store. If a customer with location-based alerts enabled crosses the fence, we’ll adjust the minute-to-minute arrival time.

We rely on historical fulfillment data to calculate just how long it can take someone to get in and out of store parking lots — we like to call this the “Parking Model”. This is especially useful for pickup customers in crowded urban centers vs. customers in suburban or rural stores with wide-open parking lots. From the data, we can see it takes longer to get through a parking lot on a crowded Sunday in downtown Los Angeles than it does in suburban Orange County, CA.

Even though Pickup and Delivery are two different products and experiences, the orders are being fulfilled by the same set of shoppers, and we’ve built an Order Prioritization model to choreograph the hand-off. The model organizes incoming orders in a shopper’s queue based on historical fulfillment data.

If a customer crosses a geofence, we will bump the pickup order to the top of a shopper’s queue, alerting the shopper that it’s time to make the handoff.