> ## Documentation Index
> Fetch the complete documentation index at: https://docs.younegotiate.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Schedule Plan

> Jane has an active installment plan.

## Real-World Example

Jane has an active installment plan. She opens Schedule Plan to see upcoming dates, make an extra payment, change an eligible payment date, request a settlement date, or place the plan on hold when the rules allow it.

## Visual Flow

```mermaid placement="top-right" actions={true} theme={"system"}
flowchart TD
    A["Consumer opens active schedule"] --> B["Portal loads schedule transactions"]
    B --> C{"Consumer chooses allowed action?"}
    C -->|Extra payment| D["Portal applies payment to schedule"]
    C -->|Change or hold| E["Portal updates future plan behavior"]
    D --> F["Schedule, history, and calendar update"]
    E --> F
    classDef default fill:#F8FAFC,stroke:#64748B,stroke-width:1.5px,color:#0F172A;
    classDef actor fill:#E0F2FE,stroke:#0284C7,stroke-width:2px,color:#0C4A6E;
    classDef system fill:#F8FAFC,stroke:#64748B,stroke-width:1.5px,color:#0F172A;
    classDef decision fill:#FEF3C7,stroke:#D97706,stroke-width:2px,color:#78350F;
    classDef risk fill:#FEE2E2,stroke:#DC2626,stroke-width:2px,color:#7F1D1D;
    classDef outcome fill:#DCFCE7,stroke:#16A34A,stroke-width:2px,color:#14532D;
    class A actor;
    class B,D,E,F system;
    class C decision;
    class F outcome;
    linkStyle default stroke:#94A3B8,stroke-width:2px;
```

## How It Should Work

* It should show upcoming and historical schedule transactions for the selected account.
* It should allow only supported plan actions for the current state.
* It should update calendar events when dates, amounts, holds, skips, or cancellations affect the schedule.
* It should keep payment history consistent with manual and background payments.

## How It Should Not Work

* It should not let a consumer change past successful transactions.
* It should not allow hold, skip, or date changes when the plan rules block them.
* It should not update the UI without updating the underlying schedule transactions.

## Developer Notes

* Schedule Plan is the operational page for active installment plans.
* Manual schedule changes often dispatch calendar jobs so external calendars stay in sync.

## Related App Areas

* `app/Livewire/Consumer/SchedulePlan.php`
* `app/Livewire/Consumer/SchedulePlan/ChangeDate.php`
* `app/Livewire/Consumer/SchedulePlan/RequestSettlementDate.php`
* `app/Services/Consumer/SchedulePlanPaymentService.php`
* `app/Jobs/UpdateCalendarEvents.php`
