What is the RPI order?
The RPI order is a specialized order type that matches exclusively with retail flow, primarily originating from non-algorithmic, GUI-based orders. By operating within this dedicated matching environment, RPI enables selected market makers to quote more competitively, with the assurance that their orders will only interact with retail traders. The primary goal is to improve execution quality and pricing for everyday traders like you.
How do RPI orders work?
- RPI orders are only available to designated market makers by invitation only.
- RPI orders must be placed, modified, or cancelled via API.
- RPI orders are available for both spot and perpetual trading.
- Available for cross and isolated margin (for perpetuals).
- RPI orders are post-only by construction, and hence always subject to maker fees.
- RPI orders cannot be hidden - visible quantity must equal order quantity.
- RPI orders are mutually exclusive with reduce-only orders, i.e., RPI order requests will be rejected when there are pending reduce-only orders and vice versa.
- RPI orders cannot be used with stop or trigger orders.
- RPI orders follow the same margin requirements as standard limit orders.
- RPI orders are subject to the same order-specific checks as standard limit orders: min/max order size, tick size, price range/price scope checks, etc.
- RPI orders are guaranteed to get executed at the order price or better.
Order book aggregation (behind the scenes)
To ensure the best pricing for retail users, WOO X combines RPI and non-RPI orders into a single, clean order book view. Here's how it works in 3 steps:
- Step 1 - Prevent crosses with regular orders
- RPI bids at or above the best ask → shifted to 1 tick below best ask
- RPI asks at or below the best bid → shifted to 1 tick above best bid
- Step 2 - Resolve internal RPI book crosses if any
- System identifies overlapping RPI bids and asks
- Calculates a midpoint price
- Adjusts both sides to eliminate the overlap
- Step 3 - Merge for retail order book display
- Combines adjusted RPI and non-RPI orders into one retail-friendly order book
Example
Initial State
Book X (Non-RPI)
| Side | Price | Size |
| Ask | 104.00 | 10 |
| Ask | 103.50 | 10 |
| Ask | 103.00 | 15 |
| Ask | 102.50 | 15 |
| Ask | 102.00 | 10 |
| Bid | 100.00 | 10 |
| Bid | 99.50 | 10 |
| Bid | 99.00 | 15 |
| Bid | 98.50 | 15 |
| Bid | 98.00 | 10 |
Book Y (RPI)
| Side | Price | Size |
| Ask | 101.00 | 5 |
| Ask | 100.00 | 10 |
| Ask | 99.50 | 5 |
| Bid | 102.50 | 5 |
| Bid | 101.00 | 10 |
| Bid | 100.00 | 5 |
Step 1 – Avoid Crossing Book X
- BBO_X = [100.00 bid, 102.00 ask]
Adjust RPI orders in Y_CROSS_X:
- RPI bids at or above 102.00 → adjust to 101.99
- RPI asks at or below 100.00 → adjust to 100.01
Adjusted Book Y (After Step 1):
| Side | Adjusted Price | Size |
| Ask | 101.00 | 5 |
| Ask | 100.01 | 15 |
| Bid | 101.99 | 5 |
| Bid | 101.00 | 10 |
| Bid | 100.00 | 5 |
Step 2 – Resolve Internal RPI Crosses
We now have a cross within the adjusted Book Y:
- Best bid = 101.99, best ask = 100.01 → crossing detected.
Walk away symmetrically by size to identify the net portion:
- Bid side: 5 @ 101.99, 10 @ 101.00 → total = 15
- Ask side: 15 @ 100.01 → total = 15
→ Net portion: 15 on each side
Midpoint = (worst bid 101.00 + worst ask 100.01) / 2 = 100.505 → round down to 100.50
Compute average fill prices for each side:
- Bid avg = (5×101.99 + 10×101.00) / 15 = 101.33
- Ask avg = (15×100.01) / 15 = 100.01
Distances to midpoint:
- Bid: 101.33 - 100.50 = 0.83
- Ask: 100.50 - 100.01 = 0.49
Bid side has a larger distance, so Bid adjusts to mid of 100.50 and Ask side gets ticked away to 100.51.
Adjusted Net Portion:
| Side | Final Price | Size |
| Ask | 100.51 | 15 |
| Bid | 100.50 | 15 |
Reconstruct Book Y:
Combine the adjusted net portion with the remainder. Shift the remainder to the best bid offer if they cross with the adjusted net.
| Side | Final Price | Size |
| Ask | 101.00 | 5 |
| Ask | 100.51 | 15 |
| Bid | 100.50 | 15 |
| Bid | 100.00 | 5 |
Step 3 - Final Aggregated Book (Retail View)
| Side | Source | Price | Size |
| Ask | X | 104.00 | 10 |
| Ask | X | 103.50 | 10 |
| Ask | X | 103.00 | 15 |
| Ask | X | 102.50 | 15 |
| Ask | X | 102.00 | 10 |
| Ask | Y | 101.00 | 5 |
| Ask | Y | 100.51 | 15 |
| Bid | Y | 100.50 | 15 |
| Bid | X+Y | 100.00 | 15 |
| Bid | X | 99.50 | 10 |
| Bid | X | 99.00 | 15 |
| Bid | X | 98.50 | 15 |
| Bid | X | 98.00 | 10 |
Matching rules
- RPI orders only match with retail orders, including:
- GUI-initiated orders
- Copy user orders
- Priority rules
- Price priority applies broadly (post price adjustment/shift)
- RPI orders have lower priority than non-RPI orders at the same price level
- RPI orders follow pre-shift price & time priority among themselves at the same post-shift price level
Frequently Asked Questions (FAQs)
Who can place RPI orders?
Only selected market-making partners via API. If you're a liquidity provider and want access, please contact us for eligibility.
I trade using API, can I match with RPI orders?
No. RPI orders are only available to GUI-initiated orders and copy trades.
Where can I see RPI orders?
The order book displayed on the trade page includes RPI orders.
How are RPI trades labelled?
RPI trades are labelled with a superscript r in the trade history on WOO X trade page.