Measuring Promotional Effectiveness is Getting Harder

Last week, I read about the results of a promotion run by location service Foursquare and retailer RadioShack.

RadioShack is giving Foursquare users who “check in” to its 5,000-plus locations special discounts for doing so. Those checking in for the first time receive 20% off qualifying purchases, as do “mayors” (designated users who frequently check into a location). All other users who check in receive a 10% discount.

How did the promotion do? Apparently, very well.

RadioShack customers who use the location-based mobile application Foursquare generally spend three and a half times more than non-Foursquare users, said Lee Applbaum, CMO of RadioShack, while speaking at the Ad Age Digital Conference. The retailer noted that Foursquare users spend more because they tend to purchase higher-priced items like wireless devices.

My first reaction was, “Sure, these users spent more but how do we know it is incremental? Was there a control group?” That got me thinking about how we would design an experiment to measure the incremental impact of such a promotion.

The simplest way to set this up would be to randomly divide the population of Foursquare users into a Test group and a Control group. The Test group customers would get a pop-up message on their smartphone/tablet when they were near a RadioShack alerting them to the promotion. The Control group won’t get this message. You wait for a month and calculate the difference in spend-per-Test-customer and the spend-per-Control-customer to get at the incremental spend per customer (this isn’t quiet correct since we are ignoring time-shifting effects like purchase acceleration but that’s a topic for another post).

But this simple-minded scheme won’t survive contact with reality.

  • We have sites (example) that are on the lookout for Foursquare promotions and publicize them to their visitors. If a Control group customer visits these sites, they  are “exposed” to the promotion and should no longer be in the control group.  Unfortunately, we can’t adjust the numbers to account for this move since we have no way of knowing if any particular Control customer was exposed or not.
  • Last week, I blogged about the issues posed by social-media-driven coupon sharing. Obviously, that applies here as well. I tell my friends and family about this cool RadioShack promotion and – boom! – the Control group takes another hit. At least, in this scenario, if we have access to the social graph of the sharing user, we can (theoretically) check if the sharer and their immediate connections are in the control group and exclude them from the analysis. Easier said than done, since it is not clear how we would get our hands on the data. But the data exists.
  • It is in the interest of both Foursquare and RadioShack to get the word out as much as possible, since that increases the amount of total sales from the promotion. The persnickety concern that incremental sales may be zero (or worse) may not get much airtime with the “bias to action” crowd 🙂

In general, the uncontrolled spread of promotions through indirect sharing (via websites) and direct sharing (through Facebook/Twitter etc.) taints control groups and makes incremental measurement tricky. We need to find a way to around this problem.

Any ideas?

(cross-posted from the CQuotient blog)


The Effect of Social Media on Coupon Strategy

In conversations with retail executives about couponing and other customer-specific pricing strategies, a new concern has appeared.

For the longest time, coupons have been one of the primary mechanisms for executing what economists call price discrimination. By identifying price-sensitive customers and sending them coupons, you win/keep their business without giving away discounts to customers who would have bought at the pre-coupon price anyway.

A fundamental assumption behind this approach is that coupon receivers will not share the coupon (or  even just the fact that they got a coupon) to the non-receivers. Clearly, you stand to lose heavily if loyal (but price-insensitive) customers come to know that others are getting discounts but they are not. Regardless of how price-insensitive you are, you are likely to feel that it is unfair when another customer gets a discount and you don’t.

This “no sharing” assumption has been steadily losing its validity with the increasing use of digital coupons since you can effortlessly forward an email coupon to a friend or family member. Furthermore, a number of coupon aggregation sites (example) have emerged to make it even easier to find coupons for products/retailers you are interested in.

In both these cases, however, there is a bit of natural “friction” that somewhat diminishes the negative consequences of coupon sharing. While forwarding email coupons is easy, you are more likely to forward to immediate family members or close friends – you probably won’t do a mass forward to your entire address book. To take advantage of coupon aggregation sites, the customer has to take the trouble of finding them, checking them on a regular basis, or signing up for daily emails. By definition, price-insensitive customers are less likely to take the trouble to do so and hence are less likely to be “exposed” to the problem.

Well, things have gotten a whole lot worse recently, thanks to social media. Apparently, people are increasingly posting coupons they receive to their Facebook page (sharing? bragging? who knows) and as a result, the juicier coupons are spreading virally and the coupon-receiver’s social graph is becoming aware of it very fast.

What does this mean for the retailer?

  • Irate emails and calls to the toll-free number from customers demanding why they didn’t get the coupon.
  • Discounts to customers who don’t “need” the discount

Note that coupons with unique customer IDs don’t help. If a customer shows up at the store with a coupon that was sent specifically to her sister-in-law, you can’t really tell her that she can’t get the discount since her ID doesn’t match the ID on the coupon. You will have a big customer-service problem in your stores.

So what can the retailer do to address this problem?

One strategy is to segment your price-sensitive customers based on certain parameters and design coupons in line with these parameters so that customers “self select”.  Common examples of this strategy: student/senior-citizen discounts for public transportation and museums etc, airlines requiring a Saturday night stay to segment leisure vs business travelers and so on.

In the retail context, segmenting by age or other customer characteristics (e.g., demographics) is on questionable ethical and legal ground. It may be better to segment based on buying behavior. For example, you can group your price-sensitive customers based on when they shop.  You may find (like many retailers do) that a sizable number of customers tend to shop at lunch-time on weekdays, possibly because their workplace is close to the store.

Now, create a coupon for 30% off purchases made between 11.30am and 1.30pm today and tomorrow and send it to everyone. For most customers, it will be impractical to take advantage of this coupon if they don’t work near a store or if they can’t take off at lunch-time to shop.  And amongst those who do, price-sensitive customers are much more likely to take the trouble to get out of their workplace and make the trek to the store.

Results (hopefully!) : Everyone gets the coupon so social sharing won’t create a customer-service nightmare. Price-insensitive customers are unlikely to take advantage of the coupon since it is too much trouble. Price-sensitive customers are likely to take advantage of the coupon since it matches the way they shop anyway.

Of course, the downside of these segmenting strategies is that since each coupon is targeted to just one segment of price-sensitives rather than all price-sensitives, the impact of each coupon run on the business is smaller. We can’t have everything, I guess.

I am sure there are many other ways to address this problem. Ideas?




Analytics and Free Will

I like to think that I have free will.  So it was devastating to read in yesterday’s Wall Street Journal that, thanks in part to analytics, the thing that puts bread on my family’s table, free will is getting busted!

Jonah Lehrer writes:

In recent decades, scientists studying the human brain have steadily eroded traditional notions of free will and autonomy. It turns out that our choices are often circumscribed by mental circuits beyond our control and outside of conscious awareness.

But now, thanks to new forms of data, such as cellphone information, and powerful analytical tools, scientists can see the forces that shape our lives from the outside. They can discover striking correlations and document all of the different ways that the world around us—from our social networks to the neighborhoods in which we live—influences everything we do.

The author goes on to give examples (mostly drawn from research studies on social networks) of how our friends and family affect our behavior.

  • If our friends are obese, we are more likely to be obese
  • If our friends are happy, we are likely to be happy
  • If we have a diverse circle of friends, we are more likely to be creative in our entrepreneurial pursuits

I couldn’t understand how this implied the absence of free will so I kept reading.

Such studies are a reminder that John Donne was right: No man is an island. Although we can’t help but believe in our autonomy—free will is a fiction we need—this latest research suggests we’re not nearly as free as we typically assume.

That’s why, for instance, researchers can make accurate predictions about our eating habits, academic interests and political beliefs based on the trail of data secreted by our smartphones. It’s also why companies such as Amazon and Netflix can develop shopping algorithms that know exactly what we want, even though they know nothing about us. The data generated by the group can be used to decipher the individual.

The author makes two arguments:

  1. If the people around you influence your actions, you are showing less free will.
  2. If I can predict what you will do next, you are showing less free will.

The people around us constrain our actions, for sure, but they don’t usually narrow them so heavily that there’s only one pre-ordained choice for us to make in every situation.  There’s still plenty of decision-making wiggle room.

Regarding his second point, I don’t see why he needs to bring in “the trail of data secreted by our smartphones” or “powerful analytical tools” to make his case. Here’s an example that is several thousand years old:  I offer you product X (substitute X = goat, yacht, iPad, whatever) either for free or for a thousand Y (Y = ears of corn, shekels, dollars, whatever). Can I predict which option you will choose? I can. Does this mean that you don’t have free will?

Want examples of  the “striking correlations” the author refers to? As price rises, demand tends to go down. On rainy days, you will see more umbrellas. If your kids come home with the flu, you are more likely to catch it.  Yawn.

Perhaps the author means “individuality” when he says “free will”. From that perspective, the article makes much more sense. But it won’t get blogged about as much 🙂

Bottom line: Free will’s existence may well be under attack but there’s no evidence that analytics or smartphone data is to blame. No need to change my comfortable (and possibly wrong) beliefs.

How Good Management Can Produce Bad Data

As a long-time analytics practitioner, I am well aware of the dangers of using data without fully understanding where it comes from and how it is generated.

There are numerous ways in which the data one gets isn’t quite what it seems: the same data item may be named differently in different systems, different items may have the same name, the data item may be defined in ways subtly different from what commonsense may indicate etc.

All these (and more) are well-known issues that surround data and explain why seasoned analytics experts claim that the lion’s share of an analytics project is likely to be data-cleansing, transformation etc. rather than modeling.

But recently I came across an unusual source of bad data: good management.

We have been working with a retailer on ways to assign their store point-of-sale transactions to households so that we can analyze a family’s purchase patterns across multiple shopping trips.

A common problem in this sort of exercise is the need to group individual shoppers into households. Since different members of a household may have different names, credit cards etc,. the customer is often asked for a phone number at the checkout by the cashier who’s ringing up the sale.

Using third-party databases of landline numbers and mobile numbers, we can identify which of the supplied phone numbers is a landline number. Armed with this, we can collect all the transactions with the same landline number and infer that all these purchases were made by the same household.

Can you spot the weak link in this straightforward scheme?

The cashier has to remember to ask the customer for their phone number. It is extra work for the cashier and when there’s a long line of impatient customers in front of you, it is easy to forget.

So what can we do? Incentives to the rescue!

Management sensibly (after all, they were heeding the legendary Peter Drucker’s advice: “What gets measured gets managed”) decided to give store associates a cash bonus based on how many phone numbers they captured.

As expected, the phone number capture rate went up after the incentives were put in place and the retailer was able to assign many more transactions to households than before.

But we noticed some oddities:

  • Some households visited a single store twenty or thirty times a day!
  • Some households had several hundred store transactions annually!

We studied these odd cases and discovered something interesting: these “crazy shopping” households were really dozens of households rolled into one! The reason these distinct households were grouped together were because they had a common phone number.

And  how did they end up with a common phone number?

Because the cashier who rang up their purchases punched in the same phone number for everyone.

Perhaps these customers declined to supply a phone number, perhaps the cashier neglected to ask, who knows ….

Whatever the reason, for a small number of cashiers, it was just too tempting to simply punch in a fake phone number and make their bonus rather than do the right thing.

After this came to light, the retailer was able to mitigate this “phone number fraud” by first cross-checking every entered phone number against a list of store phone numbers and cashier phone numbers etc. This helped and was a good first step but it was not enough. We are continuing to refine the fraud mitigation algorithm using data mining techniques.

What did I learn from this experience?

I have resolved that whenever I am working with data that was created by people (rather than produced by machines), I will try to understand if the data may be distorted by incentives affecting the behavior of the person(s) creating the data.

And the next time a cashier is ringing up your purchases in a store, see if he/she is entering what looks like a 10-digit number without even asking you 🙂

Tiponomics: Analytics for Waiters

A recent lunchtime conversation with a friend reminded me that data-mining/analytics/optimization opportunities are lurking everywhere.

It all started innocently enough. I miscalculated the tip at lunch and was about to leave a 10% tip (rather than the 20% that I was planning to) when my friend pointed out the error. He said that he had been sensitized to tip amounts by his college-age son who had done part-time/summer jobs as a restaurant waiter for several years. He went on to share fascinating examples of how his son made real-time decisions to maximize his tips.

I don’t know if waiters everywhere think this way, but my friend’s son (let’s call him Chuck) seems to have a great knack for “tiponomics”.

“These four old ladies walked in. They didn’t order any drinks. From past experience, I knew they wouldn’t be in a hurry to leave. They will occupy one of my four tables for several hours, have a small total check, and I will be lucky to get a 15% tip. I am not going to spend my time waiting on them hand and foot.”

“These two guys in suits walked in. They started off with some expensive drinks. It was clear that they were on an expense account. Also, I knew they would’t be sitting around for ever. If I really waited on them and responded quickly to every request, I knew I’d get a fat tip. So that’s where I will spend my time.”

Pretty savvy, eh?

Let’s look at this through an analytics lens.

The key decision for Chuck to make is to decide how to allocate his time and attention across tables. The objective he is trying to maximize is the total tip amount over the duration of his shift. This is determined by the number of parties that come in to dine and the tip amount from each party. The latter, in turn, is the product of the check amount and the tip %.

The number of parties that come in to dine is obviously not in Chuck’s control. But if he can “turn over” his tables more, he can serve more guests and increase his tips per shift. It is not clear to me how he can increase his table turnover short of forcing guests to leave early (which, of course, will have dire consequences for Chuck sooner or later).

The check amount is driven by the number of people in that group, whether they order drinks or not, and what else they order. While the size of the group is clearly not in Chuck’s control, he can clearly affect the order by up-selling (e.g., the gratinati isn’t bad but I’d recommend the pasta stefano) and cross-selling (e.g., wine XYZ goes really well with this entree, a raita goes very well with this biriyani). In any event, since the up and cross-selling doesn’t add much time to taking the group’s order,  there’s no time allocation decision to make – Chuck may as well do it.

The tip % is more interesting. Clearly, the more attentive and responsive Chuck is, the higher the tip %. But for the same dining experience, certain guest types may tend to tip more, others less. By data-mining historical data (“remembering past experience”), Chuck can take one look at the group and classify them as 10%/15%/25% tippers.

So can we put all this together (“Chuck’s Tips” :-)) to help a new waiter hit the ground running?

  1. When you take the guests’ orders, suggest up-sells and cross-sells. In the beginning, get ideas for what to suggest from more experienced waiters. As your “database” grows (see below), use your own experience to produce effective suggestions.
  2. Once the order is complete, estimate what the check amount will be.
  3. From what you have seen and heard so far, classify the guest group as 10%/15%/25% tippers. Again, in the beginning, get ideas for how to classify from more experienced waiters. As your “database” grows, use your own experience.
  4. Multiply (2) and (3) to come up with “an expected tip amount” from each group.
  5. Order all your current guest groups from high to low and focus your attention on the top few groups on the list.
  6. When a new group walks in, calculate their expected tip amount (as in 1-4), insert them into the sorted list and focus your attention accordingly.

IMPORTANT: After every session, add to your “database”

  • which up-sell and cross-sell suggestions worked and which didn’t, in the context of the customer type
  • the outcomes for each dining group (both the check amount and the tip %) as well as any interesting explanatory variables that may be linked to these outcomes (e.g., businessmen in suits, Indian-American vegetarian teetotaler family :-), five old ladies) so that your guesses become better with time.

Bon Appetit!