Optimization for CME Group and FICC Cross-Margin Program
This topic provides guidance for firms participating in the CME Group and Fixed Income Clearing Corporation (FICC) cross-margin program and interacting with CME Group’s hosted optimization service over API to manage their post-trade allocations into a FICC cross-margin account at CME Group.
For details on running the hosted optimization service over API to manage post-trade allocations in the IRS portfolio margin program, please see Margin Optimization Service Over API User Guide.
Contents
Revision History
Date | Description |
|---|---|
Wednesday, April 15, 2026 | Under Report 1: FIXML Transfer Report Request Endpoint:
Modified/added Report 2: CSV Transfers Report Request Endpoint:
For Report 3: FICC Estimated Savings Report Request Endpoint, this was renamed from “Report 2” to “Report 3”. Under Report 4: Savings Summary Report Request Endpoint
For Report 5: Estimated Savings Report Request Endpoint, this was renamed from “Report 4” to “Report 5”. |
Thursday, December 18, 2025 | Under Expected Inputs, added Configuration.json - now required. Under User Interface:
Added section with “Note - The following sample request applies to users of CME-FICC Cross Margin Program.” Under Report 1: FIXML Transfer Report Request Endpoint, XML snippet, changed: <cycle date="2025-10-21" code="EOD"/> Under Report 2: FICC Estimated Savings Report Request Endpoint:
Under Report 3: Savings Summary Report Request Endpoint, added Info box: “Note - The Savings summary report is intended for users enrolled in both the IRS Portfolio Margining and CME-FICC Cross Margin program.” Under Report 4: Estimated Savings Report Request Endpoint:
|
Monday, August 25, 2025 | Initial publication of this pending client impact assessment. |
Key Events and Dates
Date | Milestone |
|---|---|
Now Available | Now Available: CME-FICC Margin Optimization is Now Available for Testing in the CORE Margin Service API - Effective December 18, 2025 |
Q1 2026 | Deployable Optimizer Software Program Deprecation |
To be announced | Production Launch |
Overview of CME Group and FICC Cross-Margin Program
The CME Group and FICC cross-margin program is designed to provide margin efficiencies by identifying CME Group interest rate futures that can offset FICC treasury positions. This optimization service determines the movement of CME Group interest rate futures into a cross-margin account that will be applied against FICC Treasuries for purposes of the cross-margin savings calculations. The program aims to provide margin efficiencies for a given portfolio accounting for:
Unallocated positions consisting of futures and options that are not eligible for the FICC Cross-Margin program (used for optimization analysis only).
Eligible CME Group futures allocated for cross-margin with FICC Treasuries “FICC Cross-Margin Account.”
FICC Treasuries allocated to the cross-margin program with CME futures.
FICC positions not allocated to the program.
Active management of positions between accounts 1 and 2 above are required to achieve savings, and the optimizer service performs both a savings optimization and offers API workflows to enable automation of the position transfer between these accounts.
Similarly, CME Group has supported IRS/listed interest rate product cross-margining in the Portfolio Margin Program since 2012. Because many clearing firms intend to participate in both the IRS portfolio margin and CME Group and FICC cross-margin program and because active management of positions to a special account is required for both programs, CME Group is also expanding the margin optimization service over API (the “Hosted Optimizer”) to support CME Group and FICC cross-margining in addition to IRS portfolio margining.
The margin optimization service allows users to pass positions data containing any combination of positions in 1) segregated futures and options accounts, 2) FICC cross-margin accounts, and 3) IRS portfolio margin accounts. Margin optimization can be performed for IRS Portfolio Margining or FICC cross-margin program or through a combined process if submitting positions across all three. The margin optimization service evaluates the ideal allocation of interest rate futures and options to transfer between segregated, FICC cross-margin, and IRS portfolio margin accounts to provide margin efficiencies. As an output, Optimizer generates transfers, each having two sides (buy and sell) that are booked at CME Group using standard Clearing Firm message queue setup. The margin optimization service is hosted on CME Group infrastructure and available to users exclusively over the CME CORE API.
Additional program details regarding the interest rate portfolio margin program are available in Portfolio Margining for OTC Interest Rate Swaps.
User Entitlements and Onboarding
The margin optimization service requires special entitlements to ensure only authorized users are able to interact with cleared Optimization workflows. Authorization occurs at the user, firm, and margin account level. Users will need to set up a service account with an API ID that will be entitled to the new workflow. Clearing Member Users must have signed the API Agreement or be working with a service provider that has completed this agreement to gain access to the service.
Service Account Creation and Entitlement Process
Create an Account (if applicable): If you don’t already have an account, please register to create a new account.
Generate an API ID: Go to My Profile > My Account > APIs, then create and claim an API ID under Auth Type=“Basic Auth”.
The API ID used for the Margin Optimization Service must be dedicated solely to the new workflow. Users with an existing API ID should create a new one for this purpose.
Submit the Margin Optimization Service Over API Access Request Form and enter your newly created API ID. Ensure you select “Submit” to initiate the entitlement workflow.
Verification Process: The Enterprise Application and System Entitlements (“EASE”) team will contact your firm’s designated CME ClearPort Verification Officer to confirm authorization access for clearing data usage in the service.
Onboarding Completion: Upon successful verification, the CME Group post trade services team will reach out to finalize the onboarding process. As part of this process, they will ensure the API ID is entitled to the CORE API, which is a mandatory general authorization step.
Non-authorized users will receive an authorized error with the code 401 or 403 if attempting to interact with Optimization workflows. See Error Handling.
When testing, authentication and entitlement follows the same Basic Auth pattern as the CME CORE existing API, which is described in Margin Service API - Authentication and Entitlement.
API URL
The optimization service will utilize the CME CORE post trade URLs.
Test Environment: https://posttrade.api.uat.cmegroup.com/MarginServiceApi/
Please contact the CME post trade service team regarding the production environment URL after completion of testing.
Service endpoints are described in the User Interface section.
Testing Expectations
Testing to commence in Q4 2025. All interested clearing members may contact the post trade service team to set up testing in advance.
Users may also do functional testing against the API prior to the CME Group and FICC cross-margin optimization workflows being available.
Please review the Margin Service API.
UT environment testing (expected testing: functional):
Testing may be available for a limited set of available dates and cycles. Users can interact with the “status” endpoint, described below, which provides detail on which dates and cycles are available for optimization. Users may experience errors when submitting requests for dates and cycles that are not available.
The UT environment is not a production copy. This is important because the service performs account validation from UT environment data and will flag accounts as invalid that are not set up in the test environment or have no IRS trades in the test environment. It is recommended that users build their positions data with test accounts matching CME Group test accounts. If that is not possible, please work with the post trade service team to ensure there are accounts enabled in the UT environment that match production identifiers and, as needed, contain IRS trades to limit account validation errors. Please request a maximum of five new test accounts.
The UT environment is not expected to be used for number matching against the deployable Optimizer software in production. Please see production environment testing below.
The UT environment is expected to be the sole environment for testing the “accept transfers” endpoint (see below), since this workflow pushes live transfer records to the clearing system. All other upstream workflows prior to the transfers endpoint can also be tested in production, see production environment testing below.
Production environment testing (expected testing: number matching):
Users can interact with the production environment for testing by interacting with the “Hypothetical Optimization” user role. This user role allows testing of all endpoints other than the “accept transfers” endpoint portion of the workflow, making it suitable for testing purposes.
The production environment should be used for number matching against the deployable Optimizer software. UT environment data is independently produced and not validated against production, making it an unsuitable alternative. If number matching is only allowable in the UT environment, please validate against the UT environment IRSMR3 margin report or a run of deployable Optimizer with only test environment data to ensure consistency.
Expected Inputs
This section includes details on files that were expected as inputs to the deployable Optimizer software program, which is deprecated at end of year 2025. This is only relevant for users of the deployable Optimizer software, and other users can disregard deprecated files and the field “Input File name - Deployable Optimizer Software.”
Input File Name - Deployable Optimizer Software | Business Description | Input - Optimization Service Workflow | Rules |
|---|---|---|---|
Configuration.json | Optimizer Configuration File | Configuration JSON payload | Required |
Positions.csv | Positions CSV file | Positions CSV payload within XML wrapper. See Optimizer Request Example. A header row is required in this payload in the API request. | SEG account positions are required. IRS PM account positions optional if IRS PM Enabled = “true.” |
FICCPositions.csv | Positions CSV file | See specifications for FICC Positions file. See Optimizer Request Example. | Conditional Required if configuration.json file FICCEnabled config is “true.” |
XMFICCPOSN_EOD . . .csv | Equivalent Positions Report | N/A | Deprecated |
IRSPNL . . . * | IRS PNL File | N/A | Deprecated |
cust.spn* | SPAN(R) Risk Parameter file | N/A | Deprecated |
cme.optimizer** | Optimizer Market Data Archive (ZIP file) | N/A | Deprecated |
IRSGammaLadder** | IRS Gamma Ladder | N/A | Deprecated |
IRSVegaLadder** | IRS Vega Ladder | N/A | Deprecated |
IRSSkewSensitivity** | IRS Skew Sensitivity | N/A | Deprecated |
IRSTimeValue** | IRS Time Value | N/A | Deprecated |
IRSDL . . .* | IRS Delta Ladder File | N/A | Deprecated |
Clearing members are expected to maintain the state of portfolios in their books and records.
Expected Outputs
This section includes details on files that were outputs of the deployable Optimizer software program, which is deprecated at end of year 2025. This is only relevant for users of the deployable Optimizer software, and other users can disregard deprecated files and the field “Output File Name - Deployable Optimizer Software.”
Output File Name - Deployable Optimizer Software | Business Description | Output - Future State Workflow (Hosted Optimizer Service) |
|---|---|---|
Total Savings Estimateyyyymmdd_x.csv | Estimated savings report. Describes margin before and after Optimization. | Estimated Savings Report Request Endpoint described below - output in FIXML format. Enhanced to support IRS portfolio margin program and CME / FICC Cross-margin program. |
MarginSummaryyyyymmdd_x.csv | Margin Summary report. Contains details found in Total Savings Estimate and additional optimized state margin results. | See Estimated Savings Report, which is enhanced with more data. |
FundingImpactyyyymmdd_x.csv | Funding Impact report. Describes change in funding based on margin difference, which is also available in the total savings estimate. | Not available. |
OptimizeLogyyyymmdd_x.csv | Optimizer log file. Describes program operations and debugging details as well as errors. | No log file available, API errors can be retrieved at other points in the workflow. See Error Handling. |
fixmlTransfersyyyymmdd_x.txt | FIXML format transfer records file. Used by firms to send transfers to CME Group via message queue. | FIXML Transfer Report Request Endpoint (see below). |
csvTransfersyyyymmdd_x.csv | CSV format transfer records file. | Not available. Firms should instead use the FIXML Transfer Report Request Endpoint (see below). |
User Interface
The existing CME CORE API service has been expanded to support the margin optimization service. The test URL can be found in the API URL section. In conjunction with CME Group and wider industry standards, only secure communication channels are used.
The latest API schema document is available in CME CORE’s Download Center. Users can log in to CORE here
The following new API endpoints support hosted Optimization:
Endpoint | Request Type | Business Description/Use Case | Implementation Considerations |
|---|---|---|---|
{margin api URL}/optimize?complete=true | POST | User initiates Optimizer request. Contains portfolio and configuration payloads. See samples below. | This is not to be confused with the existing (margin API URL)/MarginServiceApi/optimize endpoint, which processes hypothetical optimization calculation requests. |
{margin api URL}/optimize/reports/fixmltransfers/(optimize id) | GET | FIXML transfer report Retrieves FIXML transfers report for a given Optimize ID when Optimization is complete. Users are expected to retry if the response is in “processing” state. See samples below. |
|
{margin api URL}/optimize/reports/estimatedsavingsreport/(optimize id) | GET | Estimated Savings Report Endpoint Retrieves estimated savings report for a given Optimize ID when Optimization is complete. Users are expected to retry if the response is in “processing” state. See samples below. |
|
{margin api URL}/optimize/reports/ficcestimatedsavingsreport/(optimize id) | GET | Estimated FICC Savings Report Endpoint Retrieves estimated savings report for a given FICC Cross-Margin ID when Optimization is complete. Users are expected to retry if the response is in “processing” state. See samples below. |
|
{margin api URL}/optimize/reports/savingsummaryreport/(optimize id) | GET | Savings summary Report Endpoint Retrieves savings summary report for a give Optimize ID when user participates in both FICC and IRS PM program. Samples forthcoming. |
|
{margin api URL}/optimize/reports/accepttransfers/(optimize id) | GET | Transfer Request Endpoint (Optional) Submits a transfer request to the Front End Clearing system. See samples below. | Results in live transfers in CME Clearing, see Testing Expectations. Enhanced to manage FICC cross-margin transfers. |
{margin api URL}/optimize/status | GET | Status endpoint (Optional) Returns the available date and cycle for which optimization request can be submitted. In production, the date and cycle will become top day when upstream data dependencies are satisfied and the Optimization window has opened for a given business date; see Operational Timeline below. See samples below. | Enhanced to manage FICC cross-margin cycles independently from IRS portfolio margin cycles. |
Hosted Optimization User Workflow Diagram
Hosted Optimization User Workflow Examples
Submit Optimize Request
Request Endpoint
POST {{API_URL}}/optimize?complete=trueSample Request 1 - User has both IRS PM and FICC cross-margin positions
Note - The following sample request is for the combined workflow, applicable to users with both IRS PM and CME-FICC cross-margin positions.
Sample Request 2 - User has FICC cross-margin positions only
Note - The following sample request applies to users of CME-FICC Cross Margin Program
Sample Response
The response contains:
The Optimizer ID (ID in the 'portfolio' block).
This ID has a one-to-one relationship with the user input payload, not the optimized account. There can be many accounts in a single optimize request payload or one, depending on the users’ preference.
In the example below the ID is this string:
123456e1-12b3-123z-a0cf-12ee3ee5e56d
The FIXML trade capture for all positions in the payload.
Position-level errors, for instance validation errors.
The below payload is a sample response for users participating in FICC cross-margining program. For users submitting IRS position only, they would see PBA Account populated in the response instead of FICC Account ID.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:portfolioRpt xmlns:ns2="http://cmegroup.com/schema/core/1.2" status="SUCCESS">
<portfolio id="123456e1-12b3-123z-a0cf-12ee3ee5e56d">
<cycle date="2025-10-21" code="EOD"/>
<entities clrMbrFirmId="123" ficcPbAcctId="Test123FICC"/>
<transactions>
<transaction id="900000">
<payload encoding="STRING" format="FIXML">
<string><?xml version="1.0" encoding="UTF-8" standalone="yes"?><FIXML xmlns="www.cmegroup.com/fixml50/1" v="5.0 SP2" xv="109" cv="CME.0001" s="20090815"><TrdCaptRpt LastQty="50" SettlCcy="USD"><Instrmt ID="SR3" Src="H" SecTyp="FUT" MMY="202512" Exch="CME"/><RptSide Side="2" InptDev="API"><Pty ID="123" R="4"/><Pty ID="CME" R="21"/><Pty ID="Test123" R="24"><Sub ID="1" Typ="26"/></Pty></RptSide></TrdCaptRpt></FIXML></string>
</payload>
</transaction>
<transaction id="900001">
<payload encoding="STRING" format="FIXML">
<string><?xml version="1.0" encoding="UTF-8" standalone="yes"?><FIXML xmlns="www.cmegroup.com/fixml50/1" v="5.0 SP2" xv="109" cv="CME.0001" s="20090815"><TrdCaptRpt LastQty="3000" SettlCcy="USD"><Instrmt ID="SR3" Src="H" SecTyp="OOF" MMY="202512" StrkPx="95.0" PutCall="1" Exch="CME"/><Undly Src="H" SecTyp="FUT" MMY="202512"/><RptSide Side="1" InptDev="API"><Pty ID="123" R="4"/><Pty ID="CME" R="21"/><Pty ID="Test123" R="24"><Sub ID="1" Typ="26"/></Pty></RptSide></TrdCaptRpt></FIXML></string>
</payload>
</transaction>
</transactions>
</portfolio>
</ns2:portfolioRpt>
Optimized Reports
As part of the hosted Optimizer service, two reports represent the most commonly used deployed Optimizer software reports.
All Optimizer reports are requested via GET messages to report endpoints containing the Optimize ID provided in the Optimize POST response.
Report 1: FIXML Transfer Report Request Endpoint
Note - The FIXML transfers report endpoint is common for all workflows (IRS Portfolio Margining, CME-FICC Cross Margin, and combined).
Sample Request
GET {{API_URL}}/optimize/reports/fixmltransfers/(optimize id)Sample Response
The report contains a header with the following information:
Cycle date and cycle type
Transfer records in FIXML format.
To comply with standard CME Clearing transfer message processing, all transfer messages will be single-sided.
The below payload is a sample response for users participating in FICC cross-margining program. For users participating in both the programs would see both the FICC PBAccount ID and IRS PBAccount ID in the response.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:portfolioAsyncRpt xmlns:ns2="http://cmegroup.com/schema/core/1.2" status="SUCCESS">
<portfolio id="123456e1-12b3-123z-a0cf-12ee3ee5e56d">
<cycle date="2025-10-21" code="EOD"/>
<entities clrMbrFirmId="123" ficcPbAcctId="Test123FICC"/>
<transactions>
<transaction>
<payload encoding="STRING" format="FIXML">
<string><FIXML cv="CME.0001" s="20090815" v="5.0 SP2" xv="109"><TrdCaptRpt LastPx="112.53125" LastQty="20" MLegRptTyp="1" MsgEvtSrc="API" OrigTrdDt="2025-03-28" RptID="900000" RptTyp="0" SettlCcy="USD" TransTyp="0" TrdDt="2025-05-14" TrdHandlInst="8" TrdID="900000" TrdTyp="3" TxnTm="2025-05-14T21:17:04.941858405Z"><Hdr SID="123" SSub="CBT" Snt="2025-05-14T21:17:04.941858405Z" TID="CME" TSub="CBT"/><Instrmt Exch="CBT" ID="21" MMY="202512" PxQteCcy="USD" SecTyp="FUT" Src="H"/><RptSide ClOrdID="PM001" CustCpcty="4" InptDev="API" OrdTyp="M" SesId="RTH" SesSub="X" Side="1"><Pty ID="123" R="1"/><Pty ID="CME" R="21"/><Pty ID="CBT" R="22"/><Pty ID="123" R="24"><Sub ID="1" Typ="26"/></Pty><Pty ID="123" R="17"/><Pty ID="123" R="48"><Sub ID="1" Typ="26"/><Sub ID="4" Typ="4000"/></Pty><Pty ID="CBT" R="22"/></RptSide></TrdCaptRpt></FIXML></string>
</payload>
</transaction>
<transaction>
<payload encoding="STRING" format="FIXML">
<string><FIXML cv="CME.0001" s="20090815" v="5.0 SP2" xv="109"><TrdCaptRpt LastPx="104.0859375" LastQty="30" MLegRptTyp="1" MsgEvtSrc="API" OrigTrdDt="2025-03-28" RptID="900002" RptTyp="0" SettlCcy="USD" TransTyp="0" TrdDt="2025-05-14" TrdHandlInst="8" TrdID="900002" TrdTyp="3" TxnTm="2025-05-14T21:17:04.941858405Z"><Hdr SID="123" SSub="CBT" Snt="2025-05-14T21:17:04.941858405Z" TID="CME" TSub="CBT"/><Instrmt Exch="CBT" ID="26" MMY="202512" PxQteCcy="USD" SecTyp="FUT" Src="H"/><RptSide ClOrdID="PM001" CustCpcty="4" InptDev="API" OrdTyp="M" SesId="RTH" SesSub="X" Side="2"><Pty ID="123" R="1"/><Pty ID="CME" R="21"/><Pty ID="CBT" R="22"/><Pty ID="123" R="24"><Sub ID="1" Typ="26"/></Pty><Pty ID="123" R="17"/><Pty ID="123" R="48"><Sub ID="1" Typ="26"/><Sub ID="4" Typ="4000"/></Pty><Pty ID="CBT" R="22"/></RptSide></TrdCaptRpt></FIXML></string>
</payload>
</transaction>
</transactions>
</portfolio>
</ns2:portfolioAsyncRpt>
Report 2: CSV Transfers Report Request Endpoint
This endpoint retrieves transfers record in CSV format.
Sample Request
GET {{API_URL}}/optimize/reports/csvtransfers/(optimize id)Sample Response
The report contains a header with the following information:
Portfolio ID
Cycle date and cycle type
Transfer records in CSV format separated by ‘
’
The TransferOrigin field reasons have been enhanced to include transfers generated for CME-FICC cross-margin program. See example below.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:portfolioAsyncRpt xmlns:ns2="http://cmegroup.com/schema/core/1.2" status="SUCCESS">
<portfolio id="123456e1-12b3-123z-a0cf-12ee3ee5e56d">
<cycle date="2025-11-14" code="EOD"/>
<transactions>
<transaction>
<payload encoding="STRING" format="CSV">
<string>PbaAccountID,SegTmfID,PmTmfID,SegAccountID,PmAccountID,AccountType,ProductCode,ProductType,OptionExpiration,FutureExpiration,CallPut,Strike,Bought,Sold,TradeDate,ExchangeCode,Price,TransferOrigin Test123,123,T123,T456,T678,NSEG,21,FUT,,202512,,,0,50,5/21/2025,CBT,112.671875,FICCBaseline Test123,123,T123,T456,T678,NSEG,26,FUT,,202512,,,0,20,5/22/2025,CBT,104.12109375,FiccOptimization</string>
</payload>
</transaction>
</transactions>
</portfolio>
</ns2:portfolioAsyncRpt>
Report 3: FICC Estimated Savings Report Request Endpoint
Note - The FICC estimated savings report is intended for CME-FICC Cross Margin participants, including those enrolled in both the IRS Portfolio Margining and CME-FICC Cross Margin program.
Sample Request
GET {{API_URL}}/optimize/reports/ficcestimatedsavingsreport/(optimize id)Sample Response
The report contains:
Margin states for each portfolio, expressed for both the F&O account and the FICC account:
Pre-optimization state.
Post-optimization state.
Change in margin (savings), in dollar and percentage terms.
Margin account IDs (ficcPbAcctId) for all optimized accounts, for users participating in both the programs would see both the FICC and IRS PBAccount ID in the response.
Clearing firm ID (clrMbrFirmId)
Mapping table of Optimizer software Estimated Savings Report to API estimated savings report.
Field in Optimizer Software Estimated Savings Report | Fields in FICC Estimated Savings Report API Result | Business Description of Field |
|---|---|---|
N/A | ClrOrgId | The value will be always be set to CME as the originating Clearing Hous |
SPAN Before | standalonePreAmt | Pre Optimization, CME Side stand-alone margin, including all CME side futures/options for the PBA |
N/A | allocatedPreAmt | Pre Optimization, CME Side Allocated margin, including all CME side futures that is allocated into XM account to participate in FICCXM program |
N/A | unallocatedPreAmt | Pre Optimization, CME Side Unallocated margin, including all CME side futures and option as that is not moved to FICCXM program |
N/A | extClrOrgId | The value will be always be set to FICC as the Cross margin Clearing House |
N/A | extStandalonePreAmt | Pre Optimization FICC Side Standalone Margin for the portfolio of all available FICC side positions |