We're here to help.
Ask us anything.

How does the real-time credit checking system work?

Overview

With a funded account, a Participant can trade on Seed CX. However, with changes in realized and unrealized P&L, and collateral obligations, the credit that a Participant has to trade will quickly change from the initially funded cash amount. Intra-day, Seed CX constantly recalculates a Participant’s credit to check whether the Participant has enough cash to cover their proposed trading activity.

Credit checking is performed at the desk-level globally and for each individual instrument. That is, once a limit is assigned to a desk, the trading activity under that desk will increase/decrease the credit of that desk only. Ultimately, all trades are assumed by the participant, however this serves to provide internal control.

The credit of a desk is reduced with open positions due to collateral obligations, realized losses and unrealized losses. The credit of a desk increases due to realized gains, but NOT unrealized gains. While unrealized profits do not increase credit at the instrument-level, at the desk-level unrealized losses and unrealized gains in different instruments can offset one another. 

There is the potential for a participant to have sufficient credit to enter into a new trade, but then experience large price swings against their position such that the participant's obligations are larger than their cash deposits. This immediately prevents new trading and, if the situation has not improved by time of settlement, will trigger a margin call.

Key Definitions

Per Desk

The following fields are tracked per desk, across all instruments.

  • Limit is the USD-denominated credit limit assigned to a desk by a participant administrator. It is the total initial exposure authorized to a trading desk across all instruments.
  • Available is the USD-denominated credit available to a trading desk to trade across any instrument.
  • Initial Margin Obligation ("IMO") is the USD-denominated margin obligation of a trading desk due to open positions across all instruments.
  • Realized P&L ("RPL") is the USD-denominated profit or loss that a desk has realized across all instruments through actively closing an open position. A desk's RPL equals to the sum of all instrument-level RPL values under that desk.
  • Unrealized P&L ("UPL") is the USD-denominated profit or loss that a desk could potentially realize if they closed out their open positions across all instruments. A desk's UPL equals to the sum of all instrument-level UPL values under that desk.

Per Instrument

The following fields are tracked per instrument.

  • Initial Margin ("IM") is the USD-denominated initial margin requirement set per instrument.
  • Last Traded Price ("LTP") is the last traded price that has been observed in the market.

The following fields are tracked per desk, per instrument.

  • Available is the USD-denominated credit available to a trading desk to trade in a particular instrument.
  • Initial Margin Obligation ("IMO") is the USD-denominated margin obligation of a trading desk due to an open position in a particular instrument.
  • Realized P&L ("RPL") is the USD-denominated profit or loss that a desk has realized in a particular instrument through actively closing an open position.
  • Unrealized P&L ("UPL") is the USD-denominated profit or loss that a desk could potentially realize if they closed out their open position in a particular instrument.
  • Position is the net current position a desk has in a particular instrument. Positive values indicate a long position, and negative values indicate a short position.
  • Average Price ("AvgP") is the volume-weighted average price that a desk has realized to obtain its current position.
  • Position Allowance ("PA") is the quantity that a desk can increase its current position by, in the same direction as the current position, i.e. the quantity by which a desk can go further long, if already long; or the quantity by which a desk can go further short, if already short.
  • Offset Allowance ("OA") is the quantity that a desk can decrease its current position by, in the opposite direction as the current position, i.e. the quantity by which a desk can go short, if currently long; or the quantity by which a desk can go long, if already short.
  • Open Buy Order Quantity (“OBOQ”) per instrument is the sum of all order quantities placed in that instrument on the buy side. It is always 0 or greater.
  • Open Sell Order Quantity (“OSOQ”) per instrument is the sum of all order quantities placed in that instrument on the sell side. It is always 0 or greater.
  • Buy Order Allowance (“BOA”) per instrument is the order buy quantity allowed to be submitted by any trader under a trading desk into the order book. It is always 0 or greater.
  • Sell Order Allowance (“SOA”) per instrument is the order sell quantity allowed to be submitted by any trader under a trading desk into the order book. It is always 0 or greater.

Credit Methodology

Available Balance

The key driver of PA, OA, BOA and SOA is the Available balance of a desk. This is the fundamental basis of credit trading on Seed CX. The Available balance for a desk is first calculated for each instrument, and then aggregated across all instruments for a global desk-level Available balance. This ensures that activity in one instrument will affect a desk's ability to trade in another. 

A desk's Available amount in a particular instrument is calculated in the following way:

Instrument Available = Instrument Limit + Instrument RPL + min(Instrument UPL, 0) - Instrument IMO

Note: We do not increase the Available balance for unrealized profit, so this is ignored.

We then sum the instrument-level values for RPL, UPL and IMO across all instruments to construct the overall Available balance for a desk. This is calculated in the following way:

Desk Available = Desk Limit + Desk RPL + min(Desk UPL, 0) - Desk IMO

Note: We do not increase the Available balance for unrealized profit, so this is ignored. However, at the desk-level, unrealized profit in one instrument can offset unrealized losses in another. 

Trade Scenarios

Scenario Effect on Position Effect on AvgP Effect on RPL Effect on UPL

Initial Position

i.e. flat to long or flat to short

Position grows from 0 to trade quantity

Position_new = Q_trade

No previous AvgP so changes from null to the trade price

AvgP_new = P_trade

No change as RPL_trade is null

RPL_new = RPL_old

UPL_new = Position_new x (LTP - AvgP_new)

Increasing Current Position

i.e. long to more long or short to more short

Position grows by trade quantity

Position_new = Position_old + Q_trade

A weighted average of the old AvgP with the new trade information

AvgP_new = AvgP (see blow for formula)

No change as RPL_trade is null

RPL_new = RPL_old

UPL_new = Position_new x (LTP - AvgP_new)

Decreasing Current Position

i.e. long to less long or short to less short

Position decreases by trade quantity

Position_new = Position_old + Q_trade

No change as a decrease to Position doesn't affect the AvgP realized opening the position

AvgP_new = AvgP_old

RPL_trade is not null as there has been a position reduction

RPL_new = RPL_old + RPL_trade (see below for formula)

UPL_new = Position_new x (LTP - AvgP_new)

Flattening Current Position

i.e. long to flat or short to flat

Position becomes 0

Position_new = 0

With no Position, there is no AvgP

AvgP_new = null

RPL_trade is not null as the position has been reduced to 0

RPL_new = RPL_old + RPL_trade (see below for formula)

UPL_new = Position_new x (LTP - AvgP_new)

Inverting Current Position

i.e. long to short or short to long

Position inverts based on trade size

Position_new = Position_old + Q_trade

Inverting Position is similar to creating a new Position from being flat, so the AvgP is the trade price

AvgP_new = P_trade

RPL_trade is not null, but the formula for RPL_new changes

RPL_new = RPL_old + RPL_trade* (see below for formula)

UPL_new = Position_new x (LTP - AvgP_new) 

 

Average Price

The average price that has been obtained to open a position in an instrument is the volume-weighted average of all execution prices for all filled orders. The first fill's execution price will be the AvgP initially, but as new trades occur, the total AvgP must be recalculated. 

The Seed CX credit system only needs to store the current AvgP and the price and quantity for a new trade to calculate the new AvgP. When a new trade occurs under a desk, the AvgP recalculates. The formula is:

AvgP = [(Position_old x AvgP_old) + (Q_trade x P_trade)] / (Position_old + Q_trade)

For example, assume a desk has a position in BTC/USD of 3 with an AvgP of $3,200. A trader on the desk executes another long trade for 1 quantity at a price of $3,600. AvgP is recalculated as:

AvgP = [(3 x $3,200) + (1 x $3,600)] / (3 + 1)

= [$9,600 + $3,600] / 4

= $13,200 / 4

= $3,300

Alternatively, assume a desk has a position in BTC/USD of 3 with an AvgP of $3,200. A trader on the desk executes another short trade for 4 quantity at a price of $3,600. This is considered a flattening and then a new Position in the inverse position, so AvgP is simply the trade price. 

AvgP = $3,600

AvgP is the weighted-average price that was paid to open the current Position.

Realized P&L

Realized P&L, like the AvgP field, is dependent on the current state of AvgP, RPL and Position for the desk, plus the quantity and price of the trade. At the time of first trade, RPL is null as no Position has been closed. However, once an offsetting trade is executed, RPL is realized based on that trade. The formula is:

RPL_trade = Q_trade x (AvgP_old - P_trade)

Note: Q_trade is positive if the trade is long and negative if the trade is short.

As an example, if a desk is long 4 BTC/USD with 0 RPL and an AvgP of $3,300, and then a trader on the desk sells short 2 BTC/USD at a price of $3,500, the desk realizes the following profit:

RPL_trade = -2 x ($3,300 - $3,500)

= -2 x -$200

= $400

The alternative to this is the event that a position fully inverts, either from short to long, or long to short. In this case, the RPL is based on the full negation of the previously existing position. So we find the formula:

RPL_trade* = -Position_old x (AvgP_old - P_trade)

As an example, if a desk is long 4 BTC/USD with 0 RPL and an AvgP of $3,300, and then a trader on the desk sells short 6 BTC/USD at a price of $3,500, the desk realizes the following profit:

RPL_trade* = -4 x ($3,300 - $3,500)

= -4 x -$200

= $800

A desk's total RPL is the sum of all instrument RPL values. Netting can occur as RPL may be positive or negative.

Unrealized P&L

UPL is calculated using the current Position, AvgP and LTP. The formula is:

UPL = Position x (LTP - AvgP)

For example, if a desk is long 4 quantity in BTC/USD with an average execution price, AvgP, of $3,300, and the BTC/USD instrument witnesses a LTP of $3,400, we find:

UPL = 4 x ($3,400 - $3,300)

= 4 x ($100)

= $400, as there has been a gain in market value of BTC/USD and the desk is long

As another example, if a desk is short 4 quantity in BTC/USD with an average execution price, AvgP, of $3,300, and the BTC/USD instrument witnesses a LTP of $3,400, we find:

UPL = -4 x ($3,400 - $3,300)

= -4 x ($100)

= -$400, as there has been a gain in market value of BTC/USD but the desk is short

A desk's total UPL is the sum of all instrument UPL values. Netting can occur as UPL may be positive or negative.

Initial Margin Obligation

The IMO of a desk in a particular instrument is found by multiplying the absolute value of the Position in an instrument by the IM requirement of that instrument.

IMO = |Position| x IM

For example, if a desk is long 4 BTC/USD, and the IM requirement is $1,000, we would find that:

IMO = |4| x $1,000

= 4 x $1,000

= $4,000

Similarly, if a desk is short 4 BTC/USD, and the IM requirement is $1,000, we would find that:

IMO = |-4| x $1,000

= 4 x $1,000

= $4,000

A desk's total IMO is the sum of all instrument IMO values. There is no netting as IMO is always positive.

Position Allowance

To calculate the PA of a desk in an instrument at any time, we first must maintain a real-time ledger of the desk's Available balance in total, and per instrument.

Position Allowance: PA = max{0, [min(Desk Available, Instrument Available) / IM]}

This formula divides the minimum of the Desk and Instrument Available balances by the IM requirement, per instrument, to determine the quantity that the desk can execute.

For example, if the desk is long BTC/USD, has a Desk Available value of $10,000 and an Instrument Available value for BTC/USD of $5,000, and the IM requirement for BTC/USD is $1,000, we would see:

Position Allowance: PA = max{0, [min($10,000, $5,000) / $1,000]}

= max{0, [$5,000 / $1,000]}

= max{0, 5}

= 5, meaning the desk can trade 5 quantity long or short in the BTC/USD product

As a negative example, if the desk is long 5 BTC/USD, but now has a Desk Available value of -$10,000 due to a large price swing in another product, and an Instrument Available value for BTC/USD of $5,000, and the IM requirement for BTC/USD is $1,000, we would see:

Position Allowance: PA = max{0, [min(-$10,000, $5,000) / $1,000]}

= max{0, [-$10,000 / $1,000]}

= max{0, -10}

= 0, meaning the desk cannot get further long in the BTC/USD product

Offset Allowance

To calculate the OA of a desk in an instrument, we use the following formula:

Offset Allowance: OA =max{0, [min(Desk Available, Instrument Available) / IM]} + Position

= PA + Position

We add Position to OA to ensure that the participant can always get flat. Assuming a large price swing, the desk's Available balance will go negative, but the OA will allow a complete flattening of the position.

For example, if the desk is long BTC/USD of 4, has a Desk Available value of $10,000 and an Instrument Available value for BTC/USD of $5,000, and the IM requirement for BTC/USD is $1,000, we would see:

Offset Allowance: OA = PA + Position

= 5 (as calculated above) + 4

= 9, meaning the desk can short 9 in the BTC/USD product

As a negative example, if the desk is still long BTC/USD, but now has a Desk Available value of -$10,000 due to a large price swing in another product, and an Instrument Available value for BTC/USD of $5,000, and the IM requirement for BTC/USD is $1,000, we would see:

Position Allowance: PA = 0 (as calculated above) + 4

= 4, meaning the desk can short 4 in the BTC/USD product to become flat

Order Allowances

The Seed CX credit system blocks traders from putting orders into the book if they do not have the ability to execute them. This manifests itself in the form of the Buy and Sell Order Allowances. BOA and SOA are based upon Position, PA, OA, OBOQ and OSOQ.

Position BOA SOA
≥ 0, i.e. Flat or Long BOA = PA – OBOQ SOA = OA – OSOQ
< 0, i.e. Short BOA = OA – OBOQ  SOA = PA – OSOQ

 

As an example, if a desk is currently long 4 contracts in BTC/USD, with a PA of 5 and an OA of 9 (see above for how these values are calculated), but no buy or sell orders in the book, we would calculate the following BOA and SOA values:

Position BOA SOA

4 ≥ 0

The desk is long

BOA = 5 – 0 = 5

The desk can submit buy orders totaling 5 quantity

SOA = 9 – 0 = 9

The desk can submit sell orders totaling 9 quantity

 

Now, assume that a trader on the desk submits an order to buy 2 quantity and an order to sell 4 quantity, we would see these values update in real-time to:

Position BOA SOA

4 ≥ 0

The desk is long

BOA = 5 – 2 = 3

The desk can submit new buy orders totaling 3 quantity, as 2 are resting

SOA = 9 – 4 = 5

The desk can submit new sell orders totaling 5 quantity, as 4 are resting