I was looking at a set of CDS quotes from Markit, for USD denominated CDS, for a reference entity whose standard contract currency is EUR. The quotes were for 6 Nov 2020. Markit provide three quotes, the conventional spread, the par spread and the upfront.

I used the ISDA standard model Excel Add-In here to convert from the conventional spread to the upfront. For the interest rate curve, I used the USD rates curve for 5 Nov 2020 from here as outlined in the ISDA standard model documentation. The calculated upfront value was not consistent with that provided by Markit. For example, for a 5Y conventional spread of 0.00352256 (recovery rate of 40%), I calculated an upfront of -3.283663% whereas Markit gave a corresponding upfront of -3.35928% yielding a difference of 0.0756%.

When I asked Markit, they say that they use the IR curve in the reference entity's standard contract currency to convert from conventional spread to upfront and vice versa. In this case, this would be the EUR curve as of 5 Nov 2020 from here even though the quote is for a CDS denominated in USD. When I use the EUR rates curve, my calculated 5Y upfront is -3.359278% which matches Markit exactly.

Does anyone know if this is a convention used in the market? In other words, if a CDS trade is being done on a reference entity whose standard contract currency is X and the CDS trade is denominated in a currency Y with Y != X, does the conversion between upfront and conventional spread use the currency X rates curve? I would have expected the conversion to use the CDS contract's trade currency Y.

Edit 1

I have added a workbook with my calculations here showing the full USD CDS upfront curve provided by Markit being matched when I convert their conventional spread using the EUR rates curve. The matching is shown in the tab check_markit_usd along with the corresponding conversion using the USD rates curve which does not match. The conversion from par spreads to upfront is also done using the EUR rates curve in tab check_par_usd. Again I would have expected to use the USD rates curve here.

As suggested in a comment below, I have added in the workbook also the EUR CDS curve for the same reference entity. The conversions there work also using the EUR rates curve which is as expected. The analogous checks are in the tabs check_markit_eur and check_par_eur.

Markit have pointed me to the ISDA standard CDS rates document here and said It is a market convention to convert the conventional spreads to upfronts using the standard currency of the contract. I can't see anything in that document that suggests this approach is market standard.

Edit 2

The particular line in the document that I have been referred to is It is implicitly assumed that counterparties always agree to use the same currency and the same trade date when computing cash settlement amount for a given trade [see reference 2]. I cannot see how this suggests using the rates curve with currency matching the standard contract currency of the entity.


It doesn't matter what the "standard" currency is for some reference entity.

If you're converting between market standard quote (MSQ, conventional) spread, par spread, and upfront fee in a particular currency (USD, EUR, JPY) that you have to use the Markit IR curve in that currency.

In your example, if you're given USD quotes then you use USD IR curve, not any other currency's.

You should test more conversions to be comfortable that your implementation (the addin you downloaded) matches Markit. Also try it on Bloomberg Terminal if you have access to one.

My experience with Markit support is that they never have any clue about anything whatsoever and are beyond useless. I have had hilarious email exchanges with them.

Are the USD-denominated quotes from Markit any different from the EUR-denominated quotes from Markit (for the same date and reference entity)? I would not be surprised if they just copy over EUR quotes (MSQ, par, upfront) into USD quotes.

  • $\begingroup$ Thanks Dimitri. What you say in this answer is what I would have expected. I have edited my answer to provide a link to the workbook with my calculations. The EUR CDS quotes do differ from the USD quotes for the same reference entity, tier and doc clause. I can match exactly the upfronts on the USD quotes only if I convert the conventional spread (or par spread) using the EUR rates curve. I will persevere to see if I can get a reasonable explanation from Markit. At this moment, it looks like an error to me but I could be missing something. $\endgroup$ – Francis Nov 12 '20 at 21:32
  • $\begingroup$ Do you know how to get a "data quality" report from Markit, which would show the number of contributors for this USD curve? Maybe Markit doesn't convert spread/upfront themselves, but they have 1 clueless contributor who converts using wrong IR curve and submits all quotes (yes, Markit can publish a curve using just 1 contriburor). As an alternative, maybe you can start with the observable EUR curve and apply a USD quanto factor from Totem, if it has one? $\endgroup$ – Dimitri Vulis Nov 12 '20 at 21:57
  • $\begingroup$ Thanks again. This a Markit "secondary" curve for this reference entity. Their "primary" curve is EUR, SNRFOR, MM14. The primary price type is conventional spread. They apply various internally deduced currency and doc clause basis ratios to get to the EUR, SNRFOR, CR and USD, SNRFOR, CR conventional spread. The EUR, SNRFOR, CR and USD, SNRFOR, CR conventional spread differ by their currency basis factor. In the last step they use the EUR rates curve when converting to upfront for both. Still haven't gotten a firm answer from them if this is by design or a mistake. I will keep digging! $\endgroup$ – Francis Nov 13 '20 at 0:14
  • 1
    $\begingroup$ Thanks for your help. I have accepted this answer as it has reassured me that I am not missing something like a general market convention. $\endgroup$ – Francis Nov 13 '20 at 9:04
  • 1
    $\begingroup$ No problem, I will add any updates that I get here as additional edits to the question. $\endgroup$ – Francis Nov 13 '20 at 16:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.