Skip to content

Instantly share code, notes, and snippets.

@tobihans
Forked from lalitsanagavarapu/scorecard.md
Created October 27, 2023 08:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tobihans/a041da481aa7bea655b709bae9c62399 to your computer and use it in GitHub Desktop.
Save tobihans/a041da481aa7bea655b709bae9c62399 to your computer and use it in GitHub Desktop.
Apache Fineract / Mifos - Loan Scorecard Assessment

Organization : Apache Software Foundation / Mifos

Project Name : Credit Scorecard for Loan Assessment

Student : Lalit Mohan Sanagavarapu

Mentors : Avik Ganguly, Nayan Ambali and Mark Reynolds

Project Description :

The project involves literature gathering on methods for credit scoring and early warning of Loans. Literature on Rule based, Statistical and machine learning approaches were reviewed. An exhaustive feature list (credit scoring) is prepared based on the available public datasets, literature and interaction with central and public sector banks. As part of the scope, the UI prototype and DB scripts are also prepared.

Project Github Repo

UI Prototype -

      Characteristic      Characteristic Criteria Mapping      Configuration      Scorecard

DB script

Project Implementation

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.

Feature list

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.

Table Names

Scorecard Category
Scorecard Characteristic
Scorecard Characteritic Criteria
Scorecard
and other relational tables

User Interface

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.

Characteristic Screen

characteristic
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.

Characteristic Criteria Screen

characteristic - criteria
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.

Configuration Screen

configuration
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.

Scorecard Screen

scorecard
The screen is used for profiling a Loan/Potential Loan based on rules (identified in the previous screens), statistical methods or machine learning methods.

Conclusion


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.

Future Work

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