Math Puzzle — When $5 is not worth $5

I recently had an odd customer shopping experience at Whole Foods, thanks to a black-box software algorithm. I had come into possession of a “$5 off $25” coupon, which doesn’t happen very often, so went off to Whole Foods to buy some groceries. Turns out that at Whole Foods, a $5 coupon isn’t always worth $5.

With the purchase by Amazon, Whole Foods introduced some new discount types for Prime members. Two of them are:

  • An extra 10% off of sale items (yellow tags). Sales prices are available to all shoppers, but Prime members get an extra 10% off at checkout.
  • Prime deals — super-low pricing on certain items (blue tags). These are labelled at the full price, but have a discount taken at checkout.

I found a mixture of Prime deals, sale items, and non-sale items totaling around $75. At checkout though, here is what I saw for the “Prime deal” on my ticket — steak that was supposed to be $5.99/lb showed up with only a partial discount (priced at $7.16/lb):

Whole Foods Ticket Showing Weird Discount
Whole Foods Ticket Showing Weird Discount

Um, what?? 2.23 lbs at $5.99/lb should be … $13.36. But they charged me $15.97??

Over the next 10 minutes, three employees tried explaining the math to me through various combinations of the 10% Prime discount + the $6.31 reduced price, but they could never get the numbers to match up on my ticket. Running the math myself, it turned out that the computer somehow took $2.61 of my coupon and applied it towards my $5.99/lb “Prime deal” — definitely non-transparent, confusing, and I feel slightly unethical. So my $5 coupon became worth $2.39.

Typically, my experience with such coupons are one of the following two things:

  1. $5 off is applied at the end of the ticket, where a whole $5 is removed from the final price. Or, if there are sales items:
  2. $5 is taken off the total ticket, but divided equally across all items. And then any additional sales discounts are taken. For example, in this case I bought $7.50 worth of chicken — about 10% of the ticket total. That means the coupon would have reduced the price of the chicken to $7.00, and then the extra 10% off of sales prices would have been $0.70 off (instead of the $0.75 non-coupon amount). Other store tickets, like CVS, are very transparent about this and show line-by-line how the various discounts interact.

Understandably, this coupon had fine print of cannot be combined with other discounts or pricing, in which case I would have assumed the $5 would have been taken off of non-sales and non-discounted items, of which I had purchased over $25 worth. Of course I could have achieved the same effect by splitting my ticket into two, which would have saved everyone time compared to the 10 minutes of math lessons.

However, in this case $2.61 of the coupon was applied towards a “reduced price” item, making one of the following two things true for my Prime deal + coupon combination:

  1. The advertised “Prime deal” of $5.99/lb changed to $7.16/lb once my coupon was introduced.
  2. My $5 off coupon became worth $2.39.

Either way, I felt like the pricing algorithm that calculated the ticket was dishonest and unethical (and I blame the pricing strategists / programmers, not the store employees). A cynical person might wonder if the algorithm calculated a “Prime” discount based on some ML model that returns a discount that the average shopper wouldn’t notice or complain about, because there is no straightforward, mathematical way that I can figure out how my $5 coupon got reduced to $2.39. If anyone can provide a logical, mathematical explanation of my ticket, I would love to see it!

Overall, extremely disappointing nickel-and-dime behavior for “Earth’s Most Customer-Centric Company”, so I will be taking my money (and shopping data) elsewhere.

Shopping Cart Design

Recently, for some reason I’ve been paying more attention to the user experience (UX) of everyday things. This might be due to a very user-focused former colleague of mine, who imparted some of her design sharpness and increased my general awareness of UX issues. Generally, I’ve heard UX described in terms of web or mobile technology applications — does the user get frustrated with the site, how many clicks does it take to get to Y page, is the app confusing, etc. But the idea also translates into general product design (technology-enabled or not). I feel like posting some of my experiences, and thus starts a new UX thread of my blog.

A month or so ago our local Whole Foods switched to all-plastic shopping carts and got rid of the traditional, metal shopping carts. The new ones are nice — they roll around well and are easy to maneuver. However, I have one UX / design issue where I believe they are worse than traditional metal carts. Here is a picture of one of the new carts (original image courtesy of Plastics News Europe … hand-drawn annotations mine):

Plastic shopping cart with annotations showing seat folding upwards and to the right

I’ve drawn in how the “child seat” (or purse seat, dog seat, whatever you put there) folds up — to the right. This means that when the carts are stacked up outdoors, the sitting surfaces face upwards. So when it rains or snows, the sitting surfaces get all wet. Contrast this with traditional metal carts, shown below (original image courtesy Versacart … again, bad hand-drawn annotations mine):

Metal wire shopping cart with annotations showing seat folding up and to the left

With the metal carts, the seat flips up to the left, and when carts are stacked up, the sitting surfaces face downwards. Which means that you can just plop a child / bag / dog into the seat, even if the cart has been outside in bad weather because at least the seat itself is dry. I’m sure it’s a corner-case that doesn’t affect many folks regularly, but it would be nice for places that use carts with this design (Target, Whole Foods) to put paper towels near the entrances to dry off the seats.