KRYSTALM7 opened a new pull request, #24:
URL: https://github.com/apache/fineract-loan-origination/pull/24
# PR Title
FINERACT-2442: Add credit scoring engine foundation
## Description
This PR introduces the foundational architecture for the Loan Origination
System (LOS) credit scoring engine.
The implementation establishes the core contracts, models, and configuration
required for a configurable and explainable credit scoring framework while
keeping scoring logic decoupled from persistence and workflow concerns.
### Changes Included
#### Configuration
* Added `ScoringWeightsProperties`
* Externalized factor weights through application configuration
* Startup validation ensuring all configured weights sum to 100
* Support for institution-specific scoring policies without recompilation
* Added `ScoringConfig`
* Registers configuration property binding
#### Core Contracts
* Added `CreditScoringStrategy`
* Added `ScoringFactor`
These interfaces establish extension points for future scoring
implementations and support a pluggable factor-based architecture.
#### Scoring Models
* Added `ApplicantScoringProfile`
* Added `FactorScore`
* Added `CreditScoreResult`
The scoring models are intentionally independent of JPA entities to improve
testability, maintainability, and separation of concerns.
### Design Considerations
* Externalized configuration over hardcoded weights
* Fail-fast validation of scoring configuration
* Explainable scoring through factor-level breakdowns
* Stateless and testable scoring components
* Clear separation between domain persistence and scoring logic
* Open for extension through additional scoring factors
### Verification
```bash
./mvnw spotless:apply
./mvnw clean compile
```
### Follow-up Work
Subsequent PRs will introduce:
* Income-to-loan ratio factor
* Debt burden factor
* Employment stability factor
* Repayment history factor
* Loan purpose risk factor
* Default credit scoring strategy implementation
* Unit test coverage
Related
JIRA: https://issues.apache.org/jira/browse/FINERACT-2442
--
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]