I'm trying to calculate the historical P&L of a CDS trading strategy, and am struggling to come up with the up-front payment of the contract. From what I can tell, the Mark-to-Market value of a contract is MtM =(S(p) −C)×RPV01 where S(p) is the market spread and C is the coupon (either 1% p.a. or 5% p.a.).

I'm having trouble following the calculation for the RPV01 following the ISDA pricing manual and instead found this gem of an answer:

A simple model for the value of a short protection CDS can be found if you write

V = (C-S) x RPV01, where

RPV01 = (1−exp(−gT))/g

and C is the coupon, S is the par CDS spread, T is the remaining life in years and

g=r+S/(1−R) where r is the risk-free (Libor) rate and R is the expected recovery rate, usually set to 40%.

If I set r=0.02 and T=5 for a notional of 10M USD then I get V equal to -144,317USD. So to enter into this contract I would receive an upfront payment of 144,317USD.

My question is whether this is a rough estimation, or generally quite accurate? Is there another straightforward way to compute the RPV01 of a contract and thereon the MtM value/up-front payment?


1 Answer 1


No, this is a very rough approximation, ignores convexity.

Consider this: if some CDS spread changes from 30 bps to 31 bps, it's a much bigger deal than if it changes from 300 bps to 301 bps.

You should bite the bullet and get the ISDA CDS standard model to run. (You can actually download an Excel add-in if you don't want to compile C++ code, but you really should do the latter). Then you you'll have the "official" conversion between the market standard quote spread and the upfront. Rememeber to use interest rate curves from the right historical date.

IHS Maikit kindly provides a converter web page (thanks). You probably can't use it for your P&L for many days, but you can compare to verify that your own converter works correcly.

  • $\begingroup$ I don't think it ignores convexity: $g = r + S/(1-R)$ is the equivalent continuous discount rate + intensity of default based on current market spread $S$. Still it is a rough approximation that computes the risky PV01 based on a continuous coupon approximation, constant discount rate and intensity of default, and that does not account for accrued coupon on the premium leg. $\endgroup$ Apr 15, 2021 at 13:40
  • $\begingroup$ @AntoineConze do you think if I adjust the Value of the contract by the accrued coupon payment this formula is a quite close approximation of the payment? Or would it at times still be significantly different from the ISDA standard model calculation? $\endgroup$
    – germany
    Apr 15, 2021 at 14:03
  • $\begingroup$ I think it is a bit crude but as suggested by @Dimitri Vulis you can use the markit online converter do run a few examples by hand and compare with the approximation. $\endgroup$ Apr 15, 2021 at 14:06
  • 1
    $\begingroup$ I second @DimitriVulis as well - I‘d guess that the shape of the name‘s intensity / spread curve will have some impact on the sensitivity calculation as well. $\endgroup$ Apr 15, 2021 at 20:22
  • 1
    $\begingroup$ @DimitriVulis is there an actual mathematical description of that model somewhere? The code might be a reference piece but is not necessarily the best documented piece of code out there and it would help to be sure that one is not just "adding the twindlebib to the gorbatrib and multiply this by 1.5256 to reach the upfr_spr_adj_calc". $\endgroup$
    – not_sure95
    Nov 9, 2023 at 11:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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