Fixed Income: Arbitrage free price valuation

Im currently having trouble to figure out on how to calculate an arbitrage free price of a bond with given spot rates and z spread on a semiannual basis. I have both referred to the Fixed income analysis book but also some online resources on how to do it.

The practice tasks in doing is in 2 parts all related to each other.

  1. Annualised US T-spot rates:
    6month | 12month | 18month | 24month
    0.4% | 0.5% | 0.6% | 0.66%

Z-Spread= 55 basis points (0.55%)
PMT: 2.05 annual, 1.025 semiannual.

The problem lies in the formula. PV = (PMT) / (1+S`0.5 + Z ) + (PMT)/ (1=S1+Z)… etc
I got two different answers on how to handle 6 month spot rates and z-spread combined.
Source 1 told me that if the spot rates are already given for each 6 month period, they do not need to be modified and that I only have to divide the z-spread by two since its on a annual basis and its a constant so it wouldn’t change year over year.

Source 2 told me that both the 6m spot rate and the z-spread has to be divided by 2 to make it all semiannual.
Depending on what I do it changes the final value drastically.

Source 1 method:
1.025/〖(1+(0.004)+(0.0055/2))〗^1 +1.025/〖(1+(0.005)+(0.0055/2))〗^2 +1.025/〖(1+(0.006)+(0.0055/2))〗^3 +(1.025+100)/〖(1+(0.0066)+(0.0055/2))〗^4 = $100.36

Source 2 results:
1.025/〖(1+(0.004/2)+(0.0055/2))〗^1 +1.025/〖(1+(0.005/2)+(0.0055/2))〗^2 +1.025/〖(1+(0.006/2)+(0.0055/2))〗^3 +(1.025+100)/〖(1+(0.0066/2)+(0.0055/2))〗^4 = $85.34

A friend that is studying with me said that the Source 2 method would be correct but I think that source 1 is the right one. We have previously calculated the full price: 104.2$ and flat price: 103.5$

Second part: Using the result from the task above, calculate the realised rate of return if it was bought today t the arbitrage free price and sold 1 year later for $101.1
Solution 1: ((101.1-100.36)/100.36) x 100 = 0.73%
Solution 2: ((101.1-85.34)/85.34) x 100 = 18.47%

Once again, my friend thinks solution 2 is correct but I feel like solution 1 is more realistic.

Anyone has any tips on which solution that would be correct for these tasks?

Interest rates are always – always! – quoted as annual rates.

Source 1 is wrong.

Would the same assumption be applied to z-spreads whereas for semiannual you divide the spread by 2? Example for z-spread: Monthly: 0.0055/12, Weekly: 0.0055/52, Quarterly: 0.0055/4 etc

Or is it just a constant 0.0055 no matter what periodicity (Which I find unreasonable)?

A z-spread is an interest rate.

Interest rates are always – always! – quoted as annual rates.