Benchmark spread is defined in the curriculum as “The yield on a credit security over the yield on a security with little or no credit risk (benchmark bond) and with a similar duration.” The text goes on to explain that “typically, the benchmark bond is an on-the-run government bond. An on-the-run bond is defined as the most recently issued benchmark-size security of a particular maturity”

G-spread is defined as “The yield on a credit security over the yield of an actual or interpolated government bond.”

What is the difference between these two exactly? Is “credit security yield less actual on-the-run government bond” a benchmark spread or G-spread?

The chance of there being an identical in maturiy on the run government security to compare against the security in your portfolio, is well, basically zero. That’s why we use linear interpolation to calculate the yield to maturity of an otherwise duration matched government bond to calculate the spread between the two.

It’s a nominal spread, and is useful for evaluating differences at the security level (aka, not the entire portfolio).

the I-spread is calculated the same way, except now we’re using swap rates instead of government bond yields.

This might give you a better idea.

https://www.investopedia.com/terms/i/interpolated_yield_curve.asp