Header menu logo FSharp.Finance.Personal

UsActuarial Module

APR as in https://www.consumerfinance.gov/rules-policy/regulations/1026/j/

Functions and values

Function or value Description

dailyUnitPeriods termStart transfers

Full Usage: dailyUnitPeriods termStart transfers

Parameters:
Returns: (Transfer * DivisionResult)[]

(b)(5)(iv) If the unit-period is a day, [...] the number of full unit-periods and the remaining fractions of a unit-period shall be determined by dividing the number of days between the 2 given dates by the number of days per unit-period. If the unit-period is a day, the number of unit-periods per year shall be 365. [...]

termStart : Date
transfers : Transfer[]
Returns: (Transfer * DivisionResult)[]

daysBetween date1 date2

Full Usage: daysBetween date1 date2

Parameters:
Returns: int

(b)(5)(i) The number of days between 2 dates shall be the number of 24-hour intervals between any point in time on the first date to the same point in time on the second date.

date1 : Date
date2 : Date
Returns: int

generalEquation consummationDate firstFinanceChargeEarnedDate advances payments

Full Usage: generalEquation consummationDate firstFinanceChargeEarnedDate advances payments

Parameters:
Returns: Solution

(b)(8) General equation.

consummationDate : Date
firstFinanceChargeEarnedDate : Date
advances : Transfer[]
payments : Transfer[]
Returns: Solution

mapUnitPeriods unitPeriod

Full Usage: mapUnitPeriods unitPeriod

Parameters:
Returns: Date -> Transfer[] -> (Transfer * DivisionResult)[]

map an array of transfers to an array of whole and fractional unit periods

unitPeriod : UnitPeriod
Returns: Date -> Transfer[] -> (Transfer * DivisionResult)[]

monthlyUnitPeriods multiple termStart transfers

Full Usage: monthlyUnitPeriods multiple termStart transfers

Parameters:
Returns: (Transfer * DivisionResult)[]

(b)(5)(ii) If the unit-period is a month, the number of full unit-periods between 2 dates shall be the number of months measured back from the later date. The remaining fraction of a unit-period shall be the number of days measured forward from the earlier date to the beginning of the first full unit-period, divided by 30. If the unit-period is a month, there are 12 unit-periods per year. (b)(5)(iii) If the unit-period is [...] a multiple of a month not exceeding 11 months, the number of days between 2 dates shall be 30 times the number of full months measured back from the later date, plus the number of remaining days. The number of full unit-periods and the remaining fraction of a unit-period shall be determined by dividing such number of days [...] by the appropriate multiple of 30 in the case of a multimonthly unit-period. [...] If the number of unit-periods is a multiple of a month, the number of unit-periods per year shall be 12 divided by the number of months per unit-period. (b)(5)(v) If the unit-period is a year, the number of full unit-periods between 2 dates shall be the number of full years (each equal to 12 months) measured back from the later date. The remaining fraction of a unit-period shall be > (A) The remaining number of months divided by 12 if the remaining interval is equal to a whole number of months, or > (B) The remaining number of days divided by 365 if the remaining interval is not equal to a whole number of months.

multiple : int
termStart : Date
transfers : Transfer[]
Returns: (Transfer * DivisionResult)[]

semiMonthlyUnitPeriods termStart transfers

Full Usage: semiMonthlyUnitPeriods termStart transfers

Parameters:
Returns: (Transfer * DivisionResult)[]

(b)(5)(iii) If the unit-period is a semimonth [...], the number of days between 2 dates shall be 30 times the number of full months measured back from the later date, plus the number of remaining days. The number of full unit-periods and the remaining fraction of a unit-period shall be determined by dividing such number of days by 15 in the case of a semimonthly unit-period [...]. If the unit-period is a semimonth, the number of unit-periods per year shall be 24. [...]

termStart : Date
transfers : Transfer[]
Returns: (Transfer * DivisionResult)[]

singleUnitPeriod arg1 transfers

Full Usage: singleUnitPeriod arg1 transfers

Parameters:
    arg0 : 'a
    transfers : 'b[]

Returns: ('b * DivisionResult)[]

(b)(5)(vi) In a single advance, single payment transaction in which the term is less than a year and is equal to a whole number of months, the number of unit-periods in the term shall be 1, and the number of unit-periods per year shall be 12 divided by the number of months in the term or 365 divided by the number of days in the term. (b)(5)(vii) In a single advance, single payment transaction in which the term is less than a year and is not equal to a whole number of months, the number of unit-periods in the term shall be 1, and the number of unit-periods per year shall be 365 divided by the number of days in the term.

arg0 : 'a
transfers : 'b[]
Returns: ('b * DivisionResult)[]

weeklyUnitPeriods multiple termStart transfers

Full Usage: weeklyUnitPeriods multiple termStart transfers

Parameters:
Returns: (Transfer * DivisionResult)[]

(b)(5)(iv) If the unit-period is [...] a week, or a multiple of a week, the number of full unit-periods and the remaining fractions of a unit-period shall be determined by dividing the number of days between the 2 given dates by the number of days per unit-period. [...] If the unit-period is a week or a multiple of a week, the number of unit-periods per year shall be 52 divided by the number of weeks per unit-period.

multiple : int
termStart : Date
transfers : Transfer[]
Returns: (Transfer * DivisionResult)[]

Type something to start searching.