What would a “Turing market” look like?
(alt title: “Marketizing the Kalshi Market”)
Kalshi is only allowed to trade prediction contracts, but these could be like NAND gates of market microstructure. It might be possible to replicate most of the financial effects of many existing (and many new and useful!) transactions by buying a basket of predictions.
If Kalshi trades are more efficient than buying the actual stocks/options/futures/bonds (not a hard bar to overcome!) then you could move much of the speculative activity onto the prediction contracts, leaving much of the trading in the actual underlying instruments to effectively become a way to net settle the prediction market activity.
Why would moving all this activity to something like Kalshi be a good thing?
Most (all?) of the existing capital markets are burdened with entrenched rent seekers and the regulatory (and monetary!) costs they impose. Reducing these costs would allow many more transactions to happen. And some fresh competition might shake things up a bit and maybe pressure everyone else to either clean up their act or wither away.
Prediction markets are also more flexible. In theory, it is possible to monetize almost any kind of impactful information in a prediction market – the flip side being it is also possible to hedge against almost any kind of impactful risk. Who doesn’t want a world with more information and less risk?
I also really like Kalshi’s non-existent risk management model. They do not need any risk management because every trade is always fully capitalized and is guaranteed to settle instantly on resolution of the question. On Kalshi, there is no such thing as counter party risk, no failure to deliver, and no capital calls. Settlement procedure is simple – credit the cash you already have custody of to the winning side. That’s it. If you are not worried about these risk management problems on other markets… well… you should be because it is a scary mess even though no one talks about it.
UPDATE 12/28/2021: Another feature of Kalshi that I’ve come to really appreciate is the fact that each market has a finite, fixed, and relatively short duration. When they list a new market, you know exactly when it will end. This completely avoids all the complications around markets that have indeterminate durations which tend to get broken into ugly “sessions” to try to deal with the fact that they are essentially never-ending. Every Kalshi market has a single session that just ends. So much simpler.
So what does Kalshi need to do to become a thriving Turing market?
AN OPEN LETTER TO KALSHI:
Open up a “meta-market” for adding new markets. This is by far the most important item. The current curation system where you try to hand pick winners and losers is anti-market. If you believe that markets are a good way to develop and distribute information, then you should trust them to pick which markets you should make! Publish clear rules about what markets are allowed on Kalshi and let any funded account propose a new market. Quickly evaluate proposals and publicly site the specific rule issues for any rejects. Non-rejected new markets are immediately available for entering orders, but only allow trading to start after some minimum threshold of open orders on the book is met. User “votes” and “suggestions” are worthless – if someone wants a market then they should propose it and convince others to enter orders into it. Nothing wrong with charging a “market proposal fee” that could be in the thousands of dollars to cover your costs and incentivize people to only propose markets they really care about and are likely to be approved. Consider offering a reward to users who propose markets that successfully open. Have the reward value based on the total volume the contracts the market generated. Kalshi markets all the way down.
Lift the $25,000 per contract-account maximum. This limit reduces the incentives for many of the highest value participants to invest the resources it would take for them to join your market. Any limits should reflect actual risk management controls or regulatory restrictions, not just wanting to take things slow and easy.
Pick better ways to fund an account. Get rid of Plaid. At very least make it be an alternative choice rather than your default one. No reasonable person should be willing to give full access to their bank account away, and there are better rails available. Take credit cards if practical (with processor fee pass through), or just focus on wire transfers. Applying incoming wire transfers to account balances quickly should be a very high priority over almost any other operations task.
Fees are way too high. If you succeed, then you will be wildly profitable on de minimis fees. If you charge high and complicated fees now, you reduce the chances of hitting the tipping point. If it was me, I would start at maybe $0.001 per contract, take-out side only and announce that these fees will go down as volume goes up. If you can’t afford to offer very low pricing then figure out why not. If it is because of fixed costs, then who cares because if you succeed then they will not matter (raise more capital if you really need to, this is what VC is for and exactly what they are looking for). If it is because of variable costs, then you need to fix now this or you will go out of business if you ever do succeed. Do not plan for being mediocre in size or impact. Aim to be big and game-changing, or to fail fast trying!
Beter market data visualizations. Even I have a hard time reading Kalshi market data pages. I do not care that I can buy one contract at $0.75 and you should not care about users who do. I want to know, at a glance, things like “what is my average cost per contract to buy 1000 contracts?”. I am partial to DepthCharts and think something like this would work well for your market structure. I understand that right now you might be reluctant show views that are unflattering to your current liquidity levels, but again you must aim high now to become big!
Better API connections. First there needs to be a market data firehose with real time updates on all contracts. Give it away. This encourages people to build views that your users want. Some will create Kalshi plug-ins for spreadsheets and others will build Kalshi widgets that other websites can display on their pages. It all drives interest and orders to your markets. Next there needs to be a programmatic way to quickly and reliably get orders into the system. Offering these will enable market participants to help you to build liquidity. There are already opportunities for things like arbitraging between Kalshi and other marketplaces and automated internal market making activities, give people the access they need to take advantage of them. If you allow “meta-markets” above then people will create the markets that they will then create the liquidity on.
PS: If you give me a market to make efficient, long-term bitcoin downside bets, I will come at that market like a spider monkey.
Great points, Josh. To amplify your comment about fees, why is the fee schedule so complicated? “…a variable percentage fee on the expected earnings…” Huh? What behavior are they trying to incent? Doesn’t seem to be very user friendly.
Separately, what are the differentiators from PredictIt?
(I realize PredictIt is only political election results. I could see Kalshi adding them as propositions.)
The limitations on maximum number of traders and maximum bet size in PredictIt’s no-action letter make it a toy market at best. You need to be able to deal in $millions USD before it is worth it for smart money to allocate attention and resources to a new venue. Predictit is great for expressing your personal opinions and having gambiling-ish fun, but not much more.
…and political outcomes only represent a tiny, tiny fraction of the interesting questions prediction markets can cover.
Tertiary want: Atomic order batches. These let you enter 2 or more take-out orders as a group with the guarantee that either all the orders get executed or none of them. That is especially useful for letting participants arbitrage between tiers in ranged markets. These can be tricky to implement because they can cause blocking between order books, so pricing to enter one of these orders should reflect those real costs and thus incentivize their proper use.
How do you design that without all the messy problems that come along with order delivery?
Which messy problems?
As soon as you give a participant or a market the ability to say, “Oh wait a sec, I can’t accept that fill because a) the other leg of my trade didn’t get filled, or b) someone else traded ahead, or c) whatever” you open up a whole can of worms.
You can only include “take-out only” orders in a batch, so I think no issues. Either they all find matches on their respective books, or none execute. Either way the determination takes place during a single time step and is not dependent on anything outside the system. Make sense?
Yes, that could work for a single market, or possibly multiple markets with bilateral agreements to honor each other’s books (and wait as long as it takes to do so.) But as US market structure is currently built?
Kashi’s market is self-contained, so none of these issues!
From Scott Alexander:
>A prediction market will strike it big when it gets three things right at the same time:
> Real money
> Easy to use
> Easy to create your own subsidized markets
100% agree with real money – and I’d add that it even need to be significant amounts of money to be worth the effort for people who actually can add information.
I don’t even think “easy to use” is critical as long as you offer APIs so others can create easy to use access paths.
Create your own markets is also critical. No matter how well curated the markets on an exchange are, they will be incomplete. If you trust the market, trust it to pick your markets!
As someone who has considered providing liquidity on kalshi and other similar venues, you nailed some of my thoughts about kalshi right on the head! Especially the fee part. No sophisticated buyside is going to trade on kalshi with fees being to high and spreads so wide (and thus no sophisticated liquidity providers will join the market due to lack of interest, and the vicious cycle continues)
However, I think it’s also possible that binary options markets on underlyings that aren’t binary events themselves (such as the stock market) will never be that useful. Binary options are often terrible for hedges, as there is usually going to be a major mismatch on the pnl from the binary hedge versus the underlying at expiration if the underlying ends ITM (the same logic can be applied when using them for speculation). As Nassim Taleb wrote in Dynamic Hedging, they are also famously hard to hedge. Furthermore, what is a binary option but a verticle spread of vanilla options who’s strikes are infinitesimally close, meaning with a complete enough vanilla option market you can create binary (or nearly) payouts while not losing the flexibility of being able to create other payout structures (I realize you can technically also create a vanilla payout structure using a enough binary options strikes, but it would be a pain, and also very margin consuming for the sellers of the farther OTMs at the current margin requirements of kalshi).
Another concern I have about kalshi is that they don’t pay interest rates on deposits or more importantly collateral locked in trades. Usually in a binary option trade if one party pays the premium to the other up front, the FV of the option would be discounted by the rfr. If no cash flows are exchanged by either party until the expiration (or placed into a third party collateral account, which is what essentially happens on kalshi), then it is assumed both are making the rfr on their liabilities. Lack of ability to earn interest is going to be a major problem for the adoption of Kalshi’s longer tenors, especially while rates are so high.
>I realize you can technically also create a vanilla payout structure using a enough binary options strikes, but it would be a pain
This is where the title “Turing market” comes from – I think using this single market instrument (binary option) you can implement any other more complicated instrument. I agree that it is a pain, but that is a user interface issue rather than a market structure issue. As long as the underlying market is capable of supporting what you want to do, then your tools should figure out the best way to actually implement your intentions on the market substrate.
In computing, the Theory of Universal Computation says that you can implement *any* computable function using only NAND gates – and, in fact, there are chips that are basically just a fabric of NAND gates that you can configure to do whatever you want. To use them, you never actually even think about the gates yourself. More likely, you describe the computation you want done in a high level description language (HDL) and then there are tools that synthesize your description into the corresponding gates. A similar system could synthesize descriptions of trading intents to run on the substrate of binary options.
Do note that this is currently not practical on Kalshi for many reasons- including that fundamentally they do not support atomically linked orders. But these are details that could be fixed, and it is also possible to price in the slippage and risk that you get from non-atomic orders although it is not as good as having the market support them.
> Another concern I have about kalshi is that they don’t pay interest rates on deposits or more importantly collateral locked in trades.
I also have thought a lot about this limitation – especially since my dream trade is very large and very long term. :)
The most practical solution would just for Kalshi to invest the trade proceeds in the best matching bonds and notes and credit the interest to the winning side payout. You could factor these in and adjust your trade prices accordingly. I think this does mean that if you do offsetting trades then you are still out the underlying capital, but practically this could be fixed by issuing you the underlying bonds which you could then keep or liquidate.
More general I though would be to have the float be specified as part of the trade, so a bet might be “I bet that the Yankees will win the world series in 2035 and the backing capital in this trade will be invested in a Swiss annuity with CUSIP #X until then.” Then participants can price in this float when valuing the full trade, and there will be opportunities for arbitrage across, say, the same bet held in gold vs t-bills vs an escrow account at DBS bank.
Are there any better ideas on how to solve this float problem both efficiently and generally, while not adding counterparty risk back into the market?