OT: Computing Bond Payments?

  • Thread starter Thread starter (PeteCresswell)
  • Start date Start date
P

(PeteCresswell)

I have to compute payments for bonds based on
- Coupon,
- Dollar Amount Held,
- Length of payment period.

Sounded reasonable at first but then:

- What about buys/sells during the period where
the dollar amount held changes multiple times?

- What about bonds whose coupon changes multiple
times during the period?

And so-on-and-so-forth...

Bottom Line:
---------------------------------------------------------------
- This sounds like a bread-and-butter calculation that's been
analyzed and refined to the Nth degree many times by many
people, most of them with significantly more IQ points than
Yours Truly.

- Does anybody know where to find the inner workings of such
a calculation?

- I'm Googling as I write this, but the number of hits is
kind of intimidating....

- Even knowing what it's technical name is would be a big help.
 
Pete,

I doubt if it's as easy as a function that just handles it all. My guess is
that you're going to divide each segment based on each coupon and calculate
it a segment at a time. A query should be able to handle all the segments of
a single coupon, but you'll need a way to identify when the coupon itself
changes for each bond. All I can say is I hope you are getting a high enough
rate and enough billable hours for the job. It doesn't sound difficult, but
it does sound tedious and time-consuming. Good luck.
 
Bond cupon for period t (in days) is calculated as

N*i*t/360 (or 365)

where
t time period in days depending on the basis convention (30/360, 30/365,
ACT/360, ACT/365 are more the most frequent)
N is notional amount
i annual interest rate in percentage

On variable coupon rate bonds, you may have i changing every coupon period,
and there are also partly paid bonds ...
therefore the best way to calculate this should be something like

constructing a table schedule for every bond with the following info

-Cupon payment date
- Cupon interest rate (i)
- Nominal outstanding (not yet paid)


the have a list of all deals made with the following info

- trade date
- value date
- buy/sell
- Notional Amout and/or Quantity
- price (may be important for bonds quoted in 'dirty price')


then for each deal calculate

Past coupons = Sum (Notional amount * Cupon interest rate (k) ) * (1 if
buy or -1 if sell), for all coupons k with coupon date >= value date of
deal
Actual Coupon = Notional amount (d) * actual cupon interest rate * (deal
value date - last coupon date)/360 (or 365) ) * (1 if buy or -1 if sell)

For dirty priced bonds, past coupon formulae maintains only Actual coupon is
different ...
 
hi

A Passinhas said:
Bond cupon for period t (in days) is calculated as

N*i*t/360 (or 365)

where
t time period in days depending on the basis convention (30/360, 30/365,
ACT/360, ACT/365 are more the most frequent)
N is notional amount
i annual interest rate in percentage

On variable coupon rate bonds, you may have i changing every coupon
period, and there are also partly paid bonds ...
therefore the best way to calculate this should be something like

constructing a table schedule for every bond with the following info

-Cupon payment date
- Cupon interest rate (i)
- Nominal outstanding (not yet paid)


the have a list of all deals made with the following info

- trade date
- value date
- buy/sell
- Notional Amout and/or Quantity
- price (may be important for bonds quoted in 'dirty price')


then for each deal calculate

Past coupons = Sum (Notional amount * Cupon interest rate (k) ) * (1
if buy or -1 if sell), for all coupons k with coupon date >= value date
of deal
Actual Coupon = Notional amount (d) * actual cupon interest rate *
(deal value date - last coupon date)/360 (or 365) ) * (1 if buy or -1 if
sell)

For dirty priced bonds, past coupon formulae maintains only Actual coupon
is different ...
 
where it says:

Past coupons = Sum (Notional amount * Cupon interest rate (k) ) * (1 if
buy or -1 if sell), for all coupons k with coupon date >= value date of
deal
Actual Coupon = Notional amount (d) * actual cupon interest rate * (deal
value date - last coupon date)/360 (or 365) ) * (1 if buy or -1 if sell)


should be :

Past coupons = Sum (Notional outstanding amount(k) * Cupon interest rate
(k) ) * Quantity * (1 if
buy or -1 if sell), for all coupons k with coupon date <= value date of
deal
Actual Coupon = Quantity * Notional outstanding * actual cupon interest
rate * (deal
value date - last coupon date)/360 (or 365) ) * (1 if buy or -1 if sell)



A Passinhas said:
Bond cupon for period t (in days) is calculated as

N*i*t/360 (or 365)

where
t time period in days depending on the basis convention (30/360, 30/365,
ACT/360, ACT/365 are more the most frequent)
N is notional amount
i annual interest rate in percentage

On variable coupon rate bonds, you may have i changing every coupon
period, and there are also partly paid bonds ...
therefore the best way to calculate this should be something like

constructing a table schedule for every bond with the following info

-Cupon payment date
- Cupon interest rate (i)
- Nominal outstanding (not yet paid)


the have a list of all deals made with the following info

- trade date
- value date
- buy/sell
- Notional Amout and/or Quantity
- price (may be important for bonds quoted in 'dirty price')


then for each deal calculate

Past coupons = Sum (Notional amount * Cupon interest rate (k) ) * (1
if buy or -1 if sell), for all coupons k with coupon date >= value date
of deal
Actual Coupon = Notional amount (d) * actual cupon interest rate *
(deal value date - last coupon date)/360 (or 365) ) * (1 if buy or -1 if
sell)

For dirty priced bonds, past coupon formulae maintains only Actual coupon
is different ...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top