Header menu logo FSharp.Finance.Personal

Interest Module

methods for calculating interest and unambiguously expressing interest rates, as well as enforcing regulatory caps on interest chargeable

Types and nested modules

Type/Module Description

AdvancedConfig (Module)

advanced interest options

Cap (Module)

caps on the total interest accruable

Config

basic interest options

PromotionalRate (Module)

a promotional interest rate valid during the specified date range

Rate (Module)

AdvancedConfig (Type)

advanced interest options

BasicConfig

basic interest options

Cap (Type)

caps on the total interest accruable

DailyRate

the daily interest rate

Method

the method used to calculate the interest

PromotionalRate (Type)

a promotional interest rate valid during the specified date range

Rate (Type)

the interest rate expressed as either an annual or a daily rate

Functions and values

Function or value Description

``CCA2004regulation4(1)formula`` A B r m n a b

Full Usage: ``CCA2004regulation4(1)formula`` A B r m n a b

Parameters:
Returns: decimal<MeasureProduct<Cent, MeasureOne>>

calculates the settlement figure based on Consumer Credit (Early Settlement) Regulations 2004 regulation 4(1):

4.—(1) The amount of the rebate is the difference between the total amount of the repayments of credit that would fall due for payment after the settlement date if early settlement did not take place and the amount given by the following formula:

\[\sum_{i=1}^{m} A_i(1 + r)^{a_i} - \sum_{j=1}^{n} B_j(1 + r)^{b_j}\]

where:

\(A_i\) = the amount of the ith advance of credit, \(B_j\) = the amount of the jth repayment of credit, \(r\) = the periodic rate equivalent of the APR/100, \(m\) = the number of advances of credit made before the settlement date, \(n\) = the number of repayments of credit made before the settlement date, \(a_i\) = the time between the ith advance of credit and the settlement date, expressed in periods, \(b_j\) = the time between the jth repayment of credit and the settlement date, expressed in periods, and \(\sum\) represents the sum of all the terms indicated.

A : TransferMap
B : TransferMap
r : decimal
m : int
n : int
a : IntervalMap
b : IntervalMap
Returns: decimal<MeasureProduct<Cent, MeasureOne>>

calculate principalBalance dailyInterestCap interestRounding dailyRates

Full Usage: calculate principalBalance dailyInterestCap interestRounding dailyRates

Parameters:
Returns: decimal<MeasureProduct<Cent, MeasureOne>>

calculates the interest accrued on a balance at a particular interest rate over a number of days, optionally capped by a daily amount

principalBalance : int64<MeasureProduct<Cent, MeasureOne>>
dailyInterestCap : Amount
interestRounding : Rounding
dailyRates : DailyRate array
Returns: decimal<MeasureProduct<Cent, MeasureOne>>

calculateRebate principal payments apr settlementPeriod settlementPartPeriod unitPeriod paymentRounding

Full Usage: calculateRebate principal payments apr settlementPeriod settlementPartPeriod unitPeriod paymentRounding

Parameters:
Returns: int64<MeasureProduct<Cent, MeasureOne>>

calculates the amount of rebate due following an early settlement

note: the APR is the initial APR as determined at the start of the agreement

principal : int64<MeasureProduct<Cent, MeasureOne>>
payments : (int * int64<MeasureProduct<Cent, MeasureOne>>) array
apr : Percent
settlementPeriod : int
settlementPartPeriod : Fraction
unitPeriod : UnitPeriod
paymentRounding : Rounding
Returns: int64<MeasureProduct<Cent, MeasureOne>>

dailyRates startDate isSettledWithinGracePeriod standardRate promotionalRates fromDay toDay

Full Usage: dailyRates startDate isSettledWithinGracePeriod standardRate promotionalRates fromDay toDay

Parameters:
Returns: DailyRate array

calculates the interest chargeable on a range of days

startDate : Date
isSettledWithinGracePeriod : bool
standardRate : Rate
promotionalRates : PromotionalRate array
fromDay : int<MeasureProduct<OffsetDay, MeasureOne>>
toDay : int<MeasureProduct<OffsetDay, MeasureOne>>
Returns: DailyRate array

ignoreFractionalCents multiplier value

Full Usage: ignoreFractionalCents multiplier value

Parameters:
Returns: decimal<MeasureProduct<Cent, MeasureOne>>

if there is less than one cent remaining, discards any fraction

multiplier : uint
value : decimal<MeasureProduct<Cent, MeasureOne>>
Returns: decimal<MeasureProduct<Cent, MeasureOne>>

Type something to start searching.