Interest Accrual Calculation



  • Date the user enters as the Accrual Apply date
  • Last day of the month by convention
NumDaysToAccrue = EndDate - StartDate + 1

IF Feb 29 falls between StartDate and EndDate THEN subtract 1 from NumDaysToAccrue (Actual/365 calculation treats every year as though it had 365 days)

OriginalValue: Face value of the bond

Interest: Coupon rate as displayed on Loan Form (ie, 4.25% is 4.25, not 0.0425 or 1.0425)

Accrued Interest = Round(OriginalValue * Interest * NumDaysToAccrue / 36500, 2)

The accrued interest is calculated a month at a time to allow for proper handling of uncollectible interest.

Starting with the StartDate calculated previously, repeat the following steps for each month until EndDate is reached.

CurrDate: Current date

  • Use last day of current month as the current date
  • Use Feb 28 instead of Feb 29 (ie, ignore leap years)

EffIntRate: Effective interest rate

  • Remains the same for fixed rate loans
  • May change from one month to the next for adjustable rate loans

NextPmtAmtDue: Next payment amount due

  • For adjustable rate loans, users have the ability to enter future payment amounts; if there are entries for the loan being processed, the system will use them
  • This amount is used to predict drawdown of the principal balance

RemBal: Remaining principal balance

  • Add back in any principal payments received between now and CurrDate to get the remaining principal balance for the instrument as of CurrDate

IntAccrued: Interest accrued this month

IntAccrued = RemBal * EffIntRate / 1200

Draw down balance by assuming timely payments

PrinPmtExpected = NextPmtAmtDue – Round(IntAccrued, 2)
RemBal = RemBal – PrinPmtExpected
  • If PrinPmtExpected or RemBal are negative, set them equal to zero

IF we are in the month this instrument was purchased and the overall start date (as calculated above) is after the first of the month then:

PctOfMonth: percentage of month to calculate interest accrual

PctOfMonth = (30 – StartDay – 1) / 30
IntAccrued = IntAccrued * PctOfMonth
IntAccrued = Round(IntAccrued, 2)

Service: Servicing fee rate as displayed on Loan Form (ie, 0.375% is 0.375, not 0.00375 or 1.00375)

ServiceFees: Dollar amount of service fees owed for this month

ServiceFees = Round(IntAccrued * Service / EffIntRate, 2)

MonthsTilDlq: number of months a loan must be past due before considered delinquent

MonthsTilDlq = 3

NextPmtDate: date the next payment is due

  • Equal to the Next Due date from the most recent Receipt

AccInt: accrued interest

  • Can have up to four months of interest accrued here
    • 1 month of non-delinquent interest
    • 3 months of delinquent interest

SvcFee: service fees

UncolInt: uncollectible interest

  • Interest accrued once the loan enters non-accrual status (ie, more than 3 months past due)

SvcFee90: service fees unlikely to be owed

  • Service fees accrued once the loan enters non-accrual status

IF the number of months between the current month and the NextPmtDate is greater than or equal to MonthsTilDlq THEN:

  • Loan is in non-accrual status this month
UncolInt = UncolInt + IntAccrued
SvcFee90 = SvcFee90 + ServiceFees


  • Loan is accruing interest this month
AccInt = AccInt + IntAccrued
SvcFee = SvcFee + ServiceFees

If we have not reached the EndDate return to Determine Current Date to Use

  • loan_mgmt/calculate_accruals.txt
  • Last modified: 2023/07/24 14:57 UTC
  • by