Monopoly Fight! - Methodology

What is it?

Monopoly Fight! is an attempt to answer the age-old question, "which player in a game of Monopoly has the better set of properties?"

Its basic usage is simple: tell it who's playing, what properties they own, and what development, if any, they've performed, and click the button. You'll find out how much money each player can expect to earn or spend per roll of the dice, broken out by who's rolling the dice at any given moment. In the long run, anyone losing money each roll is doomed, at least in theory.

That should be all you really need to know to use it. But if you're wondering just how it works, then this page is for you.


Monopoly Fight! calculates how much money each player is expected on average to gain or lose per roll of the dice. This overall expected value is simply the sum of the expected values of landing on each square, which is computed by:

expectation = payout x probability

The idea is that each square provides some payout, positive or negative, when a player lands on it. Multiplying this payout by the probability of landing on it after rolling the dice provides the long-term average expectation from that square.

For example, suppose a player would have to pay $200 rent for landing on New York Avenue, and has a probability of 2.81157% of landing on it after rolling the dice. The expected value from New York Avenue would then be -$5.62314. In other words, in the long run, the player is expected to lose $5.62314 per turn because of rent on New York Avenue.

Some squares do not have a constant payout from landing on them. For example, the payout from landing on Chance or Community Chest depends on which card is drawn. However, a similar methodology to the above can be used to compute the expected value of these squares as well, in terms of the expected values from each card in the deck.

Go and Jail are special cases. Players earn $200 not from landing on Go, but for passing it (which includes landing on it), and in some cases can get $400 from Go in a single roll of the dice. Conversely, a player only pays $50 when leaving Jail without rolling doubles; landing on it has no direct effect as far as payouts are concerned.

Of course, figuring out the payout for any square is easy. Determining the probability of landing on it, however, is a bit more involved, and is the subject of the rest of the next sections.

Defining probabilities

Before computing the probability of landing on a square, we have to define what "landing on a square" actually means, since sometimes a player may appear to land on multiple squares before the roll ends. For example, any player reaching Go To Jail does exactly that, and many Chance and Community Chest cards also direct the player to move to a particular square.

For our purposes, it is most convenient to define "landing on a square" as being the square a player stops at after rolling the dice; a player lands on exactly one square per roll. This definition is convenient because payouts only come from this square, not any squares temporarily visited along the way. It does lead to the possibly surprising fact that it is impossible by definition to land on Go To Jail, but any other definition of "landing" would needlessly complicate analysis.

The long-term and short-term probabilities of landing on a square are very different. In the short term, the probabilities depend primarily on what square the player is current on. After all, you're much more likely to land on New York Avenue if you're currently on Just Visiting and not Illinois Avenue. In the long term, all these short-term probabilities get "averaged out" according to how likely it is to be starting at each of those squares in the first place, which is just another way of asking how likely it is to land on those squares in the long term.

Modeling player movement

While the above might sound circular, there is nevertheless a way to model this using Markov chains. A Markov chain is a process where the next state (i.e., what square a player will land on) depends only on the current state (i.e., what square a player is currently on); a probability distribution determines which next state is chosen. During the course of a game, a player goes from one Markov state to another, over and over again.

Our first instinct might be to say that a state in this model is simply which square the player is on. However, this is not enough information, since rolling three consecutive doubles lands the player in Jail. Each state in our Markov model needs to include how many consecutive doubles have been rolled (or, in the case of Jail, how many consecutive non-doubles have been rolled before the player is forced to pay bail). If a player has rolled two consecutive doubles, the probability of landing on Jail increases significantly.

Given the current state (square and number of consecutive doubles), it is straightforward to compute the probability distribution of the next state (new square and new number of consecutive doubles); that probability distribution is largely determined by what the outcome of rolling the dice is, and to a lesser extend to what Chance or Community Chance card might be drawn.

However, while this model is good enough for computing the probability of landing on each square, it isn't enough for calculating the expected value of landing on those squares, because of two special cases. For each case, it is necessary to add additional information to the states in the model:

As a result, the states in the Markov model Monopoly Fight! uses consist of four pieces of information:

  1. The square being landed on.
  2. The number of consecutive doubles that has been rolled.
  3. Whether a "special" payout is in effect.
  4. How many Go payouts the player will receive.

Further complicating things is the fact that the player is not completely at the mercy of the dice when moving. If the player is in Jail, he or she can choose to pay $50 bail, or try to roll doubles to exit Jail without paying bail. (Another option is to use a Get Out Of Jail Free card, but see the section limitations for more about that.)

The probabilities for leaving Jail depend on the strategy chosen by the player. Monopoly Fight! allows for the two most likely strategies to be used in practice:

After picking a strategy, we can finally compute a Markov matrix, where each row represents the current state, each column represents the next state, and each cell is the probability of transitioning from the current state to the next state. The Markov model has 183 possible states in it, making the following matrices big enough to put on their own page instead of including here:

Given a Markov matrix M, and a probability distribution p representing the probability of being in each state currently, we can compute probability distribution p' of the next state using the following formula:

p' = p x M

The long-term, or "steady state", probability distribution s of being in each state is found when s = p = p', or:

s = s x M

Which can be numerically approximated by iteration, choosing an arbitrary distribution p0 and running the calculation until:

| pn - pn-1 | < ε

Where ε is some arbitrarily small number. Alternatively, we could observe that s is the left-eigenvector of M of eigenvalue 1 and length 1. But numerically computing the fixed-point is easier and faster.

You could crunch all those numbers by hand, or just download the monopoly-fight command-line tool to do all the work for you.


Here are the probabilities of landing on any particular square of the board:

StateShort JailLong Jail
Go 3.096122.91825
Mediterranean Avenue 2.131382.01002
Community Chest 1.884881.7775
Baltic Avenue 2.162412.03976
Income Tax 2.328532.19659
Reading Railroad 2.963112.80496
Oriental Avenue 2.262152.13457
Chance 0.8650510.816362
Vermont Avenue 2.320972.19034
Connecticut Avenue 2.300342.17118
Just Visiting 2.269552.14223
St. Charles Place 2.701672.55955
Electric Company 2.604052.61549
States Avenue 2.37212.17601
Virginia Avenue 2.46492.42528
Pennsylvania Railroad 2.919982.63658
St. James Place 2.792422.67893
Community Chest 2.594472.29514
Tennessee Avenue 2.935592.81969
New York Avenue 3.085172.81157
Free Parking 2.88362.82481
Kentucky Avenue 2.835842.61422
Chance 1.048031.04496
Indiana Avenue 2.735682.56729
Illinois Avenue 3.185762.9955
B&O Railroad 3.06592.89285
Atlantic Avenue 2.70722.54009
Ventnor Avenue 2.678852.5192
Water Works 2.807412.65475
Marvin Gardens 2.586042.43872
Pacific Avenue 2.677362.52491
North Carolina Avenue 2.625162.47692
Community Chest 2.366052.22918
Pennsylvania Avenue 2.500622.35763
Short Line Railroad 2.432632.29247
Chance 0.8668710.817443
Park Place 2.186392.06161
Luxury Tax 2.179852.05583
Boardwalk 2.625962.48611
Jail 3.949979.3855

And here are the probabilities of getting 0, 1, or 2 payouts from passing Go on any particular roll of the dice:

StateShort JailLong Jail
0 82.918383.8659
1 16.839915.906
2 0.2417480.228155

If you're wondering about those "special" payouts for landing on railroads and utilities, here's the first table again, with the special payouts (Y) broken out from the regular ones:

StateShort JailLong Jail
Go/N 3.096122.91825
Mediterranean Avenue/N 2.131382.01002
Community Chest/N 1.884881.7775
Baltic Avenue/N 2.162412.03976
Income Tax/N 2.328532.19659
Reading Railroad/N 2.674152.53247
Reading Railroad/Y 0.2889570.272481
Oriental Avenue/N 2.262152.13457
Chance/N 0.8650510.816362
Vermont Avenue/N 2.320972.19034
Connecticut Avenue/N 2.300342.17118
Just Visiting/N 2.269552.14223
St. Charles Place/N 2.701672.55955
Electric Company/N 2.315392.34318
Electric Company/Y 0.2886540.272301
States Avenue/N 2.37212.17601
Virginia Avenue/N 2.46492.42528
Pennsylvania Railroad/N 2.631632.36446
Pennsylvania Railroad/Y 0.288350.272121
St. James Place/N 2.792422.67893
Community Chest/N 2.594472.29514
Tennessee Avenue/N 2.935592.81969
New York Avenue/N 3.085172.81157
Free Parking/N 2.88362.82481
Kentucky Avenue/N 2.835842.61422
Chance/N 1.048031.04496
Indiana Avenue/N 2.735682.56729
Illinois Avenue/N 3.185762.9955
B&O Railroad/N 2.716552.54453
B&O Railroad/Y 0.3493440.348319
Atlantic Avenue/N 2.70722.54009
Ventnor Avenue/N 2.678852.5192
Water Works/N 2.632742.48059
Water Works/Y 0.1746720.174159
Marvin Gardens/N 2.586042.43872
Pacific Avenue/N 2.677362.52491
North Carolina Avenue/N 2.625162.47692
Community Chest/N 2.366052.22918
Pennsylvania Avenue/N 2.500622.35763
Short Line Railroad/N 2.432632.29247
Chance/N 0.8668710.817443
Park Place/N 2.186392.06161
Luxury Tax/N 2.179852.05583
Boardwalk/N 2.625962.48611
Jail/N 3.949979.3855

For the truly curious, the probabilities of being in any particular state in the long term are given in the following table:

StateShort JailLong Jail
Go/0/N/1 2.483212.3457
Go/0/N/2 0.1594140.150402
Go/1/N/1 0.3716580.345295
Go/1/N/2 0.02245580.0211875
Go/2/N/1 0.05570340.0521865
Go/2/N/2 0.003685820.00348487
Mediterranean Avenue/0/N/1 1.729281.6304
Mediterranean Avenue/1/N/1 0.3384440.319909
Mediterranean Avenue/2/N/1 0.06365610.0597108
Community Chest/0/N/1 1.616131.5241
Community Chest/1/N/0 0.06423050.0606692
Community Chest/1/N/1 0.1711290.161202
Community Chest/2/N/0 0.009579190.00890758
Community Chest/2/N/1 0.02380740.0226243
Baltic Avenue/0/N/0 0.1720070.162126
Baltic Avenue/0/N/1 1.600941.50998
Baltic Avenue/1/N/0 0.04803570.0452891
Baltic Avenue/1/N/1 0.2794640.264041
Baltic Avenue/2/N/0 0.009401270.00888638
Baltic Avenue/2/N/1 0.05255960.0494377
Income Tax/0/N/0 0.3661530.345204
Income Tax/0/N/1 1.579341.49017
Income Tax/1/N/0 0.1286490.121459
Income Tax/1/N/1 0.2058090.193904
Income Tax/2/N/0 0.01938230.0181261
Income Tax/2/N/1 0.02919370.0277252
Reading Railroad/0/N/0 0.5671410.53467
Reading Railroad/0/N/1 1.605891.53037
Reading Railroad/0/N/2 0.04397550.0415381
Reading Railroad/0/Y/1 0.2420120.228145
Reading Railroad/1/N/0 0.09728430.0917366
Reading Railroad/1/N/1 0.2781930.257844
Reading Railroad/1/N/2 0.01023230.00967312
Reading Railroad/1/Y/1 0.04095460.0384667
Reading Railroad/2/N/0 0.01849850.0174789
Reading Railroad/2/N/1 0.05094880.0472971
Reading Railroad/2/N/2 0.001985290.00186885
Reading Railroad/2/Y/1 0.005990720.00586953
Oriental Avenue/0/N/0 0.8056860.759658
Oriental Avenue/0/N/1 1.106111.04462
Oriental Avenue/1/N/0 0.1723410.162655
Oriental Avenue/1/N/1 0.1321660.124547
Oriental Avenue/2/N/0 0.02677590.0251033
Oriental Avenue/2/N/1 0.01906990.0179877
Chance/0/N/0 0.4544140.428463
Chance/0/N/1 0.2638530.249228
Chance/1/N/0 0.06209650.0587213
Chance/1/N/1 0.06139380.0580387
Chance/2/N/0 0.01138140.0106975
Chance/2/N/1 0.01191180.0112131
Vermont Avenue/0/N/0 1.442931.36126
Vermont Avenue/0/N/1 0.5343450.504982
Vermont Avenue/1/N/0 0.2254460.212774
Vermont Avenue/1/N/1 0.07202930.0679139
Vermont Avenue/2/N/0 0.03523450.0330812
Vermont Avenue/2/N/1 0.01098770.0103286
Connecticut Avenue/0/N/0 1.684271.58897
Connecticut Avenue/0/N/1 0.2669910.252331
Connecticut Avenue/1/N/0 0.1855420.175415
Connecticut Avenue/1/N/1 0.1082840.102532
Connecticut Avenue/2/N/0 0.03378060.0317701
Connecticut Avenue/2/N/1 0.02147670.0201648
Just Visiting/0/N/0 1.740361.64259
Just Visiting/0/N/1 0.1458870.138118
Just Visiting/1/N/0 0.280370.264615
Just Visiting/1/N/1 0.05186160.0489019
Just Visiting/2/N/0 0.04349770.0408781
Just Visiting/2/N/1 0.007574840.00712302
St. Charles Place/0/N/0 1.961531.85132
St. Charles Place/0/N/1 0.3057250.303387
St. Charles Place/1/N/0 0.2500940.236349
St. Charles Place/1/N/1 0.1195990.108341
St. Charles Place/2/N/0 0.04383930.0412738
St. Charles Place/2/N/1 0.02088220.0188813
Electric Company/0/N/0 1.820181.97952
Electric Company/0/Y/0 0.07573570.0714105
Electric Company/0/Y/1 0.1649810.15561
Electric Company/1/N/0 0.4424870.314079
Electric Company/1/Y/0 0.01034940.00978689
Electric Company/1/Y/1 0.03070960.0289065
Electric Company/2/N/0 0.05272630.0495869
Electric Company/2/Y/0 0.001896890.00178292
Electric Company/2/Y/1 0.004980650.00480362
States Avenue/0/N/0 2.017161.84052
States Avenue/1/N/0 0.3027230.286415
States Avenue/2/N/0 0.05221160.0490656
Virginia Avenue/0/N/0 1.983362.07003
Virginia Avenue/1/N/0 0.4263280.306036
Virginia Avenue/2/N/0 0.05521050.0492061
Pennsylvania Railroad/0/N/0 2.269692.02407
Pennsylvania Railroad/0/Y/0 0.1514710.142821
Pennsylvania Railroad/0/Y/1 0.0879510.0830761
Pennsylvania Railroad/1/N/0 0.310720.292252
Pennsylvania Railroad/1/Y/0 0.02069880.0195738
Pennsylvania Railroad/1/Y/1 0.02046460.0193462
Pennsylvania Railroad/2/N/0 0.05121930.0481352
Pennsylvania Railroad/2/Y/0 0.003793790.00356584
Pennsylvania Railroad/2/Y/1 0.003970580.0037377
St. James Place/0/N/0 2.295382.30618
St. James Place/1/N/0 0.4365280.321201
St. James Place/2/N/0 0.06051520.051544
Community Chest/0/N/0 2.259291.98272
Community Chest/1/N/0 0.2897720.269766
Community Chest/2/N/0 0.04540950.0426492
Tennessee Avenue/0/N/0 2.425992.43371
Tennessee Avenue/1/N/0 0.4462470.334278
Tennessee Avenue/2/N/0 0.06335040.0517061
New York Avenue/0/N/0 2.677532.44147
New York Avenue/1/N/0 0.355060.321472
New York Avenue/2/N/0 0.05258260.0486243
Free Parking/0/N/0 2.355782.42003
Free Parking/1/N/0 0.460530.351762
Free Parking/2/N/0 0.06728760.0530137
Kentucky Avenue/0/N/0 2.401272.21583
Kentucky Avenue/1/N/0 0.3800440.34752
Kentucky Avenue/2/N/0 0.05452650.050874
Chance/0/N/0 0.844460.886657
Chance/1/N/0 0.1766420.137679
Chance/2/N/0 0.02693130.0206205
Indiana Avenue/0/N/0 2.286222.15656
Indiana Avenue/1/N/0 0.3925440.357923
Indiana Avenue/2/N/0 0.05692130.0528065
Illinois Avenue/0/N/0 2.539042.37581
Illinois Avenue/0/N/1 0.1649810.15561
Illinois Avenue/1/N/0 0.3721740.375043
Illinois Avenue/1/N/1 0.03070960.0289065
Illinois Avenue/2/N/0 0.07388030.0553232
Illinois Avenue/2/N/1 0.004980650.00480362
B&O Railroad/0/N/0 2.265932.13339
B&O Railroad/0/Y/0 0.2814870.295552
B&O Railroad/1/N/0 0.393070.357974
B&O Railroad/1/Y/0 0.05888050.0458931
B&O Railroad/2/N/0 0.05755610.0531741
B&O Railroad/2/Y/0 0.008977110.0068735
Atlantic Avenue/0/N/0 2.291692.13723
Atlantic Avenue/1/N/0 0.3502490.351334
Atlantic Avenue/2/N/0 0.06525420.0515251
Ventnor Avenue/0/N/0 2.209352.08845
Ventnor Avenue/1/N/0 0.40780.374319
Ventnor Avenue/2/N/0 0.06170130.0564365
Water Works/0/N/0 2.210782.07461
Water Works/0/Y/0 0.1407430.147776
Water Works/1/N/0 0.3588140.3532
Water Works/1/Y/0 0.02944030.0229466
Water Works/2/N/0 0.06314090.0527833
Water Works/2/Y/0 0.004488550.00343675
Marvin Gardens/0/N/0 2.123312.01126
Marvin Gardens/1/N/0 0.3994730.369832
Marvin Gardens/2/N/0 0.06325460.057635
Pacific Avenue/0/N/0 2.215362.09387
Pacific Avenue/1/N/0 0.3956960.370624
Pacific Avenue/2/N/0 0.06630190.0604146
North Carolina Avenue/0/N/0 2.282772.14862
North Carolina Avenue/1/N/0 0.2929850.283269
North Carolina Avenue/2/N/0 0.04940430.0450241
Community Chest/0/N/0 1.951511.83988
Community Chest/1/N/0 0.3529190.332676
Community Chest/2/N/0 0.06162280.0566253
Pennsylvania Avenue/0/N/0 2.164912.03878
Pennsylvania Avenue/1/N/0 0.2909570.27573
Pennsylvania Avenue/2/N/0 0.04475030.0431215
Short Line Railroad/0/N/0 1.995591.88058
Short Line Railroad/1/N/0 0.3703660.350525
Short Line Railroad/2/N/0 0.06667730.0613676
Chance/0/N/0 0.7260350.684434
Chance/1/N/0 0.1228640.1154
Chance/2/N/0 0.01797220.0176086
Park Place/0/N/0 1.758041.65759
Park Place/1/N/0 0.3622930.342859
Park Place/2/N/0 0.06606130.0611621
Luxury Tax/0/N/0 1.867011.76046
Luxury Tax/1/N/0 0.2726930.256429
Luxury Tax/2/N/0 0.04014750.038941
Boardwalk/0/N/0 2.096181.99201
Boardwalk/0/N/1 0.04397550.0415381
Boardwalk/1/N/0 0.4006330.3734
Boardwalk/1/N/1 0.01023230.00967312
Boardwalk/2/N/0 0.07295170.067622
Boardwalk/2/N/1 0.001985290.00186885
Jail/0/N/0 3.764413.53788
Jail/0/N/1 0.1855550.175075
Jail/1/N/0 03.09412
Jail/2/N/0 02.57843

Known limitations

As nifty as Monopoly Fight! may be, it is not perfect. Here are some of its known limitations.

The Monopoly Fight! output does not consider the cost of buying and developing a property, but rather only considers the rent received for it. In a real game, it is important to consider investment costs in addition to potential payouts when deciding what to develop.

Monopoly Fight! only considers the long-term prospects of each player. As a result, it is implicitly assumed that each player has enough cash on hand to "ride out" any short-term bad luck without having to sell improvements or mortgage properties to raise cash. While a player may be doing better than the other players in the long run, that one time he lands on Boardwalk with a hotel on it can render that long-term advantage irrelevant.

Arguably, Monopoly Fight! should provide some more comprehensive statistics, rather than just the average payout per roll. This may be added in a later version.

Monopoly Fight! does not allow you to factor in any house rules you might be using, such as "$400 for landing exactly on Go" or "collect tax money for landing on Free Parking". Considering that house rules tend to throw off gameplay balance, this is probably a feature.

The payouts from Chance and Community Chest squares treat the card drawn as a purely random choice of all cards that don't redirect the player to another square. In a real game, except for shuffing the two decks at the beginning of the game; there isn't actually a random element to drawing a card, since the relative order of the cards stays fixed during the game. It's unlikely that the simplified model that Monopoly Fight! uses causes any meaningful errors, but it hasn't been rigorously verified.

Perhaps more significantly, Monopoly Fight! treats Get Out Of Jail Free cards as cards that do nothing. In a real game, these cards are removed from the deck when drawn, increasing the probability that the other cards are drawn when Chance or Community Chest is landed upon. Also, a player with a Get Out Of Jail Free card can avoid paying $50 bail, which slightly lowers the expected loss of money from trying to leave Jail.

Properly modeling the Get Out Of Jail Free cards' effects on the probabilities encountered during the game is possible in principle, but results in a drastic increase in the number of states in the Markov model, since each state would then need to encode the precise contents of both decks of cards. Since there are approximately 2.2 x 1013 possible states for the the deck of Community Chest cards (16! + 15!) and approximately 1.1 x 1013 possible states for the deck of Chance cards ((16! + 15!) / 2, since there are two identical "advance to nearest raiload" cards), this would increase the number of states by a factor of roughly 2.5 x 1026, which is much larger than the few hundred possible states that Monopoly Fight! uses in its model. Furthermore, since the Get Out Of Jail Free cards enter and leave the deck at various points during the game, the states would also need to encode which players if any have the cards, further increasing the number of states and preventing the model from treating each player's movement independently of other players'.

It's doubtful whether this dramatic increase in complexity would result in a significantly different outcome, but you're welcome to try it yourself to see for sure.

Related work

Monopoly Fight! is largely inspired by Truman Collins's examination of probabilities and payouts in Monopoly. His approach relies partly on Monte Carlo simulations to compute some of his probabilities, instead of exclusively using a Markov model as done here. While he also creates Markov matrices, the Markov states in his model only reflect the square landed on, as opposed to the more detailed approach taken here. However, his analysis does consider investment costs of the various properties, making his approach better for making investment decisions. His approach answers the question "what should you do?", whereas Monopoly Fight!'s approach answers the question "who's currently in the better position?"

Paul Kuliniewicz >> Monopoly Fight! >> Methodology

Valid XHTML 1.1