Appearance
Loan Product Datatables (m_product_loan)
Loan product datatables attach custom data to loan product definitions, not to individual loans. The distinction is important: data entered here applies to the product itself - its regulatory category, market positioning, or compliance attributes - rather than to any particular disbursement. This is useful for product governance, regulatory reporting aggregated by product type, and internal product documentation.
All examples below use apptableName: "m_product_loan". All are one-to-one - one set of attributes per product.
Regulatory Product Classification
Central banks and financial regulators classify loan products for reporting purposes. The classification codes are set at the product level and inherited by all loans under that product.
Use case: Assigning regulatory classification codes to each loan product so that portfolio reports can aggregate loans by regulatory category without requiring manual classification at the loan level.
Example fields:
| Field name | Type | Notes |
|---|---|---|
Regulatory_Product_Code | String (20) | Code from the central bank product taxonomy |
Reporting_Category | Dropdown | Linked to a regulatory category code list (e.g. Consumer / MSME / Agricultural / Housing / Staff / Other) |
Basel_Asset_Class | Dropdown | For institutions reporting under Basel frameworks (Retail / Corporate / Sovereign / SME / Other) |
Risk_Weight | Decimal | Regulatory risk weight percentage for capital adequacy |
Is_Priority_Sector | Boolean | Whether the product qualifies as priority sector lending |
Priority_Sector_Category | Dropdown | Specific priority sector classification (Agriculture / MSME / Housing / Education / Other) |
Collateral_Required | Boolean | Whether the product always requires collateral |
Guarantee_Required | Boolean | Whether a guarantor is required |
With these fields set at the product level, a regulatory return can be generated by joining loans to product classification codes - no loan-by-loan manual entry required.
Market Segment and Target Borrower
Product design teams and commercial management track which market segment each product is designed for. This supports portfolio analysis by target segment without requiring each loan to carry its own segment code.
Use case: Recording the intended market positioning of each product for portfolio analytics, product performance reporting, and impact measurement.
Example fields:
| Field name | Type | Notes |
|---|---|---|
Target_Segment | Dropdown | Micro / Small enterprise / Medium enterprise / Consumer / Agricultural smallholder / Salaried employee / Other |
Gender_Target | Dropdown | All / Women-focused / Men-focused |
Youth_Targeted | Boolean | Whether the product is specifically designed for youth borrowers |
Rural_Urban_Target | Dropdown | Urban / Peri-urban / Rural / All |
Climate_Finance | Boolean | Whether the product qualifies as green or climate-aligned finance |
Impact_Category | Dropdown | Linked to an impact category code list (Job creation / Food security / Clean energy / Education / Healthcare / Housing / Other) |
These fields allow the institution to report on its impact portfolio by product - for example, total outstanding under climate-aligned products, or the proportion of the women-focused portfolio that is active.
Pricing and Fee Documentation
Standard Fineract loan product configuration captures interest rates and fee schedules. A datatable can supplement this with documentation on how pricing was set and approved - useful for product governance and audit trails.
Use case: Documenting the pricing rationale and approval status for each loan product for governance and regulatory review.
Example fields:
| Field name | Type | Notes |
|---|---|---|
Annual_Percentage_Rate | Decimal | True APR including all fees, for consumer disclosure purposes |
Effective_Interest_Rate | Decimal | EIR as required by some regulatory frameworks |
Price_Review_Date | Date | Date of most recent pricing review |
Approved_By | String (150) | Board or committee that approved the pricing |
Approval_Date | Date | |
Is_Disclosed_on_Website | Boolean | Whether pricing is publicly disclosed as required |
Transparency_Index_Score | Decimal | Score from MFTransparency or similar pricing transparency framework |
Product Lifecycle and Status
Products are launched, modified, and eventually retired. A datatable captures the lifecycle state and key dates for each product.
Use case: Tracking product lifecycle events for portfolio wind-down planning, regulatory notification requirements, and product governance records.
Example fields:
| Field name | Type | Notes |
|---|---|---|
Product_Status | Dropdown | Active / Under review / Pilot / Suspended / Discontinued |
Launch_Date | Date | Date the product was first made available |
Pilot_Start_Date | Date | For products in a pilot phase |
Pilot_End_Date | Date | |
Discontinuation_Date | Date | Date the product was retired |
Discontinuation_Reason | Dropdown | Low demand / Regulatory change / Product redesign / Portfolio risk / Other |
Regulatory_Approval_Required | Boolean | Whether regulatory sign-off is needed for product changes |
Last_Regulatory_Notification | Date | Date of most recent notification to regulator |
Integration and Channel Attributes
For institutions with multiple distribution channels - branches, agents, mobile, digital - some loan products are available only through specific channels or require different processes per channel.
Use case: Recording channel availability and integration requirements for each loan product for technology and distribution planning.
Example fields:
| Field name | Type | Notes |
|---|---|---|
Available_on_Mobile | Boolean | |
Available_via_Agent | Boolean | |
Available_on_Digital_Platform | Boolean | |
API_Enabled | Boolean | Whether the product can be originated through an API integration |
External_System_Code | String (50) | Product code in an external origination or core banking system |
Requires_Manual_Approval | Boolean | Whether disbursement always requires a human approval step |
SLA_Hours | Number | Target processing time in hours from application to disbursement |