bharathcgowda commented on code in PR #4913: URL: https://github.com/apache/fineract/pull/4913#discussion_r2248002198
########## fineract-doc/src/docs/en/chapters/features/buydown-fee.adoc: ########## @@ -0,0 +1,637 @@ += Buy Down Fee + +== Overview + +Buy Down Fee is a specialized fee mechanism in Apache Fineract that allows financial institutions to collect upfront fees from borrowers to reduce their effective interest rate over the loan term. This feature is particularly designed for 0% interest "buy down" loans where a merchant fee is collected and amortized into interest/fee income over the life of the loan. + +The key characteristic of Buy Down Fee is that the amortized fee is **NOT visible to the customer** and **NOT affecting the repayment schedule** - it operates as a background process for proper revenue recognition while maintaining transparency in customer-facing loan terms. + +=== Key Benefits + +* **Interest Rate Reduction**: Borrowers can reduce their effective interest rate by paying an upfront fee +* **Merchant Fee Support**: Enables 0% interest loan products with merchant-paid fees +* **Revenue Recognition**: Provides controlled amortization of fee income over the loan term +* **Customer Transparency**: Fee amortization is invisible to customers, maintaining clean loan presentation +* **Accounting Integration**: Proper journal entries and accounting treatment for fee transactions + +== Buy Down Fee Configuration + +=== Prerequisites + +Before enabling Buy Down Fee functionality, ensure the following prerequisites are met: + +* **Loan Product Type**: Only Progressive Loan products support Buy Down Fee functionality +* **Accounting Method**: Accrual accounting must be enabled for proper income recognition and amortization +* **General Ledger Accounts**: Required GL accounts must be configured + +=== Required Configuration Parameters + +When creating or updating a loan product with Buy Down Fee enabled, the following parameters are mandatory: + +[cols="2,1,3", options="header"] +|=== +|Parameter |Required |Description + +|`enableBuyDownFee` +|Yes +|Boolean flag to enable/disable Buy Down Fee functionality + +|`buyDownFeeCalculationType` +|Yes* +|Calculation method for Buy Down Fee. Currently only `FLAT` is supported + +|`buyDownFeeStrategy` +|Yes* +|Amortization strategy. Currently only `EQUAL_AMORTIZATION` is supported + +|`buyDownFeeIncomeType` +|Yes* +|Income recognition type: `FEE` or `INTEREST` + +|`buyDownExpenseAccountId` +|Yes* +|GL Account ID for Buy Down Fee expense recognition + +|`incomeFromBuyDownAccountId` +|Yes* +|GL Account ID for Buy Down Fee income recognition during amortization + +|`deferredIncomeLiabilityAccountId` +|Yes* +|GL Account ID for Deferred Income Liability Account used during amortization + +|`loanScheduleType` +|Yes +|Loan schedule type, must be set to "PROGRESSIVE" for Buy Down Fee +|=== + +_* Required only when `enableBuyDownFee` is set to `true`_ + +=== Accounting Mappings + +Buy Down Fee requires specific GL account mappings for proper financial reporting: + +==== Required GL Accounts + +* **Buy Down Expense Account** (`buyDownExpenseAccountId`) + - Account Type: EXPENSE + - Purpose: Records the initial Buy Down Fee expense when transaction is created + - Journal Entry: Debit when Buy Down Fee is added + +* **Income from Buy Down Account** (`incomeFromBuyDownAccountId`) + - Account Type: INCOME + - Purpose: Records income recognition during daily amortization process + - Journal Entry: Credit during COB amortization + +==== Journal Entry Flow + +1. **Buy Down Fee Creation**: + - Debit: Buy Down Expense Account + - Credit: Cash/Bank Account + +2. **Daily Amortization** (via COB): + - Debit: Deferred Capitalized Income + - Credit: Fee/Interest Income Account + +3. **Buy Down Fee Adjustment**: +- Debit: Deferred Income Liability +- Credit: Buy Down Expense Account + +4. **Buy Down Fee Amortization Adjustment**: +- Debit: Deferred Income Liability +- Credit: Income from Buy Down Account + +5. **Charge-off Handling**: +- Debit: Losses Written Off Account Review Comment: charge off should debit - charge-off expense/charge-off expense- account no? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
