Generally, a Z-spread calculation is straightforward: one has to project the cash flows of the bond and shift the swap curve up (in parallel) until the present value of the cash flows discounted with this shifted curve matches the observable (dirty) price of the bond.

It is to my knowledge that the swap curve is not the “par curve”, but rather a “zero coupon” (i.e. stripped curve). How is this “stripped swap curve” generally constructed? In simple terms hopefully.