# Project Lifecycle (https://yapl.app/en/docs/user-guides/projects/project-lifecycle)

# Project Lifecycle

Projects in YAPL follow a defined lifecycle with specific statuses representing different phases. Understanding these statuses helps you manage project progression effectively.

## Lifecycle Overview

```
PLANNING → ACTIVE → ON_HOLD (optional) → COMPLETED
    ↘ CANCELLED (terminal)
```

<Callout type="info">
**Archive vs Cancel**: Archiving (soft-delete) is a separate operation from status changes. Cancelled is a terminal status for projects that won't proceed. Archived projects are hidden via the "Show Archived" filter.
</Callout>

## Project Statuses

### Planning

The initial phase when setting up a project.

| Property | Value |
|----------|-------|
| Default for new projects | Yes |
| Work has started | No |
| Can be edited | Yes |
| Counts toward limits | Yes |

**Use Planning status when:**
- Defining project scope
- Gathering requirements
- Setting up teams
- Creating initial plans

### Active

The main working phase when tasks are being executed.

| Property | Value |
|----------|-------|
| Work in progress | Yes |
| Can be put on hold | Yes |
| Can be completed | Yes |
| Counts toward limits | Yes |

**Use Active status when:**
- Work has begun
- Tasks are being completed
- Team is actively engaged
- Progress is being made

### On Hold

A temporary pause in project work.

| Property | Value |
|----------|-------|
| Work paused | Yes |
| Can resume | Yes |
| Can be completed | Yes |
| Counts toward limits | Yes |

**Use On Hold status when:**
- Waiting for decisions
- Resource constraints
- Client-requested pause
- External dependencies

<Callout type="info">
Only Active projects can be put on hold. Planning projects should stay in Planning until work begins.
</Callout>

### Completed

The project work is finished.

| Property | Value |
|----------|-------|
| Work finished | Yes |
| Can be edited | Limited |
| Terminal state | Yes (mostly) |
| Counts toward limits | No |

**Use Completed status when:**
- All tasks are done
- Deliverables are complete
- Client acceptance received
- Project goals achieved

### Cancelled

For projects that are terminated and won't proceed.

| Property | Value |
|----------|-------|
| Work stopped | Yes |
| Terminal state | Yes |
| Counts toward limits | No |
| Can be reactivated | No |

**Use Cancelled status when:**
- Project is permanently terminated
- Client cancelled the contract
- Project scope no longer valid
- Business decision to stop work

<Callout type="warn">
Cancelled is a terminal state. Once cancelled, a project cannot transition to other statuses. Use with care.
</Callout>

## Archiving (Soft Delete)

Archiving is a **separate operation** from status changes. It removes projects from active lists while preserving all data.

| Property | Value |
|----------|-------|
| Visible in lists | Hidden by default |
| Can be restored | Yes (contact owner) |
| Data preserved | Yes |
| Counts toward limits | No |

**Use archiving when:**
- Project is complete and needs long-term storage
- Historical reference needed
- Reducing active project clutter

Archiving can be done from Planning or On Hold statuses. See [Archiving Projects](/docs/user-guides/projects/archiving-projects) for details.

## Status Transitions

### Allowed Transitions

| From | To | Allowed |
|------|-----|---------|
| Planning | Active | Yes |
| Planning | Cancelled | Yes |
| Active | On Hold | Yes |
| Active | Completed | Yes |
| Active | Cancelled | Yes |
| On Hold | Active | Yes |
| On Hold | Cancelled | Yes |
| Completed | Any | No (terminal) |
| Cancelled | Any | No (terminal) |

<Callout type="info">
**Note**: On Hold can only return to Active or be Cancelled. It cannot transition directly to Completed.
</Callout>

### Transition Rules

**Planning → Active**
- Typically when work begins
- Signals team should start execution

**Planning → Cancelled**
- When project is terminated before starting
- Decision not to proceed

**Active → On Hold**
- Pauses active work
- Preserves current state
- Only from Active status

**Active → Completed**
- When all work is done
- Final deliverables complete

**Active → Cancelled**
- Project terminated mid-work
- Client or business decision

**On Hold → Active**
- Resume work after pause
- Ready to proceed again

**On Hold → Cancelled**
- Decision not to resume
- Project permanently stopped

### Terminal States

Both **Completed** and **Cancelled** are terminal states:
- No further status transitions allowed
- Project is finished (either successfully or not)
- Can still be archived for storage

## Changing Status

### How to Change Status

1. Open the project
2. Find the status field in overview or settings
3. Click to see available transitions
4. Select new status
5. Confirm the change

### Status Change Permissions

| Role | Can Change Status |
|------|-------------------|
| Workspace Owners | Yes |
| Team Leads (assigned) | Yes |
| Team Members (assigned) | Limited |
| Team Viewers | No |

## Status Impact

### On Project Limits

| Status | Counts Toward Limit |
|--------|---------------------|
| Planning | Yes |
| Active | Yes |
| On Hold | Yes |
| Completed | No |
| Cancelled | No |

**Example (Basic tier, 5 project limit):**
- 3 Planning + 2 Active = 5 (at limit)
- 3 Active + 10 Completed + 5 Cancelled = 3 (under limit)

### On Visibility

| Status | Default Visibility |
|--------|-------------------|
| Planning | Shown in lists |
| Active | Shown in lists |
| On Hold | Shown in lists |
| Completed | Shown with filter |
| Cancelled | Shown with filter |

Archived projects (soft-deleted) are hidden by default. Use "Show Archived" filter to view them.

### On Editing

| Status | Editing Allowed |
|--------|-----------------|
| Planning | Full editing |
| Active | Full editing |
| On Hold | Full editing |
| Completed | Limited editing |
| Cancelled | Limited editing |

## Common Workflows

### Standard Project Flow

1. Create project → **Planning**
2. Work begins → **Active**
3. Work completes → **Completed**
4. Optionally archive for long-term storage

### Project with Pause

1. Create project → **Planning**
2. Work begins → **Active**
3. Temporary pause → **On Hold**
4. Resume work → **Active**
5. Work completes → **Completed**

### Project Cancellation

For projects that won't proceed:
1. Create project → **Planning**
2. Decision not to proceed → **Cancelled**

Or mid-project:
1. Project is **Active** or **On Hold**
2. Client or business decides to stop → **Cancelled**

## Best Practices

### Status Accuracy

- Keep status current
- Update when phases change
- Don't leave projects in wrong status

### Planning Phase

- Take time to set up properly
- Don't rush to Active
- Ensure team access configured

### Active Phase

- Update regularly
- Move to On Hold if needed
- Don't leave stale Active projects

### Completion

- Verify all work is done
- Review final metrics
- Complete before archiving

### Archiving

- Archive completed projects for storage
- Use "Show Archived" filter to access later
- Archiving is separate from status changes

### Cancellation

- Use Cancelled for projects that won't proceed
- Cancelled is permanent (terminal state)
- Consider archiving instead if project may resume

## Troubleshooting

### Cannot Change Status

**"Cannot put on hold"**
- Project must be Active first
- Planning projects stay in Planning

**"You don't have permission"**
- Verify your team role
- Contact team lead or owner

### Status Not Updating

- Refresh the page
- Check for validation errors
- Verify the save completed

### Project Stuck in Status

- Check for required fields
- Verify you have permission
- Contact workspace owner

## Status and Reports

Project status affects reporting:

| Status | Included in Reports |
|--------|---------------------|
| Planning | Active reports |
| Active | Active reports |
| On Hold | Active reports |
| Completed | Completed reports |
| Cancelled | Cancelled/closed reports |

## Related Topics

- [Creating Projects](/docs/user-guides/projects/creating-projects) - Project creation
- [Project Settings](/docs/user-guides/projects/project-settings) - Configuration
- [Archiving Projects](/docs/user-guides/projects/archiving-projects) - Archive guide