On December 1, 2015 PredictIt made a huge structural change that immediately made their exchange more efficient. Rajiv Sethi explained this problem really nicely on his blog. In short, many markets have more than two possible contracts (i.e., possible winners). An example is the winner of the Republican nomination where there are many possible winners. When you short one of the contacts (i.e., sell it) you have to cover the maximum amount of money you could lose, in case that candidate wins (e.g., if you sell Jeb Bush to win for $0.10, the exchange freezes $0.90 in case he actually wins and you need to pay $1.00 for the contract). The problem occurred when you sold two different candidates. Only one candidate could win, so the maximum amount you could lose is the cheaper of the two candidates. E.g., if you also sold Chris Christie for $0.05 you could lose $0.95, but only Christie or Bush could win. So you could lose $0.90 or $0.95, but not $0.90+$0.95, because only one of them could win. But, prior to December 1, PredictIt made you cover the possible loss of both contracts, something that was impossible and froze a lot money.
The below chart shows how much money you could get for selling all GOP candidates. Prior to December 1, that number was well above $1.60, with a maximum loss of $1.00! That number converged towards $1.00 after the margin linking. But, it should be below $1.00! It should not be possible to sell all contracts for $1.05 when the most it could cost is $1.00, because that is a guaranteed profit of $0.05 per $1.00 … not a bad return for few months.
Note: this is how much money you would get if you sold every candidate running for the GOP nomination on PredictIt. The vertical line markets the day they began margin linking the market.
The problem now is that PredictIt charges 10% on winnings, which can be really costly. Imagine there is a race with two candidates and you sold two contracts: Candidate A for $0.95 and Candidate B for $0.06. Great, you just made $0.01! You have been paid $1.01 and you will pay out $1.00. Here is the problem. Imagine that Candidate A wins. This means that the Candidate A stock was a loss; you got $0.95, but you needed to pay out $1.00. Candidate B was the loser and you made $0.06. You were paid $0.06 and did not need to pay out. You pay a fee of $0.006 on the $0.06 win. Now imagine that Candidate B wins. This means that the Candidate B stock was a loss; you got $0.06, but you needed to pay out $1.00. Candidate A was a loser and you made $0.95. You were paid $0.95 and did not need to pay out. But, due to your big win, you need to pay a fee of $0.095 on the $0.95 win. So, assuming the prices are the best proxy we have for the underlying probability, in expectation: 95%*(0.01 – 0.006) + 6%*(0.01 – 0.095) = – $0.0013.
Thus, due to transaction fees, it is not rational for traders to push down small arbitrages. And, this assumes traders are risk neutral.
But, there is something that PredictIt can do; they can margin link the profit for the market. In this case they should look at how much you risked in the market, not on each contract. You received ($0.95 + $0.06) and you paid out ($1.00). You made $0.01, not either $0.95 or $0.06. That way you would pay $0.001 on a $0.01 profit. No risk.