Advisory Platforms

Multi-custodial RIA aggregators, portfolio management systems, and SMA managers can leverage Moment's suite of portfolio management tools to deliver fully automated fixed income strategies to their advisors. This document outlines how such Partner Platforms can do the following:

  • Offer a suite of proprietary, fully automated fixed income strategies to advisors.
  • Allow advisors to customize proprietary strategies for each client, build their own strategies, or select from a model marketplace of strategies from third party asset managers.
  • Automatically construct portfolios, propose rebalances, execute proposed orders, and book executed trades at the Custodian.
  • Display reference and pricing data, risk analytics and statistics, comparisons vs the target strategy's constraints, and forecasted cash flows for the client's portfolio.

This document is organized into three sections:

  1. Key Terms & Concepts: this section covers basic information and assumptions about Moment's product, the typical partner platform setup, and the typical points of integration with custodians.
  2. Setup & Configuration: this section covers the necessary steps to construct an initial set of strategies and allow users to begin allocating to strategies.
  3. Daily Workflow: this section covers the daily workflow to pull SOD positions from the Custodian, run Moment's Portfolio Optimizer to generate proposed orders, and submit the proposed orders to Moment's EMS for automated execution and post-trade processing.

The end of the document includes various operational and tech FAQs.

Key Terms & Concepts

Partner Platform

The Partner Platform refers to the RIA aggregator, portfolio management system, or SMA manager using Moment's to deliver fixed income strategies to their advisors. It is assumed that Partner Platforms using this guide are able to integrate with Moment via REST and/or FIX APIs.

Custodian

Many Partner Platforms using Moment are multi-custodial, working with Schwab, Fidelity, Pershing, RBC, and a number of other providers. While this guide refers to the "Custodian" in some sections for the sake of simplicity, nothing precludes the Partner Platform from using Moment to deliver fixed income strategies across many custodians. Beyond the requirement that the Partner Platform is able to pull SOD holdings for accounts from multiple custodians (which should already be the case for all multi-custodial RIA platforms), using multiple custodians simply requires that Moment's EMS is integrated with each custodian's system for post-trade booking and reporting.

Liquidity Destination

As described below, Moment's Execution Management System (EMS) performs automated smart order routing across ATS limit order books, RFQ platforms, and single dealer platforms, which we collectively refer to as Liquidity Destinations. As compared to integrating with a single venue, performing automated smart order routing typically allows Partner Platforms to reduce transaction costs by upwards of 50%. Moment's trading operations team works with each Partner Platform to determine a set of Liquidity Destinations for the Partner Platform to onboard based on the Partner Platform's expected volume, asset classes, and trade sizes.

Portfolio Optimizer

Moment's Portfolio Optimizer allows Partner Platforms to build and rebalance custom fixed income portfolios based on live, executable market data. The magic behind the Portfolio Optimizer is its integration with Moment's EMS: because the Portfolio Optimizer uses live, executable quotes from the EMS to construct portfolios, the orders proposed by the Portfolio Optimizer can be automatically executed through Moment's EMS. This means that managing custom fixed income strategies at scale is as simple as calling Moment's Portfolio Optimizer, validating the proposed orders, and submitting the proposed orders to Moment's EMS via a set of simple REST or FIX APIs. For a more detailed description of the Portfolio Optimizer, see this overview. For the purpose of this document, it's important to understand that the Portfolio Optimizer takes the following inputs:

  1. Investor Profile. This includes basic details on the investor, such as their state of residence and marginal tax rate. The Portfolio Optimizer primarily uses this information to normalize all available bond yields for federal, state, and local taxes.
  2. Current Holdings. This includes the current holdings in the investor's account. In the case of an SMA, this includes all of the holdings and cash in the account. In the case of a UMA, this includes all of the holdings and cash in the fixed income sleeve of the account. If you are calling the Portfolio Optimizer for a new portfolio, the current holdings will simply be all cash.
  3. Target Strategy. This is the investment strategy that the portfolio should target. Moment provides a number of sample target strategies in our Model Library, but Moment's team also works closely with Partner Platforms to codevelop customized strategies for their clients. Moment's strategy schema is very flexible, allowing Partner Platforms to place essentially any constraint on the portfolio. Partner Platforms can choose to offer a static set of target strategies to their advisors, allow their advisors to customize target strategies that the Partner Platform distributes, or allow their advisors to develop fully personalized target strategies themselves.

Based on these inputs, the Portfolio Optimizer produces a proposed set of orders for each portfolio. Partner Platforms can retrieve the proposed orders via the Get Optimization Orders Endpoint, review the orders based on their risk and compliance controls, and submit the orders to Moment's EMS for automated execution.

Execution Management System (EMS)

Moment's Execution Management System (EMS) automatically validates orders against pre-trade risk and compliance controls, executes orders at the best available price across liquidity destinations, and books executed trades at the Partner Platform's custodians. Partner Platforms can submit orders to either via Moment's FIX API or REST API. For more details on Moment's EMS, see Trading with Moment.

Pre-Trade Validation

Using the Mission Control Platform, Partner Platforms can configure a variety of pre-trade risk and compliance checks, including max trade size limits, prevailing market price (PMP) bands, and universe allowlists / blocklists. When the Partner Platform submits an order to Moment's EMS, Moment will automatically validate the order against the appropriate risk and compliance checks that the Partner Platform has set.

Automated Best Execution

With connectivity to all major fixed income trading venues and most major single dealer platforms, Moment's EMS automatically routes each order to the best available market accessible to the Partner Platform. Moment also offers the ability for Partner Platforms to configure advanced, automated routing controls using Moment's Mission Control Platform. For instance, if automated RFQ is enabled, Moment's EMS will automatically send an RFQ upon receiving an order, collect responses, and trade against the best available market between the RFQ responses and the limit order book quotes.

Post-Trade Booking

Once an order is executed on the Liquidity Destination, Moment automatically books and reports the trade to the Partner platform's custodian. Moment's trading operations team works closely with Partner Platforms to ensure that the Partner Platform is properly configured for Moment to book trades at the custodian.

Mission Control Platform

Using Moment's Mission Control Platform, Partner Platforms can control and monitor the full lifecycle of an order. In addition to setting the risk and compliance controls that Moment's EMS uses to validate each order, the Mission Control Platform allows Partner Platforms to view real-time updates on order statuses, executions, and risk metrics.

Setup & Configuration

1. Create Strategies

Create a set of strategies that you would like to offer to users. Whenever you optimize a portfolio, you’ll provide the user’s target strategy to Moment’s Portfolio Optimizer, which will propose a set of trades to bring the user’s portfolio in line with their target strategies. When choosing what strategies to offer to their users, most platforms follow one of two approaches:

Offering a Menu of Strategies

It’s common for Partner Platforms to simply offer a menu of predefined strategies that users can browse and allocate to. A few simple strategies are listed below, but you can find a broader range of strategies across asset classes in the Model Library.

Offering Custom Strategies Based on User Inputs

Some Partner Platforms also allow users to define their own strategy, either by specifying the full set of constraints or by specifying a few simple parameters, such as a ladder duration and risk tolerance.

For the treasury ladder above, the strategy schema should be as follows:

[
  {
    "type": "universe",
    "filter": {
	    "type": {"equal_to": "treasury"}
      "treasury_subtype": {"in_list": ["bill", "note", "bond"]}
    }
  },
  {
    "type": "ladder_policy",
    "period_length": 1, // months
    "num_periods": {USER_INPUT_HERE},
    "weight_tolerance": 0.025
  }
]

2. Assign Accounts to Strategies

When a user selects a strategy from the menu or builds a custom strategy, the Partner Platform should save that strategy schema internally and associate it with the user’s account. You’ll need the user’s strategy schema in order to call Moment’s Portfolio Optimizer and generate proposed trades.

Daily Workflow

Every day, you’ll want to determine whether any of your user’s portfolios require attention and, if so, process any proposed trades. To do this, you should

  1. Pull the user’s start-of-day (SOD) holdings from the Custodian.
  2. Run Moment’s Portfolio Optimizer with the user’s SOD holdings and target strategy.
  3. Review the proposed orders.
  4. Submit the approved orders to Moment's EMS for automated execution.

Let’s dive into each of these in more detail.

1. Pull SOD Positions from the Custodian

You'll need to include the current holdings of each fixed income account when calling Moment's Portfolio Optimizer. Most Partner Platforms pull SOD positions directly from their custodian, while others use an internal or third-party sleeve accounting system.

2. Run Moment's Portfolio Optimizer

Given a set of holdings and a target strategy, Moment’s Portfolio Optimizer will automatically propose the necessary trades in order to invest the user’s portfolio or bring the user’s portfolio into alignment with the target strategy. For each account, you should call the Submit an Optimization Endpoint to run an optimization. Here’s a sample API request body for a new account with $10M assigned to the 1-6 Month Treasury Ladder strategy:

{
  "accounts": [
    {
      "account_id": "{ACCOUNT_ID}",
      "federal_tax_rate": 0.0,
      "state_tax_rate": 0.0,
      "state": "CA",
      "risk_group_id": null,
      "holdings": [
	      {"instrument_id": "USD", "quantity": 10000000}
      ],
      "strategy": {
        "schema_version": 1,
        "constraints": [
            {
	            "type": "universe",
	            "filter": {
                "type": {"equal_to": "treasury"},
                "treasury_subtype": {"in_list": ["bill", "note", "bond"]}
            }
            },
            {
	            "type": "ladder_policy",
	            "period_length": 1,
	            "num_periods": 6,
	            "weight_tolerance": 0.025
            }
        ]
      },
      "assignment_date": "{TODAY}"
    }
  ]
}

For an account with existing holdings, you simply include the ISIN and quantity in par value for each instrument in the holdings field. Here’s an example holdings schema for a portfolio with five holdings ($1M par value each) and $5M in uninvested cash.

"holdings": [
   {"instrument_id": "USD", "quantity": 5000000},
   {"instrument_id": "US912821CX10", "quantity": 1000000},
   {"instrument_id": "US91282CLB53", "quantity": 1000000},
   {"instrument_id": "US912810RP57", "quantity": 1000000},
   {"instrument_id": "US91282CLG41", "quantity": 1000000},
   {"instrument_id": "US91282CLA70", "quantity": 1000000},
]

3. Review Proposed Trades

You can retrieve the results of an optimization using the Get Optimization Orders Endpoint, which returns the proposed trades for the portfolio. An example response is shown below.

{
    "orders": [
        {
            "account_id": "ACCOUNT_ID",
            "instrument_id": "US912797KL06",
            "quantity": 2175000.0,
            "side": "buy",
            "limit_price": 99.565,
            "limit_ytw": 5.22,
            "tax_effective_limit_ytw": 5.22,
            "net_money": 2165538.75,
            "block_id": 0,
            "par_value": 1000.0
        },
        {
            "account_id": "ACCOUNT_ID",
            "instrument_id": "US912797MC88",
            "quantity": 1182000.0,
            "side": "buy",
            "limit_price": 98.726,
            "limit_ytw": 5.04,
            "tax_effective_limit_ytw": 5.04,
            "net_money": 1166941.32,
            "block_id": 1,
            "par_value": 1000.0
        },
        {
            "account_id": "ACCOUNT_ID",
            "instrument_id": "US912828YE44",
            "quantity": 2156000.0,
            "side": "buy",
            "limit_price": 99.871,
            "limit_ytw": 5.54,
            "tax_effective_limit_ytw": 5.54,
            "net_money": 2165888.189347826,
            "block_id": 2,
            "par_value": 1000.0
        },
        {
            "account_id": "ACCOUNT_ID",
            "instrument_id": "US912828YY08",
            "quantity": 1178000.0,
            "side": "buy",
            "limit_price": 98.849,
            "limit_ytw": 4.98,
            "tax_effective_limit_ytw": 4.98,
            "net_money": 1167298.1901086955,
            "block_id": 3,
            "par_value": 1000.0
        },
        {
            "account_id": "ACCOUNT_ID",
            "instrument_id": "US91282CFQ96",
            "quantity": 2141000.0,
            "side": "buy",
            "limit_price": 99.84,
            "limit_ytw": 5.133,
            "tax_effective_limit_ytw": 5.133,
            "net_money": 2166082.2804347826,
            "block_id": 4,
            "par_value": 1000.0
        },
        {
            "account_id": "ACCOUNT_ID",
            "instrument_id": "US91282CGG06",
            "quantity": 1169000.0,
            "side": "buy",
            "limit_price": 99.652,
            "limit_ytw": 4.912,
            "tax_effective_limit_ytw": 4.912,
            "net_money": 1167552.6001086957,
            "block_id": 5,
            "par_value": 1000.0
        }
    ]
}

4. Submit Approved Trades for Auto-Execution

Once you’ve reviewed the proposed orders, you can submit them for automated execution via Moment's Orders REST API or Trading FIX API. Submitted orders will flow through to Moment’s Execution Management System, which automatically executes them at the best available price across multiple sources of liquidity and books executed trades into custodian's back office for post-trade processing. The diagram below illustrates the end-to-end lifecycle of a trade, including pre-trade risk checks, automated smart order routing, and automated post-trade processing and reporting. For more details on the order lifecycle, see Trading with Moment.

📘

Moment also provides a Mission Control Platform & Trade Blotter, which allows Partner Platforms to view real-time order statuses, incoming executions, and risk metrics. Partner Platforms also set pre-trade risk and compliance controls on the platform, which Moment's EMS will use to validate each order prior to routing the order to the venue.

Displaying Data on User Portfolios

Portfolio Statistics & Analytics

To show statistics and analytics to users on their portfolios, you can use Moment’s Portfolio Analytics Endpoint. Provide the user’s holdings and the endpoint will return the minimum, maximum, and average yield to worst, yield to maturity, S&P rating, coupon, duration, and years to maturity, as well as the forecasted cashflows of the portfolio.

Reference & Pricing Data

To display reference data and prices for users' holdings, you can leverage Moment's Reference Data API and Evaluated Prices API.

FAQ

How can I offer fixed income strategies as part of a UMA?

Offering fixed income strategies as part of a UMA is generally very straightforward. Instead of providing the current holdings of the entire account to the Portfolio Optimizer, the Partner Platform should instead provide the current holdings of just the fixed income sleeve to the Portfolio Optimizer. Of course, this assumes that the Partner Platform already supports sleeve-level accounting, which is generally the case for Partner Platforms that support UMAs.

What liquidity sources should I onboard?

Moment's Trading Operations Team works closely with Partner Platforms to help them determine an initial set of venues to onboard. For more details, reach out to Moment.

What setup is necessary with the custodians?

For most custodians, the Partner Platform will need to set up trade away or prime broker permissions. For more details on prime broker transactions, see here. For more details on trading away, see here.

Can I allow my advisors to create their own strategies?

Yes! You can create strategies on the fly, allowing advisors to define their own simple or complex strategy constraints. Just make sure the pass the correct strategy schema to Moment's APIs when calling the Portfolio Optimizer.

Does Moment provide any tools for monitoring trading?

Yes! Moment's Mission Control Platform allows Partner Platforms to view real-time order statuses, incoming executions, and risk metrics. Partner Platforms can also set pre-trade risk and compliance controls on the platform, which Moment's EMS will use to validate each order prior to routing the order to the venue.