Margin Service API - Margin - Calculate

Margin Service API - Margin - Calculate

 

The calculate margin request performs a margin calculation on an existing portfolio with optional additional transactions.

Description

The request allows the client to calculate the margin of an already existing portfolio which was added to CME CORE (Add Portfolio and Update Portfolio). The client must specify the margin type and must submit the unique CME CORE assigned portfolio identifier in the request URL. The URL may optionally include additional (transient) transactions by value or the transactions to exclude by identifier from the portfolio. Once the Client/ CMF (Clearing Member Firm) has submitted the above, the server will queue up the request for execution after which it is submitted to the risk engine for processing a request identifier and status that are returned. If the portfolio does not exist, referenced transactions do not exist, or there are other errors an error message/code will be returned.   

 

Entity

Margin

Action

Calculate

URL

/margins

HTTP Method

POST

Parameter Input

No

XML Input

Yes

Multiple Output

No

Synchronous

No

 

 

 

Request

XPath

Name

Type

Required

Notes

XPath

Name

Type

Required

Notes

/marginReq@reqUserId

Requesting User ID

String

No

 

/marginReq/margin@portfolioId

Portfolio ID

String

Yes

 

/marginReq/margin@riskFramework

Risk Framework

String

No

Specifies if the request should be margined in the SPAN or the SPAN 2 methodology. This is relevant to Futures & Options users only. 

Response

XPath

Name

Type

Required

Notes

XPath

Name

Type

Required

Notes

/marginRpt@status

Status

Async Status

Yes

 

/marginRpt/margin@createTime

Create Time

Date/Time

Yes

 

/marginRpt/margin@id

ID

String

Yes

 

/marginRpt/margin@portfolioId

Portfolio ID

String

Yes

 

/marginRpt/margin@updateTime

Update Time

Date/Time

Yes

 

/marginRpt/error@code

Error Message

String

No

 

/marginRpt/error@msg

Error Message

String

No

 

Errors

Code

Description

Code

Description

400

Bad XML syntax or missing content. More information will be provided in the error message.

403

Returned if the user does not have permission to perform calculations on the portfolio

500

The server was not able to process the request. More information (if available) will be provided in the error message.

Examples

Basic

This example requests that a portfolio with ID 123 be margined.  The unique ID of the margin request is returned along with the portfolio identifier.

Calculating Margin for CME

Request - All Margin Methodologies
POST {{API_URL}}/margins

 

<core:marginReq xmlns:core="http://cmegroup.com/schema/core/1.2"> <margin portfolioId="123" /> </core:marginReq>
Request - SPAN 2 Margin

For the SPAN 2 project, the CORE API was enhanced to include attribute "riskFramework" which specifies if specific products going through a SPAN 2 framework transition should be margined in the SPAN or the SPAN 2 framework. This is relevant to Futures & Options users only.

Expected values in riskFramework attribute:

  • CURRENT - current production margin framework.

    • This will equate to SPAN methodology until the SPAN 2 project go live for upcoming in-scope products.

  • NEXT - upcoming production margin framework, in production parallel.

    • This will equate to SPAN 2 methodology for in-scope products.

For top day margin request in CORE, please refer to the below table for cycle names and approximate timings.

Risk Cycle Naming Conventions

CORE Cycle Naming Convention

Naming Convention (risk parameter files)

Approximate Risk Snapshot Timing

Description

CORE Cycle Naming Convention

Naming Convention (risk parameter files)

Approximate Risk Snapshot Timing

Description

X

.x

8:30 a.m. CT

Forecasting cycle. Includes any risk parameter changes planned for go live in the top day EOD cycle as described in Clearing Advisories. Does not include forecasted risk scenario changes.

AM

.a

11:00 a.m. CT

Morning file, run occurs before ITD cycle.

ITD

.i

12:00 p.m. CT

ITD cycled used for CME settlements and reporting.

AFTER_ITD

.ai

2:30 p.m. CT

After ITD cycle.

SUPER_EARLY

.be

3:30 p.m. CT

Very early EOD cycle.

EARLY

.e

4:30 p.m. CT

Early EOD cycle. Settle prices incorporated for some markets.

FINAL

.s

6:30 p.m. CT

Second early EOD cycle. Settle prices incorporated for all markets.

EOD

.c

8:00 p.m. CT

Final EOD cycle used for CME settlements and reporting.

Request

<core:marginReq xmlns:core="http://cmegroup.com/schema/core/1.12"> <margin portfolioId="123" riskFramework="NEXT" /> </core:marginReq>

Response

<ns2:marginRpt xmlns:ns2="http://cmegroup.com/schema/core/1.2" status="PROCESSING"> <margin portfolioId="123" id="321"/> </ns2:marginRpt>
Request - Historical Margin

The CORE API supports historical margin calculations and with the attributes "date" and "code" in the request. This is relevant to Futures & Options users only.

  • Date: CME core allows user to margin portfolios in SPAN 2 framework as of late 2022 and in SPAN framework as of late 2021. Acceptable date format is yyyy-mm-dd.

  • Code: For last 5 business days, user can select from several daily cycles, please refer to the above table “Risk Cycle Naming Conventions”.  For margin request prior to 5 business days, the .i, .s and .c cycles are available.

Request Example

<core:marginReq xmlns:core="http://www.cmegroup.com/schema/core/1.14"> <cycle date="2023-03-31" code="ITD"/> <margin portfolioId="123" riskFramework="CURRENT"/> </core:marginReq>

Response Example

<ns2:marginRpt xmlns:ns2="http://cmegroup.com/schema/core/1.2" status="PROCESSING"> <margin portfolioId="123" id="321"/> </ns2:marginRpt>

 

 




How was your Client Systems Wiki Experience? Submit Feedback

Copyright © 2024 CME Group Inc. All rights reserved.