Q:

Solve to model an insurance linked security

I want to model a simple reinsurance program, sometimes referred to as an insurance linked security. 
The inputs to the model include:
program, the cost of an active "program" investment. 
term, of the program, typically in years. 
reserve, cost of purchasing reserves, e.g, gov bonds, per $ of coverage. 
rate1, a guaranteed minimum rate of return. 
Setting the values:
program = 100;
term = 30;
reserve = .50;
rate1 = 0.0025;

I can the solve for the size of the instrument:
PAR = par/.Solve[par == program + TimeValue[par, rate1, term]* reserve, par][[1]]

Out[...] 216.869

Note: TimeValue[par, rate1, term]*reserve = the total cost of the required reserves for the program. 
I now want to Solve for rate2, where I know the other values, but not the rate. 
rate2 /. Solve[rate2 == program + TimeValue[PAR, rate2, term]*reserve, rate2]

Out[...] {-1.99255 - 0.104455 I, -1.99255 + 0.104455 I, -1.9475 - 
  0.307322 I, -1.9475 + 0.307322 I, -1.86418 - 0.499035 I, -1.86418 + 
  0.499035 I, -1.7414 - 0.667869 I, -1.7414 + 0.667869 I, -1.58629 - 
  0.807406 I, -1.58629 + 0.807406 I, -1.40556 - 
  0.911633 I, -1.40556 + 0.911633 I, -1.20712 - 0.97597 I, -1.20712 + 
  0.97597 I, -0.999672 - 0.997637 I, -0.999672 + 
  0.997637 I, -0.792279 - 0.975702 I, -0.792279 + 
  0.975702 I, -0.594004 - 0.911142 I, -0.594004 + 
  0.911142 I, -0.413502 - 0.806791 I, -0.413502 + 
  0.806791 I, -0.258646 - 0.66722 I, -0.258646 + 
  0.66722 I, -0.136187 - 0.498532 I, -0.136187 + 
  0.498532 I, -0.051459 - 0.308092 I, -0.051459 + 
  0.308092 I, -0.00815253 - 0.104213 I, -0.00815253 + 0.104213 I}

I thought rate1 would equal rate2. 
Can someone explain, the output I got on the second Solve? 
Why does this give me 30 values? 
What have I done wrong?  
How should I go about doing this? 

A:

Try
Solve[{PAR == program + TimeValue[PAR, rate2, term]*reserve, rate2 > 0}, rate2]

{{rate2 -> 0.0025}}

