USD LIBOR Fixing Dates Use the London Banking Calendar
Summary
The document explains a mismatch between a USD LIBOR fixing date and a date calculated by advancing backward two days on a US calendar. For a value date at the end of August 2022, a QuantLib USD LIBOR index returned a fixing date three calendar business days earlier than the date obtained using the US calendar alone.
The accepted explanation is that LIBOR fixing dates are determined using London banking days: the fixing occurs two London banking days before the start date. Because the intervening Monday was a London holiday, the fixing moved back to Friday. The example shows why a calendar choice matters when calculating index dates. It addresses the specific fixing-date discrepancy, but does not give a broader survey of LIBOR conventions or discuss the transition away from LIBOR.
Key ideas
- USD LIBOR fixing dates use the London banking calendar.
- The fixing occurs two London banking days before the relevant start date.
- A London holiday can shift the fixing earlier than a calculation using only the US calendar suggests.
- The example resolves a specific QuantLib date discrepancy but does not cover other index conventions.
Tags
Full text
# USD Libor fixing rule
# USD Libor fixing rule
I am missing something in the fixing rules for USD Libor: the fixing for the date `Aug 31th, 2022` is on `Aug 26th, 2022` - 3 business days ahead (checked in another system). However, I am defining a 2-day fixing in `index`. How come the correct date is `Aug 26th, 2022` and not 2-business days ahead `Aug 29th, 2022`?
`>>> ql.UnitedStates.advance(ql.UnitedStates(), ql.Date(31,8,2022),-2,False)` Date(29,8,2022)
```
>>> mock_curve = ql.FlatForward(2, ql.UnitedStates(), 3.23819/100 - 0.00866, ql.Actual360())
>>> index = ql.USDLibor(ql.Period('1M'), ql.YieldTermStructureHandle(mock_curve))
```
`>>> index.fixingDate(ql.Date(31,8,2022))` Date(26,8,2022)
`>>> ql.UnitedStates.holidayList(ql.UnitedStates(),ql.Date(1,1,2022),ql.Date(31,12,2022))` (Date(17,1,2022), Date(21,2,2022), Date(30,5,2022), Date(4,7,2022), Date(5,9,2022), Date(10,10,2022), Date(11,11,2022), Date(24,11,2022), Date(26,12,2022))
## Answer by dm63 (score 2, accepted)
https://quant.stackexchange.com/a/72095
Because Monday Aug 29th was a London holiday. Libor sets 2 London banking days prior to start date.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.