Development Guides

Sleeving Registrations

Purpose: Sleeving registrations allows a single custodian account to be split into sub-accounts, which can then be assigned to different strategies. Orion’s sleeve features will automatically divide activity among the accounts by allocation, as well as process contributions and distributions from specified sleeves.

Simple Use Case: A client has a single investment account with Schwab, but wants to manage it with three separate goals and strategies. The Advisor sleeves the registration into 30% for education with a moderate strategy, 50% for retirement with an aggressive strategy, and 20% for a home purchase with a conservative strategy. 

Scope and Outputs: While the sleeving process directly impacts an account, the process must be performed on a registration. The firm should be using the best practice of having only one account per registration to start otherwise the sleeving process will not work correctly.

Process Overview:

  1. Get the current registration sleeve information.
  2. Create/Update/Remove the sleeves as needed.
  3. Process the Sleeve Changes.

Process Steps:

  1. GET the current registration sleeve information for a given Registration ID. This will provide the JSON body for sleeve data object.

GET /Trading/Sleeve/Registrations/{Registration ID}

  1. Create/Update/Remove the sleeves as needed. See the below object with notes next to the properties.
{ 
"registrationId": 178700,  
"sleeveStrategyId": null,  
"isActive": true,  
"custodialAccountNumber": "921XXXXXX",  
"asOfDate": null,  
"contributionAllocationMethod": "Assigned", --- These 3 properties indicate what method is used to allocate shares. "distributionAllocationMethod": "Assigned", "corporateActionAllocationMethod": "Sleeve Current Percent", "createdBy": null,  
"createdDate": "0001-01-01T00:00:00-06:00",  
"editedBy": null, 
"editedDate": "0001-01-01T00:00:00-06:00",  
"autoRebalFrequency": "None",--- These 3 fields set the auto rebalance instructions.  
"autoRebalMonth": 10,  
"autoRebalDay": 1,  
"mandate": false, --- This indicates if this is a mandate account or not. 
"accountSleeves": [{ --- this is an array containing each sleeve. This is the collection you will be updating to add/change/remove sleeves. 
"sweepAssetId": 5801864,  
"accountId": 187241,  
"sleeveDescription": null,  
"targetAllocation": 0.0,---This specifies the target allocation for the sleeve. The total of all the sleeves must add to 100%. "currentAllocation": 100.0,  
"currentValue": 0.0,  
"contributionAllocation": 0.0,--- Specifies how contributions are allocated to this sleeve (if different then the target) This is only used when the Registration.ContributionMethod is set to "Assigned" (must add to 100%).  
"distributionAllocation": 0.0,--- Specifies how distributions are allocated to this sleeve (if different then the target) This is only used when the Registration.ContributionMethod is set to "Assigned" ( must add to 100%).  
"corporateActionAllocation": 0.0,--- Specifies how distributions are allocated to this sleeve (if different then the target) This is only used when the Registration.ContributionMethod is set to "Assigned" ( must add to 100%).  
"toleranceUpper": 0.0,--- Specifies the upper tolerance % for the target vs. current.  
"toleranceLower": 0.0,--- Specifies the lower tolerance % for the target vs. current.  
"sleeveType": "Custodial account"--- Specifies the sleeve type. All new sleeves will be "Normal Sleeve". there are 4 types of sleeves, but 3 are system sleeves (Custodial, distribution, and contribution sleeves). The "normal sleeve" types are what you would be adding/removing/editing.  
"modelAgg": "Self-Directed Model for ID: 187241",  
"managementStyle": "Self-Directed",  
"subAdvisor": "Self-Directed",  
"modelType": null,  
"registrationId": 0,  
"subAdvisorId": 63,---The subadvisor (or strategist). ID 63 is Self-Directed in this database.  
"modelAggId": 248994,--- The aggregate model id. If this is a self-directed account, leave this value null. If it is a strategist account, specify the strategists model id to be assigned to this sleeve.  
"managementStyleId": 270,--- The Management Style ID. 270 is Self-Directed for in this database. 
"modelAllocations": [{ --- Model Allocations is used to specify the ticker/allocation for Self-Directed Accounts. Leave out or null for strategy accounts.  "id": 26612662,  
"productId": 14076,--- The product Id for the model.  
"productName": "Dodge & Cox Stock",  
"productClass": "MS-LV",  
"ticker": "DODGX",  
"targetPercent": 20.00,--- The target allocation for this ticker. Must add to 100% for all tickers  },...<edited> --- Continue with other tickers and targets.
  1. Posting this body to the Sleeve Process endpoint will then setup the Registration for Sleeves including creating new sleeves, updating existing, or removing sleeves. If the call is successful you will receive a response with the committed state.

POST /Trading/Sleeve/Registrations/Action/Process

Process Tips or Controls:

  1. Sleeving can be a complicated process with often overlooked details. Processing a few sleeves through the Orion Connect UI first while recording the API calls can help one better understand the process.
  2. Orion can provide additional sleeve training and documentation around the process upon request.