> For the complete documentation index, see [llms.txt](https://devmosaic.gitbook.io/devmosaic/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://devmosaic.gitbook.io/devmosaic/resources/devmosaic-banking/loans.md).

# Loans

Loan config is split between:

```lua
Config.Loans
Config.LoanProducts
```

### Enable Loans

```lua
Config.Loans = {
    enabled = true,
    applicationsEnabled = true,
    autoApprove = true,
}
```

### Banker Jobs

```lua
Config.Loans.bankerJobs = { 'banker', 'realestate' }
Config.Loans.bankerMinGrade = 0
Config.Loans.requireBankerBoss = false
Config.Loans.allowSelfApproval = false
Config.Loans.requireBankerOnDuty = false
```

### Loan Limits

```lua
Config.Loans.cooldownDays = 0
Config.Loans.maxActiveLoans = 1
```

### Interest And Defaults

```lua
Config.Loans.accrualEnabled = true
Config.Loans.accrualIntervalSec = 3600
Config.Loans.compounding = false
Config.Loans.lateFeesEnabled = true
Config.Loans.gracePeriodDays = 1
Config.Loans.latePenaltyPercent = 0.05
Config.Loans.autoDefaultEnabled = true
Config.Loans.autoDefaultAfterDays = 30
Config.Loans.defaultFreezesAccount = false
```

### Credit Score

```lua
Config.Loans.creditScoreEnabled = true
Config.Loans.creditScoreStart = 600
Config.Loans.creditScoreMin = 0
Config.Loans.creditScoreMax = 1000
```

Credit changes:

```lua
Config.Loans.creditDeltas = {
    onTimePayment = 15,
    loanCompleted = 50,
    latePayment = -40,
    loanDefaulted = -200,
    applicationDenied = -10,
}
```

### Loan Product Example

```lua
{
    id = 'personal_short',
    enabled = true,
    label = 'Personal Quick Loan',
    description = 'Short-term cash for everyday needs.',
    minAmount = 500,
    maxAmount = 25000,
    interestPercent = 0.08,
    termDays = 14,
    paymentEveryDays = 7,
    whitelistedJobs = nil,
    minCreditScore = 0,
    minBankBalance = 0,
}
```

### Product Fields

* `id`: unique product id.
* `enabled`: product is visible and usable.
* `label`: UI name.
* `description`: UI description.
* `minAmount`: minimum loan amount.
* `maxAmount`: maximum loan amount.
* `interestPercent`: `0.08` means 8 percent.
* `termDays`: full loan term.
* `paymentEveryDays`: repayment interval.
* `whitelistedJobs`: optional list of jobs allowed to apply.
* `requiredJob`: optional single job requirement.
* `requireJobBoss`: require boss permissions.
* `minJobGrade`: minimum grade.
* `minCreditScore`: minimum credit score.
* `minBankBalance`: minimum bank balance.
* `requiresCollateral`: require collateral input.
