I'm trying to replicate price I get for CCIRS in SWPM. This is USD3m float vs RUB 1Y. Second leg doesn't matter for my question.

Suppose today is 7th of Jan 2019, deal date. Settlement will happen on 9th of Jan 2019.

I look at cash flow screen. Fixing is 2.80388. The first USD Libor 3m payment will happen in 92 days from now (31+28+31). And I see that it is 90/360*2.80388=0.006992053338 (on the screen this figure you can find if divide payment 1042.06 by notional 148659.09). Also I see that it is discounted with discount 0.993039, which is zero rate (equal to fixing) * 90: 0.993039 = 1/(1+0.0280388 * 90/360). enter image description here enter image description here

Could you please explain,

  1. why do they apply 90 days discount factor for payment which happen in 92 days?
  2. why do they use libor 3m to calculate this discount if actually this is forward F(2, 92) (here I rely on answer by Helin on quant.stackexchange), but not spot F(0, 92) ?

I'm asking here because I was not able to get response from help desk.


2 Answers 2


The swap convention is that on swap start, the swap has 0 value. In your example, you entered into a swap to start in two days. The convention for Libor is that the fix applies from settlement date for the tenor of rate, calculated on an Act/360 basis. From the start of the swap, 1/9/19, to the first payment date of 4/9/19, there is exactly 90 days hence using the 3M Libor fix of 2.80388 multiplied by Act/360 (90/360).

  • $\begingroup$ Thank you. From your answer and from bloomberg docs it follows that I valued the contract on 9th of Jan: (swpm help) The Valuation date is the date at which future cash flows are discounted. I missed it. Then it is clear. But why is the default setup of SWPM screen is curve day = today, valuation date = today +2? Valuation date should be also = today. Because today I'm interested in today price. Even more, if I set valuation = today, first cash flow will be 2 days cash flow from 7th to 9 and then 90 days cash flow from 9 jan to 9 mar. $\endgroup$
    – Sasha M.
    Jan 17, 2019 at 13:18

Curve date: the date the market data is fetched
Valuation date: date to which future CF are discounted (usually T+2 at inception)

  • NPV is discounted back to valuation date
  • any date before that date doesn’t show in CF table unless you tick (show) historical CF
  • Notional exchange is on valuation date
  • this is in line with the question / answer you posted (T+2) and convention and multiple markets

EDIT: My previous comment for DC stripping was not correct. Some currencies like RUB and TRY were stripped with 3m Libor regardless of whether DC stripping is enabled or not. Insofar, when valuing a XCCY trade involving RUB, DC stripping should be disabled for it to have a meaningful valuation. Otherwise, the RUB leg will be discounted using "3m$libor discounting for RUB cashflows" and the USD leg will be discounted using "FF discounting for EUR cashflows" (now SOFR, but back in 2019 FF) and there will be a valuation difference equal to FF-LIBOR basis.

The below is wrong for currencies like RUB or TRY:

Side remark, you unticked DC curve stripping. That is not recommended. The correct use case to value a trade against a non-CSA counterparty is to choose the Libor curve for discounting but keep DC stripping on.

The idea is you build your family of curves using OIS discounting, because that's what the definition of the quoted market swap rates is. Then, from that family of curves you have built, you choose to use the Libor curve for discounting when pricing your particular trade, because that trade is facing a non-csa counterparty.


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.