For those who are geeky, here is the official explanation of what happened last Friday.
http://www.nasdaqtrader.com/TraderNews.aspx?id=ETA2012-20
It was the software design group I lead that designed part of what failed (and my name is on patents if you’re skeptical – this is the Internet after all). How NASDAQ opens a stock wasn’t going to work and I was very vocal that they needed to rework the process before the system went live (in 2002), but competitive pressures and not wanting a delay in the launch pushed that aside (and I left NASDAQ about that time).
From the description above, it sounds like NASDAQ created a new non-integrated process for doing a stock open (an IPO is no different than the way a stock opens at 9:30 or how trading resumes after a trading halt – except that it happens later in the day). The way it was supposed to work is that a short time before the open, the system stops accepting updates to orders (like cancellations), computes the unified Open price, prints one huge trade of everything matchable at the open and resumes processing the incoming orders.
In the Facebook IPO open, it sounds like the Open process calculated the open price, but the matching engine was still accepting cancels of quotes/orders (probably for reasons that are based on legal and regulatory constraints) – so when the Matching engine was given the “Go head – Open at this price” message, the matching engine looked at the quotes/orders it had and responded with “Can’t do that!, please try again”… the opening routine tried again, but since the incoming order flow still wasn’t stopped, it just got into a loop of “Here is the REAL FB opening price this time”, “Sorry Dave, I can’t do that” loop over and over. Eventually they had to kill HAL 9000 and pick up the pieces as best they could.
For those really really geeky, the problem with NASDAQ’s open was they had no concept of a neutral clearing service. Every trade on NASDAQ had a discrete buyer and seller – Firm A sold 1000 shares to Firm B at $2.36 – and the trade was then cleared between the two firms at the clearing corporation which handles exchanging the money and shares. When you have a unified open, instead of it being a series of 1 to 1 matches, it’s one huge match – 4,325,529 shares traded at the open at $2.36…. and here is the list of firms involved and all the quote/orders that were successfully matched – but you can’t from that say that Firm A sold a specific number of shares to Firm B of those on the list – you need a “phantom” trading firm against which all the trading clears (presumable NASDAQ itself or the clearing corporation) that is the entity against which all the trades clear. It owns nothing and isn’t itself involved in trading, but without it you can’t have a unified open, which is the way basically every other securities market in the world works.