Prediction market market making means posting buy and sell quotes for event contracts while managing the positions created by uneven fills. The aim is to earn a bid-ask spread, but stale quotes and one-sided trading can produce losses. Track completed trades separately from the value of contracts still held when evaluating the result.

Documentation checked September 19, 2026, at 4:12 p.m. ET. All prices below are hypothetical teaching inputs, not live odds. This article is educational and is not financial advice.

TL;DR

  • A quoted spread becomes trading profit only when the required executions occur, after costs.
  • Uneven fills leave inventory that can lose value before settlement.
  • A valuation mark does not guarantee an executable exit price.
  • Practice with a position ceiling and explicit cancellation rules; do not assume every displayed quote fills.

How does prediction market market making work?

A bid is an offer to buy; an ask is an offer to sell. Their difference is the bid-ask spread. A maker adds an order that rests on the book, while a taker executes against an available order. The CFTC's event-contract explainer describes a common binary structure with a fixed payout, usually $1, for the correct outcome. Read the specific contract rules because other payout structures exist.

For a standard $1 binary Yes contract, suppose a maker bids 48 cents and offers to sell at 52 cents. Buying and later selling the same quantity at those prices produces four cents per contract before costs. Posting both quotes does not establish that both will execute.

The maker also needs a defensible estimate of fair value. A midpoint between the best bid and ask describes the current book; it does not prove that the underlying event has that probability.

How quotes become inventory

Inventory is the remaining position after executions. If sellers repeatedly hit your bid while buyers leave your ask untouched, your Yes exposure grows. Adverse selection occurs when counterparties trade against quotes that are unfavorable to you, often because they react to information faster.

Polymarket's market-making documentation recommends adjusting quotes or sizes for inventory and cancelling stale orders. It also distinguishes passive orders from immediate rebalancing orders. A post-only instruction, where supported, prevents an order from immediately taking liquidity; it does not protect the position from later price changes.

On Kalshi, the documented binary order book reports Yes bids and No bids. A No bid of 48 cents corresponds to a Yes ask of 52 cents. That relationship helps read the book; it is not evidence that you can complete a round trip without costs or delay.

Platform funding and order rules differ. Polymarket's cited documentation requires the corresponding outcome tokens for sell orders. Do not assume an unfunded ask is possible, or transfer an order workflow between venues without checking it.

A worked inventory-risk exercise

Start a hypothetical account with enough cash to buy 100 Yes contracts. You buy all 100 at $0.48, spending $48. After that purchase, you offer the acquired contracts at $0.52. Only 40 sell, returning $20.80. The remaining 60 are marked at an assumed $0.35 for this exercise.

ComponentCalculationResult
Realized trading profit40 × ($0.52 − $0.48)+$1.60
Remaining inventory cost60 × $0.48$28.80
Remaining marked value60 × $0.35$21.00
Unrealized inventory loss$21.00 − $28.80−$7.80
Total marked profit or loss$1.60 − $7.80−$6.20

Check the result through cash flows: $20.80 received plus $21.00 of remaining value minus $48 spent equals a $6.20 loss. If total incurred fees were an assumed $0.40, the result would be a $6.60 loss. Those fees are an illustration, not a venue schedule; use the prediction-market fees guide to separate entry costs from later exit costs.

The $0.35 mark is a valuation input. It is not a promise that 60 contracts could be sold there. An actual liquidation may cross several price levels, especially in a thin book. The liquidity guide explains that execution problem.

To repeat the exercise in a spreadsheet, record quantity bought and purchase price, then quantity sold and sale price. Calculate remaining quantity as bought minus sold. Total marked profit equals sale proceeds plus remaining quantity multiplied by the selected mark, minus purchase cost and incurred fees. Keep assumed future exit costs separate.

Potential positives vs negatives

Two-sided quoting can provide useful liquidity and create opportunities to earn a spread. Polymarket documents separate liquidity-reward and maker-rebate programs, with different eligibility conditions. Check current terms; exclude uncertain incentives from a conservative practice calculation.

The costs include adverse selection and unwanted directional exposure. A wide spread may compensate for difficult execution or uncertain settlement. Faster software cannot resolve ambiguous contract wording, and a cancellation request can race against an incoming trade. Inspect confirmed order status before treating an order as gone.

What could happen from here

Base scenario: inventory remains manageable

Keep the same executions but mark the remaining 60 contracts at $0.50. Unrealized profit becomes $1.20 and total marked profit is $2.80 before fees. Stable fills within the exercise's position ceiling support continued observation. Repeated one-sided fills invalidate that assumption.

Upside scenario: the exit completes

If the other 60 contracts also sell at $0.52, total realized profit becomes $4 before costs and inventory falls to zero. Confirm every execution. An unfilled ask does not satisfy this scenario.

Downside scenario: the quote becomes stale

A new information release may reduce fair value before the maker cancels. The $0.35 case shows how the remaining position can outweigh completed spread gains. A breached position ceiling or unavailable market feed should trigger the exercise's stop-quoting rule; cancelling orders does not remove existing inventory.

What traders should watch next

Use this four-check worksheet before a paper exercise:

  1. Write the contract's resolution source and deadline. Confirm account eligibility under current platform restrictions.
  2. Set a maximum remaining position and a maximum assumed liquidation loss.
  3. Specify when quotes expire, including a pause before a scheduled information release.
  4. After each simulated fill, update inventory and distinguish realized profit from marked exposure.

For manual traders, the lesson is to measure unfilled exits. For developers testing automated quoting, it is to reconcile open orders and fills after a connection interruption. Simulated fills need conservative assumptions about queue priority; a historical price touching your limit does not establish execution.

FAQ

Does posting both sides remove directional risk?

No. Executions may be unequal. Any remaining Yes or No position retains exposure to the event and its settlement rules.

Can a maker lose money despite profitable completed trades?

Yes. In the exercise, $1.60 of realized profit is outweighed by $7.80 of unrealized inventory loss before costs.

Does this exercise use a ChartDojo prediction-market integration?

No. It is a standalone spreadsheet exercise. It does not claim that ChartDojo connects to either exchange or simulates its order queue.

Sources

The CFTC explainer supports the binary-contract definition. Polymarket's documentation supports its quoting and inventory workflow; Kalshi's documentation supports its complementary bid representation. Links appear next to those claims. The calculations and cover are original ChartDojo hypothetical teaching material, not measured returns or exchange data.

Build real skills, not bad habits. Practice trading decisions with AI-powered feedback from ChartDojo and start your free trial.