Revenue Management for Meth Dealers in Flint

Note: Don’t forget to sign up for the Analytics Made Skeezy newsletter to receive future skeezy analytics tutorials. cheers, John

When I left Victor that first time, my head was spinning. I had just done a drug dealer’s math homework. I felt the ethical weight of what I’d done for a split second and then I realized…if I hadn’t optimized his coke blending operations for him, he may have made a mistake and blended it himself outside his specs. And that could have been dangerous. So really I’m doing people a favor!

With that half-assed rationalizing of my nefarious deeds, I went to bed completely self-satisfied. I’d helped humanity and gotten free coke to boot! Well, pretty soon my stash dried up again, and I rang Andre to hook me up with some more.

“You wanna pay with your wallet or your mind?” he asked me over his cell.

Ugh, I thought, what a cheesy question.

“Like last time?” I asked.

“Yeuh, like that” he answered. He must have had all the windows down on the interstate, because his voice was coming over the line like he was in a wind tunnel.

An hour later I found myself once again getting dropped off not in Hapeville where I’d met Victor last time but in Buckhead outside the JW.

“Room 1504,” was all Andre said, and he sped off in his Escalade.

I made my way through the hotel lobby. I felt the eyes of the desk clerk on me and for a split second panicked that maybe I was walking into a sting or something. How many years does a guy get for helping a drug dealer out with the numbers, I wondered. But the desk clerk busied himself again with the computer in front of him, and I took the elevator up to the 15th floor. The JW was nicely decorated, although a little stuffy for my taste. The air in the hall was a bit humid, and its thickness seemed to play off my nervous breathing. I’d begun to sweat bullets before I even knocked on 1504.

I didn’t have to knock though. A man from the kitchen was dropping off a bottle of champagne, and when I poked my head through the door, I found Victor sitting in a bathrobe at a desk. He had a laptop open next to him, and when he reached over to take the bottle that had been left for him, he looked up and found me standing in front of him.

He gave me a quizzical look.

“The door was open,” I sputtered a little nervously as the staff sidled out of the room.

“I would wait and knock next time,” he said with a shrug, “It’s best not to surprise me. I’m jumpy at times.”

He stood and grabbed an arm chair that was pushed into the corner of the room. He dragged it over to the desk next to where he’d been sitting.

“Come join me here, and let’s talk this through,” he said, “Would you like something to drink?”

“Nah,” I said, “Long night last night. I wanna try to keep as much a clear head as possible.”

Victor smiled, “This is a good idea. What use are you to me all fuzzy?”

His toothy smile unnerved me. I didn’t like the thought of being useless to a guy like Victor. What had I gotten myself into?

“So what’s on the agenda for today?” I asked. I took a seat in the over-stuffed armchair next to Victor, and he turned his computer screen my way. He had a simple Excel spreadsheet open.

“Mr. Sheffield, I run a simple operation. I try to keep the number of non-contract employees on my books down to as few as possible,” he said, “You see, in the past, I’ve found a direct relationship between the number of employees on my books and the amount of heat coming round the corner.”

I nodded, “I can imagine that you’d want to keep the number of folks who know about all this to a minimum.”

“Yes, and so I’ve been pricing my products myself,” he said, “Sensitive things like finances, I don’t want many to know about them. But the time has come where I can’t eyeball each of my products in each city and set prices. It’s too hard.”

“Why not let your dealers set them?” I asked.

Victor smiled, “My dealers are not properly incentivized to return to me the maximum amount of revenue. Furthermore, the drug trade does not employ the most strategically minded individuals. Courageous, perhaps, but not intelligent.”

“So you want a quick and dirty way to set prices on each of your products in every market yourself?” I asked.

Victor gave me another cheshire grin, “Exactly, quick and dirty. And the data I have mostly looks like this. This is a set of monthly numbers for my meth dealers in Flint, Michigan.”

He pushed his computer screen a little my way.

I smiled, “I hear Flint’s nice this time of year.”

Victor nodded, “Flint is shit every time of year. That’s why I do so well there.”

I took a look at the spreadsheet. It was pretty straight forward.

“OK, so I’m seeing monthly demand, pricing, and revenue data,” I said, “And you’ve even got your competitor’s prices in there. Nice.”

“Meth heads shop around,” said Victor.

I laughed, but Victor gave me a serious look.

“I’m not joking. They’re broke as hell, and they’re more than willing to tell you when the guy down the street’s cheaper. Of course, they also care about quality, and like my coke, my meth is at least 50% more pure than the competition,” Victor trailed off into thought briefly, “But up until now I’ve just been doing a straight 30% markup over cost. I know I can go higher than that.”

I nodded, “Yeah, so you’re bumping up against the fact that price is a strategic variable, but when you do cost-based pricing, you’re losing that strategic edge. Cost has nothing to do with willingness to pay.”

“Right,” said Victor, “That’s exactly what I wanted to say. So how do I fix that?”

“Quick and dirty?” I asked.

“Quick and dirty,” he repeated.

“Well, this is a revenue management problem, and since you’re already shopping competitors’ rates, what we want to do is build a price optimization model that responds both to your own pricing as well as competitor pricing. It’s called a price ratio model,” I said.

Victor looked flummoxed, “I thought I said quick and dirty.”

I laughed, “Trust me. This is going to take about two minutes.”

“The first thing we want to do,” I continued, “is calculate a price ratio column in this sheet. Price ratio is just your own price divided by the average price of your competition.”

I added the column for him at the end of the table:

“Now what?” Victor asked.

“Well, let’s graph price ratio versus revenue just to get a sense of your customers’ price elasticity,” I said.

“Their what?” asked Victor.

“Price elasticity is just how demand changes with price changes,” I answered and pulled up a graph in Excel that looked like this:

We took a look at the graph together.

“Pretty good fit,” said Victor.

“Yeah, not bad for the real world,” I nodded, “And what we have is a fitted line that gives us the relationship between demand and price ratio.”

“So now we just need to pick the ratio that gives us the most demand?” asked Victor.

“Well, demand isn’t what you’re interested in but rather revenue,” I answered and broke out a sheet of paper.

On it I wrote these equations:

“Ugh,” said Victor with a sigh.

“Just stay with me,” I leaned forward and pointed to the graph in excel, “This function on the graph is the same as the first one I have, only I’ve put in our own price and the competitor’s average price as two separate values in a fraction p-o over p-c. You see that?”

“Yeah, so this is demand as a function of my price and my competitor’s price?” Victor asked.

“Yes, although for the moment, let’s assume that your competitor’s price is fixed, ok? Whatever p-c is, let’s assume it’s stuck there,” I answered, “That way all we need to worry about is moving our price around their price.”

Victor nodded.

“The second function here, all I’ve done is multiplied the demand function through with your own price. So now it’s a revenue function. And the first thing I notice about this revenue function is that it’s a quadratic,” I said, “In other words, it’s raised to the power of two.”

“Yeah, I see that,” said Victor.

“Furthermore, if I look at the acceleration of this function, its second derivative in calculus, I can see that it’s negative,” I said and jotted down the function.

“That means that the function has exactly one optimal price where revenue is maximized,” I said. I looked at Victor, and he seemed confused, so I drew a picture:

“The revenue is 0 when I give away stuff for free, then it goes up, then I get too expensive, and it goes back down,” he said.

“Exactly, and see how there’s only one optimum where the smiley face is? That’s the sweet spot we need to figure out,” I said.

“And how do we do that?” he asked.

“Well, if this were a baseball we were throwing straight up in the air, it’s the place where the speed of that baseball is zero. That’s the apex. That’s as high as the ball is gonna go,” I said, “To find that, we take the speed of our revenue function, also called the first derivative, and find out where it’s zero.”

I jotted down a couple more equations:

I spoke as I wrote, “So here I’ve taken the first derivative, which you’ll remember from high school calculus. Then I’ve set it equal to zero to find the apex. Moving terms across and dividing through, I get that my optimal price is simply 8% higher than that of my competitors.”

I looked over at Victor. He was smiling.

“8% higher eh?” he said.

“8%,” I nodded.

“Sounds like I need to brush up on taking derivatives,” he said with a shrug.

“Sure, but they’re not that hard, and there’s all sorts of sites on the internet that will take them for you,” I said, “And the cool part is, you can just keep a running log of this data and readjust your pricing each month as price elasticity changes. When the economy bounces back, maybe your customers will be less price sensitive, and you can start gouging a little.”

“Don’t count on it,” Victor said, and he slapped me on the back really freaking hard. Reaching up, he grabbed the bottle of champagne and poured himself a glass. He turned around in his chair and reached into the inner breast pocket of a blazer that he’d draped across the chair back. From the blazer he pulled a wad cash held together with a rubber band and tossed it to me.

I caught it.

“What’s this?” I asked, gently weighing the wad in my hand.

“That’s five thousand dollars,” he said.

I was a bit dumbfounded, “For what?”

“For being so helpful. There’s a future for you here if you want it,” he said.

Later that night I lay in bed holding the wad of cash. I still hadn’t bothered to count it. Five grand for thirty minutes of work, I thought. That’s gotta be the easiest money I ever made. There was a voice in my head telling me to go ahead and get out of town. Quit helping Victor. Get clean and start fresh. But my excitement and adrenaline drowned the voice out. This was a sweet gig.

Big Data-ish Rant

Revenue Management is one of the original ‘Big Data’ pursuits before big data was even a twinkle in your mama’s eye. But it’s been confined to enterprises like airlines, car rental companies, and hotels implementing crap like Teradata and Oracle. This field has not been democratized, so it’s kindof gone unnoticed in the big data conversation. But a system that takes company-wide hotel demand data, prices, competitor prices, yada yada, makes forecasts, and optimizes future prices based on inventory and demand isn’t more big data-y than some silly recommendation engine put out by some bland mobiley/socialy app, then I don’t know what is.

  • Deezl


  • Vince McNuggest

    Don’t let the truth get in the way of a good story. Enjoy it.


  • The revenue calculation looks like it’s an order of magnitude wrong (5.2M instead of 520K)

  • Doc Sheldon

    Nice job, Alex! I doubt there were many that didn’t finish reading, after the first paragraph hooked ’em!