Cosmic Module
O
Qubits of DPK
March 23, 2026
Core Open Source
What This Module Is (Big Picture)
The rates module manages configurable rate values used in financial calculations.
Instead of hardcoding rates inside the system, Fineract allows administrators to define them dynamically.
Rates may represent:
- interest rates
- penalty rates
- adjustment rates
- financial product rates
This module ensures that rates can change over time without modifying application code.
Layman Example
Suppose a bank offers a savings product.
Interest rate = 5%
After one year, the bank changes it to:
Interest rate = 6%
Instead of rewriting the system logic, the bank simply updates the rate configuration.
The fineract-rates module manages these configurations.
Where the Code Lives
Key Package
org.apache.fineract.portfolio.rate
Responsibilities include:
- defining rate rules
- storing rate values
- managing rate history
- retrieving applicable rates
Core Domain Entity:
Rate.java
Path
fineract-rates/src/main/java/org/apache/fineract/portfolio/rate/domain/Rate.java
This entity represents a financial rate definition.
Key fields on
Rate
Rate History
Rates may change over time.
Example:
Instead of replacing the old value, the system stores historical rates.
This ensures that past financial transactions remain correct.
Example Rate Calculation
Loan Amount = ₹10,000
Interest Rate = 12%
Interest = ₹1,200
The rate module provides the percentage value used in calculations.
Example Rate Calculation Code
java
QUBITS OF DPK
This method calculates the value derived from applying a rate.
API Layer
Main controller
RatesApiResource
Example endpoints
java
QUBITS OF DPK
These APIs allow administrators to:
- create rate definitions
- update rate values
- retrieve current and historical rates
Read Services
Read services retrieve rate information.
Examples include:
- retrieving rate definitions
- retrieving current active rates
- retrieving historical rate values
These services are used when financial calculations require a rate.
Write Services
Write services manage rate configurations.
Responsibilities include:
- creating new rates
- updating existing rates
- activating or deactivating rates
- managing rate history
Repository Layer
Exceptions
These exceptions ensure rates are properly configured.
How It All Connects (Full Flow)
Example: Loan interest calculation
java
QUBITS OF DPK
Why This Module Matters
The rates module ensures:
- flexible rate management
- historical rate tracking
- correct financial calculations
Banks often change rates frequently, and this module allows those changes without modifying application logic.
One-Sentence Summary
fineract-rates manages configurable financial rates used in banking calculations such as interest rates and penalty percentages.