Game theory and salary transparency

In 1994, shock jock Howard Stern created a public storm and ran for the governor of New York. His campaign was regarded as a publicity stunt, but some worried his radio popularity would convert into votes and make a mockery of American politics. Luckily, the fears never materialized. Stern dropped out because he didn’t want to disclose his finances (or salary), a requirement for office.

The story illustrates an interesting part of American culture: most of us treat salary as personal information. Like Stern, we worry about things like being judged by peers or getting charged more by unscrupulous mechanics and plumbers.

But that’s only half of the story. We occasionally find ourselves on the other side of the table when we’re looking for jobs and we need to learn about salaries. In this case, we have to be careful to learn about salary information without coming off as nosy or rude.

So we’re left with a daunting challenge: How can we learn about salaries without asking too much personal information?

This is a question that requires some strategic thinking. If you’ve been reading this blog, you know that game theory and strategy are often best illustrated through puzzles. In the past I’ve used puzzles to explain fixed points (the monk puzzle), group coordination (the hat puzzle), Monte Carlo simulation (the dice puzzle), ESPN’s million dollar streak contest (the tennis puzzle), survival of the weakest (the truel) and even the Joker’s motivation in the Dark Knight (the pirate puzzle).

The game of salary information too can be understood better through today’s puzzle.

The salary puzzle

Three friends want to know their average salary for negotiating purposes. How can they do it without disclosing their own salaries to each other?

A hint to get started: read the article on email encryption

The answer (will be posted next week)

(Wow, thanks for all the comments while I was posting this. Scott, Dan and Ku were all thinking along the right lines and Cheryl offers a practical and direct way I didn’t even think about)

The friends can calculate the average through a clever encoding process. The idea is that each person encodes their salary by adding a random number to it. These encoded salaries can be added together and then the random numbers can be subtracted. The resulting figure is the sum of the three salaries from which the average can be obtained.

Since additions and subtractions are easy to decode, however, the tricky part is implementing a solution where no person obtains knowledge of the other two party’s random numbers, for that would reveal enough information to obtain individual salaries. To do that, one can sequence the additions and subtractions carefully.

The process is somewhat cumbersome, but its gets the job done. Here is one particular solution, with the supporting algebra as verification:

Here is a worked out example with specific values:

Strategic considerations

The solution is interesting but it begs for further analysis. There are several considerations that came to mind which are addressed below.

Can the solution be extended for more than three players?

Yes. The process can scale up, but there are a few practical problems. First, it might be hard to coordinate a larger group. Second, there is a risk that the average may get “diluted” by incorporating workers of different skill levels. Third, adding more people will likely increase the chance of lying players and collusive groups. These turn out to be tremendous problems.

What happens when someone lies?

Alas, the answer to the salary puzzle is too idealistic. It depends entirely on individuals telling the truth. In fact, from a strategy perspective, it makes a lot of sense to lie.

Why lie? It’s important to consider your action relative to what others do. If others tell the truth, then the algorithm will produce a result equal to the sum of their true salaries plus the number you report. With this information, you can still compute the group average because you know your own salary. You might as well lie since honest reporting provides no benefit but comes at the risk of others learning your salary.

If, on the other hand, someone else has lied, then you definitely don’t want to be honest in reporting your salary. You have no chance of finding the correct average, and honest reporting has the risk of your salary getting disclosed.

Here’s an example of how someone lying can take advantage of the game:

How might the game play out if people thought strategically? (What is the Nash equilibrium of the game?)

As discussed above, lying is a dominant strategy. If others are honest, it makes sense to lie since you get the same benefit without any risk. And if others lie, you have nothing to gain and honesty comes with a risk. Therefore, everyone lies and the average is meaningless.

What would happen if players collude?

Another flaw to the salary puzzle is that it’s susceptible to collusion. If a few players decide to cooperate in advance, they can con the other members of the group.

To see how, suppose players B and C simply want to learn player A‘s salary. They can do this by lying and sharing their fake numbers with each other, as follows:

Final remarks: how to share salaries in practice

As this puzzle illustrates, there are many strategic reasons why it can be hard to learn salary information. People are scared of revealing information without getting anything in return, exactly because it’s easy and favorable to lie.

How can we get around this problem? First, players should be guaranteed some useful information so they want to participate. Second, players need to be given a reason to be honest, or else they will free ride on other people’s honesty. And finally, the process should be anonymous so that no one fears revealing their personal salary information to others face to face.

Amazingly, it seems there are websites coming up that deal with these issues. One that I recently came across is glassdoor.com which allows you to look at salaries for job titles after you provide a salary for a current or previous employer. I haven’t had a chance to use the site myself, but it sure seems interesting.

I’m curious has anyone tried it out? Any other sites like this?



Share this post:

| More

Previous post:

Next post:



  • Scott

    Here’s my proposed solution.

    We have three individuals, A, B and C. Their respective salaries are also, A, B and C. The average is:

    (A + B + C)/3

    One person (picked at random, here we will pick A) divides their salary into the sum of two numbers at their discretion. The average becomes:

    ((A1 + A2) B + C)/3

    Where A1 + A2 = A

    Due to the commutative and assoicative properties of addition we can add/remove parenthesis and rearange terms without affecting the sum.

    A then gives one of his numbers to B (without C knowing) and gives C the other number (without A knowing).

    B calculates B + A1, C calculates C + A2.
    They then exchange those sums (without A knowing) and add them together getting the grand total of A1 + A2 + B + C.

    Divide by 3 and you get the average.

    The only flaw I see is that B and C can collaborate and determine A’s salary by sharing the pieces of it A gave them.

  • Scott

    Another method that eliminate’s A’s risk:

    1. All players split their salaries into the sum of two numbers (at their own discretion).

    A = A1 + A2
    B = B1 + B2
    C = C1 + C2

    2. Secretly, each gives the second of such numbers to the person after them. (A to B, B to C, C to A).

    A knows A1, A2, C2
    B knows B1, B2, A2
    C knows C1, C2, B2

    3. Each person then takes the first of their numbers and adds it to the number given to them. They then pass this sum, secretly, to the person after them.

    A calculates A1 + C2 and gives to B
    B calculates B1 + A2 and gives to C
    C calculates C1 + B2 and gives to A

    A knows A1, A2, C2, (C1+B2, but not either C1 or B2 individually, nor can he derive it)
    B knows B1, B2, A2, (A1+C2)
    C knows C1, C2, B2, (B1+A2)

    4. Taking the original number given to them in step 2, they add that to the sum given to them in step 3.

    A adds C2 to (C1+B2) getting (B2+C1+C2)=(B2+C). Since A does not know B2, he cannot derive C.
    B adds A2 to (A1+C2) getting (A+C2)
    C adds B2 to (B1+A2) getting (A2+B)

    5. Each player then adds their own salary to the sum arrived at in step 4 and then passes this sum, secretly, to the player after them.

    A adds A to (B2+C), getting (A+B2+C) and passes to B
    B adds B to (A+C2), getting (A+B+C2) and passes to C
    C adds C to (A2+B), getting (A2+B+C) and passes to A.

    A knows A1, A2, C2, (C1+B2), (A2+B+C). Since A knows A2, he can derive (B+C) but not B or C individually (but he can derive B1).
    B knows B1, B2, A2, (A1+C2), (A+B2+C). B can derive (A+C) and C1.
    C knows C1, C2, B2, (B1+A2), (A+B+C2). C can derive (A+B) and A1

    6. Each player now knows the sum of the other two player’s salaries. He then adds his own and divides by three. Each then should arrive at the average salary.

  • Dan

    You need all three to split the numbers.
    A calculates B1+C2
    B calcs C1+A2
    C calcs A1+B2

    Each report their sum and then average.

    I should add that numbers given by A,B,C should be “double-blind”. If you are A, you don’t know if A1 went to B or C. Also, you don’t know whether a number you recieved came from B or C.

  • Scott

    Dan,

    That’s certainly simpler and easier than my strategies!

    I hadn’t considered the “double-blind” option.

    Thanks

  • http://cheryljerozal.com/blog/ Cheryl

    write a program that accepts one salary at a time and then averages them? :p

  • Nathan

    I followed the link from the ‘Freakonomics’ blog, a few months ago. I’ve been reading your posts regularly ever since.

    I enjoy reading the posts on game theory tuesday’s. I usually forward the links to people i want to explain stuff to. As an economist, i get a lot of folk asking me to explain something and it makes my life easy to point them in this direction.

    I really like the fact that you emphasise tracking expenses, its something i do regularly and have tried spreading the word as often as i can. Its surprising to me that few people do this.

    Keep up the good work. Cheers!

  • Ku

    This might not work, but just throwing it out there… If this does work, it’s probably a much simpler process than the others listed here (except for Dan’s) though it’s probably susceptible to deducing the other’s salaries.

    Say we have 3 participants: A, B, and C. A, on a piece of paper, adds an arbitrary amount to his salary and passes it on to B. B adds his salary plus an arbitrary amount to A’s number and passes it on to C. C adds his salary plus an arbitrary amount and passes it back to A.

    A then subtracts the arbitrary amount added to his salary and passes it on to B, who then subtracts his arbitrary amount, then passes it to C, who does the same and then divides by 3.

    By doing this serially and having two adjustments being made before you see the number again, you’ll never know more than the average of the other two people’s salaries (and even this, only C knows on the final run).

    I haven’t really thought this through completely, but as of now, I don’t think there’s any way to deduce other people’s exact salaries.

    I’ll come back later and elaborate more when I have time. =)

  • James

    Salary deals as much with perception as it does reality. I found my own solution to this problem a few years back.

    I went around to a number of co-workers and collegues that I consider good negotiators and asked them: “Based on your knowledge of my skills and my job description, what should I be charging?”

    This avoids the need for people to reveal their own salary, and also provides a measure of percieved value.

  • Pingback: Weekly Wisdom Roundup #23 (Links You Don’t Want To Miss) | Simoleon Sense

  • Piotr Zielinski

    All-but-one collusion is not a big problem in the sense it is unavoidable (given the total sum and all-but-one salaries, you can easily calculate the remaining salary, no matter what algorithm you used to compute the total).

    A bigger problem with more players is that only two colluders can “sandwich” a good player by placing themselves directly before and directly after the target. Then they can compute the target’s salary.

    And of course, the final player controls everything because he can announce any number he wishes.

  • Greg

    This method is actually very common in digital encryption by computers, in a much more simple form. While encryption is designed to keep others from seeing the information, rather than keeping the recipient from seeing it, the concept is on the whole the same. The sending computer will apply an encryption lock to a file, sending it to the second party. The second party computer will attach its own encryption lock on the file, sending it back to the first party. The first party then removes its own encryption, sending it pack so that the second party can remove its own lock and review the file. This prevents either party from knowing the encryption method/code of the other party, without having to ever send the file unprotected.

  • http://www.nichardin.com Nicole

    Your comment about Glassdoor is interesting. This is a site that has in my opinion suffered from the opportunity for people to lie. For a great many social reasons people are generally less than honest even under the cloak of anonymity about their compensation. Glassdoor’s figures are wholly reliant on employees who register on the website providing compensation information without any verification about the accuracy of the data. Furthermore there is no verification process for if the personal actually worked for the company. It will be interesting to see how this site develops and if they ever address these issues.

  • Dave

    Nice website, especially the Game Theory articles!

    For the solution of the salary puzzle, I thought of a different (and perhaps simpler) solution:
    Label the three people A, B and C.
    A secretly (e.g. whisper)tells B an arbitrary number (it can be either positive or negative) without C knowing the number.
    B now adds the arbitrary number to his own salary, and tells C the sum in secret without letting A know.
    C now adds the sum B gave him to his own salary, and then tell A the new sum in secret without B knowing.
    A now adds his own salary to the sum C gave him, subtracts the arbitrary sum he gave to B, and then divides the resulting number by 3.
    The average is now known, while none of the 3 people are able to figure out each others salary.

    There’s also no reason for any 2 people to collude and figure out the third person’s salary, because it’ll result in exposing their own salary as well.

    The advantage of this solution is that there’s less math involve, and they only have to run their numbers through their loop a little over once (as opposed to twice: once to encrypt and once to decipher) in order to get the average.

    This solution’s weakness is the same as almost every solution I can think of: lying. I don’t really think there’s any way to prevent that given the question.

  • Scott

    Dave – “There’s also no reason for any 2 people to collude and figure out the third person’s salary, because it’ll result in exposing their own salary as well.”

    Except they can reveal another person’s salary without revealing their own.

    B is supposed to give his salary plus the random number to C, without A overhearing. But what if C voluntarily tells A that number? A can then derive B’s salary without C revealing his own.

    The same is true if A tells B the number that C gives him. B subtracts the random number and his own salary and derives C’s salary without A revealing his own.

  • Dave

    There is no way any collusion can happen if they don’t want to expose their own salary.

    Average salary is salary A + salary B + salary C divided by 3. If you know the average salary (which everyone will find out, since that’s the whole point of the puzzle), then you know what the total salary is (average x 3). You also know your own salary. Assume you’ve figured out B’s salary from collusion. Now you also know C’s salary by subtracting your own salary and B’s salary from the total salary.

    This applies to every player in the game. In the event of collusion, one player would have his own salary, one of the other player’s salary, and the total salary. From that, he can deduce the last player’s salary. Everyone in the game knows that, hence no one colludes.

  • Dave

    Small addendum:
    Of course, my solution is susceptible to the same problem as the solution given on this page: If 2 players decide to collude AND lie, then the last player is out of luck.

    My solution is simply a shorter and more efficient way at completing the same task as the standard one. It doesn’t really do more (except less looping and a lower chance of making a mistake), but it doesn’t do less either.

  • Scott

    Dave – “There is no way any collusion can happen if they don’t want to expose their own salary.

    Average salary is salary A + salary B + salary C divided by 3. If you know the average salary (which everyone will find out, since that’s the whole point of the puzzle)…”

    If C tell’s B’s number to A, or A tell’s C’s number to B *before* the total number (and hence the average) is totalled then people’s salary can be derived without revealing their own.

  • Dave

    Scott

    The problem is once again, if any player was going to lie (which is essentially what the colluding players are doing, since the terms were that each player provide their salary; something a colluding player is now refusing to do i.e. the refusal can be mathematically considered either null, or a “made up salary” with no value) and collude in the first place, then there are no solutions for this game. Even with the standard solution, there’s no way to go around this problem.

    I re-iterate, the point of this solution isn’t doing what the standard solution cannot address, it’s just a simpler way of accomplishing the same tasks, given certain conditions. The most important condition in this question is that players do not lie. If they don’t lie, they will not collude either. If they do lie, then there are no solutions, since they will all be inclined to lie, and no one gives out their real salary.

  • http://www.mindyourdecisions.com/blog/ Presh Talwalkar

    Thanks for that interesting discussion Dave and Scott.

    It seems like no scheme is liar proof and immune from all-but one collusion. I suspect these are reasons much salary information is obtained anonymously or from a single trusted source rather than through a voluntary exchange among people who don’t trust each other.

  • Benjamin Vitale

    Suppose you have only 2 players: A and B.
    Both want to know who gets more salary but they won’t disclose their salaries to each other. How both can know who gets more and who gets less?

  • Pingback: Game Theory and Lying About Your Salary | Spies and Lies Blog

  • http://thenetizens.blogspot.com PavanMS

    Another solution:

    1.A writes his salary = A + random number

    2.A asks B to add a particular number to his salary and send it to C.(C is not told what the number is).
    B writes his salary + random2.

    3. A asks C(B does not know this) to subtract from the total, (random number)+(random2). C then gets the correct sum and finds the average.

  • Tamza

    If you can assume they are physically nearby: using the same font and paper write each salary on a fortune cookie-like piece of paper/ mix well/ and have a 4th person (hopefully who disinterested) do the math.   To simple? Well nobody specified that the solution needed to be complex.

  • Rajesh

    In a a secret ballet, each have to drop stones equal to their salary. After everyone is done they will take out stones and divide them by three.

Previous post:

Next post: