# Covered Interest Rate Parity with FX Spot-Adjustment

The Covered Interest Rate Parity for FX is often quoted simplistically as $$X_T \quad=\quad X_S \cdot \frac{D^{base}_T}{D^{quote}_T}$$ where $$X_t$$ is the (projected) FX rate at time $$t$$ (denoted as $$1$$ base = $$X$$ quote), $$D_t^{ccy}$$ is the discount factor for time $$t$$ in currency $$ccy$$, and $$X_S$$ denotes the current FX Spot Rate.

To derive this parity one can note a cashflow of 1 USD at $$T$$ can be discounted in USD and then converted at spot $$X_S$$ to JPY. Or equivalently, convert at $$X_T$$ and discount in JPY. So $$\text{NPV in JPY} \quad=\quad (1\text{ USD} \cdot D_T^{USD}) \cdot X_S \quad=\quad (1\text{ USD} \cdot X_T) \cdot D_T^{JPY}$$ which implies the parity.

In practice the above parity does not hold since spot $$\ne$$ today (e.g. when spot = today + 2 days). So we get a more comprehensive parity: $$X_{T} \quad=\quad X_{S} \cdot \frac{D^{base}_{T}}{D^{quote}_{T}} \cdot \color{blue}{\frac{D^{quote}_{S}}{D^{base}_{S}}}$$ E.g. see QuantLib's implementation: github.com/.../QuantLib/.../ratehelpers.cpp#L995-L1012

I am struggling to properly incorporate this $$\color{blue}{\text{spot adjustment}}$$ in the non-arbitrage/replication argument, which I outlined above. Can anybody help?

Since $$D_T=\frac{1}{1+r_1}\frac{1}{1+r_2}\frac{1}{1+r_3}\cdots\frac{1}{1+r_T}$$
and $$D_S=\frac{1}{1+r_1}\frac{1}{1+r_2}$$
we can form the desired discount factor from two days hence to date $$T$$ as follows
$$\frac{D_T}{D_S}=\frac{1}{1+r_3}\cdots\frac{1}{1+r_T}$$ (which we might call $$D_{2,T}$$)
The same trick is being used for both the base and quote currencies to eliminate the unwanted discounting for the first two days which would occur in a naive day 0 to day $$T$$ discounting. It is not so much a different arbitrage argument as a refinement of the calculation of $$D^{base}$$ and $$D^{quote}$$ in your first equation, reflecting that $$D_{2,T}$$ and not $$D_{0,T}$$ type of calculation is needed.