All research
12 min readMicrostructureMarket MakingEconomicsMethodology

6.7 cents a share: the retail and institutional gap in prediction-market liquidity

Unsubsidised spread capture at retail size on Polymarket loses about 6.7 cents a share, and holding to resolution costs exactly as much as crossing out. Markout said 1.7c and was flattering by four. This is the mechanism behind the number, including one structural property of binary complement markets that symmetric quoting cannot anticipate, and the size of the subsidy gap between the terms we could get and the terms a contracted desk gets.

Market making on prediction markets works. Polymarket runs a gated rewards pool reported at $100k a day for combination markets, five-figure daily pools for sports, and is hiring a director of institutional onboarding to bring market makers on. Firms quote these venues profitably, across several of them at once.

This post is about a narrower question, and the narrowness is the point: what does the unsubsidised, single-venue, retail-size version of that business cost, and how large is the gap between it and the version with access? Both halves are measurable. The answer to the first is about 6.7 cents a share. The answer to the second is roughly three orders of magnitude.

The measurement comes from two independent overnight runs, 1,395 marked fills and 35,198 shares. No orders were placed and no capital was at risk: a recorder publishes the universe it subscribed to, a quoting engine decides against exactly that universe, and a marker scores those decisions against the same tape. What that design can and cannot see is set out at the end.

First, the correction, because everything else depends on it

For most of this programme the headline number was −1.7 c/share. That number is markout: the fill price against the mid some seconds later. It is the right measure of whether a quote was good, and it silently assumes a costless unwind. It is not the cost of running the strategy.

Pricing the two exits a maker actually has closes the bracket. Same 637 settled fills, 16,252 shares, 95 of 108 conditions resolved:

Exit pathTotalPer share
Markout at 30s, marked to mid−$283.49−1.778c
Taker exit: cross the far side, pay the fee−$1,076.64−6.754c
Hold to resolution: no spread, no fee, just wait−$1,090.23−6.708c

Outcomes split 337 to 1.0 and 300 to 0.0, so this is not one side of the book being systematically wrong.

Markout was flattering the result by a factor of four, and every figure this programme published before that check was the best case. We are leading with this because it is the most credible thing in the file: it is the correction that made our own headline four times worse, found by pricing an assumption we had been making silently for weeks.

Holding does not rescue it, and that is the actual finding

The hope was reasonable. A binary settles at zero or one. A maker who never crosses pays no spread and no taker fee, only the wait. If the measured bleed were an artifact of assuming an expensive unwind, holding should recover most of it.

It recovers none of it. Holding costs −6.708c against crossing out at −6.754c, a difference of 0.05c.

The two agree because the adverse selection is informational, not transactional. The informed counterparty takes our quote precisely when the outcome is becoming knowable, so the terminal value moves against us by as much as the mid does. Holding does not avoid the loss, it defers realising it. Crossing out converts the same loss into spread and fee. That is why the bracket closes rather than spreading.

This matters well beyond our own numbers. It means the standard market-making intuition, that inventory risk can be managed by patience, does not transfer to event contracts. Patience is not a hedge against a counterparty who knows how the event resolves.

The shape of the loss

The single largest sample, 663 fills, 17,107 shares, 153 tokens over 10.3 hours. Cents per share, share-weighted, 90% bootstrap intervals:

Componentc/share90% interval
Edge captured+3.46[+3.29, +3.63]
Drift at 30s, adverse selection−5.15[−5.88, −4.48]
Markout at 30s−1.72[−2.40, −1.08]
Markout at 300s−2.96[−3.99, −1.92]

We capture the spread reliably. We give back about 1.35x what we capture. Half the captured edge is gone at thirty seconds. An interim cut at 450 fills gave −1.573; the full 663 gave −1.718. The estimate moved 0.15c on a 47% larger sample and never changed sign, which is what a stable result looks like rather than a threshold artefact.

No cut of the data produces a positive markout. By side, by spread at fill, by queue depth ahead, by mid: the best bucket in each cut is still negative. Wider spreads are less bad and still lose. That last point is the one to sit with, because it is the whole thesis in one line: the spread is efficiently priced to the toxicity. A wide spread is compensation for worse flow, not free money, which is why widening, re-selecting and re-timing all failed in the same way.

Two structural properties that make it worse

1. Taker flow is nearly all buying, and that drifts inventory short

In the measured window, 86% of taker flow was BUY: 482 buy against 76 sell, 558 trades in total, with each trade appearing once rather than being double-reported across the YES and NO legs.

The mechanism is a property of the instrument rather than of the participants. On a binary complement venue a bearish view is expressed by buying the complement, not by selling the thing you dislike. Selling YES and buying NO are the same trade economically, and the venue's design nudges everyone into the buy form of it.

The consequence for a maker is not symmetric. Our ask filled roughly 19 times for every bid fill, so inventory drifts short continuously. A symmetric two-sided quote does not anticipate that, and neither does the inventory term in the standard model, which assumes inventory arrives from both sides.

Two honest caveats, because this is the newest claim here and the one most likely to be wrong. The n is modest: 558 trades in one window, on the subset of markets that were both quotable and covered by our tape. And published panel-level work on Polymarket reports a 60/40 asymmetry in the other direction, which is a large enough disagreement that it has to be reconciled before anyone builds on our figure. The plausible reconciliations are token-side convention, the market subset, and the window. We have not done that work, and we would rather say so than quietly publish the more striking number.

2. The queue ahead eats most of what reaches you

The queue ahead absorbed 69% of every trade that reached our price, 1,355 shares against 787 fillable, which independently confirms an earlier estimate of roughly 73% arrived at a different way.

Combine the two and the retail maker's position is specific rather than merely unlucky. You are behind most of the queue, so you fill on the trades the queue did not absorb, which are disproportionately the large and informed ones. And the flow that reaches you is almost all in one direction, so what you accumulate is a one-sided position in exactly the markets where someone else knew more.

Why Avellaneda and Stoikov does not describe this

The quoting engine was built on the standard framework: a reservation price skewed by inventory, a half-spread with a floor set by the measured cost of waiting for a fill, requoting on a fixed cycle. It is the right starting point and it is the wrong model for this venue, for a reason that is structural rather than a matter of calibration.

Avellaneda and Stoikov prices inventory risk from diffusive price moves. The dominant cost here is informed flow, which the framework does not model at all.

The distinction is not academic. In the diffusive picture, holding inventory is risky because the price wanders, so the remedy is to skew quotes and wait, and the risk is symmetric and mean-reverting. Under informed flow the arrival of the trade is the information. The position is already wrong at the moment it is acquired. That is exactly what the hold-to-resolution result shows: waiting does not help, because there is nothing to wait for.

Three corollaries followed, and all three were confirmed. Widening had no predictive power at any threshold, because a wider spread selects for a counterparty who is more certain. Re-selecting markets by spread, queue or flow imbalance produced no positive bucket. And the price wings, which carry four to ten times the flow, were marginally less bad and still negative. Every lever the framework offers acts on the wrong term.

The one thing that worked, pre-registered, and still not enough

Time of day was the strongest signal in the data. Markout by New York hour showed three consecutive significantly negative hours, 20:00 to 22:00, averaging about −4c against a −1.72c baseline. That is US Saturday evening, when same-day sport resolves and news flow peaks.

The rule was found in the same data that would score it, so scoring it there would have been fitting noise. With twelve hour buckets, some look bad by chance. So we wrote the rule down before testing it, including the predicted magnitude: stand down entirely during those hours, cancel rather than leave quotes resting, everything else unchanged, expected result roughly −1.1c and still negative.

Then we ran it. 732 fills, 18,091 shares, 142 tokens.

QuantityValue
Predicted before the test~−1.1c, still negative
Measured−0.969c, interval excludes zero
Share of the loss removed44%
Share of the fills removed21%

The gate works. The effect is real, mechanically removable, and insufficient. What remains is a strategy that captures 3.77c and gives back 4.73c in every hour of the day, not just the bad ones. The toxicity is not concentrated enough to be gated away.

And applying the four-times correction: 44% of −1.72c still leaves −3.8c once the exit is priced properly. The best result this programme produced against its own pre-registration is a strategy that loses a little over half as much.

There is a methodological aside worth keeping. At a five-minute horizon the gate's improvement was larger and significant. We pre-registered thirty seconds. Promoting the horizon that worked, after seeing that it worked, is precisely the thing pre-registration exists to prevent, so it is recorded as an observation requiring its own confirmation rather than as a result.

The subsidy asymmetry, which is the actual finding

Two economic terms could in principle cover the bleed. Both were measured, and the difference between them is the whole argument of this post.

Maker rebates scale with your fills. Every fee schedule carries a rebate rate, and the pool is distributed pro rata by the fee value your own fills generated. Because every taker fill has a maker on the other side, the dilution cancels and it behaves like per-fill accrual. Applied to our actual fill prices it is worth +0.15 to +0.28 c/share. Against −1.72 that is a sixth of the bleed. Against −6.7 it is a twenty-fifth. It is also the one term on this venue that does not scale with balance sheet, which is worth noting precisely because everything else does. A caveat: this figure is read from documentation, not from a decoded credit.

Liquidity rewards divide by resting depth. The terms are public, there is no application and no minimum, and we qualified as built. The pools sit on deep geopolitical and macro markets with qualifying depth between 304,000 and 2.8m shares. A retail-scale quote across the twelve richest of them earns $3.13 a day, covering roughly 6% of the bleed at the flattering markout figure and about 1.5% at the real one.

Set that beside the terms that exist on the other side of the gate:

ProgrammeAccessScale
Liquidity rewards, open termsPublic, no application$3.13/day at retail size
Combination-market rewards poolGatedreported ~$100k/day
Sports poolsProgramme$10k to $15k/day

Three orders of magnitude, and the difference is not skill. The open programme divides by depth, so it pays balance sheet. The gated programmes require an agreement. This is what it means to call the economics access-conditional: the same quoting logic, the same book, the same adverse selection, and a completely different business depending on which side of an onboarding conversation you are on.

The corroborating evidence points the same way and did not come from us. Every prediction-market trading mandate we have seen advertised is multi-venue: four venues and 5,000+ event contracts, eight venues with four more being stood up, a sports desk ranked by volume on a US venue. Not one describes quoting a single venue's book and warehousing the result, which is exactly what we measured. And an independent study of a different venue under a different regulator found makers losing around 9.6% on average against takers at 31.5%: same direction, maker side loses, merely less than the taker side.

The mechanism that explains the difference is worth stating precisely, because it is not that big desks are better at quoting. Cross-venue quoting does not absorb adverse selection, it transfers it. The informed trader who runs you over on one venue hands you a position you offset on another. Our drift is a warehousing cost that a hedged desk never pays. Coverage does the rest: adverse selection averages across thousands of uncorrelated events in a way it cannot across dozens.

What is open

Three levers remain unmeasured rather than closed. Reference-anchored quoting, being paid for having a better price than the book, was never built; note that it is prediction rather than market making, and it needs an external reference that sports and politics do not obviously have. Cancellation speed has one negative result against it and is under-tested. Hyperliquid HIP-4 shows a different book profile and its adverse selection is unmeasured. Named, not attacked.

What this does not measure

These are marked fills, not live orders. The engine decided what it would quote and a marker scored those decisions against the tape the recorder captured. No orders were placed. That removes rejection and slippage from the numbers and cannot capture the effect our own resting size would have had on the book, or the queue position we would really have held.

It is one venue, over two overnight runs, one of which was a weekend evening in the window when US same-day sport resolves. Weekday flow runs on a different schedule and the time-of-day result in particular may transfer poorly. Roughly 73 minutes of one run is missing from storage because of recorder restarts; gaps reduce fills but do not bias markout.

The rebate figure is derived from documentation rather than from a decoded credit. The 86% buy-side figure disagrees with published panel-level work and is flagged above rather than defended. The screen behind all of this covers one venue in depth and three others at varying, lesser depth.

A negative result survives those limits. The direction is stable across two independent runs, every subgroup, three exit paths and a pre-registered intervention, and the correction we applied to our own headline made it four times worse rather than better. What the limits should stop you concluding is anything about the subsidised version of this business, which we did not measure and could not.