Strategy and risk

How prediction market manipulation works: five categories, and we hold a primary document for none of the cases

Five manipulation categories on Kalshi and Polymarket, priced from published fee schedules. Every case our corpus names is unsourced, and we say so.

Last checked 5 August 2026 · 14 sources · 3 not yet stamped

Manipulation of an event contract is a purchase, and the decision behind it is arithmetic: if changing the outcome costs less than the position pays, someone will change the outcome. That is the whole mechanism, and it is why the cases in this niche cluster on markets where the real-world event is small, cheap and reachable by one person, rather than on elections or Fed decisions. The five categories below are separated by what gets bought: the outcome, the information, the tape, the rulebook, or the audience. Every named case we have is a summary in our own research corpus with no filing, docket, court, case caption or article behind it, including all four cases this page was commissioned around. We print them anyway, labelled, because a page about deception that hides its own evidence gap is doing the thing it warns about.

What we can price at source is the cost side, and it splits cleanly in two. On Polymarket the schedule is published and unambiguous: makers are charged 0.00, which is zero rather than a discount, and a taker fill in a geopolitical market carries a coefficient of 0.00 as well. On Kalshi there is a hole where the equivalent number should be. Kalshi's own newsroom says resting orders are fee-exempt while Kalshi's own help centre says maker fees are charged, the two have never been reconciled in public, and neither document gives a coefficient anyone can cite. So the cost of posting a resting order on the larger US-regulated venue is not a fact you can look up today. That matters here more than on any other page, because a resting order you intend to cancel is the core tool of the third category below.

Status as of 19 August 2026. Polymarket per-category taker coefficients read from each market's feeSchedule object on the Gamma API on 4 August 2026, schedule version 2026-08-04.a. Kalshi's taker formula read from docs.kalshi.com. A Polymarket referral code exists on our scanner page and has earned nothing to date; whether this site ever takes referral revenue is undecided. Our own paper trade log stands at 10 trades, 6 closed, net -$28.30 on $500 deployed.

The one fee number this page cannot give you, and why that absence is the story

Every other page in this niche will hand you a Kalshi maker rate. We are not going to, because there is no published one to hand over. Here is the entire evidentiary position in one block, so that nothing below can be read without it:

What the document isWhat it says about Kalshi maker feesWhat it is worth
Kalshi newsroomResting orders are fee-exemptKalshi's own words. Directly contradicts the row below
Kalshi Help Centre, read 5 August 2026Maker fees are chargedKalshi's own words. Directly contradicts the row above. Gives us no coefficient we can quote
docs.kalshi.comTaker only: roundup(0.07 x C x P x (1 - P)), sub-penny rounding, whole-cent rebate accumulatorSourced, and silent on makers
scanner/fees.py:74, our codeModels Kalshi maker fees at a 0.0175 quadratic coefficient, applied at line 152 in the same form as the taker rateOur scanner's working assumption and nothing more. Not a Kalshi figure, not published by Kalshi, not verified against either Kalshi document above. We run it because the scanner needs some number to run

Three things follow, and all three are load-bearing for the rest of this page. First, nobody outside Kalshi currently knows whether a maker is charged at all, so nobody can price a resting order on that venue, ourselves included. Second, any comparison table that prints a single Kalshi maker figure without that caveat is dressing our kind of guess in their kind of certainty. Third, this contradiction sits in two documents the venue itself publishes, it is free for anyone to check, and as far as we have found no competitor page has written it up. The absence of the number turns out to be more useful than the number would have been.

The general rule we apply to ourselves: a number in our scanner's source code is a working assumption, a number in a venue's published schedule is a fact, and this page never lets the two wear the same clothes.

What we hold behind each case, before any of them is described

This table comes second for the same reason the last one came first. Other pages could describe these cases; the column on the right is the one none of them fill in.

Case as our corpus records itCategoryWhat we actually hold
A market paid out minutes before Spotify deleted 523,000 fraudulent streams (a count of streams deleted, not of trades or accounts)Buying the outcomeCorpus summary. No document. No article, no market URL, no resolution page, no date
A hairdryer used to spoof a weather sensorBuying the outcomeCorpus summary. No document. Venue, date and market all unrecorded in our notes
Mention markets producible by whoever controls a teleprompter or a scriptBuying the outcomeStructural observation, not a case. The fee category is verified at source; we hold no allegation about any specific market
A Google employee charged over a bet on search terms, sum recorded as $1.2 millionKnowing the outcomeCorpus summary. No docket, court or case caption. A charge implies a filing exists. We have not pulled it
Roughly a quarter of Polymarket trades are wash tradesFaking the tapeCorpus summary. No author, paper or URL. Recorded as a share of trades, not of volume or of accounts, and we cannot confirm which
A market settled at 39.5% rather than YES on a death carveout allegedly not disclosed until after airstrike reports circulatedThe rulebookCorpus summary, recorded as an allegation. We have not pulled the market's rules text

Four of those six are the cases this page exists to cover, and not one is a citation. Read what follows as a taxonomy of mechanisms, checkable against published fee schedules and market structure, rather than as a record of proven events.

Category one: buying the outcome, because on a thin book that is the cheap side

An event contract pays $1.00 or $0.00 against a stated resolution source. Where that resolution source measures something a single person can physically influence, the contract has an attack surface a financial market does not, and the cost of the attack is the cost of influencing the thing rather than the cost of moving the price.

That is why the corpus cases have the shape they do. A weather sensor is a physical object. A stream count is a database row. A mention on a broadcast is a sentence somebody chose to say. In all three the manipulation happens off-venue and the book sees nothing unusual, because from the order book's point of view the outcome simply occurred.

Mention markets are the clearest example, and the one where we can point at something verified rather than summarised. Polymarket runs mentions as one of its eleven fee categories, carrying a taker coefficient of 0.04, read from the per-market feeSchedule object on 4 August 2026 at schedule version 2026-08-04.a. The category exists, it is priced, and the contract asks whether a named person says a specific phrase inside a stated window. The population able to produce that outcome is small and, on a scripted broadcast, identifiable in advance. That is a property of the contract type, not an accusation about any market, and we hold no document alleging a specific instance.

The Spotify case is worth stating carefully, because the interesting part is not that the market was wrong. Our note records that it paid out minutes before Spotify deleted 523,000 fraudulent streams, which means the contract settled correctly against its resolution source at the moment of settlement and the resolution source changed afterwards. Nothing on the venue malfunctioned. The trade was the data feed, and whoever knew the deletion was coming knew the settlement was already stale. The pre-entry version of that check is reading a market's rulebook, and the mechanics behind it are in how event contracts settle.

Category two: knowing the outcome, which the contract type creates by itself

The Google case in our corpus, a charge over a bet recorded at $1.2 million on search terms, points at a category rather than proving one: contracts written on a company's own internal metrics create a population of people who can see the outcome before the market can. That is structural. Any market on platform data, corporate figures or an internal decision has a set of employees for whom the contract is not a forecast at all.

We hold no docket number, court or case caption for that matter, so treat it as a pointer to the category and not as a citation. What survives without the docket is the reasoning: before entering, ask who already knows, and whether the number of such people is in single digits. Where it is, the community's word for what you are up against is adverse selection. Your order is not filled at random, it is filled first by whoever saw the news first, and that feels like bad luck rather than a structural loss. The same mechanism is taken apart at length in maker vs taker.

Our own tooling has nothing to add here. The signal collector runs on a 30-minute cycle, orders of magnitude too slow to observe quote lag, the mechanism by which informed flow arrives ahead of everyone else. We do not measure it, so we publish no number about it.

Category three: faking the tape, which the fee schedules do not make expensive

Wash trading and spoofing target the display rather than the outcome. Wash trading manufactures volume by trading with yourself, and volume is both the metric easiest to produce and the metric most affiliate pages lead with. Spoofing posts orders you intend to cancel, so a thin book looks deeper than it is.

One cost fact follows directly from both published fee schedules, and it survives the Kalshi maker question entirely. Both venues compute fees on rate x C x P x (1 - P), where C is the number of contracts traded. An order cancelled before it fills has C of zero, so it generates no fee under any reading of any document above. That is derived arithmetic from the published formulas rather than a policy statement, and it is why the pure spoofing case is cheap on both venues regardless of how the maker contradiction is eventually resolved.

The resting order that does fill is where the two venues part company, and where we have to stop:

VenueCost of a resting order that fillsBasis
Polymarket0.00. Makers are never charged. Zero, not a discountPublished schedule, read 4 August 2026 at version 2026-08-04.a
KalshiNot known. Its newsroom says resting orders are fee-exempt, its help centre says maker fees are charged, and no public reconciliation exists. Our scanner assumes a 0.0175 coefficient so that it can run, which is our assumption and not Kalshi's numberTwo contradictory Kalshi documents, plus scanner/fees.py:74, which is our own code

So the honest version of the sentence every other page writes is this: on Polymarket the fee schedule imposes no cost on a resting order, and on Kalshi nobody outside the venue can say what a resting order costs. Neither statement makes anybody a manipulator. Both are facts about documents.

Then the wash-trading estimate. Our corpus carries the claim that roughly a quarter of Polymarket trades are wash trades, and we hold no author, paper or URL for it, so it is not a finding. We print the figure rather than suppress it, on the condition that the caveat travels with it, and there is a second caveat that matters more:

> Polymarket trading is publicly visible on-chain. Kalshi's is not. A share-of-trades estimate like this can only be computed on a venue whose trade record is public. The venue that generates a frightening wash-trading number is therefore the venue whose data anybody can audit, and the absence of an equivalent Kalshi figure is evidence about data availability, not about Kalshi's book.

That asymmetry cuts against a comparison the affiliate pages in this niche make casually, and together with the maker contradiction above it is the pair of findings this page exists for.

Our own scanner cannot separate manipulation from information, and its largest signal type is the ambiguous one

The tenth of the ten questions our community research found asked constantly and answered nowhere is exactly this: how to tell manipulation from genuine movement in a thin market. We have not solved it either, and our own tooling shows why.

The signal collector scans 500 markets across 8 tags and emits three signal types. None of them tests intent:

Signal typeWhat it fires onWhat it cannot distinguish
SPREAD_EDGEWide bid-ask together with high volumeA naturally thin book from a book being widened deliberately
VOLUME_SURGEVolume without corresponding price movementAccumulation by an informed buyer from wash trading, which makes the same shape
PRICE_MOMENTUMDirectional moves with volumeInformation arriving from a push being manufactured

VOLUME_SURGE is the problem case, and not a marginal one. In the most recent run of that collector, 29 signals were emitted from 500 markets: 6 spread, 22 volume, 3 momentum, with 20 opportunities written to the snapshot. That is a per-run count from one run of one collector and not a rate. Twenty-two of twenty-nine signals came from the category that reads volume without price movement as whale accumulation, and volume without price movement is also the exact signature of wash trading. Our own documentation calls that pattern accumulation. It is a reading, not a detection, and this is the page where we say so.

Two further limits bound everything above. Polymarket's Gamma API exposes bestBid and bestAsk only, so we see the top of the book and not its depth, which means we cannot price what it would cost to move any given market, and neither can any competitor working from the same endpoint. And we run two collectors deliberately unmerged: a history collector covering roughly 9,000 markets across both venues, and the 500-market signal collector above. No metric on this site is computed across both, because their universes, start times and selection criteria differ.

The category most often called manipulation is usually the rulebook working as written

A large share of the accusations in the complaint corpus are not manipulation at all. They are settlements the trader disagreed with, decided by rules the trader did not read. The distinction matters because the defence is completely different: against manipulation there is often nothing you can do, and against a carveout there are two minutes of reading.

Our corpus records a market settling at 39.5% rather than YES on a death carveout allegedly not disclosed until after airstrike reports were already circulating. We have not pulled that market's rules text, so we cannot tell you what the clause said or when it was published. What we can tell you is the structural arrangement, and it is the same on both venues: the party writing the rulebook is the party deciding the settlement. The Massachusetts Attorney General's complaint concerning Kalshi describes the exchange as writing the rules for the contract and determining the basis for settlement with no independent intermediary. That characterisation is theirs, not ours, and we hold no case caption or docket number for it.

Whether any appeal path exists is the third of the ten unanswered questions, and we have found no published answer for either venue. Neither publishes post-mortems on contested resolutions, and structurally neither can, since each is a party to every dispute on its own book. Where a complaint goes instead, and in what order, is set out in support escalation. We describe that ladder as a sequence of steps and print no dollar figures anywhere on it, because the filing costs and fee schedules attached to the regulatory rungs are documents we do not hold, and an invented amount would be exactly the defect this page is about.

The related failure of responsiveness is at least measurable: Kalshi's Better Business Bureau profile records 214 complaints of which 174 are closed without a response from the business, which is 81%. That is a count of complaints unanswered on a public channel, not a fraud rate and not a satisfaction score, and it has no denominator, because no active-trader count is published anywhere we have found.

The fifth category never touches the order book

The last category manipulates the audience rather than the market: staged winning-bet videos, paid posts, screenshots of positions that never resolved. It is the form most readers will actually meet, and the defence against it is public arithmetic. A payout claim implies a contract count and an entry price, and on Polymarket both imply a fee you can compute from the published formula. On a claimed Kalshi fill you can check the taker side and no further, for the reason set out at the top of this page. The checks are in how to spot a staged winning-bet video, including the tell that real fills are almost never round: the five positions our paper trader opened on 28 July 2026 filled at $0.9296, $0.8784, $0.8573, $0.8693 and $0.2965.

What it costs to take size, from the published schedules

Manipulation carries a fee bill like any other trade, and its shape tells you where the cheap corners of the board are. Both venues charge takers on rate x C x P x (1 - P), where C is contracts and P is the entry price. That term is a parabola, so the fee peaks at $0.50 and falls away at both ends. The taker column below is fully sourced. The maker column is sourced for one venue and openly unresolved for the other, and that asymmetry is printed in the table rather than parked in a note under it.

Venue and categoryTaker coefficientMaker coefficient
Polymarket, crypto0.070.00, published
Polymarket, sports, economics, culture, weather, other0.050.00, published
Polymarket, finance, politics, mentions, tech0.040.00, published
Polymarket, geopolitical0.000.00, published
Kalshi, all markets0.07, result rounded up to the next whole centUNRESOLVED. No coefficient printed here. Kalshi's newsroom says resting orders are fee-exempt, Kalshi's help centre says maker fees are charged, and the two have never been reconciled in public. Our own scanner runs on a 0.0175 assumption; that figure is ours, not Kalshi's, and it is not evidence about Kalshi

Two consequences, and neither depends on the missing number. First, a taker taking size in a Polymarket geopolitical market pays the venue 0.00, so the fee schedule imposes no cost at all on aggressive flow in exactly the category where information asymmetry is largest. Second, Kalshi's rounding rule pushes cost into small orders in the longshot corner of the board: one contract at $0.03 generates a raw taker fee of $0.002037, which rounds up to a full cent, so you pay 4.9 times the unrounded rate and that penny is 33% of your $0.03 stake. Both are reproducible in the Kalshi fee calculator and the Polymarket fee calculator, which price the taker side only, for the same reason this table does.

Neither point claims anyone is doing this. Both are properties of documents the venues publish, checkable without trusting us.

What we could not verify

This section is the point of the page, and on this topic it runs longer than usual.

  • Kalshi's maker fee, which is the largest hole on the page. Two Kalshi documents contradict each other on whether makers are charged at all, and neither gives a figure anyone can cite. We have not pinned the newsroom statement to a canonical URL with a read date. The 0.0175 coefficient in our own scanner/fees.py is a working assumption that lets the scanner run, and it is not a fact about Kalshi. Until this is reconciled against a primary source, the cost of a resting order on Kalshi is unknown, and so is what spoofing costs there.
  • The Spotify market. No article, market URL, resolution page or date. Our corpus records the outcome and the 523,000 figure as a count of streams deleted, and nothing else.
  • The weather-sensor case. A hairdryer used to spoof a sensor. No venue, no date, no market, no source.
  • The Google employee charge, recorded at $1.2 million on search terms. A charge means a filing exists. We hold no docket number, court or case caption, and we have not pulled it.
  • The wash-trading share estimate for Polymarket. No author, paper or URL. We do not know whether it counts trades, volume or accounts; our note says trades.
  • The death carveout settlement at 39.5%. We have not read the market's rules text. Our own note carries the word "allegedly".
  • The Massachusetts Attorney General complaint. No case caption, court or docket number in our notes.
  • The Better Business Bureau count of 174 of 214. Our notes do not preserve the date the profile was read. Complaint counts move.
  • Every cost, threshold or filing fee attached to the regulatory rungs of a complaint. We describe that path as a sequence of steps and quote no amounts, because we hold no source for any of them.
  • Order book depth on either venue. Gamma exposes bestBid and bestAsk only, so nothing here quantifies what it costs to move a market.
  • Whether either venue runs surveillance for wash trading or spoofing, and what it does when it finds it. We have read no published policy from either.
  • Polymarket's fee page in human-readable form. docs.polymarket.com/programs/builders/fees has never been fetched by this project. Our coefficients come from the per-market feeSchedule object instead.
  • Whether Polymarket rounds fractional fees, and how. Kalshi's taker formula rounds up explicitly; we hold no equivalent statement for Polymarket, and at small size rounding is the difference between the table above and what you pay.

The questions people actually type

Can prediction markets be manipulated? Yes, and the cheapest route is usually changing the real-world outcome rather than the price. Our corpus records a weather sensor spoofed with a hairdryer, and a market that settled minutes before 523,000 fraudulent streams were deleted. We hold no source document for either. The structurally exposed contract types are those resolving on small, physical or platform-controlled facts.

Does Kalshi charge maker fees, and what does that mean for spoofing? Nobody outside Kalshi can currently say. Kalshi's newsroom states resting orders are fee-exempt and Kalshi's help centre states maker fees are charged, with no public reconciliation, and neither gives a coefficient. Our scanner assumes 0.0175 so it can run, which is our assumption and not Kalshi's number. Kalshi's taker rate, 0.07, is published and not in doubt.

How much does it cost to manipulate a prediction market? We cannot tell you, and neither can anyone working from the same data. Polymarket's Gamma API exposes bestBid and bestAsk only, so nobody outside the venue sees order book depth. What we can price is one venue's cut: Polymarket charges makers 0.00 and takers 0.00 in geopolitical markets, and a cancelled order costs nothing anywhere, because both fee formulas multiply by contracts traded.

Is wash trading common on Polymarket? An estimate that roughly a quarter of Polymarket trades are wash trades circulates in our corpus with no author, paper or URL, so we do not treat it as a finding. The point most pages miss: Polymarket trades are publicly visible on-chain and Kalshi's are not, so a figure of that kind can only be computed for one of the two venues.

How do I tell manipulation from real news in a thin market? Nobody has published a reliable method, including us. It is the tenth of the ten questions our community research found asked constantly and answered nowhere. Our scanner emits three signal types and none tests intent: in its most recent run, 22 of 29 signals came from the volume-without-price-movement category, which is also the exact signature of wash trading.

Are mention markets rigged? We hold no document alleging that any specific mention market was manipulated. What is verified at source is that Polymarket runs mentions as one of eleven fee categories at a taker coefficient of 0.04, and that a mention outcome can be produced by whoever controls a script or a teleprompter. That is a property of the contract type, not an allegation.

Do Kalshi or Polymarket police manipulation? We have read no published surveillance or enforcement policy from either venue, so we cannot tell you. What we can tell you is the structure behind disputes: each venue writes the rules for its own contracts and determines the basis for settlement. Kalshi's Better Business Bureau profile shows 214 complaints with 174 closed unanswered, which is 81%.

What is the best defence against all of this? Read the resolution source before you enter, not after you disagree. Most losses filed as manipulation in the complaint corpus are settlements decided by rules nobody read: our corpus records one market settling at 39.5% rather than YES on an alleged death carveout. Carveout-hunting takes minutes, and it is the only defence that works before the fact.

Sources

3 of these 14 entries are held in our notes but the primary document has not been re-read and linked yet. They are marked below rather than mixed in with the rest.

  1. https://docs.polymarket.com/ per-market feeSchedule object, per-category taker coefficients, maker 0.00, and the fact that Gamma exposes bestBid and bestAsk only. Read 4 August 2026, schedule version 2026-08-04.a.
  2. https://docs.polymarket.com/api-reference/geoblock country status endpoint, read 5 August 2026. Carries no date and no version number.
  3. https://docs.polymarket.com/programs/builders/fees cited because it is the gap. Never fetched by this project.
  4. https://docs.kalshi.com/ taker formula roundup(0.07 x C x P x (1-P)), sub-penny fee rounding, whole-cent rebate accumulator. Carries no maker coefficient we are able to cite.
  5. https://help.kalshi.com/ Kalshi Help Centre, read 5 August 2026. Cited only for the position that maker fees are charged. It is NOT the source of any maker coefficient on this page, and we quote none from it.
  6. Kalshi newsroom statement that resting orders are fee-exempt : URL to be stamped before publish. Cited only because it contradicts the line above.not yet stamped
  7. scanner/fees.py:74 (our own code) : KALSHI_MAKER_RATE = 0.0175, marked "quadratic, NOT a flat percentage", applied at line 152. This is OUR scanner's working assumption. It is not a Kalshi figure and not a verified fact about Kalshi.
  8. https://polymarket.us/ read 5 August 2026. Names no operator, no registration status, no state list.
  9. Commonwealth of Massachusetts Attorney General, complaint concerning Kalshi : case caption and docket number to be stamped before publishnot yet stamped
  10. Better Business Bureau complaint record, 174 of 214 complaints closed without a business response : profile URL and read date to be stamped before publishnot yet stamped
  11. The Spotify stream-deletion market, said to have paid out minutes before 523,000 fraudulent streams were deleted : NO DOCUMENT HELD. Corpus summary only, listed because it is cited in the body.
  12. The weather-sensor case, a hairdryer said to have been used to spoof a sensor : NO DOCUMENT HELD. Corpus summary only.
  13. A United States charge against a Google employee over a bet on search terms, sum recorded as $1.2 million : NO DOCKET, COURT OR CASE CAPTION HELD. Corpus summary only.
  14. An estimate that roughly a quarter of Polymarket trades are wash trades : NO AUTHOR, PAPER OR URL HELD. Corpus summary only.