ODDPV
Updated: 11 May 2012
Use the scalar-valued function ODDPV to calculate the present value of an annuity with an odd first period.
Syntax
SELECT [wctFinancial].[wct].[ODDPV] (
<@Rate, float,>
,<@NumPmts, int,>
,<@pmt, float,>
,<@FV, float,>
,<@Pmtpyr, int,>
,<@LoanDate, datetime,>
,<@FirstPayDate, datetime,>
,<@DaysInYr, float,>)
Arguments
@Rate
the annual interest rate. @Rate is an expression of type float or of a type that can be implicitly converted to float.
@NumPmts
the total number of payment over the life of the annuity to be calculated. @NumPmts is an expression of type int or of a type that can be implicitly converted to int.
@Pmt
the payment made each period. @Pmt cannot change over the life of the annuity. @Pmt is an expression of type float or of a type that can be implicitly converted to float.
@FV
the future value at the end of the annuity. @FV is an expression of type float or of a type that can be implicitly converted to float.
@Pmtpyr
the number of payments made in a year. @Pmtpyr is an expression of type float or of a type that can be implicitly converted to float.
@LoanDate
the interest start date for the annuity. @LoanDate is an expression of type datetime or of a type that can be implicitly converted to datetime.
@FirstPayDate
the date the first payment is due. @FirstPayDate is an expression of type datetime or of a type that can be implicitly converted to datetime.
@DaysInYr
the denominator number of days to be used in the calculation of the interest amount in the odd first period. @DaysInYr is an expression of type int or of a type that can be implicitly converted to int.
Return Type
float
Remarks
· If @DaysInYr is NULL, then @DaysInYr = 360
· If @FV is NULL, then @FV = 0
· If @IntRule is NULL, then @IntRule = “A”
· @FirstPayDate must be greater than @LoanDate
· @Pmtpyr must be 1, 2, 3, 4, 5, 6, 12, 13, 24, 26, 52, or 365
· @NumPmts must be greater than 1
· @Rate must be greater than zero
· @DaysInYr must be 360, 364, or 365
Examples
Calculate the present value, using a rate of 6.0%, for a 5-year loan starting on 1 November with payments due on the first of every month, having a monthly payment of 966.64. The rate on the loan is 6 per cent.
SELECT wct.ODDPV(
.06 --Rate
,60 --Numpmts
,966.64 --pmt
,0 --FV
,12 --pmtpyr
,'11/01/2010' --loan date
,'12/01/2010' --start date
,NULL --daysinyr
) as PV
This produces the following result.
PV
----------------------
-49999.9960444733
Calculate the present value, using a rate of 6.0%, for a 5-year loan starting on 1 November with payments due every 4 weeks, starting on 1 December. Each payment is 892.42
SELECT wct.ODDPV(
.06 --Rate
,65 --Numpmts
,892.42 --pmt
,0 --FV
,13 --pmtpyr
,'11/01/2010' --loan date
,'12/01/2010' --start date
,NULL --daysinyr
) as PV
This produces the following result.
PV
----------------------
-50000.1523538507
Calculate the present value using a rate of 6.0% for a 5-year loan starting on 1 November with payments due semi-monthly, starting on 1 December. The loan has a balloon payment of 10,000 at the end and the periodic payment is 412.45.
SELECT wct.ODDPV(
.06 --Rate
,120 --Numpmts
,412.45 --pmt
,10000 --FV
,24 --pmtpyr
,'11/01/2010' --loan date
,'12/01/2010' --start date
,360 --daysinyr
) as PV
This produces the following result.
PV
----------------------
-50000.3121743558
Calculate the present value using a rate of 12.0% for a 4-year loan made on 13 October with no payments due until 4 January and with payments of 3,710.27 due every 4 weeks after that.
SELECT wct.ODDPV(
.12 --Rate
,52 --Numpmts
,3710.27 --pmt
,0 --FV
,13 --pmtpyr
,'10/13/2010' --loan date
,'01/04/2011' --start date
,365 --daysinyr
) as PV
This produces the following result.
PV
----------------------
-149996.518525048