Price impact is the price movement a single trade causes by consuming pool depth. It depends on the fraction of the reserves the trade takes, not on its dollar size, and it is computable from the pool's current state before the trade is signed. It is distinct from slippage, which is the gap between the quote a trader was shown and the price they actually received.
One trade produces two impact numbers that are routinely reported as one: the average price the trader received, and the marginal price the pool is left quoting afterwards. In a constant-product pool the second is roughly double the first, so any model that does not say which one it means is out by a factor of two.
Scroll to see the full diagram
Impact is a ratio, and that is the whole insight
In a constant-product pool, the price is the ratio of the reserves and every trade changes that ratio.1 What determines the move is the fraction of the reserve your trade consumes. A $10,000 buy against $100,000 of quote-side reserve and a $1,000,000 buy against $10,000,000 of reserve produce identical percentage moves, because both consume 10%.
The relationship is not linear. Consume 2.5% of the reserve and the pool's quoted price moves about 4.8%. Consume 5% and it moves about 9.3%. Consume 10% and it moves about 17.4%. Doubling the trade more than doubles the damage, and the curve steepens the further out you go, which is why a pool that felt adequate in testing can behave badly the first time somebody trades at real size.
The design consequence follows immediately. Price impact is not a property of your token, your community or your narrative. It is a property of one number, the reserve, that you chose at seeding and can change at any time by adding to it.
One trade, two numbers, and why both are called price impact
Every swap has an average execution price, which is the total received divided by the total sent, and it is worse than the pre-trade price because the curve moved while the trade was filling. Every swap also leaves the pool quoting a new marginal price, which is worse still, because the marginal price reflects the full reserve change and the average does not.
Both get labelled price impact in different places. Trading interfaces usually show the first, since it is what the trader pays. Charts, oracles and everybody else see the second, because it is the price the pool now quotes. The formal literature on constant-product markets works with the marginal price when analysing arbitrage and price dynamics, since that is the number an arbitrageur trades against.2
Neither is wrong. Reporting one without saying which is, and in a constant-product pool the gap between them is close to a factor of two.
The arithmetic, shown in full
Take a pool holding 5,000,000 project tokens and $500,000 of stablecoin. The product of the reserves is 2,500,000,000,000 and the quoted price is $0.10. A holder sells 250,000 tokens, which is 5% of the token reserve. Fees are excluded to keep the impact arithmetic clean.
After the sale the token reserve is 5,250,000, so the stablecoin reserve has to be 2,500,000,000,000 divided by 5,250,000, which is $476,190.48. The seller therefore receives $23,809.52. Their average execution price is $23,809.52 divided by 250,000, or $0.09524, which is 4.76% below where they started.
The pool is now quoting $476,190.48 divided by 5,250,000, or $0.09070. That is 9.30% below the pre-trade price. One trade, two numbers, both correct, both called price impact by somebody.
Anything the difference between them touches is worth checking. If your model sizes a treasury sale using the execution number and forecasts the resulting chart using the same figure, it has understated the price effect by nearly half.
Impact does not stop at the trader
The marginal price a pool is left quoting is what everything downstream reads. Any contract taking a spot price from a shallow pool inherits the full move from the last trade, which is why the original Uniswap v2 design accumulates the relative price at the beginning of each block so other contracts can compute a time-weighted average over an interval instead.1 A spot read from a thin pool is not a price, it is the residue of whoever traded last.
For a project this becomes a real exposure the moment anything is collateralised, borrowed against, or settled at an onchain price. A trade large enough to move the pool 20% is also a trade large enough to trigger whatever is keyed to that number, and the cost of arranging both is the cost of the trade. Surveys of AMM-based exchange designs treat this manipulability as a first-order property of the model rather than an implementation flaw.3
Sizing a pool from an impact budget
Work backwards, and use one method consistently. Name the largest single trade the design has to absorb. Name the price move you will accept for it, and say explicitly whether that is the execution figure or the marginal figure. Then solve the curve for the reserve that satisfies it.
Do it for at least three trade sizes rather than one, because the impact curve is convex and a single point tells you nothing about its shape. The output is a depth target the pool must hit before launch proceeds, expressed as a number that somebody has to fund. That is a more useful artefact than a liquidity percentage in an allocation table, and it is the same conversation held in units that mean something.
Paradigm's decomposition of decentralised exchange trading cost keeps price impact separate from trading fees, slippage and gas for exactly this reason: only the first responds to how you seeded the pool.4
The mistakes that show up in launch models
Designing for the wrong trade distribution is the common one. A pool sized for $2,000 retail buys is hostile to the seed investor unwinding a position, and a pool sized for institutional flow is expensive to fund and mostly idle. The distribution comes from your cap table and your community, and it is knowable before launch.
Quoting a single impact figure is the second. Impact is a curve. One number from the middle of it describes nothing.
The third is treating impact as a marketing problem. Low price impact does not mean the token is healthy, it means the pool is deep. Those are different claims, and only one of them says anything about whether the business underneath the token is working.
Common questions
How do you calculate price impact on a DEX?
For a constant-product pool, take the fraction of the reserve your trade consumes. If you sell tokens equal to 5% of the token reserve, the pool's quoted price ends roughly 9.3% lower, while your own average execution price lands roughly 4.8% below where it started. Both figures come from the same reserve arithmetic, and both are computable from the pool's current state before you sign.
Is price impact the same as slippage?
No. Price impact is what your trade does to the price because of pool depth, and it is deterministic given the reserves. Slippage is the difference between the price you were quoted and the price you got, which is caused by other transactions landing between the two. A quote that already prices your size can produce zero slippage and substantial price impact on the same trade.
How much liquidity do I need to keep price impact low?
It depends entirely on the trade sizes you have to service. Because impact scales with the fraction of the reserve consumed, halving the acceptable move roughly doubles the reserve you need. Decide the largest trade the pool must absorb, decide the move you will accept for it, state whether you mean the execution price or the resulting pool price, then solve the curve for the reserve.
Why does price impact matter beyond the person trading?
Because the price the pool is left quoting is what everything downstream reads. Contracts pulling a spot price from a shallow pool inherit the full move from the last trade, which is why time-weighted averages exist. If anything in your system is collateralised or settled at an onchain price, a trade large enough to move the pool is also large enough to move whatever depends on it.
See Tokenomics Design for how this applies in practice.
Sources
- Uniswap v2 Core
Hayden Adams, Noah Zinsmeister, Dan Robinson (Uniswap / Paradigm), 2020
Constant-product pricing on pooled reserves, and the per-block price accumulator that lets other contracts compute a time-weighted average instead of reading spot. - An Analysis of Uniswap Markets (arXiv:1911.03380)
Guillermo Angeris, Hsien-Ting Kao, Rei Chiang, Charlie Noyes, Tarun Chitra, 2019
Formal analysis of constant-product market price dynamics and arbitrage behaviour against the pool's marginal price. - SoK: Decentralized Exchanges (DEX) with Automated Market Maker (AMM) Protocols (arXiv:2103.12732)
arXiv preprint, 2021
Systematisation of AMM exchange designs, including price manipulability as a structural property of pooled pricing. - Understanding Automated Market-Makers, Part 1: Price Impact
Paradigm, 2021
Keeps price impact separate from trading fees, slippage and blockchain transaction fees when decomposing the cost of a trade.
Last reviewed 2026-08
More in Launch and Markets
- Token generation event (TGE)
- TGE float
- Effective sellable float
- Initial coin offering (ICO)
- Initial DEX offering (IDO)
- Initial exchange offering (IEO)
- Decentralized exchange (DEX)
- Automated market maker (AMM)
- Liquidity pool
- Concentrated liquidity (V3) versus constant-product (V2)
- Liquidity depth
- Slippage
- Market maker
- Buy pressure
- Impermanent loss
- LP token
- Lending protocol
- Flash loan
- Perpetual futures
- Airdrop farming
- Fair launch
- Liquidity bootstrapping pool (LBP)
Know the terms but not sure how they apply to your project? That is what an engagement is for. We design, document, and stress-test the whole token economy inside the Tokenomics Data Room.
100+ projects advised. Complete tokenomics in 4 to 6 weeks.