Instacart’s secret markups accidentally disclosed

A curious post about Instacart appeared recently on Reddit’s Boston subreddit that deserves some attention in grocery retail.

Instacart delivers groceries and other products from a range of retailers. Here in Boston, they deliver from Whole Foods, Costco, CVS, Star Market/Shaw’s, Market Basket, Russo’s, and Petco, plus some liquor and specialty stores inside the more urban parts of the area. My family and I are regular users. (You can try the service yourself with my referral link, which will get you and me both $10.)

Grocery delivery truck circa 1941
An early version of Instacart. By Jewish Historical Society of the Upper Midwest, via Wikimedia Commons.

Originally, the service didn’t disclose whether the prices were the same as in-store or different, and that changed in 2015 with clearer disclosures.

Some retailers are official partners and the prices online match what’s available in-store. But many retailers available on the platform aren’t official partners, and it’s no secret that Instacart’s prices are “15%+ higher than in‑store,” as disclosed when shopping. The plus symbol leaves a lot of latitude, leaving the extent of the mark ups opaque for consumers.

That brings us to the Reddit post, which made the mark up practices much clearer.

The message writer received an Instacart delivery where the order picker accidentally left the store receipt from Market Basket. The customer compared the price he paid versus the amount Instacart charged and posted the details. I took prices from the scanned receipts and made some charts to help understand how and where they were marking up prices.

Comparison of prices charged by Market Basket vs. Instacart

It’s interesting to see how the markups vary by product, with some staples having low (and even negative) markups. Market Basket is rightfully known for having low prices, and I wonder if Instacart is using what it knows about prices in other stores to raise low in-store prices to be similar to what it sees across retailers or even across markets.

Comparison of costs at Market Basket vs. Instacart

Overall, Instacart marked up prices by 43%. Add the delivery fee ($5.99 flat) and service fee (10% and optional), and it comes to a 64% markup on groceries that cost $86.35 at Market Basket. That’s $55.30 to cover Instacart’s cost of shopping and delivery.

(Note: The service fee is separate from a tip, a change that Instacart made in late 2016, to the confusion of customers and anger of their contractor shoppers. The service fee is optional but selected as a default, and a tip is also optional but set to zero by default. And when faced with defaults, most people leave them as-is.)

Sure, it would be straightforward to make this comparison by simply looking at prices in store, but those who are paying to have groceries delivered to them probably aren’t taking the time to visit a store to observe actual prices. So, is it a good business practice to have such an opaque markup practice? That’s up for discussion and will likely get some attention from regulators as Instacart and its competitors grow.

By comparison, here in Boston, Ahold Delhaize’s Peapod (referral link for $20 off) offers delivery for $7 to 10 depending on order size, a $60 order minimum, and disclosure that prices may differ from in-store at Stop & Shop or Giant. Local chain, Roche Bros., offers delivery for a $10 fee with the same prices as in-store, and no order minimum. Tipping is optional with both.  (Edit: Tipping is optional with Peapod, and Roche Bros. employees are not allowed to accept tips.)

Some more miscellaneous points:

1. The cost charged for russet potatoes looks like it might have been a mistake. Instacart charged $4.25/pound, which is a steep increase over the typical $1.00 or less per pound I pay, even at Whole Foods, and more than the $0.59/pound shown on Instacart’s Market Basket page. So if we count this as an outlier and make the markup for that item zero, Instacart still has an overall markup of 32% for the products in this order.

2. The tax is interesting. Market Basket charged $0.52 and Instacart charged $0.84. Instacart paid $0.52 to Market Basket and then collected an extra $0.32. I don’t know what the rules are, nor do I know how Instacart handles the surplus tax, but I know the details here have tripped up companies in the past.

3. A follow-up post indicates that Instacart’s CEO, Max Mullen, reached out and made adjustments to the order of $10.39, which I am guessing is mostly the high-priced potatoes.

4. Instacart just raised $400 million at a valuation of $3.4 billion.