A prediction market contract pays exactly $1 if the thing happens and nothing if it does not. So if you can buy YES on one venue and NO on another for a combined total under $1, you keep the difference whatever happens — you hold both outcomes, and one of them pays.
That is the entire idea. It sounds like free money, and on a whiteboard it is. In practice three things stand between the price difference you can see and the money you get to keep, and none of them appear on a quote screen.
Fees are charged on each leg, and they are not flat
You pay to enter both sides. Kalshi charges a fee that is a curve rather than a percentage: largest around 50c, where uncertainty is highest, falling away towards either end. Polymarket US charges on its own schedule. A 2c gap between venues at even money can be entirely fee; the same 2c gap on a contract trading at 5c can be most of a real edge.
This is why a spreadsheet with a flat fee assumption will happily tell you to place a losing trade. The fee has to be computed at the price you are actually paying, on each leg separately.
The quoted price is for one contract
An order book shows the best price available, and usually very little size at it. Buying two hundred contracts walks up the book, and the average price you pay is worse than the number you saw — sometimes much worse on the thin, fringe markets where the largest gaps live.
So the real question is never "what is the edge?" but "what is the edge at the size I want, and how much size is there before it disappears?" An edge that exists for ten contracts is not a trade. You would fund two accounts, move money between them, and clear a few dollars.
The two markets have to settle the same way
This is the one that actually costs money rather than merely disappointing you. If the two contracts do not resolve identically you are not holding a hedge — you are holding two independent positions that happen to point in opposite directions. When they disagree you lose both legs, which is considerably worse than the trade you thought you were avoiding.
It happens more than you would think. Two venues ask what reads as the same question and name different resolution sources. They close eleven hours apart on the same event. One resolves on an official result and the other on a named data provider, and those two disagree once a season. The rules text is where this lives, and it is the part everybody skips.
What to check before you size anything
Read both rules texts, not both titles. Compare the resolution sources by name. Compare the close times, and treat a gap as serious in proportion to how soon the event resolves — eleven hours apart on something settling next year is noise, eleven hours apart on something settling tomorrow is a different contract. Then price the fees at your actual size on each leg, and check the depth on the thinner side.
If that sounds like a lot of work to do by hand across thousands of markets several times a day, that is roughly why ArbScout exists.
Read next
ArbScout does this for you, every six hours
Both venues matched on their resolution rules, both order books walked to your size, and the fees each venue really charges already taken out.