5.19 Payment Pattern Loader

The Payment Pattern Loader provides the ability to load bulk payment pattern definitions through a back end procedure. This Loader reads the stage table data, does data quality checks on the same, and load them into FSI_PAYMENT_PATTERN and FSI_PAYMENT_PATTERN_EVENT tables, if the stage table data is valid.

Following is the stage table to input the payment pattern:

Table 5-10 STG_PAYMENT_PATTERN

Column Name Column Datatype Column Null Option Column Is PK Column Comment
V_AMRT_TYPE VARCHAR2(5) NOT NULL Yes Amortization code between 1000 to 69999. Patterns between this range will be consider for payment processing
N_EVENT_ID NUMBER(5,0) NOT NULL Yes Event Identity Number
N_SPLIT_ID NUMBER(5,0) NOT NULL Yes Holds number of patterns with in split pattern
V_PATTERN_TYPE VARCHAR2(40) NOT NULL Yes List of values could be Absolute, Relative, Split
V_TERM_TYPE VARCHAR2(40) NOT NULL Yes List of values could be Principal and Interest, Principal Only, Interest Only, Level Principal, Final Principal & Interest, Other
V_AMRT_TYPE_DESC VARCHAR2(255) NOT NULL No Alpha numeric value
N_PCT_VALUE NUMBER(8,4) NULL No Percentage applied to each pattern in case of split pattern type
V_PAYMENT_EVENT_MONTH VARCHAR2(20) NULL No Month in which payment event should occur
N_PAYMENT_EVENT_DAY NUMBER(2) NULL No Number of Days Payment type
N_PAYMENT_EVENT_FREQ NUMBER(5,0) NULL No Number of times payment event should occur
V_PAYMENT_EVENT_FREQ_MULT VARCHAR2(40) NULL No List of values could be Days,Months,Years
N_PAYMENT_EVENT_REPEAT_VALUE NUMBER(5,0) NULL No Holds number of times payment frequency should repeat
N_AMOUNT NUMBER(14,2) NULL No Amount
V_AMOUNT_TYPE VARCHAR2(40) NULL No List of values could be % of original Payment,% of current payment,absolute value
V_PAYMENT_TYPE VARCHAR2(30) NULL No List of values could be Conventional, Level principal, Non-amortizing

The loader program performs the following data quality checks:

  1. The following values will be checked against the relevant look tables as mentioned
    • Pattern Type: FSI_PATTERN_TYPE_MLS
    • CashFlowType: FSI_PAYMENT_TYPE_MLS (Should accept only 100-Principal and Interest and 300-Interest Only)
    • Month: FSI_MONTHS_MLS
    • Multiplier: FSI_MULTIPLIER_MLS
    • Payment Method: FSI_AMOUNT_TYPE_MLS (For Conventional accept only % of Original Payment, % of Current Payment and Absolute value)
    • Payment Type: FSI_PMT_PATTERN_TYPE_MLS
  2. While defining any pattern type like relative or absolute, MONTH and DAY combination should be unique
  3. MONTH and DAY pair should have valid month and day combination, such as January 31 days and February 28 days (Leap year was not considered) and so on.
  4. If cash flow value is Principal and Interest then N_AMOUNT cannot be blank. If it is Interest only then V_PAYMENT_TYPE and N_AMOUNT should be blank.
  5. When payment type is a Non-amortizing and Payment pattern is Relative then N_PAYMENT_EVENT_FREQ and N_PAYMENT_EVENT_REPEAT_VALUE should have values which could range between 1 to 9999.
  6. One Split pattern can have any number of definition, however the sum of N_PCT_VALUE of all the definition should be 100% and all the payment patterns in the split should be defined.
  7. All the following fields should have this validation on place:
    • Day: Positive Integer Number Range from 1 to 31 depends on the month for which day.
    • Percentage: Positive Integer or Decimal Number
    • Frequency: Positive Integer range from 1 to 9999
    • Repeat: Positive Integer range from 1 to 9999
    • Value: Integer numbers from 0 to 9999999999
  8. For each payment pattern and payment type combinations fields relevant to that would be populated by the user remaining columns should be populated with default values:
    • Payment Pattern: Absolute
    • Payment Type: Conventional / Level Principal
    • Columns gets populated with user values: Code , Description, Pattern Type, Payment Type, Month, Day, Cash Flow Type, Payment Method,Value, Percentage (in case of Split pattern type
    • Payment Type: Non amortizing Payment type.
    • Columns gets populated with user values: Code , Description , Pattern Type, Payment Type, Month, Day, Percentage (in case of Split pattern type)
    • Payment Pattern: Relative
    • Payment Type: Conventional / Level Principal
    • Columns gets populated with user values: Code, Description, Pattern Type, Payment Type, Frequency, Multiplier, Repeat, Cash Flow Type, Payment Method, Value, Percentage (in case of Split pattern type)
    • Payment Type: Non amortizing Payment type.
    • Columns gets populated with user values: Code, Description, Pattern Type, Payment Type, Frequency, Multiplier, Repeat, Percentage (in case of Split pattern type).

The loader program defaults values for each column in case values provided by user are not relevant for the pattern and payment patterns they defined.