Skip to content
All library documents

Bootstrapping EUR/USD Cross-Currency Basis Discount Factors Beyond One Year

Article Quant Q&A · Author: berege

Summary

The document describes an attempt to reproduce EUR/USD cross-currency basis discount factors from market inputs. The author first builds EUR and USD overnight-indexed swap curves, then uses FX forward invariance to infer EUR discount factors under a USD collateral arrangement for maturities up to one year. For longer maturities, the author interpolates basis spreads between quoted tenors and applies a cash-flow equation using forward rates derived from the EUR curve and previously calculated discount factors.

The evidence is a comparison against Bloomberg curve data: the author reports close agreement through one year, followed by a material discrepancy by two years. The post provides detailed steps and a sample calculation structure, but no accepted solution or diagnosis. Its result is therefore an unresolved replication problem, not a validated bootstrapping recipe. Potential implementation details such as curve conventions, payment schedules, day counts, collateral terms, and interpolation choices are not established in the document, so the proposed calculation cannot be treated as universally applicable.

Key ideas

  • FX forward invariance is used to infer cross-currency discount factors for maturities up to one year.
  • The author extends the calculation by interpolating basis spreads and using forward rates with a cash-flow equation.
  • The calculated factors match the cited market display closely at short maturities but diverge beyond one year.
  • The document leaves the discrepancy unresolved and does not establish which curve conventions or interpolation choices explain it.

Tags

Full text
# EURvsUSD basis curve DF calculation for maturities beyond 1Y


# EURvsUSD basis curve DF calculation for maturities beyond 1Y












I am trying to understand how bootstrapping works for cross currency basis curve for EURvsUSD beyond 1Y.

I make use of Bloomberg's ICVS function to see DF's for certain OIS curves as well as cross currency basis curves.

I have been able to calculate USD, EUR and GBP OIS curves' DFs in my Excel very much inline with what ICVS provides.

I did the same exercise for GBPvsUSD basis after seeing the thread here:

I tried to replicate the same method for EURvsUSD. Up to 1y, I used FX Forward Invariance to calculate the DF's and the numbers I get in my Excel vs what is on ICVS 92 are very close.

However, starting from 1y, the DFs started to deviate. I was wondering if anyone tried to match the numbers on ICVS 92 with their own calculations before?

Matching those numbers are not always easy- I am aware but at least for 2y DF on EURvsUSD basis curve calculation by anyone would be highly appreciated.

Let me provide the steps to explain what I do in my Excel.

- Get the EUR OIS:EUR-CSA DF's from OIS quotes.

- Construct the maturity dates for EURvsUSD basis curve. I believe EURvsUSD basis and EUR OIS are both t+2, so both dates are same for 2 curves.

- Up to 1Y, on EURvsUSD basis curve, I get the fwd pts for EURUSD Curncy for the relevant maturities and calculate the fwd outright. Using the spot, fwd outright and DF USD OIS:USD-CSA, I calculate the DF EUR OIS:USD CSA. and those DF's do match with ICVS 92 with value date, t and settle date, t+2.

- ICVS starts using basis quotes from 1y onwards. And in the link I provided earlier, the basis 1y and 2y is used to interpolate every 3 months so that we have basis for 15m, 18m and 21m

- After having those basis spreads, last piece of information i need is the fwd rates every 3 months starting from 3m all the way to 2y.

I calculate these Fwd rates on EUR OIS:EUR-CSA curve for every 3 months with (DF_t/DF_t+1 - 1)/(t+1-t)

- Finally, to calculate the DF for 15m for EUR OIS:USD CSA, I use the following formula:

DF15m EUR OIS:USD CSA = ( 1- sumproduct(t_btw,fwd rates,DF_EUR OIS:USD CSA) - basis15m * sumproduct (t_btw,DF_EUR OIS:USD CSA) ) / ( 1 + (fwd12m>15m+basis)*(t15m-t12m) )

note: Sumproducts are up to 12m for the 15m. It will be up to 15m for 18m. And up to 18m for 21m and finally, up to 21m for 2y.

The end result of this method is not very close to what's shown on ICVS 92's 2y DF.

Any suggestions to address that discrepancy would be highly appreciated.

Thanks,

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.