-
-
Save tobihans/a041da481aa7bea655b709bae9c62399 to your computer and use it in GitHub Desktop.
Apache Fineract / Mifos - Loan Scorecard Assessment
DB script The traditional methods for underwriting or identifying good/bad loans are rule based and governed by central banks/regulators. The statistical regression methods offered by SAS and others are also used by some technology savvy financial institutions. With improved digital footprint, distributed processing in the form of cloud computing, natural language processing and machine learning algorithms, the usage of pattern based recoginition for credit scoring, identification of potential good/bad loans, fraud detection, cross-sell has been banking technology research. The literature of the available work and tooling is available on overleaf and Google Drive.
An exhaustive feature (characteristic) list is prepared based on the available literature, interaction with central and public sector bankers, primary agricultural credit societies. The features/characteristics list are grouped/categorized into Individual/Organization, Loan History, Bank and Country specific. The exhaustive feature list is available on github.
Scorecard Category
Scorecard Characteristic
Scorecard Characteritic Criteria
Scorecard
and other relational tables Fineract does not have any method for credit scoring and early warning. We prepared UI mock-ups that can be used for adding new features, criteria and performing scorecard analysis.
This UI provides addition of new features/characteristics. The possible values for "Value Type" - Binary, Nominal, Interval and Ratio. The allowed "data types" are Numeric, Character and Date. Category is the broad grouping of Features/Characteristic. Status of these features can be active/inactive and there is no hard delete.
This UI is used for obtaining "key" values for the characteristic/feature. Some of these features could be from DB schema (requiring SQL) and some could be from an API (XML or JSON). For the given API/SQL, the data retrieved based on "key" value is retrieved for performing scoring. As an example, "DOB" extracted from database is used for identifying "Age" of the customer. Administrator uses the screen for setting scores for various age groups.
This screen is used for mapping various loans products to characteristic/features for Green, Amber and Red color coding. This is primarily for preparing scorecard of a loan. "Green" indicates the loan can be given/is good. "Amber" indicates that the loan needs to be further reviewed and a "red" indicates that the loan needs to be rejected/potentiatlly bad.
The screen is used for profiling a Loan/Potential Loan based on rules (identified in the previous screens), statistical methods or machine learning methods.
Contributing towards improved Banking Technology and an opportunity to work with volunteers is a great inspiration. Though I was struggling with little documentation on the scope. Weekly checkins provided an understanding on the community bonding and the inspiration to explore more. I would like to thank Ed Cable and Avik Ganguly for their constant motivation and inputs. I learned quite a bit in this project
- importance of pattern recognition for smaller financial institutions
- collaboration across timezones while contributing for an open source initiative
- Architecture for faster development of screens
- Parsing dynamic API - JSONs
The model is proposed after reviewing existing approaches and their gaps. The model can be made available as a separate plugin for Fineract users so that rule based, statistical and ML based approaches can be used for scoring the loans. In ML, Neural Networks, Decision Tree and Bayesian models have been found to be most effective with 73+% accuracy for German credit datasets. 1)UI and DB layer needs to be finalized. The review of the approach would help in improving the usage of the model.
2)Application layer for parsing APIs need to be built
3)Statistical Models and ML integration needs to be done
I would like to continue to work on this beyond GSOC and play my role in contributing towards Apache Fineract.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment