The concept of amortisation and accretion involves adjusting a bond's cost basis and simultaneously recognizing P&L over the period a bond is held.

  • Amortisation
    When you purchase a bond at a premium (purchase price above maturity value), LUSID amortises that premium between the bond's settlement date and maturity date. Amortisation involves adjusting the cost basis (price paid) for a bond towards maturity value for each day the bond is held. It decreases both the cost basis of the bond and reported interest income over time.

  • Accretion
    When you purchase a bond at a discount (purchase price below maturity value), LUSID accretes that discount between the bond's settlement date and maturity date. Accretion involves adjusting the cost basis (price paid) for a bond toward maturity value for each day the bond is held. It increases both the cost basis of the bond and reported interest income over time.

For simplicity, and to reflect standard practice, the amortisation of premium and accretion of discount are together referred to as amortisation for the remainder of this article.

Note that LUSID can calculate amortisation for the following types of instrument:

Choosing an amortisation method for a portfolio

By default, amortisation is disabled. To enable it, choose an amortisation method for a transaction portfolio.

Note: For now, all the bonds in a portfolio must share the same amortisation method. In future, you can override this for a particular bond.

The following methods are available:

To choose a method when creating a portfolio, specify the amortisationMethod field in a call to the CreatePortfolio API. To retrospectively change an existing portfolio, call the PatchPortfolioDetails API, for example:

curl -X POST "https://<your-domain>.lusid.com/api/api/transactionportfolios/fixedincome/uk/details"
 -H "Authorization: Bearer <your-API-access-token>"
 -H "Content-Type: application/json-patch+json"
 -d '[
  {
    "value": "EffectiveYield",
    "path": "/amortisationMethod",
    "op": "add"
  }
]'

Understanding the StraightLine method

If you choose this method, LUSID calculates daily amounts from issue date or acquisition date (whichever is later) until maturity date. This method spreads the bond's premium or discount evenly over its term. The amortisation amount per day is calculated by dividing the total premium or discount by the number of days until maturity. This is calculated using the ActualActual day count convention.

Given the following example scenario:

ABC company issues a 5-year bond on 1st January 2020 with a face value of $1,000,000 and an annual coupon rate of 6% paying coupons semi-annually. The day count convention of the bond is 30/360. The bond was bought at issue at $800,000 and held to maturity.

The calculation steps are as follows:

The amortisation schedule is as follows:

Understanding the EffectiveYield method

If you choose this method, LUSID allocates yield income or expense over the relevant period using the effective interest rate on the bond. The effective interest rate is the rate that exactly discounts expected future cash payments and receipts over the life of the financial instrument to the initial carrying amount of the bond.

LUSID recognises accruals daily and uses the Internal Rate of Return compounded daily. Compounded periods are determined using the day count convention specified in the bond economic definition.

Amortisation values calculated using this method are non-analytic in nature and cannot be fully precise. Any errors accrued at each period, resulting from sources including rounding and non-precise yield calculations, are compounded after each period.

Given the following example scenario:

ABC company issues a 5-year bond on 1st January 2020 with a face value of $1,000,000 and an annual coupon rate of 6% paying coupons semi-annually. The day count convention of the bond is 30/360. The bond was bought at issue at $800,000 and held to maturity.

The calculation steps are as follows:

The amortisation schedule is as follows:

Using settlement dates instead of trade dates

By default for both StraightLine and EffectiveYield, LUSID calculates amortisation from trade date to trade date (T2T). A holding starts to accrue amortisation at the trade date of the transaction that opens the position and stops at the trade date of the transaction that closes the position.

You can change this to calculate amortisation from settlement date to settlement date (S2S) if you wish. To do this, choose the StraightLineSettlementDate or EffectiveYieldSettlementDate method instead. A holding starts to accrue amortisation at the settlement date of the transaction that opens the positions and stops at the settlement date of the transaction that closes the position.

Given the following example scenario:

ABC company issues a bond starting on 1st Jan 2020 and maturing on 2nd Jan 2022 with a principal of $1. A trade was made to buy 1,000,000 units on 1st Jan 2020, settling on 2nd Jan 2020 at a price of $0.8. On 1st Jan 2021 a trade was made to sell 500,000 units, settling on 2nd Jan 2021.

The amortisation schedules for the StraightLine (T2T) and StraightLineSettlementDate (S2S) methods are as follows:

Changing the accrual recognition time of day in a recipe

By default, LUSID recognises amortisation accruals at end of day (EOD). A mechanism for changing this to start of day (SOD) in a recipe is coming soon.

Recognising an original issue discount on a bond definition

An original issue discount (OID) is a discount that occurs if a bond is issued at a price lower than its par value. This discount represents the difference between the stated redemption price of the bond at maturity and the initial issue price. The OID is amortised over the life of the bond and is gradually recognised as interest expense over the term of the bond.

For LUSID to calculate the OID component of amortisation, the original issue price of the bond must be stored on the bond instrument's economic definition. You can call the UpsertInstruments API to either master a new bond, or to change the definition of an existing bond, and specify a percentage of par as the value of the originalIssuePrice field, for example 98.5 to represent 98.5%.

Examining amortisation calculations in a valuation report

You can include metrics in a valuation report to examine LUSID's calculation of amortisation, for example:

curl -X POST "https://<your-domain>.lusid.com/api/api/aggregation/$valuation"
  -H "Authorization: Bearer <your-API-access-token>"
  -H "Content-Type: application/json-patch+json"
  -d '{
    "portfolioEntityIds": [ {"scope": "FBNUniversity", "code": "Module-4-1", "portfolioEntityType": "SinglePortfolio"} ],
    "valuationSchedule": {"effectiveAt": "2024-05-09" },
    "recipeId": {"scope": "FBNUniversity", "code": "Module-4-1Recipe"},
    "metrics": [
      {"key": "Instrument/default/Name", "op": "Value"},
      {"key": "Valuation/PV", "op": "Value"},
      {"key": "Holding/Amortisation", "op": "Value"},
      {"key": "Holding/PortfolioAmortisation", "op": "Value"},
      {"key": "Holding/AmortisedCost", "op": "Value"},
      {"key": "Holding/AmortisedPortfolioCost", "op": "Value"},
      {"key": "Holding/Amortisation/Unrealised", "op": "Value"},
      {"key": "Holding/Amortisation/Unrealised/PortfolioCcy", "op": "Value"},
      {"key": "Holding/Amortisation/Unrealised/OriginalIssueDiscount", "op": "Value"},
      {"key": "Holding/Amortisation/Unrealised/OriginalIssueDiscount/PortfolioCcy", "op": "Value"},
      {"key": "Holding/Amortisation/Unrealised/Premium", "op": "Value"},
      {"key": "Holding/Amortisation/Unrealised/MarketDiscount", "op": "Value"},
      {"key": "Holding/Amortisation/Unrealised/AcquisitionPremium", "op": "Value"},
      {"key": "Holding/Amortisation/AdjustedIssuePrice", "op": "Value"}
    ]
  }'

For a vanilla fixed rate US treasury bond, the response might be as follows:

{
  "aggregationEffectiveAt": "2024-05-09T00:00:00.0000000+00:00",
  "aggregationAsAt": "2024-05-09T15:37:53.3174870+00:00",
  "data": [
    {
      "Instrument/default/Name": "T 1% Aug 15 2026",
      "Valuation/PV": 1123.224043715847,
      "Holding/Amortisation": -25.459395376407823,
      "Holding/PortfolioAmortisation": -25.459395376407823,
      "Holding/AmortisedCost": 1024.5406046235921,
      "Holding/AmortisedPortfolioCost": 1024.5406046235921,
      "Holding/Amortisation/Unrealised": -25.459395376407823,
      "Holding/Amortisation/Unrealised/PortfolioCcy": -25.459395376407823,
      "Holding/Amortisation/Unrealised/OriginalIssueDiscount": 0,
      "Holding/Amortisation/Unrealised/OriginalIssueDiscount/PortfolioCcy": 0,
      "Holding/Amortisation/Unrealised/Premium": -25.459395376407823,
      "Holding/Amortisation/Unrealised/MarketDiscount": 0,
      "Holding/Amortisation/Unrealised/AcquisitionPremium": 0,
      "Holding/Amortisation/AdjustedIssuePrice": 0
    }
  ],
  "aggregationCurrency": "USD",
  ...
}

Understanding amortisation calculation components

Component

Explanation

OID

Providing the original issue price is stored on the bond definition, LUSID calculates the OID component per unit holding for each period by applying the selected amortisation method for a holding of one unit purchased at issue at the original issue price and held to maturity. The OID component for a particular holding tax lot at each period is equal to the OID component for that period multiplied by the units held in that period.

The adjusted issue price (AIP) at a given period is the original issue price adjusted for the cumulative OID amortisation component accrued up to that period using the amortisation method selected for that holding. The AIP is critical for calculating the market discount and acquisition premium components (see below).

Market discount

The market discount is the discount that occurs when a bond is purchased at a price lower than the AIP. LUSID calculates the market discount component by first calculating the total acquisition discount amortisation component of each period for that holding and subtracting the OID component accrued for that period.

Acquisition premium

The acquisition premium is the premium on the AIP that occurs when a bond is purchased at a price lower than the redemption price of the bond at maturity but higher than the AIP. LUSID calculates the acquisition premium component by first calculating the total acquisition discount amortisation component of each period for that holding and subtracting the OID component accrued for that period.

Premium

The premium is the premium that occurs when a bond is purchased at a price that is higher than the notional or par value of the bond. LUSID calculates the premium amortisation component by first calculating the total amortisation accrued in each period for that holding.

Given the following example scenario:

ABC company issues a bond starting on 1st Jan 2020 and maturing on 1st Jan 2025 with a principal of $1 and original issue price of $0.8. A trade was made to buy one million units at the start.

The amortisation component schedules for various purchase prices using the StraightLine method are as follows:

Scenario 1: Purchased at $1.1 (purchase price > par)


Scenario 2: Purchased at $1 (purchase price = par)


Scenario 3: Purchased at $0.9 (purchase price < par, purchase price > AIP)


Scenario 4: Purchased at $0.8 (purchase price < par, purchase price = AIP)


Scenario 5: Purchased at $0.7 (purchase price < par, purchase price < AIP)