Partial exits and remaining inventory
Selling part of a position creates two records at once: a realized result for the units sold and a smaller open position whose price, route, and exit capacity can keep changing.
The short answer
A partial exit realizes proceeds and profit or loss only for the quantity that actually sold. The unsold tokens remain open inventory. They retain exposure to price, liquidity, contract, and route risk even if the first sale returned your original cash outlay.
Track six separate values after every fill: units sold, net proceeds, cost basis assigned to those units, realized result, units remaining, and cost basis still open. A single “position P&L” number hides whether value is in the wallet, already realized, or merely marked at a price the pool may not support.
A partial exit changes the position state
Realized proceeds
The destination asset actually received for the sold units, net of costs you assign directly to the exit.
Realized P&L
Net exit proceeds minus the documented cost basis assigned to the units sold.
Remaining inventory
The exact token quantity still controlled by the wallet after the fill, including any unsold amount returned by the route.
Open cost basis
The portion of acquisition cost still assigned to the remaining units under the journal's chosen lot method.
Unrealized mark
An estimate based on a current price or executable quote. It is not realized and should name the pricing source and size.
A simple average-cost example
Suppose 1,000,000 TOKEN cost 10 SOL plus 0.1 SOL of acquisition costs. The position's journal basis is 10.1 SOL. Later, 250,000 TOKEN sells and returns 6 SOL; exit costs reduce net proceeds to 5.9 SOL.
Units sold
250,000 TOKEN · 25%
Net proceeds
5.9 SOL
Allocated basis
2.525 SOL
Realized result
+3.375 SOL
Units remaining
750,000 TOKEN
Open basis
7.575 SOL
This example uses average cost for a performance journal: 25% of the units receives 25% of the basis. A wallet with several acquisition lots may use a different, consistently documented lot method. Tax rules vary by jurisdiction; this guide is trade accounting, not tax advice.
Use actual fill amounts, not the slider label
A “sell 25%” button expresses an intention. The transaction result tells you what happened. Rounding, token decimals, transfer behavior, route limits, and partial input use can make actual input differ from the interface label.
Jupiter's current execution response separates the input used and output received from broader total amounts and fees. On any route, the durable source is the onchain token and native balance delta. Recalculate remaining units from the post-transaction wallet—not by subtracting a rounded percentage from a prior screenshot.
The next exit is a new trade
The first sale changes pool reserves. Other holders can sell, liquidity providers can withdraw or move ranges, a curve can migrate, and an aggregator can choose a different route. The fill and capacity available to the first 25% do not promise the same result for the remaining 75%.
Re-quote the remaining position at several sizes after every material exit. Use liquidity depth and exit capacity to find the largest acceptable next rung rather than carrying forward the first trade's price.
A partial-exit plan needs triggers and quantities
Define the trigger
Use an observable condition—price, liquidity, time, thesis break, or loss limit—not a vague promise to “take some profit.”
Define the quantity
State tokens or a percentage of current inventory, then convert it to base units before signing.
Set the protected output
Record the minimum destination amount and maximum acceptable impact for that exact exit size.
Plan the residual
Specify what remains, its next decision point, and how much executable capacity it would require.
Cap retry costs
Repeated failures add network fees and pressure. Decide the total attempt budget before the first submission.
Common accounting mistakes
- Treating gross output as proceeds while excluding pool, platform, priority, tip, gas, and network costs.
- Declaring the whole position profitable because one exit exceeded the original cash outlay.
- Setting remaining basis to zero without naming the internal accounting method, then mixing that method with lot-based realized P&L later.
- Marking remaining inventory at the latest spot price instead of a quote sized to the actual inventory.
- Forgetting tokens held in another token account, wrapped balance, smart account, or failed route cleanup.
The journal record after each partial exit
- Transaction identifier, time, route, success status, and sold token's mint or contract address.
- Actual token input, gross destination output, every direct exit cost, and net proceeds.
- Basis method, allocated basis, realized P&L, and cumulative realized proceeds across all exits.
- Remaining token units, open basis, current size-aware exit estimate, and the next planned trigger.
Primary sources
Reconcile the residual
Track what sold and what is still exposed.
Paste a public address to reconstruct actual fills, fees, realized proceeds, and remaining inventory without connecting a wallet.
Open the journal