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>
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.
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.
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:
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.
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>
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:
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>
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>
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.
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>
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.”
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.
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.
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
}
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 |
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.
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
}
}
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 |
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.
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
},
]
}
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:
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 |
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.
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",
}
}