OVERVIEW
XVA computed directly from a Monte Carlo Expected Exposure profile produced by your internal system. No exposure approximation is made on this side — all six components use EE(t) and ENE(t) as inputs directly.
NPV = TV + CVA + DVA + FCA + FBA + MVA + KVA
TVTheoretical value — the risk-free mark-to-market of the trade. Not computed here; XVA is an additive adjustment to TV.
EE(t)Expected positive exposure at time t — E[max(V(t), 0)] under risk-neutral measure Q. Comes from your MC system.
ENE(t)Expected negative exposure at time t — E[min(V(t), 0)]. Always negative or zero. Comes from your MC system.
df(t)Risk-free discount factor from today to t, derived from OIS/SOFR yield curve. df(t) = exp(-z(t) x t).
DISCLAIMER: Indicative only. Not for official marks, regulatory capital, or financial advice. CVA/DVA are exact given the MC EE/ENE. FCA/FBA depend on FTP curve quality. MVA uses linear IM decay approximation. KVA uses simplified SA-CCR EAD proxy.
CVA -- CREDIT VALUATION ADJUSTMENT
Present value of expected loss from counterparty default. Always negative — a cost to you.
CVA = -(1 - Rcpty) x ∑i EE(ti) x [SP(ti-1) - SP(ti)] x df(ti)
SP(t) = exp( -∫0t λ(s) ds ) -- survival probability, probability counterparty is alive at t
λ(t) = CDS(t)1 - Rcpty -- risk-neutral hazard rate, piecewise constant between CDS tenor points
RcptyCounterparty recovery rate. Fraction of notional recovered in default. Standard: 40% senior unsecured, 25% subordinated.
SP(t)Survival probability to time t. Computed by integrating piecewise constant hazard from 0 to t.
SP(ti-1) - SP(ti)Marginal default probability in interval [ti-1, ti]. The probability of default occurring in this specific time window.
λ(t)Hazard rate — instantaneous default intensity. Held constant between CDS tenor points (piecewise constant = ISDA/Bloomberg standard).
CDS(t)CDS par spread at tenor t in decimal (bp / 10000). Linearly interpolated between the 6 input tenor points.
DVA -- DEBIT VALUATION ADJUSTMENT (IFRS 13)
Mirror of CVA. Applied to ENE — exposure where you owe money to the counterparty. DVA is a gain: it increases when your own creditworthiness deteriorates. Required under IFRS 13, controversial in practice.
DVA = -(1 - Rown) x ∑i ENE(ti) x [SPown(ti-1) - SPown(ti)] x df(ti)
ENE(t) <= 0, therefore DVA >= 0
RownYour institution's recovery rate. Same convention as counterparty (40% senior unsecured).
SPown(t)Your institution's survival probability, derived from your own CDS term structure using the same piecewise constant hazard method.
ENE(ti)Expected negative exposure — always <= 0. DVA is positive because a negative number times a positive PD times -(1-R) gives a positive result.
FCA / FBA -- FUNDING COST AND BENEFIT
FCA is the cost of funding the uncollateralised positive MTM. FBA is the benefit when negative MTM means the counterparty is effectively funding you. Always shown separately — never netted without disclosure.
FCA = -∑i EE(ti) x sFTP(ti) x Δti x df(ti) x φCSA -- always negative
FBA = +∑i |ENE(ti)| x sFTP(ti) x Δti x df(ti) x φCSA -- always positive
FVA = FCA + FBA
sFTP(t)Treasury FTP (Funds Transfer Pricing) rate at horizon t, in decimal. Linearly interpolated from the 6-point term structure you provide. This is your all-in unsecured funding cost over SOFR.
ΔtiTime step width in years between ti-1 and ti. Derived from your EE date schedule.
φCSACSA scaling factor: No CSA = 1.0 (full bilateral exposure funded), VM+IM = 0.05 (residual only), VM only = 0.5, Cleared = 0.
ColVA is omitted. USD cash-only CSA has no cheapest-to-deliver optionality so ColVA = 0 exactly. For uncollateralised client trades use No CSA (factor = 1.0).
MVA is the SIMM IM cost on your inter-dealer hedge, not the client trade. The client trade has no CSA; you post IM on the hedge.
Discretization convention
CVA and DVA use right-endpoint EE(t_i) -- the standard discrete approximation assuming default occurs at the end of each time step. FCA, FBA, and KVA use the trapezoidal average (EE(t_{i-1}) + EE(t_i)) / 2 because these costs accrue continuously over [t_{i-1}, t_i]. For i=0 the previous EE is taken as zero (zero exposure at trade inception). For sparse EE schedules (annual points), the trapezoidal correction on FCA/FBA is typically 3-8% relative to the right-endpoint approximation.
MVA -- MARGIN VALUATION ADJUSTMENT
Cost of funding SIMM Initial Margin posted on your inter-dealer hedge. IM sits in a segregated account earning near-zero — the opportunity cost is your FTP rate.
MVA = -∑i IM(ti) x sFTP(ti) x Δti x df(ti)
IM(t) = IM(0) x max(0, T - tT) -- linear decay approximation
IM(0)Initial SIMM IM at trade inception from your SIMM system, in dollars. Enter client-side IM as a proxy for hedge IM (same economics, opposite direction).
IM(t)SIMM IM at future time t. Approximated by linear decay — appropriate for vanilla IRS where IR01 (and hence IM) scales roughly with remaining tenor.
TTrade maturity in years — the last date in your EE profile.
CRIF-based SIMM calculation is not implemented here. Compute SIMM IM externally from your SIMM system and enter the output dollar amount. For cleared trades MVA = 0.
KVA -- CAPITAL VALUATION ADJUSTMENT
Present value of the cost of holding regulatory capital against the trade at your institution's hurdle rate. The bank must hold CET1 equity capital against every derivative position. That capital cannot be deployed elsewhere — its opportunity cost is h per year. KVA is the PV of that ongoing drag for the full life of the trade. It is a real economic cost even though it never appears as a direct cash flow.
EAD(t) = α x EE(t) x Masset -- alpha and M depend on framework (see below)
K(t) = EAD(t) x 8% -- Basel III minimum CET1 ratio
KVA = -∑i K(ti) x h x Δti x df(ti)
EE(t)Expected positive exposure at time t from your MC system. Used directly at each time step -- the MC profile already captures the correct humped exposure shape. No synthetic linear decay is applied on top of it.
αFramework multiplier: SA-CCR uses alpha = 1.4 (Basel III standard). CEM has no alpha -- the add-on is computed directly from notional x CCF. Since this tool uses EE(t) rather than notional, CEM mode sets alpha = 1.0 and the full scaling is carried by M_asset.
MassetAsset class capital multiplier. Scales EAD for the relative risk of different asset classes. Derived from the framework-specific supervisory factors or CCF table. See detailed tables below.
K(t)Required CET1 capital at time t. 8% is the Basel III floor. Most banks hold 12-15% including capital conservation buffers, SIFI surcharges, and internal targets. Using 8% understates the true capital cost by 1.5-2x.
hHurdle rate -- required return on equity. Capital tied up in the trade earns h per year in opportunity cost. Typical range 8-15%.
Framework 1: SA-CCR (Basel III -- current standard for most banks)
Standardised Approach for Counterparty Credit Risk, mandatory for IRB banks since 2017 (BCBS 279). SA-CCR replaced CEM as the standard EAD calculation method for OTC derivatives. The EAD formula is: EAD = alpha x (RC + PFE), where alpha = 1.4, RC = replacement cost (current MTM floored at zero), and PFE = potential future exposure computed from supervisory delta x supervisory factor x adjusted notional x maturity factor. For this tool, MC EE(t) serves as a combined proxy for RC + PFE, so the 1.4 alpha is applied directly to EE(t).
M=1.0 when EE comes from your MC system for the actual trade (default, recommended).
The MC simulation already ran the asset class risk -- FX volatility for a XCCY swap, rate vol for an IRS. The EE profile already reflects the correct exposure for that instrument. Applying M>1 on top of MC EE double-counts the asset class risk and overstates KVA materially (8x for FX). Example: a XCCY swap where MC EE = $14M, M=1.0 gives KVA EAD = 1.4 x $14M = $19.6M, which is already higher than the SA-CCR regulatory EAD of ~$5.6M ($100M x 4% x 1.4). Conservative but not absurd.
M>1 only when proxying -- EE from a different asset class than the trade.
If you computed EE for an IR swap but want to estimate KVA for an FX trade, scale by M = SF_FX / SF_IR = 8.0. This is a proxy-of-a-proxy used when you cannot run MC for the actual instrument.
M_asset values below are reference only. Apply them only in the proxy case above. For own-MC-EE trades, always use M=1.0 regardless of asset class.
| Asset class | SA-CCR supervisory factor | M_asset (proxy use only) | Instruments |
| IR | 0.50% | 1.0 (default) | IRS, FRAs, caps, floors, swaptions |
| FX | 4.0% | 8.0 | FX forwards, FX options, cross-currency swaps |
| Credit spread (IG) | 0.38% | 0.76 | CDS on investment grade reference |
| Credit spread (HY) | 2.0% | 4.0 | CDS on sub-investment grade |
| Equity (single name) | 32% | 64 | Single-name equity swaps and options |
| Equity (index) | 20% | 40 | Index swaps, ETF options |
| Commodity (energy) | 18% | 36 | Crude, natural gas, power |
| Commodity (metals / ag) | 18% | 36 | Precious metals, base metals, agricultural |
Framework 2: CEM (Basel II / Current Exposure Method -- legacy)
The Current Exposure Method was the Basel II standard for derivatives EAD prior to SA-CCR. Some jurisdictions and smaller institutions still use CEM, particularly where SA-CCR has not yet been mandated. CEM EAD = max(MTM, 0) + Add-on, where Add-on = Notional x CCF. The CCF (Credit Conversion Factor) is a flat percentage of notional that proxies potential future exposure. It varies by asset class AND by residual maturity -- this is the key difference from SA-CCR.
Since this tool uses EE(t) from MC rather than notional, M_asset under CEM is normalised as M = CCF_asset / 0.50%, where 0.50% is the 1-5Y IR CCF used as a consistent cross-band baseline. This ensures M=1.0 for vanilla IR trades in the standard 1-5Y tenor bracket. The alpha factor is set to 1.0 under CEM (no separate alpha multiplier exists in the CEM formula).
| Asset class | CCF: residual <= 1Y | CCF: residual 1-5Y | CCF: residual > 5Y | M (1-5Y band) |
| IR | 0.0% | 0.5% | 1.5% | 1.0 (baseline) |
| FX and Gold | 1.0% | 5.0% | 7.5% | 10.0 |
| Equity | 6.0% | 8.0% | 10.0% | 16.0 |
| Precious Metals (ex-Gold) | 7.0% | 7.0% | 8.0% | 14.0 |
| Other Commodities (oil, gas, etc.) | 10.0% | 12.0% | 15.0% | 24.0 |
The tool auto-selects the tenor band from the last time point in your EE profile and auto-populates M accordingly. For IR <= 1Y the CCF is 0% -- CEM treats short-dated IR as having no PFE add-on. The tool floors M at 1.0 in this case since current exposure still exists via MTM.
CEM vs SA-CCR: key differences
| Dimension | CEM | SA-CCR |
| Basel version | Basel II (pre-2017) | Basel III (2017 onwards) |
| Tenor sensitivity | Yes -- CCF varies by residual maturity band | No -- supervisory factor is flat; tenor via maturity factor |
| Alpha multiplier | None (1.0) | 1.4 (regulatory add-on for model risk) |
| Netting recognition | Partial -- 60% haircut on gross add-on | Full -- netting set level aggregation |
| Collateral treatment | Limited | Explicit via NICA / NICR |
| Typical M for 5Y IR swap | 1.0 | 1.0 |
| Typical M for 5Y FX forward | 10.0 | 8.0 |
| Typical M for 5Y crude oil swap | 24.0 | 36.0 |
The 8% CET1 floor is the Basel III regulatory minimum. Most banks hold 12-15% including conservation buffers and SIFI surcharges, so true KVA is 1.5-2x this tool's output. If unsure which framework your institution uses, check with your regulatory capital or finance team -- it affects KVA materially for non-IR asset classes.
INTERPOLATION METHODS
1. Discount Factors -- Log-Linear on Zero Rates
Between bootstrapped tenor points, zero rates are linearly interpolated. The discount factor is then exp(-z x t). This is the standard OIS curve convention -- it produces smooth positive forward rates.
z(t) = z(t1) x t2 - tt2 - t1 + z(t2) x t - t1t2 - t1 -- linear on zero rates between t1 and t2
df(t) = exp( -z(t) x t ) -- beyond last tenor: flat extrapolation at last zero rate
2. CDS Survival Probability -- Piecewise Constant Hazard
The hazard rate is held constant between CDS tenor points. This is the ISDA and Bloomberg CDS bootstrap convention. It produces a monotonically decreasing survival curve. The key convention: CDS(t_i) is the par spread for the interval [t_{i-1}, t_i]. CDS_1Y applies over [0, 1Y], CDS_2Y over [1Y, 2Y], CDS_3Y over [2Y, 3Y], and so on. Hazard rate in each segment is approximated as CDS(t_i)/(1-R), which is exact for constant intensity and a good approximation for most IG/HY spreads at standard tenors.
λi = CDS(ti)1 - R -- constant on [ti-1, ti), i.e. CDS_1Y applies to [0,1Y]
SP(t) = exp( -∑i λi x Δti ) -- cumulative integral to t
Marginal PD(ti-1, ti) = SP(ti-1) - SP(ti)
3. FTP Curve -- Linear on Spread
sFTP(t) = s(t1) x t2 - tt2 - t1 + s(t2) x t - t1t2 - t1 -- flat extrapolation beyond 10Y
YIELD CURVE BOOTSTRAP
Par swap rates are stripped into zero rates using standard annual coupon bootstrap. Short end (money market) uses zero = par directly. Annual swap tenors are bootstrapped iteratively.
df(T) = 1 - c x ∑i=1T-1 df(i)1 + c -- annual coupon stripping
z(T) = -ln(df(T))T -- continuously compounded zero rate
cPar swap rate for tenor T (in decimal). The fixed rate at which the swap has zero NPV at inception.
df(i)Discount factor for coupon year i, already bootstrapped. Intermediate years use log-linear interpolation on zeros already solved.
z(T)Continuously compounded zero rate for tenor T. Used in all discount factor calculations throughout the XVA engine.
ANALYTICAL BENCHMARK -- CVA CLOSED FORM
For a trade with flat (constant) expected exposure E0, flat hazard rate lambda derived from a flat CDS spread s, flat recovery R, and flat discount rate r, CVA has the following analytical solution. Use this to verify the tool against known inputs.
λ = s / (1-R) -- flat hazard from flat CDS spread
CVA = -(1-R) x E0 x λλ + r x (1 - exp(-(λ + r) x T))
Benchmark test: set EE = $1,000,000 flat across all time steps, ENE = 0, CDS = 100bp flat (all tenors), Recovery = 40%, OIS = 4.0% flat (bootstrap from par rates or paste DFs). T = 5Y. Expected CVA = -(0.60) x 1,000,000 x (0.01667 / (0.01667 + 0.04)) x (1 - exp(-0.05667 x 5)) = approximately -$131,000. The tool should match within 1% for this case -- any larger deviation indicates a discretization or interpolation issue.
For non-flat curves and realistic humped EE profiles, no closed form exists. The tool uses numerical integration (trapezoidal rule) with the time steps from your EE schedule. Denser time steps give more accurate results -- quarterly steps are recommended for trades over 3Y.
CALIBRATION FREQUENCY
| INPUT | FREQUENCY | SOURCE | IMPACT IF STALE |
| Counterparty CDS | DAILY | Bloomberg CDSW | Direct CVA error. 10bp move ~ 10-15% CVA change on 10Y trade. |
| Own CDS | WEEKLY | Bloomberg CDSW | DVA. Usually smaller than CVA impact. |
| FTP curve | WEEKLY | Treasury desk | FCA/FBA linear in FTP. 10bp move ~ 10% FVA change. |
| SIMM IM | PER TRADE | SIMM system | MVA linear in IM. Recalculate at each new trade. |
| EE / ENE profile | PER TRADE | MC system | Source of truth for all CVA/DVA/FCA/FBA. |
| Yield curve (par rates) | DAILY | Bloomberg YCSW0023 | DF error affects all components. Small impact (<2%) for trades under 10Y. |