Header menu logo FSharp.Finance.Personal

Scheduling Module

functions for generating a regular payment schedule, with payment amounts, interest and APR

Types and nested modules

Type/Module Description

ActualPayment (Module)

an actual payment made by the customer, optionally including metadata such as bank references etc.

ActualPaymentStatus (Module)

the status of the payment, allowing for delays due to payment-provider processing times

Apportionment (Module)

a breakdown of how an actual payment is apportioned to principal, fee, interest and charges

GeneratedPayment (Module)

a generated payment, where applicable

InitialStats (Module)

statistics resulting from the simple schedule calculations

LevelPaymentOption (Module)

when calculating the level payments, whether the final payment should be lower or higher than the level payment

Parameters (Module)

parameters for creating a payment schedule

PaymentConfig (Module)

how to treat scheduled payments

ScheduleConfig (Module)

whether a payment plan is generated according to a regular schedule or is an irregular array of payments

ScheduledPayment (Module)

SimpleItem (Module)

a scheduled payment item, with running calculations of interest and principal balance

SimpleSchedule (Module)

a schedule of payments, with statistics

ActualPayment (Type)

an actual payment made by the customer, optionally including metadata such as bank references etc.

ActualPaymentStatus (Type)

the status of the payment, allowing for delays due to payment-provider processing times

Apportionment (Type)

a breakdown of how an actual payment is apportioned to principal, fee, interest and charges

AutoGenerateSchedule

a regular schedule based on a unit-period config with a specific number of payments with an auto-calculated amount

EqualiseInterestState

FixedSchedule

a regular schedule based on a unit-period config with a specific number of payments of a specified amount

GeneratedPayment (Type)

a generated payment, where applicable

InitialStats (Type)

final statistics based on the payments being made on time and in full

LevelPaymentOption (Type)

when calculating the level payments, whether the final payment should be lower or higher than the level payment

MinimumPayment

how to handle cases where the payment due is less than the minimum that payment providers can process

Parameters (Type)

parameters for creating a payment schedule

PaymentConfig (Type)

how to treat scheduled payments

PaymentStatus

the status of a payment made by the customer

RescheduledPayment

a rescheduled payment, including the day on which the payment was created

ScheduleConfig (Type)

whether a payment plan is generated according to a regular schedule or is an irregular array of payments

ScheduleType

the type of the schedule; for scheduled payments, this affects how any payment due is calculated

ScheduledPayment (Type)

any original or rescheduled payment, affecting how any payment due is calculated

ScheduledPaymentOption

whether to stick to scheduled payment amounts or add charges and interest to them

SettlementDay

the intended day on which to quote a settlement

SimpleItem (Type)

a scheduled payment item, with running calculations of interest and principal balance

SimpleSchedule (Type)

a schedule of payments, with statistics

Functions and values

Function or value Description

adjustFinalPayment finalScheduledPaymentDay isAutoGenerateSchedule simpleItems

Full Usage: adjustFinalPayment finalScheduledPaymentDay isAutoGenerateSchedule simpleItems

Parameters:
Returns: SimpleItem array

handle any principal balance overpayment (due to rounding) on the final payment of a schedule

finalScheduledPaymentDay : int<MeasureProduct<OffsetDay, MeasureOne>>
isAutoGenerateSchedule : bool
simpleItems : SimpleItem array
Returns: SimpleItem array

calculate sp

Full Usage: calculate sp

Parameters:
Returns: SimpleSchedule

calculates the number of days between two offset days on which interest is chargeable

sp : Parameters
Returns: SimpleSchedule

calculateInterest sp interestMethod payment previousItem day

Full Usage: calculateInterest sp interestMethod payment previousItem day

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

calculateLevelPayment paymentCount paymentRounding principal fee interest

Full Usage: calculateLevelPayment paymentCount paymentRounding principal fee interest

Parameters:
Returns: int64<MeasureProduct<Cent, MeasureOne>>
paymentCount : int
paymentRounding : Rounding
principal : int64<MeasureProduct<Cent, MeasureOne>>
fee : int64<MeasureProduct<Cent, MeasureOne>>
interest : decimal<MeasureProduct<Cent, MeasureOne>>
Returns: int64<MeasureProduct<Cent, MeasureOne>>

equaliseInterest sp paymentDays firstItem paymentCount feeTotal paymentMap stateOption

Full Usage: equaliseInterest sp paymentDays firstItem paymentCount feeTotal paymentMap stateOption

Parameters:
Returns: (SimpleItem array * EqualiseInterestState voption) option
sp : Parameters
paymentDays : int<MeasureProduct<OffsetDay, MeasureOne>> array
firstItem : SimpleItem
paymentCount : int
feeTotal : int64<MeasureProduct<Cent, MeasureOne>>
paymentMap : Map<int<MeasureProduct<OffsetDay, MeasureOne>>, ScheduledPayment>
stateOption : EqualiseInterestState voption
Returns: (SimpleItem array * EqualiseInterestState voption) option

generateItem sp interestMethod scheduledPayment previousItem day

Full Usage: generateItem sp interestMethod scheduledPayment previousItem day

Parameters:
Returns: SimpleItem
sp : Parameters
interestMethod : Method
scheduledPayment : ScheduledPayment
previousItem : SimpleItem
day : int<MeasureProduct<OffsetDay, MeasureOne>>
Returns: SimpleItem

generatePaymentMap startDate paymentSchedule

Full Usage: generatePaymentMap startDate paymentSchedule

Parameters:
Returns: Map<int<MeasureProduct<OffsetDay, MeasureOne>>, ScheduledPayment>

generates a map of offset days and payments based on a start date and payment schedule

startDate : Date
paymentSchedule : ScheduleConfig
Returns: Map<int<MeasureProduct<OffsetDay, MeasureOne>>, ScheduledPayment>

generatePaymentValue sp paymentDays firstItem roughPayment

Full Usage: generatePaymentValue sp paymentDays firstItem roughPayment

Parameters:
Returns: decimal * decimal
sp : Parameters
paymentDays : int<MeasureProduct<OffsetDay, MeasureOne>> array
firstItem : SimpleItem
roughPayment : decimal
Returns: decimal * decimal

mergeScheduledPayments scheduledPayments

Full Usage: mergeScheduledPayments scheduledPayments

Parameters:
Returns: Map<int<MeasureProduct<OffsetDay, MeasureOne>>, ScheduledPayment>

merges scheduled payments, determining the currently valid original and rescheduled payments, and preserving a record of any previous payments that have been superseded

scheduledPayments : (int<MeasureProduct<OffsetDay, MeasureOne>> * ScheduledPayment) array
Returns: Map<int<MeasureProduct<OffsetDay, MeasureOne>>, ScheduledPayment>

toValueOption _arg1

Full Usage: toValueOption _arg1

Parameters:
    _arg1 : 'a option

Returns: 'a voption

convert an option to a value option

_arg1 : 'a option
Returns: 'a voption

totalAddOnInterest sp finalPaymentDay

Full Usage: totalAddOnInterest sp finalPaymentDay

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

Type something to start searching.