The price on your screen is a suggestion. What you actually pay gets decided in the fraction of a second after you click buy, and most of that machinery is invisible unless you go looking for it. On a centralized exchange your order hits a matching engine and gets compared against resting orders. On a DEX it routes through an automated market maker. On a prediction market you might touch both. Every one of those steps adds a cost or a risk that never shows up next to the price you were quoted.
Order matching and priority
Most exchanges run on price-time priority. Best price fills first, and when two orders sit at the same price, the earlier one fills first. So if you post a limit at $100 and someone already has a limit at $100, theirs clears before yours even if yours is bigger.
Some prediction markets and DEXs play by different rules. A few weight by size so bigger orders get priority. Others use pro-rata matching, where everything at a given price fills partially, in proportion to size. Which system you're on changes how you should place orders. On price-time, speed is the edge. On pro-rata, size is.
The hidden cost of market orders
Market orders guarantee execution, not price. The gap between what you expected to pay (usually the last trade or the displayed price) and your actual fill is slippage. In deep markets it's a rounding error. In thin ones it's real money.
And it isn't symmetric. Buying slippage tends to run smaller than selling slippage, because buys tend to land while prices are rising and sells tend to land while they're falling. Your realized spread, the distance between the price you bought at and the price you sold at, ends up wider than the spread you saw quoted.
On DEXs this gets ugly fast. Automated market makers use bonding curves, so the price climbs as you buy and drops as you sell. One large swap can move price 1 to 5% depending on how deep the pool is. Check the estimated slippage before you confirm, every time.
Latency and front-running
In traditional markets, high-frequency firms use raw speed to get in front of retail orders. In crypto the equivalent is MEV, maximal extractable value, where validators reorder the transactions in a block to skim value off pending trades. Drop a big buy on a DEX and you might find a bot slipped a buy in ahead of you and a sell in behind you, sandwiching your order for a profit that comes straight out of your fill.
Ways to make yourself a harder target: route through private transaction pools like Flashbots on Ethereum, set tight slippage limits on DEXs, and break big orders into smaller pieces. On a centralized exchange, using limit orders instead of market orders mostly kills the front-running problem, because a resting order is passive and there's nothing to race.
Maker-taker fees
A lot of exchanges charge makers and takers differently. Makers post limit orders and add liquidity; takers hit the book with market orders and remove it. The usual setup is a lower fee, sometimes an outright rebate, for makers, and a higher fee for takers. It's there to bribe people into providing liquidity.
If you trade a lot, that gap adds up. Say you pay 0.1% as a maker and 0.25% as a taker. That's 0.15% saved per trade just by resting instead of crossing. Run 500 trades a year on a $50,000 account and you're looking at roughly $3,750, which is often the whole difference between a green year and a red one.
A few changes that actually help
None of this is glamorous, but it compounds. Three habits move execution quality more than anything else for retail:
- Use limit orders for anything that isn't genuinely urgent.
- Split large orders into smaller pieces so you're not paying for your own market impact.
- Compare fee structures across platforms before you pick where to trade, not after.
Do those three consistently and you'll keep a chunk of return you were handing over without noticing. It won't feel like a win on any single trade. It shows up in the yearly number.