> ## 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.

# Consumer Status Rules

> Jane's account can move from New Offers to Pending Creditor Response, then to Final Step to Close Deal, then to Payment Plans, and eventually Paid Accounts.

## Real-World Example

Jane's account can move from New Offers to Pending Creditor Response, then to Final Step to Close Deal, then to Payment Plans, and eventually Paid Accounts. Developers should treat these movements as product rules, not just labels in a tab list.

## Visual Flow

```mermaid placement="top-right" actions={true} theme={"system"}
flowchart TD
    A["Consumer or creditor action happens"] --> B["Portal updates account status"]
    B --> C["My Accounts tab is recalculated"]
    C --> D{"Status and allowed actions match?"}
    D -->|Yes| E["Consumer sees the right next step"]
    D -->|No| F["Consumer may see unsafe or confusing action"]
    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,C system;
    class D decision;
    class E outcome;
    class F risk;
    linkStyle default stroke:#94A3B8,stroke-width:2px;
```

## How It Should Work

* It should keep status names, My Accounts tabs, and allowed actions aligned.
* It should update status only through flows that understand negotiation, payment, notice response, and cancellation rules.
* It should make every new status visible in docs, tests, and navigation if it changes the consumer experience.
* It should normalize old or internal status query values to the tab the consumer sees today.

## How It Should Not Work

* It should not treat statuses as display-only text.
* It should not add a new status without deciding which tab owns it.
* It should not allow actions from a previous status after the account has moved forward or closed.

## Status Ownership Edge Cases

| Source state or query value                                  | Consumer-facing tab   |
| ------------------------------------------------------------ | --------------------- |
| `hold`                                                       | Payment Plans         |
| `closed_by_yn` legacy query value                            | Notice Responses      |
| `payment_declined` with a declined or closed notice response | Notice Responses      |
| `disputed_deactivated` legacy query value                    | Disputed / Not Paying |
| `deactivated` with `disputed_at`                             | Disputed / Not Paying |
| Unknown `status` query value                                 | Dashboard             |

Returned notice responses are not normal declined negotiations. They belong in Notice Responses, can show returned-by-YN or returned-by-sender copy, and must stay out of the Declined / Closed Negotiations tab.

## Developer Notes

* This page is for developers changing consumer account movement.
* When a status changes, review MyAccount, payment flows, notice response flows, communications, and background jobs together.

## Related App Areas

* `app/Enums/ConsumerStatus.php`
* `app/Livewire/Consumer/MyAccount.php`
* `app/Livewire/Consumer/Traits/MyAccounts/Conditions.php`
* `app/Livewire/Consumer/Traits/MyAccounts/Offers.php`
