Skip to content

Instantly share code, notes, and snippets.

@lalitsanagavarapu
Last active October 27, 2023 08:54
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save lalitsanagavarapu/0446face63a7fa70ba24049ca82bdff0 to your computer and use it in GitHub Desktop.
Save lalitsanagavarapu/0446face63a7fa70ba24049ca82bdff0 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.
@lalitsanagavarapu
Copy link
Author

@robertjosephdi
Copy link

Hi Lalit, I am currently looking for a credit scoring tool to use with apache fineract. Is this a complete credit scoring module, does it not need integration with a local credit scoring company? Do you have instructions on how we can install or use your tool?

Thank you!

Robert

@tcbuzor
Copy link

tcbuzor commented Jul 9, 2019

Hi , What is the state of this project? Did you implement the credit scoring extension for fineract? using R or python for linear regression or score card analysis?

@lalitsanagavarapu
Copy link
Author

lalitsanagavarapu commented Jul 9, 2019 via email

@Argez
Copy link

Argez commented Mar 5, 2021

Hello.

This project interests me, what is its current status?

regards

@lalitsanagavarapu
Copy link
Author

lalitsanagavarapu commented Mar 6, 2021 via email

@Argez
Copy link

Argez commented Mar 6, 2021

How could you help?

@lalitsanagavarapu
Copy link
Author

lalitsanagavarapu commented Mar 6, 2021 via email

@Argez
Copy link

Argez commented Mar 22, 2021

Hello

I like your project and it looks interesting.

Is there a possibility that I can install fineract and mifos in my development environment?

greetings and attentive to your comments

@lalitsanagavarapu
Copy link
Author

lalitsanagavarapu commented Mar 24, 2021 via email

@Argez
Copy link

Argez commented Mar 24, 2021

Good. Thank you for the information. Where can I get the mifos mailing list?

@lalitsanagavarapu
Copy link
Author

lalitsanagavarapu commented Mar 24, 2021 via email

@Argez
Copy link

Argez commented Mar 24, 2021

thanks very much buddy. We are in touch. Greetings from Venezuela.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment