Spot-Date Discounting and Short-End Curve Construction
Summary
The document investigates why discount factors built from a six-month deposit and a forward rate agreement differ from a vendor curve. The proposed explanation is that the vendor's discount factors may begin at today's date, while the user's calculations begin at the settlement date. Overnight and tomorrow-next rates can bridge those dates; the response demonstrates this with successive discount factors and an illustrative rate that brings the calculated values close to the vendor's figures.
A second explanation concerns compounding conventions. The deposit calculation may use daily compounding, whereas a straight ACT/360 money-market quote is commonly applied as simple interest over the accrual period. These conventions produce different discount factors even with the same quoted rate. The examples are diagnostic rather than a complete curve-building specification: matching a production curve also requires confirming its valuation and settlement dates, calendars, day-count rules, and instrument conventions.
Key ideas
- Confirm whether discount factors are referenced to valuation date or settlement date.
- Overnight and tomorrow-next rates can account for discounting from today to the deposit start date.
- Compounded and simple-interest calculations yield different discount factors from the same quoted rate.
- A curve comparison should verify dates, day-count conventions, and instrument-specific market conventions.
Tags
Full text
# Extrapolation between today and the spot date curve building
# Extrapolation between today and the spot date curve building
I'm trying to build my libor curve using (Deposit, FRAs and Swap) instruments with the goal that my curve match the murex curve, my parameters are :
- Start of my deposit 6m contract is 25/10/2019 end date is 27/04/2020,day count is act/360 with rate 5%
- Start of my fra 6x12m contract is 27/04/2020 end date is 27/10/2020,day count conv is act/360 with rate 5.2%
My results are :
- DF1=0.9749492213947191
- DF2=0.9498417381171556
but the correct results (from murex) are :
- DF1=0.9746818596344575
- DF2=0.9495812616189955
Can someone please explain how extrapolate between today and the spot date curve building ? or why I get different results ? or if you have a guide/book for curve construction for practitioners it would be helpful ? thanks in advance.
## Answer by David Duarte (score 0, accepted)
https://quant.stackexchange.com/a/50598
Could it be that the discount factors from Murex are referencing todays date and not the settlement date? What are the O/N and T/N rates in Murex?
Try this to see if it gets you closer...
$$ DF_{O/N} = \frac{1}{1+r_{O/N} \times 1 / 360} $$
$$ DF_{T/N} = \frac{DF_{O/N}}{1+r_{T/N} \times 1 / 360} $$
$$ DF_{6M} = \frac{DF_{T/N}}{1+r_{6M} \times 185 / 360} $$
Incidentally, if you try a O/N and T/N rate of 4.937182%, you get pretty close.
```
from scipy.optimize import root
def get_6m(r):
''' Get 6M DF for a given O/N and T/N rate'''
df = lambda r, n: 1 / (1+r * n / 360)
df_on = df(r, 1)
df_tn = df_on * df(r,1)
df_6m = df_tn * df(0.05, 185)
return df_6m
target = 0.9746818596345
rate = root(lambda r: target - final(r), 0)['x'][0]
print(f"Solver result for the O/N and T/N rate: {rate}")
```
Solver result for the O/N and T/N rate: 0.04937181969259679
```
df_6m = get_6m(rate)
print(df_6m)
df_fra = df_6m / (1 + 0.052 * 183/360)
print(df_fra)
```
0.9746818596344999
0.9495812616190368
## Answer by JoshK (score 0)
https://quant.stackexchange.com/a/50583
Murex is using a compounded rate (1+.05/360)^185, while you are using non-compounded: ( 1+ .05 * 185/360). If I remember right - you are correct if you are using LIBOR fixings since they are quoted as straight ACT/360.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.