Fintech · BNP Paribas InnoVerse hackathon
Credit for people the bureaus can't see.
Alternative credit scoring for people with thin credit files. It scores users on 15 behavioural, lifestyle and repayment features through a transparent rule-based engine instead of a black-box model, then makes the score actionable with explanations, simulations, product matching and a lender marketplace.
WebGL · move your cursor
0
Behavioural features
0 – 0
Score range
0
Seeded demo users
0
Scoring pillars
// highlights
Whatmakesittick
Transparent by construction
A tiered rule engine across three pillars: Lifestyle (max 350), Spending Behaviour (max 350) and Repayment Discipline (max 570), capped to 1000. Every factor and weight is inspectable.
Factor-by-factor explanation
Each factor is bucketed as a positive, negative or weak contributor, with a plain-language sentence, the top five drivers and improvement tips.
What-if simulator
Re-score a user with hypothetical changes without saving anything.
Counterfactual planner
Works backwards from a product's minimum score to the smallest set of changes that would qualify.
Product matching and bank hand-off
Matches the score to a product catalogue and hands applications to a separate mock bank API that re-validates eligibility.
Anonymised lender marketplace
Lenders search and filter leads by score, tier and income without seeing identities. A user is revealed only after accepting an offer.
// architecture
Howit'sbuilt
- 01React 19 + ViteDashboard · simulator · lender portal
- 02FastAPI + SQLiteRule engine · explainability · planner
- 03Mock partner bankSeparate API-key protected service
step 01
Score
15 features feed the tiered rule engine to produce a 0-1000 score.
step 02
Explain
Every factor gets a plain-language reason and a ranked list of drivers.
step 03
Simulate & plan
What-if re-scoring and a counterfactual plan toward a target product.
step 04
Match & apply
Catalogue matching, then a hand-off to the mock partner bank.
step 05
Marketplace
Lenders send offers to anonymised leads in bulk.
// under the hood
Thedetails
Product catalogue (minimum score)
| Product | Min score |
|---|---|
| Starter Card | 350 |
| Micro-Loan Lite | 550 |
| Standard Card | 650 |
| Premium Loan | 750 |
Assumptions & limitations
- ◆Probability of default is derived (PD = 1 − score / 1000), not trained, because the dataset has no default labels.
- ◆Missing data is filled with conservative defaults and reported back as missing fields.
- ◆It is a prototype: there are no auth tokens and the 500 seeded users are synthetic.
// stack
Builtwith
- Python 3.13
- FastAPI
- SQLAlchemy 2
- SQLite
- Pydantic v2
- ReportLab
- React 19
- React Router 7
- Vite
- pytest