# Why does not Uncovered Interest Parity hold exactly? Or does it?

I am using the UIP condition before taking an approximation and, therefore, expecting UIP to hold exactly. I want to understand why UIP calculated for a pair of currencies

a) does not hold exactly (in my example below the discrepancy between the rates of return is 0.0004 and increases with the scale of variables), and

b) why, when Home and Foreign are switched, the discrepancy between the rates of return changes to 0.000396. So the difference between the two discrepancies (home-foreign and foreign-home) is 0.000004.

• Example 1:

$$(1+i_t)=(1+i^*_t)S_{t+1}/S_t$$

$$i_t = 5%$$

$$i^*_t = 4%$$

$$S_{t+1} = 1.01$$ $$S_t = 1$$ $$ROR^* = 1.04*1.01/1 = 1.0504$$

$$i_t - ROR^* = -0.0004$$

• Example 2, Switching Home and Foreign:

$$i_t = 4%$$

$$i^*_t = 5%$$

$$S_{t+1} = 1/1.01 = 0.990099$$

$$S_t = 1$$

$$ROR^* = 1.05*0.990099/1 = 1.03960396$$

$$i_t - ROR^* = 0.00039604$$

The discrepancy between two ways of calculation = 0.00039604 -0.0004 = -0.00000396

• Your question is not quite clear. It seems like you expect $$i_t = i^*_t + S_{t+1} - S_t$$ to be true? If yes: as you write, this is just a linear approximation, so exact equality is not to be expected. Commented Apr 9, 2023 at 22:05
• P.s.: Your MathJax is nice, keep it up! Commented Apr 9, 2023 at 22:06
• Sorry about any confusion, but I used the following, non-linearized condition: $(1+i_t)=(1+i^∗_t)S_{t+1}/S_t$ Commented Apr 9, 2023 at 23:45

It is because your assumed values do not satisfy UIP. If you were to use values that would satisfy the condition, UIP would hold.

Using Python it looks like this:

s1, s , i_h, i_d = 1.01, 1, 0.05, 0.04
s1_computed = (1+i_h)/(1+i_d)*s
print(f'Computes S1 = {s1_computed}')

print(f'Swapped Home and Foreign = {1.05 * 1/s1_computed}')


Computes S1 = 1.0096153846153846
Swapped Home and Foreign = 1.04

• OMG, how did I miss this!? Thanks so much for your help! Commented Apr 9, 2023 at 23:48
• "It is because your assumed values do not satisfy UIP. If you were to use values that would satisfy the condition, UIP would hold." lol Commented Apr 10, 2023 at 7:05