The Internet Gambling Act (HR4411) that passed the House earlier this month is a curious compromise. There’s been a lot of discussion elsewhere about the fact that this bill won’t stop gambling on the Internet, and doesn’t even seem intended to try; I’ll leave that issue alone.  The only point I wanted to make is that the bill only covers sports betting (and pure lotteries).

The definitions say

(1)The term `bet or wager'--
(A) means the staking [...]  of value upon the outcome of a contest of others, a sporting
event, or a game subject to chance [...];
(B) includes the purchase of a chance [...] to win a lottery (which [...] is predominantly
subject to chance);
(C) includes any scheme described in [Unlawful sports gambling law];
(D) includes any [..] information pertaining to the [...] movement of funds [for] the
business of betting or wagering; and
(E) does not include [commodities, securities, derivatives, insurance, and fantasy sports]

Of course, the lack of coverage of prediction markets in this bill doesn’t make them legal, it just leaves them out of the effects of this bill. Most of the effect of the bill is to make it harder to move funds into and out of gambling accounts, rather than to prohibit anything in particular.  It’s not clear whether credit card handlers or banks would notice the distinction, but this may leave an opportunity for someone to run a market long enough to challenge the law.
I think it’s odd that they drew the line so narrowly. But there’s time for the Senate to change that if they pass something, and if there are any differences between the House and Senate versions, anything can happen in reconciliation.

Previous articles have described a few simple formats of prediction market: simple double auctions, markets with open-ended prices, the symmetry of complementary purchases, and how to integrate an order book with an automated market maker. In this article, I describe the mechanics of multi-outcome markets, both as most markets currently implement them, and as I expect to implement them in the Zocalo Prediction Market. I’ve presented this idea before, so you can get another look at the idea by reviewing my slides. ( PowerPoint 3MB).

The basic idea is that instead of two exclusive outcomes, you want the market to give a prediction about an event that might turn out in one of three or more ways. Canonical examples include an election with multiple candidates running, or a tournament among some number of teams. The straightforward approach is to create a pair of assets for each candidate, representing respectively, that competitor’s chances of winning and losing. This way you end up with N separate markets, and each one has a price for buying and selling the particular candidate that gives their chance of winning. The same general idea can be used to turn a continuous variable (how many widgets will we sell? What will the temperature in San Jose be on August 27th?) into a series of discrete choices. I’ll talk about those kinds of markets later.

Read more

MIT’s Center for Coordination Science has recast itself as the Center for Collective Intelligence. Tom Malone (who spoke at the New York Prediction Market Summit), and Tomaso Poggio (who co-authored Securities Trading of Concepts) are two of the principals. The new center’s framing question is How can people and computers be connected so that—collectively—they act more intelligently than any individuals, groups, or computers have ever done?. Prediction Markets are explicitly on the agenda. Their proposed (and ongoing) research includes:

  • How can large groups of people produce high quality written documents?
  • How can groups of people make accurate predictions of future events? For instance, in prediction markets, people buy and sell predictions about uncertain future events, and the prices that emerge in these markets are often better predictors than opinion polls or individual experts. When and how do these prediction markets work best? How can they be combined with simulations, neural nets, and other techniques? (emphasis added)
  • How can we harness the intelligence of thousands of people around the world to help solve the problems of global climate change?
  • How can we create an on-line, searchable library of books from many languages and historical eras?
  • How can we help create commercially sustainable products and services for low-income communities around the world?

This focus is strongly related to Marty Tenebaum’s proposals in his AAAI invited talk and PARC Forum on collaboration between people and intelligent agents on the modern web. (In addition to being at the heart of what’s most valuable about Web 2.0.)

Other distinguished faculty include Deborah Anacona, Rodney Brooks, and Alex Pentland. Marty’s son Josh Tenenbaum is also on the faculty.

The center is new enough that their websites don’t appear to be in their final locations. still has the old center’s pages, while the new center is at If the links move around, that’s probably why.

Congratulations on the creation of the new center, and good luck!

 ADDENDUM: Apparently I jumped the gun with this annoucement.  The center is now up at, and has been discontinued.  I changed the link under the first mention of the center’s new name.

In response to a couple of requests for installation help, I spent most of the week figuring out how to install under Windows, and how to generate appropriate zip files. I have uploaded a new release of the Zocalo Prediction Market Software to SourceForge. There are now 5 different files you can choose from in order to run Experiments or Prediction Markets, on Windows (zip) or unix-based platforms (tar.gz), or to get a copy of the entire source tree.

I’m embarassed to admit that I broke the Experiments in the last release, but they should be fixed.

On another note, while I was poking around SourceForge the other day, I noticed that they keep statistics on downloads and visits. The statistics on downloads didn’t have any interesting consistency, and I think the “project web traffic” means my use to check-in changes and maintain the code, but this graph of traffic sure looks interesting. A steadily growing number of visits is good. Thanks for your interest. I plan to keep improving Zocalo; I hope to justify your continued interest.

I released a major new version of Zocalo on SourceForge yesterday. This release is the one I’ve been targeting as good enough for people to test out with interested groups. The user accounts now have password security, and only administrators can create new accounts and set up claims. (Later, I’ll make it possible to configure Zocalo so anyone can create an account and the administrator will be able determine who can create claims. Public access to account creation is waiting until I hook up email for verification. At that point, it will also be possible to send trade results via email.) Claim owners now also have the ability to pay out claims, there’s a new screen for reviewing transaction history, and users get feedback when a trade takes place.

If you have been waiting to use Zocalo to run prediction markets until a few more features are added, this is the first version (since the releases for economics experiments) that has enough functionality to be worth playing with and showing to your friends and colleagues. If you want to make suggestions about what features should be added first, I’d love to hear them. I know of many things that need to be added, but I only have my own guesses at this point about which missing features are show stoppers and what minor features would suffice for some users to deploy significant markets.

In the absence of feedback pointing to particular features that are useful sooner, I’m expecting my next step to be integrating email, so that account creation can be opened up, and the system can send transaction details to traders. I will also do some cleanup and simplification of the order entry form, since I’ve alrady had a request for that.

Eliezor Yudkowsky has written a good review on individual biases for a volume assessing the possibility of global catastrophic risks from AI, Nanotech, Biotech, etc. Yudkowsky’s particular concern is AI, and the likelihood that an AI will take over the world soon after its ascendance if it’s not carefully designed to care about humanity’s wishes. In the process of arguing on this subject, he has spent quite a bit of time becoming an expert on various aspects of epistemology: Bayesian reasoning, cognitive biases, in general how to think, act, and argue rationally. His writings in this area are particularly clear and usually directed to an audience that might not have thought carefully about reasoning.

Read more

CommerceNet has been very generous in funding my work on Zocalo for more than a year. From the beginning, it was proposed as an appointment that would last for a year or two, as part of CommerceNet’s program to bring a variety of people and projects into the labs, both to expose the particular projects to CommerceNet and its partners and to attract other entrepreneurs to visit and raise their new ideas and ventures to CommerceNet’s view. While I’ve been here, I think both sides have benefited: I’ve been able to get more exposure for Zocalo than I would have otherwise, and in getting visibility for Prediction Markets, I’ve also raised CommerceNet’s profile in some interesting arenas.

The next version of Zocalo that I release (sometime in June, I expect) will add the main features that were missing for usable long-term prediction markets. (Secure accounts, transaction history, and access controls for claim creation are checked in to sourceforge‘s subversion repository, paying off claims is coming soon.) I expect to run a couple of private trials (more beta sites would be welcome) and hope to install the software on a public website so people will be able to try it out. I’m also happy that there’s another developer interested in adding some features who is talking issues over with me via email and on sourceforge.

I will continue to work at CommerceNet over the next few months, while I transition back to working on Zocalo on my own. (I was working on the code on my own nickel before CommerceNet offered to hire me and allow the code to remain open source.) I expect to work on Zocalo full-time for the rest of the year, and then spend up to half-time consulting to support continued development. The more consulting I can find that’s related to Zocalo, the less time I’ll have to spend on other work.

It’s been great fun interacting with all the people and companies that have been through here. We had some great interns last summer, and are expecting more this summer. I can’t talk about all the companies that have incubated here, but the folks that Renkoo and NewRoo were certainly cool to work with.

Zocalo’s future? I’m going to continue betting on it for a while.

I’m joining the roster at the Chicago Prediction Market summit.
I’ll try to explain how Zocalo can improve the prospects for adoption of Prediction
Markets in business by making the technology more accessible, and by doing a better
job of publicizing results so more companies may be convinced that this is valuable
technology. I’ll try to argue that the academic results are in and pretty uniformly
positive; the thing that is lacking that would enable or encourage more widespread
adoption is evidence that these markets produce valuable input into organizations’
deliberative processes. The existing companies selling PMs into business haven’t
been able to talk enough about how these markets have helped their customers.

looking forward to hearing what
Cass Sunstein
has to say. His article in the Hahn & Tetlock
book is quite interesting. He points out that groups that make decisions as a result
of meetings and discussions make common mistakes in their reasoning, and that markets
seem to have opposite tendencies. In the article, he seems to suggest that markets
should be used instead, but the point about countervailing tendencies suggests that
finding ways to use them together might be a better approach.

Arik Johnson’s
background is in competitive intelligence; he’s going to talk about how markets can
be used in exploring the competitive landscape. It will be good to see Robin Hanson,
Justin Wolfers, and Michael Gorham again (all were at the DIMACS event in early
2005), as well as perenials John Delaney (from Tradesports), David Perry (Consensus
Point), and Emile Servan-Schreiber (NewsFutures).

There are two basic ways of handling incoming orders: keeping standing orders in a book against which market orders can be entered, or having a market maker that accepts orders at its current price and adjusts the price after each order. It’s also possible to combine the two, though that hasn’t been done in very many of the existing markets. (Pennock mentions that the combination is used in finance, but doesn’t give examples.)

Book orders match our mental model of the stock market. The basic idea is that traders are allowed to enter an order to buy or sell at any price. If they offer to buy at a price above (or sell below) the current clearing price (and there are enough shares available), then they make an immediate trade. If they offer to buy at a lower price (or sell higher) then the order is recorded and displayed to later traders. It’s also possible that the market will partially satisfy the new order because the new order specifies more volume than the matching book orders. Different policies might apply in those cases: partially filling the order and placing the remainder as a book order; dropping the remainder; or producing an error message and requiring that the trader specify either that the whole order should be filled or that a price limit shouldn’t be exceeded. On the stock markets, these are called markets orders and limit orders. A market order buys from existing book orders, accepting the market price, while a limit order specifies the highest price at which the trader is willing to buy (or the lowest sell price).

There is one difference in interpretation that matters more in prediction markets than stock markets. Most prediction markets interpret the limit price as the highest incremental price that should apply: no shares should be purchased beyond that price. But it’s also possible to interpret the price as a limit on the aggregate price: if some shares are available below that price, then some could be purchased above the price as long as the average price for the order is below the limit. On a prediction market this might be against the trader’s intent, since it could have the effect of pushing the current price significantly above the limit the trader specified.

There is some risk to entering a book order: market conditions might change, new news might become available, making the trader wish she hadn’t left the standing order. Presumably for this reason, many traders only enter market orders. But in thin markets (most prediction markets are thin; even most stocks are thinly traded most of the time) there can be a gap between the best buy offer and the best sell offer. If there’s always a 5% gap between the best offers on each side, then price takers (those who accept the price the market makes available) pay 5% more than price makers (those who enter book orders, thereby setting the market’s prices). Market volatility determines whether that price difference is a bigger effect than the effect of the changing markets. This makes it valuable for market operators to encourage traders to place book orders. TradeSports charges fees only for price takers.

Markets orders are usually limited by the amount of (real or play) money a trader has in her account. Book orders can be limited in different ways. Most markets allow total orders in all markets up to the user’s balance. The Foresight Exchange (FX) allows orders in each market up to the user’s balance. When trading reduces the user’s cash, FX reduces book orders in any market exceeding the new limit. TradeSports allows total orders up to the user’s balance, and gives additional allowance for the expected value of current holdings. Robin Hanson’s Combinatorial Information Market Design does an even better job of allowing the trader to invest in mutually exclusive outcomes because of the way it tracks assets.

These are all ways of further encouraging more book orders. As long as the market operator ensures that the user’s balance isn’t exceeded, they don’t entail more risk. To the trader, they will sometimes cause orders to disappear just as you try to trade with them, but this isn’t different from someone else accepting the offer before you, or the owner canceling the order while you submit yours. TradeSports’ margin trading allows more trading, but requires that the market operator take on some risk.

The alternative to maintaining an order book is to have an automated market maker. Market makers in stock markets ensure the market is liquid by always having a published price at which they will buy or sell. They make money by maintaining a spread between the prices at which they buy and sell; the quoted price is the price at which you can buy from them. They set the price according to their beliefs about the current demand for the asset, and change the price as their opinion (or their exposure) changes.

Automated market makers set the price according to a rule that tells them how much to raise (lower) the price when a buy (sell) order is processed. A really simple rule would be to buy or sell a single coupon at the current price, and change the price by a constant amount. Run this way, the market maker’s price would bounce around a lot as different traders traded with it, so it often takes a larger volume of trading to move the price as you approach the extremes.

If the market maker bases its prices on a rule that produces consistent prices whether buying or selling, it can sell an unlimited number of shares while limiting its losses. This only works if the market maker is integrated with the market; a user agent can arbitrage, but can’t limit the amount of its losses if it doesn’t have priority in getting its orders into the queue.

The market maker can also follow completely different rules. Dave Pennock’s Dynamic Parimutuel Market (DPM) adjusts the price to ensure that traders on the winning side of a question will split the total value invested up to that point. The standard price rules ensure that the currently quoted market odds are also the incremental price at which you can buy or sell shares, which gives traders an incentive to trade whenever the price is different from their estimate of the odds. The DPM market doesn’t have this incentive structure, as the price and the current payoff vary from one another.

A weakness of algorithmic market makers is that they don’t adjust well as the volume of trading changes. The algorithm is parameterized by a constant that controls how quickly prices move in response to trading. When the market has many participants, you want the prices to move more slowly in response to trading than when there are only a few traders. If you choose the wrong constant, then it will be too hard to move the price in a think market (the price will remain near 50 even when sentiment wants to move it away), or in a thick market it might move back and forth too often. Order books work well in thick markets (there are plenty of offers for people to trade with), but less well with fewer traders. Combining the two should produce markets that work well in both cases. (Robin Hanson made a similar point about combining simple scoring rules with simple markets to produce his market scoring rules.)

In order to run a market with both a market maker and book orders, you have to ensure that the market maker’s orders get priority and that the book orders are satisfied in the correct order as the market maker’s price changes. The intuitive model is that you track queues of buy orders and sell orders, each sorted by the offered price. The market maker can freely trade and adjust its price as long as the price remains between the highest offer to buy and the lowest offer to sell. If the market receives a new offer that would move the price past either best offer, the market maker trades first, until it reaches the price of the best offer, then the book orders are used up. If the new offer hasn’t reached its limit, the process iterates. (Robin Hanson and I discussed how to implement this for his Combinatorial Market in early 2003, resulting in his draft article.) This is all fairly straightforward if the market sells fractional shares (the stock exchanges work that way, why would it confuse traders?). I don’t know of a way to use continuous prices if the market insists on trading only whole shares.

Using a market maker will increase the number of trades that are possible, especially when the markets are thin or many traders are reluctant to enter book orders. Adding book orders makes it easier for the market to adjust to increasing volume. If the initial constant used by the market maker is appropriate for a thin market, the book orders will play a more significant role as the market gets thicker, ensuring that prices don’t gyrate too wildly.

Book Only

Maker only


Zocalo currently integrates the two. When creating a market, book orders are always allowed, and the market creator can decide whether to add a market maker or not. While writing this article, it occurred to me that I should also allow markets with a market maker and no book orders.

A new release of Zocalo is available (Here’s a patched release) on SourceForge. Zocalo now supports long-lived Prediction Markets. The previous releases had general support for prediction market trading, but the original packaging was focused on enabling lab experiments for economists. That version has been in use at George Mason since last fall, and they continue to run new experiments using the software.

The new code has two major features: transaction history charts are displayed using JFreechart, and a database has been integrated (using Hibernate) so all data is persistent. This means it is now possible to use the code to run long-lived Prediction Markets. The code currently allows anyone to create new claims. The next important development feature is to add login securty. (Currently, no passwords are required.)

Once accounts have some security, I’m hoping to start running Zocalo as a public server (If you have suggestions for a domain, please send me mail privately) where people could use it for internal markets (e.g. inside a business). There will probably be a period during which I limit the number of groups using it so I can shake out any bugs. But the code will be available so people will be able to run their own copies even as we continue to improve the interface and add features.

There is lots of work left to do, but I’m hopeful that it will soon be good enough to use, and that others will start helping develop the code once we reach that point.