Bond Forward (Reference Data)
Table of Contents
A bond forward is a contract to buy or sell a bond at a future date
at an agreed price. ORE's catalogue documents the product twice: once
with the full bond data in the trade, and once with the underlying
bond taken from reference data. This note records the reference-data
form, as ORE documents it in its product catalogue. The container node
is ForwardBondData.
1. Identifiers
What a trader books it as, and what to grep for. The codes are the trade type catalogue's, which is what the database enforces.
| Field | Value |
|---|---|
| Full name | Bond Forward (Reference Data) |
| Short name | Bond Forward (Reference Data) |
| ORE Studio product code | ForwardBond |
| Asset class | bond |
| Family | Forward |
| ORE trade data node | ForwardBondData |
| ORE documentation | bondForward_refdata.tex |
2. Summary
A forward bond, or bond forward, is an agreement to buy or sell an
underlying bond at a future point in time at an agreed settlement
amount. The direction comes from LongInForward. The underlying bond
is named by its SecurityId and fetched from reference data. The
T-Lock and J-Lock forms restrict the underlying to US Treasury and
Japanese Government bonds, and can be specified by a lock-in yield
instead of an amount. The trade type is ForwardBond.
3. Detail
3.1. What it is
ORE defines the product as follows:
A Forward Bond (or Bond Forward) is a contract that establishes an agreement to buy or sell (determined by LongInForward) an underlying bond at a future point in time (the ForwardMaturityDate) at an agreed price (the settlement Amount).
Source: ORE User Guide, Products catalogue, bondForward_refdata.tex.
ORE describes the T-Lock and J-Lock forms as follows:
A T-Lock is a Forward Bond with a US Treasury Bond as underlying, whereas a J-Lock is a Forward Bond with a Japanese Government Bond as underlying. T-Locks can be specified in terms of a lock-in yield rather then a settlement amount. The cash settlement amount is given by (bond yield at maturity - lock rate) x DV01 in this case.
Source: ORE User Guide, Products catalogue, bondForward_refdata.tex.
3.2. In plain terms
A bond forward locks the price of a bond today for delivery later. The buyer pays the agreed amount at maturity and receives the bond, or the cash difference. The T-Lock is the same trade on a Treasury bond, with the price expressed as a yield. It lets a mortgage desk lock the yield it will pay on a future delivery.
3.3. How it works in ORE
A Forward Bond is set up using a ForwardBondData block and the trade
type is ForwardBond. The block has four parts. The BondData block
specifies the underlying bond by SecurityId and BondNotional. The
SecurityId is typically the ISIN of the underlying bond with the
ISIN: prefix. The optional CreditRisk flag decides whether credit
risk shows on the product. When it is false, the product class is
RatesFX instead of Credit and there are no credit sensitivities.
The flag has no effect when the bond reference carries no
CreditCurveId, which is typical for highly rated government bonds.
The SettlementData block holds the settlement terms.
ForwardMaturityDate is the maturity of the forward contract.
ForwardSettlementDate is optional and names the settlement or cash
payment date. Settlement takes Cash or Physical and defaults to
physical, except that a trade defined by a LockRate defaults to
cash. Amount is the settlement amount, or strike, transferred at
maturity in return for the bond or its dirty price. It moves from the
long party to the short party and cannot be negative. Exactly one of
Amount and LockRate must be given. LockRate sets the payoff as
(yield at forward maturity - LockRate) x DV01 for a long position;
it is expressed in decimal form. dv01 can override the DV01 derived
from the bond price. LockRateDayCounter is optional and defaults to
A360. SettlementDirty decides whether the amount reflects a clean
or dirty price; the dirty amount is always paid at maturity, and
accruals are added internally when the flag is false. The PremiumData
block is optional and holds a premium Date and Amount. The
LongInForward flag decides whether the contract is long or short.
3.4. Mathematical notes
A physically settled forward pays the agreed amount at maturity and receives the bond. A cash-settled forward pays the difference between the dirty bond price and the amount. The T-Lock variant pays the difference between the bond yield at maturity and the lock rate, scaled by the DV01 of the bond. The DV01 converts the yield difference into a price difference.
3.5. What moves its value (static sensitivities)
- The price and yield of the underlying bond.
- The forward date and the settlement amount or lock rate.
- The interest rates that finance the position to maturity.
- The credit of the issuer, unless the trade opts out of credit risk.
The trade is a linear claim on the underlying bond, so its value moves almost one for one with the bond price. The T-Lock form is sensitive to the yield curve through both the bond yield and the DV01.
3.6. How the profile ages (dynamic sensitivities)
A bond forward has no coupon flows during its life. Only the premium, if any, changes hands before maturity. The value converges to the difference between the bond price and the agreed amount as maturity approaches. At maturity the trade settles physically or in cash.
3.7. Why a customer would want it
A bond forward locks a purchase or sale price without funding the bond today. It suits a customer who must deliver a bond at a known future date, or who wants a leveraged view on a bond. The T-Lock form locks a yield, which is how mortgage pipelines hedge. In ORE Studio a customer books forward bonds to value them and run sensitivities on the ORE engine.
3.8. Example
ORE's catalogue shows a long, physically settled forward bond with a premium, on a bond from reference data:
<ForwardBondData> <BondData> <SecurityId>ISIN:XS1234567890</SecurityId> <BondNotional>100000</BondNotional> </BondData> <SettlementData> <ForwardMaturityDate>20160808</ForwardMaturityDate> <Settlement>Physical</Settlement> <ForwardSettlementDate>20160810</ForwardSettlementDate> <Amount>1000000.00</Amount> <SettlementDirty>true</SettlementDirty> </SettlementData> <PremiumData> <Amount>1000.00</Amount> <Date>20160808</Date> </PremiumData> <LongInForward>true</LongInForward> </ForwardBondData>
Source: ORE User Guide, Products catalogue, bondForward_refdata.tex,
listing Forward Bond Data. The source spells the settlement value
Physcial and closes the BondData element without the leading
slash; both are normalised here.
4. See also
- Knowledge — the hub of all knowledge notes, with the alphabetical product run.
- Wikipedia: Forward contract. This note follows its general definition.
- ORE User Guide, Product catalogue: products.tex, which inputs bondForward_refdata.tex. The upstream project is OpenSourceRisk/Engine.