Skip to content

Loan Products

Loan products are the master templates that control how lending works in PinkApple: who qualifies, how interest accrues, how schedules are built, how penalties and taxes behave, and which product-specific accounting mappings the loan domain will use at posting time.

Navigation: Administration → Products → Loan Products

What a Loan Product Controls

When a loan account is created, the account inherits its operational behavior from the selected product. In practice, a loan product controls:

  • interest behavior, including flat vs declining balance, accrual mode, repricing, and day-count basis
  • schedule behavior, including fixed vs dynamic schedules, due date handling, installment counts, and grace periods
  • disbursement and limit rules, including amount ranges, term ranges, tranche limits, and line-of-credit requirements
  • repayment behavior, including allocation order, prepayment treatment, rounding, and future-payment acceptance
  • penalty and tax treatment
  • eligibility rules, including support for individuals, pure groups, hybrid groups, women-only products, and required member counts
  • accounting setup through chart of accounts and pricing profiles

Product Types

The product type determines which flags are available and which are required.

Product TypeTypical Use
FIXED_TERM_LOANStandard amortizing loans with a fixed schedule definition
DYNAMIC_TERM_LOANLoans where installments or schedule values may be recalculated over time
INTEREST_FREE_LOANProducts that avoid contractual interest but may still use fees and repayment controls
TRANCHED_LOANLoans disbursed in multiple tranches
REVOLVING_CREDITReusable credit facilities and line-based lending

Flag-Driven Configuration

Loan product behavior is driven by the loan flag catalog. Each product type exposes a curated set of flags, with:

  • a catalog default
  • a type-level allowed/required rule
  • an optional product-level override

The form shows the flag name plus a short description so users can understand the purpose of each setting before changing it.

Main Flag Groups

GroupWhat It Covers
INTERESTCalculation method, interest type, compounding, repricing, accrual, balance base
SCHEDULESchedule method, due dates, business day convention, installment defaults
LIMITSAmount ranges, installment ranges, tranche cap, line-of-credit requirement
GRACE_PERIODGrace treatment and allowed grace-period range
FIRST_REPAYMENTOffset from disbursement to first installment
PENALTYPenalty method, penalty rates, grace period, capping
PREPAYMENTWhether early repayment is allowed and how recalculation works
TAXInclusive vs exclusive tax and tax enablement by charge type
REPAYMENTAllocation order, payment method, settlement and future-payment handling
ROUNDINGRounding rules for schedule totals and repayment elements
ACCOUNTInitial state, ID generation, arbitrary fees, offset percentage
ELIGIBILITYBorrower/group targeting and special eligibility restrictions
LINKINGLinked-account repayment and automatic linking behavior

Creating or Editing a Loan Product

  1. Open Loan Products
  2. Click Create Loan Product or Edit
  3. Select the loan product type
  4. Complete the product header fields and required accounting links
  5. Review the generated flag set and override only the flags that differ from the type defaults
  6. Map the required product accounting accounts
  7. Save and complete any approval workflow if enabled

Key Configuration Areas

1. Core Product Setup

FieldPurpose
Product NameBusiness-facing product name
DescriptionOperational purpose and internal notes
CurrencyBooking currency for loan accounts
CategoryPortfolio classification such as personal, SME, or mortgages
Loan Product TypeDetermines the flag set and schedule model
Package / SettingsShared settings for redraw, arrears, principal-payment, and security behavior

2. Interest and Schedule

Important flags in this area include:

  • Interest Calculation Method: selects flat, reducing-balance, or fixed-installment reducing-balance logic
  • Interest Balance Calc Method: selects the balance base used for interest computation
  • Day Count Convention: defines how annual rates are converted into daily or periodic charges
  • Amortization Method:
    • STANDARD_PAYMENTS and EQUAL_INSTALLMENTS use the equal-installment path
    • BALLOON_PAYMENTS and EQUAL_PRINCIPAL currently use the non-standard/equal-principal path
  • Schedule Method: fixed or dynamic schedule generation
  • Due Dates Method: interval-based dates or fixed days of month
  • Elements Recalculation Method:
    • Keep Principal Fixed recalculates interest while preserving principal expectations
    • Keep Total Installment Fixed rebalances principal and interest while keeping the installment total steady
  • Grace Period Type: no grace, interest-only, interest forgiveness, or other supported policies

3. Limits and Eligibility

This area controls both commercial limits and borrower targeting:

  • minimum, maximum, and default loan amount
  • minimum, maximum, and default installment count
  • line-of-credit requirement
  • support for individuals, pure groups, and hybrid groups
  • Women Only Eligibility
  • Required Group Member Count

4. Repayment, Penalty, and Tax Behavior

These flags affect servicing after disbursement:

  • repayment allocation order
  • payment method and settlement options
  • prepayment acceptance and recalculation
  • penalty method, penalty rate bounds, and capping
  • taxes on interest, fees, and penalties

Product Accounting Mappings

Loan products now contribute accounts first, not a large list of rule bindings. The loan domain reads the mapped product accounts at posting time, while only the small remaining product-bound rule surface is configured separately.

Required Core Mappings

FieldPurpose
COA (coa_id)Loan principal/control account
Interest Receivable AccountAccrued and billed interest control
Interest Income AccountInterest income recognition
Pricing ProfilePricing-driven fees, penalties, and scheduled interest

Operational / Lifecycle Mappings

FieldPurpose
Write-off Debit AccountOptional fallback debit when write-off should not consume product provision liability
Provision Expense AccountProduct-specific provisioning expense
Provision Liability AccountProduct-specific provisioning liability and preferred write-off debit
Recovery Income AccountIncome recognition for recovered written-off balances

What Still Uses Rules

Loan products should no longer be treated as needing only a disbursement binding.

Minimum binding set for an active product:

  • DISBURSE
  • REPAYMENT
  • repayment reversal coverage through the *_REV loan tags

Additional bindings depend on behavior:

  • INT_ACCRUE for accrual products
  • INT_SUSPEND and INT_SUSPEND_RELEASE for interest-bearing products that can move into suspense/NPL handling
  • INT_CAPITALIZE for capitalized or compound-interest products
  • PROVISION, WRITEOFF, RECOVERY, LOAN_WAIVER, RESTRUCTURE, and their reversals when those lifecycle operations are enabled in the tenant

That means:

  • the product must have the required COA mappings
  • the product should be checked for the bindings required by its runtime behavior, not only for Loan Disbursement
  • repayment settlement is still driven by the repayment channel handler, not by separate per-product cash/bank manual rule variants
  • waiver uses the LOAN_WAIVER tag alias because WAIVER is reserved elsewhere in the platform
  • restructure currently has a forward GL rule only; there is no separate RESTRUCTURE_REV operation in source today

See GL Posting Rules and Loan GL Setup.

Pricing Profile

Attach a pricing profile when the product uses configurable fees or pricing items. Typical items include:

  • origination or processing fees
  • insurance premiums
  • recurring service charges
  • early-settlement fees
  • penalty-related pricing triggers

Minimum Valid Loan Pricing Profile

For a pricing profile to work safely on a loan product, the engine expects at least one active scheduled interest-style pricing item.

This is not optional when the account relies on pricing-driven interest resolution. During loan-account creation, the backend stops schedule generation if the resolved pricing profile has no active SCHEDULED items and no manual custom_interest_rate override was supplied.

The exact backend failure is:

text
No active SCHEDULED pricing items found for pricing_profile_id <id>. Either configure pricing items or provide custom_interest_rate parameter.

Practical rule:

  • if the product should use pricing-driven loan interest, attach a pricing profile with at least one active SCHEDULED loan-interest item
  • if the business wants to bypass pricing for one account, pass a custom_interest_rate during account creation instead

Required vs Optional Loan Pricing Items

Pricing Item PurposeRequired?Application ModeTrigger EventPreferred Handler CodesTypical Line CodesNotes
Scheduled loan interestRequired for pricing-driven loan productsSCHEDULEDNot tied to a transaction triggerLOAN_DAILY_INTEREST_AMOUNT, DAILY_INTEREST_AMOUNTINTEREST_LOAN_BASE, INTEREST_LOAN_VARIABLE, INTEREST_LOAN_FIXEDThis is the item family the loan engine needs to resolve interest and generate schedules.
Disbursement fee / origination feeOptionalUsually MANUAL or ARBITRARYLOAN_DISBURSEMENTLOAN_FEE_AMOUNT, DISBURSEMENT_FEE, PROCESSING_FEE, INSURANCE_FEEFEE_LOAN_ORIGINATION, FEE_LOAN_PROCESSING, loan insurance linesUse when the product charges up-front fees at disbursement.
Prepayment interest / settlement chargeOptionalUsually MANUAL or ARBITRARYLOAN_PREPAYMENT_INTERESTLOAN_PREPAYMENT_INTERESTFEE_LOAN_PREPAYMENT, settlement-related fee linesUse only if the product charges early-payment or early-settlement interest.
Overdue penaltyOptionalUsually MANUAL or ARBITRARYLOAN_PENALTYLOAN_PENALTY_AMOUNTPENALTY_LATE_PAYMENTNeeded only when penalty charging is enabled on the product.
Tax on fee / interest / penaltyOptional dependent itemUsually follows the parent item timingSame as parent item eventTAX_AMOUNTTax-oriented dependent linesUse as a dependent item when the product enables taxes on fees, interest, or penalties.
Parent-based surcharge / discount / percentage itemOptional dependent itemFollows the parent item timingSame as parent item eventPARENT_DEPENDENT_AMOUNTDiscount, surcharge, or dependent line codesUse when a child item should be calculated from another pricing item instead of directly from the loan account.

Preferred Handlers for New Loan Pricing Setup

Some older loan procedures still recognize compatibility aliases such as CALC_FEE_AMOUNT, CALC_PENALTY_AMOUNT, and CALC_TAX_AMOUNT.

For new pricing item setup, prefer these handler codes:

  • LOAN_DAILY_INTEREST_AMOUNT or DAILY_INTEREST_AMOUNT for scheduled loan interest
  • LOAN_FEE_AMOUNT, DISBURSEMENT_FEE, PROCESSING_FEE, or INSURANCE_FEE for fees
  • LOAN_PENALTY_AMOUNT for overdue penalties
  • LOAN_PREPAYMENT_INTEREST for early-payment interest
  • TAX_AMOUNT for tax child items
  • PARENT_DEPENDENT_AMOUNT for parent/child dependent pricing math

Loan Pricing Trigger Coverage

The loan pricing runtime currently uses these trigger events in active loan flows:

Trigger EventTypical Use
LOAN_DISBURSEMENTDisbursement-time fees and charges
LOAN_INT_ACCRUEDaily or periodic interest accrual
LOAN_LATE_INTERESTLate-interest charging
LOAN_PREPAYMENT_INTERESTEarly-payment interest charging
LOAN_PENALTYOverdue penalty charging
LOAN_WAIVERWaiver runtime effects
LOAN_INT_APPLYInterest application and reversals
LOAN_WRITE_OFFWrite-off pricing transactions and reversals
LOAN_RECOVERYRecovery pricing transactions and reversals

The trigger seed catalog also contains LOAN_REPAYMENT, LOAN_FEE_DEDUCTION, and LOAN_AUTO_COLLECT, but those are not the primary “must have” pricing-item triggers for attaching a pricing profile to a standard loan product.

Operational Notes

  • Product-level flag overrides are persisted separately from the core loan product record.
  • If a product is edited, the detail payload should include both the standard fields and the product_flag_configs overrides.
  • Type defaults are starting points, not mandatory final values, unless the flag is marked required and non-editable for that type.

PinkApple ERP by Stat Solutions Network