What’s the deal with Deal or No Deal??
I’m embarking on a journey into the shimmery, gold-plated, soul-patched world of Deal or No Deal to try to understand the inner workings of this fascinating risk tolerance experiment masquerading as a game show. This is part one of a ?? part series, starting with…
Part One: Data or No Data?
For the uninitiated, every Deal or No Deal episode begins with our incredibly shiny host, Howie Mandel, bringing out 26 even shinier models, each holding a briefcase with some value of money in it, ranging from one cent to a million dollars. The cases are packed by a third party, and nobody, even the villainous Banker, knows what’s any of the cases. The contestant picks one case to hold and opens the remaining cases over a series of rounds. As values are picked, the chance of having a million dollars (or other high values) in their case changes as they pick other values.
The show often frames choices in terms of statistics, like how a contestant has a 25% chance of having a Big Number in their case when there are eight cases left and two are over six figures. But, humans are notoriously bad at understanding probability. Contestants are constantly balancing risk and reward, betting on what value they have in their case and adjusting their tolerance for risk based on what values are found. The suspense and drama as we watch someone pick cases and agonize over whether to accept huge sums of money is very entertaining!
As I watch the show, I’m especially interested in the Banker. After each round, the Banker comes up with an offer to buy the contestant’s case for less than what the case is worth. But how is that offer actually calculated? Some people say the show doesn’t have an algorithm at all, but offers can be made so quickly that I don’t really believe that. There are theories that the show uses an algorithm that takes a percentage of the expected value of the remaining cases, but I haven’t seen anyone post a robust solution to prove it and show how it works.
I want to do an analysis of a bunch of games to figure out 1) is the Banker consistent (like an algorithm should be), 2) can I approximate the game’s algorithm with a machine learning model, and 3) is there an actual human influencing the offers or is the Banker just a producer with a dumb spreadsheet? And beyond that, can I use other data-driven techniques to make better decisions about what to do at a certain point in a game than a player would?
I assumed someone on the internet had already put together a dataset to answer my questions, but surprisingly, I could only find one source from 2007, and it didn’t have all the information I wanted. So I decided to do the only reasonable thing and watch a ton of episodes to make a dataset myself.
In addition to tracking the offers the Banker makes in each round, I’m tracking the state of the board, the total value of the board (which a player wants to keep as high as possible), and the expected value of the board, among other things shown below. In later seasons of the show, contestants can make a counteroffer to the Banker, but I’ll be ignoring that mechanic for now since it’s optional. I’m also treating the one cent case as just nothing, because honestly, getting a penny is worse than getting nothing at all. I’m not going to consider what was actually in their case or whether contestants made good deals — my target is the Banker.
Each row in the database is a single round, and the results of each prior round may affect the offers in the subsequent rounds. So, I need a lot of games in this database to get a reasonable sample of the types of games that occur. With around eight to ten analysis features to consider, I’m aiming to collect data from 100 games, but obviously more is better. Since I need all the data I can get and late game rounds are less common, I’ll also include the postgame rounds that contestants play after they’ve made a deal, but flag those in the data.
Incredibly, my cheap Vizio TV has a free channel dedicated to back-to-back episodes of Deal or No Deal. So all I have to do is sit though enough episodes to gather at least 100 games of data and then just, y’know, do some math on it and crack this game. Each episode has one to three games and a runtime of 45 minutes plus commercials, so I’ll only need to watch 30–40 hours of TV to get 100 games.
Despite the evidence so far to the contrary, I am no fool. I’m not just gonna sit around with an Excel sheet trying to keep everything straight. Instead, I built a simple Streamlit app (I love Streamlit) to help me collect all this data as I watch and put it into a Postgres database. That’ll make it a lot easier to manage the data and eventually train a model on it. And because I’m collecting the data myself, there should be a lot less cleaning and finagling than if I was using someone else’s data. It also makes it a lot easier for me to store the state of the board in each round just using simple checkboxes for which cases have been opened.
That’s the whole plan! I’ll watch a ton of Deal or No Deal and use this tool to track each game round by round in my database. I’ve already got some games in there! You can see my very unpolished code on my GitHub, which I’ll keep up to date as I do more analysis. Once I have enough data, I can start doing basic analysis on it by looking at overall statistics, then try to reverse engineer the algorithm in code, and eventually train machine learning models to try to predict the Banker’s offer, and maybe crack this show wide open.
I’ll have the initial results of that analysis…
Right after this break!
Skip commercials! Part two is here!