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

AdvancedParameters (Module)

parameters required for amortisation

BasicItem (Module)

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

BasicParameters (Module)

parameters for creating a payment schedule

BasicSchedule (Module)

a schedule of payments, with statistics

InitialStats (Module)

statistics resulting from the basic schedule calculations

LevelPaymentOption (Module)

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

Payment

ScheduleConfig (Module)

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

ScheduledPayment (Module)

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

AdvancedParameters (Type)

parameters required for applying payments and amortisation

AutoGenerateSchedule

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

BasicItem (Type)

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

BasicParameters (Type)

parameters for creating a payment schedule

BasicSchedule (Type)

a schedule of payments, with statistics

FixedSchedule

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

InitialStats (Type)

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

InterestBalance

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

basic schedule generation parameters and advanced parameters for amortisation

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

Functions and values

Function or value Description

adjustFinalPayment finalScheduledPaymentDay isAutoGenerateSchedule basicItems

Full Usage: adjustFinalPayment finalScheduledPaymentDay isAutoGenerateSchedule basicItems

Parameters:
Returns: BasicItem array

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

finalScheduledPaymentDay : int<MeasureProduct<OffsetDay, MeasureOne>>
isAutoGenerateSchedule : bool
basicItems : BasicItem array
Returns: BasicItem array

calculateBasicSchedule bp

Full Usage: calculateBasicSchedule bp

Parameters:
Returns: BasicSchedule

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

bp : BasicParameters
Returns: BasicSchedule

calculateInterest bp interestMethod payment previousItem day

Full Usage: calculateInterest bp interestMethod payment previousItem day

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

calculateLevelPayment principal fee interest paymentCount paymentRounding

Full Usage: calculateLevelPayment principal fee interest paymentCount paymentRounding

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

equaliseInterest bp paymentDays firstItem paymentCount feeTotal paymentMap state

Full Usage: equaliseInterest bp paymentDays firstItem paymentCount feeTotal paymentMap state

Parameters:
Returns: (BasicItem array * InterestBalance voption) option
bp : BasicParameters
paymentDays : int<MeasureProduct<OffsetDay, MeasureOne>> array
firstItem : BasicItem
paymentCount : int
feeTotal : int64<MeasureProduct<Cent, MeasureOne>>
paymentMap : PaymentMap
state : InterestBalance voption
Returns: (BasicItem array * InterestBalance voption) option

generateItem bp interestMethod scheduledPayment previousItem day

Full Usage: generateItem bp interestMethod scheduledPayment previousItem day

Parameters:
Returns: BasicItem
bp : BasicParameters
interestMethod : Method
scheduledPayment : ScheduledPayment
previousItem : BasicItem
day : int<MeasureProduct<OffsetDay, MeasureOne>>
Returns: BasicItem

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 bp paymentDays firstItem roughPayment

Full Usage: generatePaymentValue bp paymentDays firstItem roughPayment

Parameters:
Returns: decimal * decimal
bp : BasicParameters
paymentDays : int<MeasureProduct<OffsetDay, MeasureOne>> array
firstItem : BasicItem
roughPayment : decimal
Returns: decimal * decimal

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 bp finalPaymentDay

Full Usage: totalAddOnInterest bp finalPaymentDay

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

Type something to start searching.