For information on changes for our US clients, please visit our Support Center article.

Due to increased demand, account verification may be delayed. Please avoid submitting multiple requests, and for best results, review our document requirements beforehand.
Search
Example assignment
In this article we walk through a situation where a trader on Kraken Futures is liquidated and the new Position Assignment System (PAS) allocates the unfilled liquidation to liquidity providers in PAS. We go through all the response examples that a participant will receive for this.
Let's assume that there is a client whose current positions are:
- LONG 1,760,000 Contracts on PI_BTCUSD
- LONG 300,000 Contracts on FI_BTCUSD_200228
Both these positions are using the main FI_BTCUSD margin account, which measures the risk in realtime, valuing the collateral vs position value, to determine whether to liquidate.
Once the margin account for the contract type is below the maintenance margin, liquidation occurs and the system sells those positions into the orderbook at the 0-equity imputed price for each contract.
In this case, the client's liquidation plays out as follows:
Position
Size
Amount Liquidated
Amount Assigned
PI_BTCUSD
1,760,000
1,007,379
752,621
FI_BTCUSD_200228
300,000
300,000
0

This means the entire FI_BTCUSD_200228 position of 300,000 Contracts was successfully sold into the orderbook to new counterparties who had existing bids.

However, the PI_BTCUSD position of 1,760,000 Contracts was only able to liquidate 1,007,379 successfully into the orderbook, with the remaining 752,621 unable to find a new counterparty.

As a result, this unfilled liquidation remainder is handled in the PAS by routing the LONG position to liquidity providers participating in the program based on individual preferences.

Below is an example notification for an Assignment of 184,317 Contracts allocated to "[email protected]". The client receives the following email (note that this format may change so do not rely on this formatting):
Selection_999_912_.png
The liquidity provider immediately receives the notification over WebSocket feed alerting them to the Assignment. The message takes this format:
{
"feed": "fills",
"username": "[email protected]",
"fills": [
{
"instrument": "PI_XBTUSD",
"time": 1581026151,
"price": 9292.5,
"seq": 103,
"buy": true,
"order_id": "87755b99-bfb7-4f51-a72b-70f542f793a5",
"fill_id": "89f0f4f9-66b5-45eb-ba3f-6eeb2da5cadd",
"fill_type": "assignee",
"qty": 184317
}
]
}
Additionally, the client may poll the REST API endpoint for fills to see:
{
"result": "success",
"fills": [
{
"fill_id": "89f0f4f9-66b5-45eb-ba3f-6eeb2da5cadd",
"symbol": "pi_xbtusd",
"side": "buy",
"order_id": "87755b99-bfb7-4f51-a72b-70f542f793a5",
"size": 184317,
"price": 9292.5,
"fillTime": "2020-02-06T21:55:51.000Z",
"fillType": "assignee"
}
...
]
}
The key fields in the responses are fill_type and fillType (for WebSocket and REST, respectively), which both take the value "assignee". This is the indication that should be used to programmatically handle the assignment.
Note:
- Set your preferences as you see fit on the Assignment Program section of the platform.
- You will not receive an Assignment that your available margin for the contract type can not handle.
The decimal and thousands separators shown in this article may differ from the formats displayed on our trading platforms. Review our article on how we use points and commas for more information.