Through its Strategy API, Moment enables Clients to create personalized fixed income strategies with precise maturity, credit quality, and cash flow targeting, as well as automated reinvestment and rebalancing. This document summarizes the unique advantages of designing custom portfolios in the fixed income market, describes how Moment’s Strategy API enables instant, automated portfolio construction, and reviews several case studies in which Moment’s Strategy API is used to develop custom portfolios for clients with varied investment profiles and objectives.****

<aside> 👉 Moment will be launching the Strategy API in Q4 2023. Interested beta customers should connect with Moment's team directly, as Moment can accommodate additional customizations necessary to serve beta customers' intended use cases.

</aside>

Why Customize?

Instant, personalized portfolios

Moment allows clients to customize every dimension of their portfolio, including the asset classes (e.g. treasury, municipal, corporate), risk tolerance, ratings, maturities, and sectors. Moment’s API also allows clients to “preview” strategies, enabling them to analyze the expected portfolio that a strategy will produce before deploying the strategy.

Cash flow predictability

Clients can provide specific cash flow targets for specific dates, and Moment’s portfolio optimizer will construct a portfolio that meets those needs. This creates an unmatched level of predictability — clients know exactly what cash flows they’ll receive by each target date, which would be impossible if the client were investing in a mutual fund subject to price fluctuations and continuous rebalancing.

Complete transparency

Unlike a typical fixed income mutual fund that holds thousands of securities, Moment provides complete transparency into its strategies’ holdings. Through Moment’s API, clients can:

  1. Analyze their exact holdings and receive detailed reference and pricing data on each bond
  2. Decompose their portfolio’s risk exposure by credit quality, geography, sector, and issuer
  3. Visualize the future cash flows of their portfolio

Tax optimization

With the capability to customize ratings, sectors, and maturities comes the capability to precisely optimize a portfolio for after-tax yield. Moment’s Strategy API calculates the effective after-tax yield of every bond in Moment’s universe based on the end-client’s annual taxable income and state of residence, allowing Moment to build optimized portfolios of corporate and municipal bonds that minimize the end-client’s tax burden.

Tax loss harvesting

Moment’s Tax Loss Harvesting Engine continuously scans client portfolios to identify and take advantage of opportunities for tax loss harvesting. With select custodians, Moment also facilitates internal swaps between client portfolios to minimize street-side clearance costs, which is particularly valuable for clients with portfolios less than $1M.

<aside> 👉 Because bonds have a finite life, tax loss harvesting in fixed income can potentially eliminate tax liabilities, rather than only postpone them. Suppose an investor purchases a municipal bond for $110. A year later, the investor sells the bond for $100 and uses the proceeds of the sale to purchase a similar bond with an identical maturity date, priced at $100. The $10 capital loss from the sale can be used to offset gains elsewhere in the portfolio, but no capital gains are incurred when the second bond matures. If the original bond had simply been held to maturity, no such loss would have been realized.

</aside>

How Does Moment’s Strategy API Enable Customization?

Moment’s Framework for Building Custom Portfolios

Moment’s Strategy API enables Clients to create personalized fixed income strategies with precise maturity, credit quality, and cash flow targeting, as well as automated reinvestment and rebalancing. To better understand how the Strategy API works, it’s important to understand Moment’s framework for constructing custom fixed income strategies. Typically, building a custom strategy consists of three steps:

Untitled

1. Solicit investment objectives from the end user.

This involves collecting basic information about the user in order to recommend a portfolio; this is almost always owned by Moment's partner, who has a direct relationship with the end user.

<aside> 👉 Example: A robo-advisor that works with Moment asks a user for their investment horizon, risk tolerance, marginal tax rate, state of residence, and amount they would like to invest.

</aside>

2. Map investment objectives to a strategy.

Given information about a user and their investment objectives, it must be determined what type of strategy is appropriate for the user. Strategies are sets of mathematical constraints for constructing portfolios, so by default they're not associated with investment objectives; a strategy has no concept of a risk tolerance, but a strategy can accept a constraint that at least 75% of the portfolio's market value be AA-rated or above. Moment works closely with each of its partners to determine how their users' investment objectives should map to strategies, in addition to providing out-of-the-box Model Strategies for common use cases.

<aside> 👉 Example: Suppose the user has an investment horizon of 3-5 years, risk tolerance of 1/10, marginal tax rate of 25%, state of residence of New York, and amount to invest of $50,000. The robo-advisor assigns them to their ultra low-risk, medium horizon ladder strategy, which has the following parameters: minimum maturity of 1 year, maximum maturity of 5 years, equal maturity weightings, 100% US Treasuries.

</aside>

3. Construct an optimal portfolio that meets the strategy's constraints.

Once a strategy has been defined, the customized portfolio problem becomes a portfolio optimization problem: given the current set of bonds available in the market, we must identify a portfolio of bonds that maximizes the objective function and satisfies the strategy's constraints. The objective function is typically the post-tax, risk-adjusted yield (penalized for transaction costs), and the constraints are typically lower and upper bounds on the portfolio's weight by maturity, rating, and asset class. Moment's Strategy API exposes Moment's portfolio optimizer for this purpose, allowing clients to instantly generate an optimal portfolio for a given strategy.

Simplifying Strategy Design with Model Strategies

Strategies can be complicated. For example, a strategy might contain 10+ factor policy constraints specifying the exact portfolio weights by asset class, rating, and sector. To simplify the strategy creation process, Moment offers Model Strategies that serve as templates for common investor archetypes and investment objectives. While many clients simply use model strategies out-of-the-box, Moment’s investment team also works closely with clients to build custom frameworks for translating investment objectives into strategies.

<aside> 👉 The simple Model Strategy below is designed for a low-risk, medium investment horizon individual investor who lives in New York City and has an annual income of $500,000. The strategy builds an equally-weighted ladder for the investor with maturities ranging from 1 year to 10 years. Because the investor has a low risk tolerance, the strategy targets 50% treasuries and 50% investment-grade corporate and municipal bonds. Since the investor has an annual income of $500,000, it’s likely that the non-treasury component of the portfolio will include a sizable allocation to New York State and New York City municipal bonds to maximize tax-advantaged income.

{
	target_portfolio_size: 20,
	maturity_policy: {
		months_to_first_maturity: 12,
		months_to_last_maturity: 120,
		maturity_weighting_policy: "equal_notional"
	},
	factor_policy: [
		{
			asset_class_filter: "treasury",
			target_weight: 0.5
		},
		{
			asset_class_filter: "corporate,municipal",
			rating_filter: "AAA*,AA*,A*,BBB*",
			target_weight: 0.5
		},
	],
	reinvestment_policy: {
		auto_reinvest: true 
	},
	rebalancing_policy: {
		auto_rebalance: true,
		frequency: 3
	},
	tax_normalization: {
		normalize_yields_for_taxes: true,
		taxable_income: 500000,
		zip_code_of_residence: "NY",
	}
}

</aside>

Moment’s Portfolio Optimizer and Best Execution Engine

Untitled

What happens after a client deploys a strategy?

Deploying a strategy runs Moment’s Portfolio Optimizer, which uses Mixed Integer Linear Programming to generate an “optimal” portfolio for the specified strategy. This is a classic portfolio optimization problem: the objective function is the user’s after-tax, risk-adjusted yield (with penalties for transaction costs), and the constraints are the strategy’s target portfolio, maturity policy, and factor policy. When constructing portfolios, Moment’s Portfolio Optimizer ingests hundreds of thousands of quotes from dealers, trading venues, and external data vendors to determine where each bond can be bought or sold. These “cost to buy” and “cost to sell” estimates are then compared with Moment’s proprietary pricing models, which identify bonds that are advantageously priced relative to their trading level in the institutional market. As supported by independent research, low-notional markets are more commonly mispriced, presenting opportunities for Moment to reduce transaction costs by capturing “execution alpha.”

How does Moment optimize execution/minimize transaction costs?

Moment integrates with and aggregates liquidity from all of the major US fixed income trading venues, allowing Moment’s Smart Order Router to optimize client execution across every available source of liquidity. Moment’s team has extensive experience in this domain, having led the development of fixed income trading systems for institutions such as Citadel Securities, Jane Street Capital, Virtu Financial, the Chicago Trading Company, and Tradeweb Markets. Beyond smart order routing, Moment also provides clients with the option to permit gradual execution throughout the day, allowing Moment to take advantage of temporary mispricings, aggregate orders across clients, and reduce transaction costs by executing fewer, larger-quantity trades with the street. The optimal execution strategy depends on the liquidity profile of the underlying bonds, the size of the requested portfolio, and the currently executable quotes in the market.

Case studies

Case 1: Preparing for a large expense

Investment objectives

A user is saving up for a down payment on a house in October 2024. They currently have $50,000 in cash and would like to earn a yield on their assets, but have a very low tolerance for risk.

Strategy

Based on the user’s profile and goals, the robo-advisor creates a very simple strategy. The strategy specifies basic information about the user’s account, as well as the user’s initial investment amount of $50,000. For the maturity policy, rather than requiring a minimum maturity, maximum maturity, and weighting scheme, the robo-advisor simply provides the cash flow target that must be met ($50,000 by 2024-10-01). The factor policy is also simple — because the user is very risk averse, the robo-advisor requires that 100% of the portfolio consist of US treasuries. Finally, the robo-advisor also enables reinvestment, meaning that coupon payments from the portfolio that occur before the target cash flow will be reinvested in bonds that mature before the target cash flow.

{
	client_order_id: "abc",
	account_id: "xyz",
	initial_funding: 50000,
	maturity_policy: {
		maturity_weighting_policy: "custom_cash_flows",
		custom_cash_flows: {
			cash_flow_targets: [
				{
					date: "20241001",
					amount: 50000
				}
			]
		}
	},
	factor_policy: [
		{
			asset_class_filter: "treasury",
			target_weight: 1
		}
	],
	reinvestment_policy: {
		auto_reinvest: true 
}

Portfolio

When the strategy is deployed, Moment’s portfolio optimizer generates the portfolio below. Perhaps surprising, the “portfolio” consists of only one bond. Why? Moment’s portfolio optimizer incorporates transaction and clearing costs into its objective function, meaning that it will oftentimes produce the smallest possible portfolio that satisfies the strategy’s constraints. If the robo-advisor had desired to build a more diversified portfolio, it could have set target_portfolio_size to the desired number of bonds in the portfolio. For this use case, though, a portfolio of just one bond is perfectly reasonable. Diversifying across different treasury bonds is not beneficial from a risk management perspective, and including only one bond with a maturity date just before the cash flow date maximizes the user’s yield.

Name S&P Rating Sector Cusip Maturity Date Yield to Worst Quantity
TREASURY NOTE AAA Treasuries 91282CFN6 2024-09-30 4.84 49.0

Case 2: Preserving capital with a custom treasury ladder

Investment Objectives

A user wants to earn yield on their $25,000 in savings, but is hesitant about investing in the equity market. The user has an investment horizon of 1 to 10 years and is very risk averse; they are not willing to accept any credit risk from a corporate or municipal issuer.

Strategy

Based on the user’s profile and goals, the robo-advisor simply adjusts the target number of bonds and the maturity policy to create the following strategy. The strategy includes an initial investment of $25,000, with a target portfolio size of 5 bonds. For the maturity policy, the strategy specifies a minimum maturity of 1 year, a maximum maturity of 10 years, and a mandate to weight rungs equally between the minimum and maximum maturities. Because the user is very risk averse, the strategy also requires that the 100% of the portfolio be in treasuries. Finally, the strategy enables auto-reinvestment, meaning that coupon and principal payments from the strategy will automatically be reinvested to maintain alignment with a 1 to 10 year ladder.

{
	client_order_id: "abc",
	account_id: "xyz",
	initial_funding: 25000,
	target_portfolio: {
		n_bonds: 5
	},
	maturity_policy: {
		months_to_first_maturity: 12,
		months_to_last_maturity: 120,
		maturity_weighting_policy: "equal_notional"
	},
	factor_policy: [
		{
			asset_class_filter: "treasury",
			target_weight: 1
		}
	],
	reinvestment_policy: {
		auto_reinvest: true 
	}
}

Portfolio

Moment builds a treasury ladder with maturities ranging from 2024-02-29 to 2031-02-15. Since the robo-advisor opted for auto-reinvestment, the proceeds of earlier maturity "rungs" of the ladder will automatically be reinvested in a new rung. This allows the client to reduce the long-term interest rate exposure of their portfolio; if interest rates increase, newly maturing rungs will be invested at a higher interest rate.

Name S&P Rating Sector Cusip Maturity Date Yield to Worst Quantity
TREASURY NOTE AAA Treasuries 912828W48 2024-02-29 5.04 6.0
TREASURY NOTE AAA Treasury 91282CEW7 2027-06-30 4.13 5.0
TREASURY NOTE AAA Treasury 9128286B1 2029-02-15 4.01 6.0
TREASURY BOND AAA Treasury 912810FP8 2031-02-15 3.93 4.0
TREASURY NOTE AAA Treasury 91282CDY4 2032-02-15 3.81 4.0

Case 3: Retirement planning with annual cash flow targets

Investment Objectives

A 65 year old user has recently retired and is transitioning their portfolio to lower-risk, higher-income securities. Based on an internal retirement planning model, the robo-advisor determines that the user should allocate $600,000 to a fixed income portfolio. Net of other retirement income, the user expects to require $40,000 in annual income from their portfolio per year.

Strategy

The robo-advisor designs a 30 year corporate and treasury bond ladder strategy for the user. The strategy has a minimum maturity of 1 year, a maximum maturity of 30 years, and an initial investment amount of $600,000. The robo-advisor sets the target portfolio size to 30 bonds to ensure that the portfolio is sufficiently diversified. Rather than weight maturities equally, the robo-advisor inputs the user’s required income by year as target cash flows — this allows the advisor to guarantee that the user receives their required income from the portfolio each year. Finally, because the user’s risk tolerance is low, the robo-advisor also requires that 25% of the portfolio be treasury bonds, 25% of the portfolio be AA- to AAA rated corporate bonds, 25% of the portfolio be A- to A+ rated corporate bonds, and 25% of the portfolio be BBB- to BBB+ rated corporate bonds.

{
	client_order_id: "abc",
	account_id: "xyz",
	initial_funding: 600000,
	target_portfolio: {
		n_bonds: 25
	},
	maturity_policy: {
		maturity_weighting_policy: "custom_cash_flows",
		custom_cash_flows: {
			invest_excess: true,
			cash_flow_targets: [
				{
					date: "20240101",
					amount: 40000,
					type: "during"
				},
				...,
				{
					date: "20530101",
					amount: 40000,
					type: "during"
				},
			]	
		}
	},
	factor_policy: [
		{
			asset_class_filter: "treasury",
			target_weight: 0.25
		},
		{
			asset_class_filter: "corporate",
			rating_filter: "AAA*,AA*",
			target_weight: 0.25
		},
		{
			asset_class_filter: "corporate",
			rating_filter: "A*",
			target_weight: 0.25
		},
		{
			asset_class_filter: "corporate",
			rating_filter: "BBB*",
			target_weight: 0.25
		},
	]
}

Portfolio

Moment generates a 1 to 30 year bond ladder for the user that meets each specified cash flow targets. Because the robo-advisor set the invest_excess to true, funds in excess of the required cash flows is for the funds to be invested equally across maturities, but the robo-advisor could have instead specified that the excess funds not be invested at all (in which case Moment’s portfolio optimizer will propose a “minimal” portfolio that meets the required cash flows). The plot below compares the portfolio’s projected cashflows with the user’s target cash flows:

portfolio_cashflows.png

The full portfolio is shown below. After previewing the strategy, the advisor can update the strategy’s parameters and preview a new portfolio, or deploy the strategy if the previewed portfolio is acceptable.

Name S&P Rating Sector Cusip Maturity Date Yield Quantity
AMAZON.COM INC AA Consumer Discretionary 023135AZ9 2024-08-22 4.94 12.0
US BANK NA/CINCINNATI OH AA- Banking 90331HMS9 2025-01-27 4.94 12.0
TREASURY NOTE AAA Treasuries 912828W48 2024-02-29 5.04 19.0
GXO LOGISTICS INC BBB- Transportation 36262GAB7 2026-07-15 6.32 19.0
PHILIP MORRIS INTERNATIONAL INC A- Consumer Non-Cyclical 718172CJ6 2029-08-15 5.15 12.0
CHEVRON CORP AA- Energy 166764BX7 2027-05-11 4.54 12.0
TREASURY NOTE AAA Treasury 912828Z78 2027-01-31 4.18 19.0
CDW LLC BBB- Technology 12513GBF5 2029-02-15 6.26 22.0
BALTIMORE GAS AND ELECTRIC CO A Electric 059165EN6 2031-06-15 4.89 12.0
TREASURY NOTE (2OLD) AAA Treasury 91282CFY2 2029-11-30 3.96 12.0
GENERAL MOTORS FINANCIAL CO INC BBB Consumer Cyclical 37045XDS2 2032-01-12 5.86 23.0
AMERICAN ASSETS TRUST LP BBB- Reits 02401LAA2 2031-02-01 6.59 23.0
WELLPOINT INC A Insurance 94973VAH0 2034-12-15 5.32 12.0
FLORIDA POWER AND LIGHT CO A+ Electric 341081ET0 2035-06-01 5.07 13.0
KLA-TENCOR CORP A- Technology 482480AF7 2034-11-01 5.48 13.0
TREASURY NOTE (OLD) AAA Other 91282CFV8 2032-11-15 3.82 18.0
SOUTHERN CALIFORNIA EDISON COMPANY A- Electric 842400FH1 2038-02-01 5.54 12.0
ABBOTT LABORATORIES AA- Consumer Non-Cyclical 002824BG4 2036-11-30 4.64 12.0
TREASURY STRIP (INT) AAA Treasuries 9128337E4 2036-08-15 4.06 32.0
NEWELL RUBBERMAID INC BBB- Corporates 651229AX4 2036-04-01 7.78 21.0
ENTERGY TEXAS INC A Electric 29365TAH7 2039-03-30 5.40 12.0
UNIVERSITY OF SOUTHERN CALIFORNIA AA Industrial Other 914886AB2 2039-10-01 4.83 13.0
ALPHABET INC AA+ Technology 02079KAE7 2040-08-15 4.67 27.0
TREASURY BOND AAA Treasuries 912810SW9 2041-02-15 4.02 25.0

Case 4: Optimizing taxes with municipal bonds

Investment Objectives

A high-net worth user of a robo-advisor would like to allocate $35,000 to a tax-advantaged portfolio. The user has an annual income of $500,000 and lives in California, and as a result their taxable bond income will be taxed at a rate of 41%. The user has a low risk tolerance and an investment horizon of ~10 years.

Strategy

The robo-advisor creates a very simple municipal bond strategy for the user. The robo-advisor sets the initial investment to $35,000, the minimum maturity to 2 years, and the maximum maturity to 15 years. For the factor policy, the robo-advisor simply limits the universe to municipal bonds with ratings of AA- or above. Finally, the robo-advisor provides information about the user’s tax profile and specifies that the optimizer should use post-tax, rather than pre-tax, yields when building the portfolio.

{
	client_order_id: "abc",
	account_id: "xyz",
	initial_funding: 35000,
	maturity_policy: {
		months_to_first_maturity: 24,
		months_to_last_maturity: 180,
		maturity_weighting_policy: "equal_notional",
	},
	factor_policy: [
		{
			asset_class_filter: "municipal",
			rating_filter: "AAA*,AA*",
			target_weight: 1,
		},
	],
	tax_normalization: {
		normalize_yields_for_taxes: true,
		taxable_income: 500000,
		zip_code_of_residence: "90291",
	}
}

Portfolio