KredoFi docs
Scoring model
The five rules, bands, the income cap and the anti-farming rules, exactly as coded.
The rules are open source and deterministic: the same history always gives the same score. The score never depends on AI. Code: scorer/src/rules.rs.
#What is read
- The last 6 full calendar months before the current month (in November: May to October).
- Your checking account (or the first deposit account if there is none).
- Money in each month (all incoming transactions), money out (all outgoing), fees (transactions named overdraft, NSF or returned) and the current balance.
#The five rules (1,000 points)
| Rule | Points | How |
|---|---|---|
| Income level | 40 to 250 | average monthly money in: $3,000 or more 250; $2,000 or more 180; $1,000 or more 100; less 40 |
| Steady income | 0 to 250 | 150 x (months with income out of 6), rounded down, plus 100 if the monthly amounts vary by 15% or less (coefficient of variation), 50 if 40% or less |
| On-time payments | 0 to 250 | 250 minus 60 per overdraft, NSF or returned-payment fee, never below 0 |
| Money left over | 0 to 150 | (money in minus money out) / money in: 30% or more 150; 10% or more 100; 0% or more 50; negative 0 |
| Savings buffer | 0 to 100 | balance / average monthly spending: 3 months or more 100; 1 or more 60; 0.3 or more 30; less 0 |
#Bands
| Band | Score | Can borrow | Interest per loan |
|---|---|---|---|
| A | 800 to 1,000 | 100% of the level cap | 4% |
| B | 650 to 799 | 75% | 6% |
| C | 500 to 649 | 50% | 8% |
| D | below 500 | no loan | n/a |
#Income cap
Half your average monthly money in, rounded down to a multiple of $50, at most $1,000. Your limit is never above it.
#Worked examples (from the tests)
| Borrower | Rules | Score | Band | First limit |
|---|---|---|---|---|
| Riya: $4,000 every month, no fees, saves | 250 / 250 / 250 / 150 / 100 | 1,000 | A | $100 |
| Sam: income in 4 of 6 months, 4 fees, spends more than he earns | 100 / 100 / 10 / 0 / 60 | 270 | D | none |
| Max: looks like Riya, never repays | 250 / 250 / 250 / 150 / 100 | 1,000 | A | $100 |
#Anti-farming rules
- One bank identity, one borrower. A keyed fingerprint of the bank identity is stored with the score; a second account with the same fingerprint is refused.
- Levels grow slowly. A repayment raises the level only after the minimum hold (half the term), on a loan of at least half the limit, at most once per loan term.
- Limits start small ($100 at most) and the pool lends one borrower at most 10% of its value.
- Scores expire after 30 days.
- A default blocks the account for good, and its fingerprint stays taken.
#Testnet differences
The testnet scorer also accepts prepared sandbox borrowers, and it ties the shared sandbox login to your NEAR account before fingerprinting so every visitor can use the same test login. The mainnet scorer does neither. See Testnet vs mainnet.