# LOC migration special cases and configuration

## Origination and draw fees

If the LOC charges origination fees or draw fees that are expected to be paid after the migration cutoff date, configure them during loan and draw creation.

### Origination fees

Pass the origination fee amount in the `atOrigination.fees` object when creating the loan:


```json
{
  "atOrigination": {
    "fees": {
      "originationFeeAmount": 150.00
    }
  }
}
```

Then include the remaining origination fee balance in the migration period LOC data under `nonDueBalances.nonDueOriginationFeesAmount`, `dueBalances.dueOriginationFeesAmount`, or `overdueBalances.overdueOriginationFeesAmount` depending on the fee's current status.

### Draw fees

Pass the draw fee amount in the draw's `atOrigination.fees` object:


```json
{
  "atOrigination": {
    "fees": {
      "drawFeeAmount": 50.00
    }
  }
}
```

Include the remaining draw fee balance in the migration period draw data under the appropriate `nonDueDrawFeesAmount`, `dueDrawFeesAmount`, or `overdueDrawFeesAmount` field.

## Statement and due date configuration

Peach supports three options for statement and due date scheduling on LOCs. The option you choose affects how you set `specificDays`, `statementDate`, and `dueDate` across all periods.

| Option | How it works | Configuration |
|  --- | --- | --- |
| **Fixed due date** | Due date is fixed; statement date is calculated based on grace period days. | Set `specificDays` to the due date day (e.g., `[22]`). Statement date is auto-calculated. |
| **Fixed statement date** (LOC only) | Statement date is fixed; due date is calculated based on grace period days. | Set `specificDays` to the statement date day. Due date is auto-calculated. |
| **Fixed both** (LOC only, monthly only) | Both statement date and due date are fixed. | Set `specificDays` to both days (e.g., `[1, 22]` where 1 is statement date, 22 is due date). Only works with `paymentFrequency: "monthly"`. |


Ensure that the `specificDays` in `atOrigination` align with the `dueDate` (or `statementDate`, depending on your configuration) in the migration period data.

## Migrating special loan states

Not all loans are current when they migrate. Peach supports migrating loans that are delinquent, accelerated, or charged off.

### Delinquent loans

For loans that are past due at the time of migration, set the `migratedDaysOverdue` and `migratedOverdueFromDate` fields in the migration period obligation data.

After migration, Peach dynamically prorates the migrated days overdue as the borrower makes payments:


```
Effective DPD = migratedDaysOverdue × (1 - min(fulfilledAmount / migratedOverdueAmount, 1))
```

This means that as the borrower pays down the overdue balance, the effective days past due decreases proportionally.

This prorating formula operates continuously across the total overdue amount and does not distinguish between overdue amounts from different periods. See the [DPD prorating known limitation](/loan-lifecycle/loc-migration/after-migration#dpd-calculation-for-migrated-loans) in the system design constraints section for a detailed example of how this can produce unexpected results with multi-period overdue balances.

### Accelerated and charged-off loans

To migrate a loan directly into an accelerated or charged-off state, set `postMigrationLoanStatus` in the migration period LOC data:


```json
{
  "postMigrationLoanStatus": "accelerated"
}
```

Or for charged-off:


```json
{
  "postMigrationLoanStatus": "chargedOff",
  "chargedOffReason": "term"
}
```

**Accepted `chargedOffReason` values:** `term`, `fraudulent`, `bankruptcy`, `legal`

The effective date for the acceleration or charge-off is the migration cutoff date.

**Special state migrations** are most commonly used when onboarding a portfolio of delinquent loans onto Peach — for example, to leverage Peach's collections features for a portfolio where all loans are already past due. Ensure the `chargedOffReason` matches the reason from your legacy system.

## See also

- [LOC migration procedure](/loan-lifecycle/loc-migration/migration-procedure) — The base procedure these special cases extend.
- [After LOC migration](/loan-lifecycle/loc-migration/after-migration) — DPD proration and other post-migration behaviors.