*automated market maker*to price transactions. The automated market maker Augur uses is the Liquidity-Sensitive LMSR (LS-LMSR), a modification of a commonly used automated market maker in prediction markets, the LMSR. In this post, we’ll introduce the LS-LMSR and describe some of its desirable properties. We’ll start by recapping the mathematical properties of the LMSR.

**The LMSR**

*cost function*between two

*payout vectors.*The payout vector, q, has elements that correspond to the amount the market maker must pay out if the corresponding event occurs. The cost function for the LMSR is given by:

**LMSR and Liquidity**

In our previous blog post, we explored a two-event setting (either event X or event Y must occur), where q_x=5, and q_y=3, and the trader wants a $1 payout if event X takes place. That is, the trader wants to change the automated market maker’s payout vector from (5,3) to (5+1,3) = (6,3).

With b=10, we get a total cost of 56.2 cents and a marginal price of 57.4 cents on X after the trade.

But with b=100, we get a total cost of 50.6 cents and a marginal price of 50.7 cents on X after the trade. And with b=1, we get a total cost of 92.1 cents and a marginal price of 95.2 cents on X after the trade. Clearly, the choice of b has a prominent role on the experience of traders and the amount of trade in the resulting market!

Indeed, the biggest difficulty in using the LMSR in practice comes from choosing the value of b. Setting b too low means that prices will shift around too quickly in response to traders’ bets. Setting b too high means that every interested trader could place a bet on an event and not significantly shift market prices. Compounding the issue, the liquidity parameter is not easily contextualized and has no “natural” value. Correctly setting this parameter requires accurate knowledge of trader interest in a market before trade in that market commences---very unlikely in a decentralized framework like Augur’s.

For these reasons, setting the right value of b has been a vexing issue for practitioners. One of the largest tests of the LMSR in practice was the Gates Hillman Prediction Market (GHPM), designed to predict when the new computer science buildings at Carnegie Mellon would open. In the GHPM, b was set to be 32, a value that turned out to be far too low for the market, leading to spikes in prices that occurred because the market was too shallow. In fact, many profitable traders in the GHPM solely employed a strategy that involved selling the price spikes induced by other, less sophisticated buyers.

At first glance, it appears that we have just shifted our problem from choosing one constant to another—now, instead of setting b > 0, we have to set alpha > 0 instead. However, alpha has a natural interpretation: because it can be shown that marginal prices in an n-event market sum to at most

**1. Numerical Precision**

Numerical precision issues are encountered very quickly with the LMSR. The problems derive from the exponentiation in the LMSR which can make even reasonably large input values infeasible. This is particularly a concern for Augur, which uses a fixed-point computational system with a built-in precision limit.

There is a trick that can be used to keep LMSR from overflowing, but the larger point is that it is non-trivial to implement LMSR in practice due to numerical problems and doubly so in a fixed-point context.

**2. Positive Homogeneity**

In the LMSR, prices are determined based on the relative **differences** of quantities. Adding a dollar payout to each event produces the same prices:

In the LS-LMSR, prices are determined based on the **ratio** of quantities to one another. Multiplying a quantity vector by a positive constant c > 0 produces the same prices:

**3. Bounded Loss**

The LS-LMSR retains the bounded loss properties of the LMSR. In the LMSR this loss bound determines the maximum amount of liquidity in the market. But in the LS-LMSR, it only determines the *initial* amount of liquidity in the market—the maximum amount of liquidity when using the LS-LMSR is unbounded, because market participants are contributing to liquidity, too.

**4. Liquidity Sensitivity**

Observe that as the market has more activity and q increases, b increases, so market depth increases in market volume, a property that is seen in real-world markets (e.g., you can buy a million dollars of apple stock without moving the price significantly, but buying a million dollars of a low market cap stock like FDP will change its price significantly).

**5. Prices Sum to (at Least) 1**

In the LMSR, marginal prices are positive and sum to exactly 1. This means that those prices are directly interpretable as probabilities. In the LS-LMSR, prices are positive but sum to slightly more than 1. This creates a *range* of probability estimates compatible with the market’s prices. For instance, if marginal prices are in a two-event market are (.58, .43), this indicates that market participants believe the true probability of the first event occurring is no higher than .58 (or else participants would buy the first contract) but no lower than .57 (or else participants would buy the second contract at .43). The extra “vig” on prices can be thought of as a trader subsidy to providing increased liquidity in the future.

**Further Reading**

This blog post is an overview of our journal paper that originally introduced the LS-LMSR.

Our paper on the Gates Hillman Prediction Market run at Carnegie Mellon covers a large-scale implementation of the LMSR, with many details on trader behavior and market microstructure.

The LS-LMSR was deployed in practice at UT-Austin, for a long-running building prediction market on their own Gates Building opening.