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

# Cycles

> List, create, edit, and view performance review cycles with status, date range, and associated review management.

The Cycles page lists all performance review cycles for the organization and provides controls to create or edit them. It is available at route `/hr/performance/cycles`.

## Overview

The page renders `PerformanceCycleTable` which lists all cycles. A **Create Cycle** button (accent variant) opens `PerformanceCycleFormDialog` for creating a new cycle. Clicking the edit action on a table row opens the same dialog pre-filled with the cycle's existing data. The `editCycleId` state controls which dialog instance is open.

## Who it's for

Access follows your organization's role and module configuration. Data is scoped to the current organization.

## Before you start

* No prerequisites; start here to set up the organization's first performance cycle.

## Steps

<Steps>
  <Step title="Open Performance Cycles">
    Navigate to **HR → Performance → Cycles** or go to `/hr/performance/cycles`.
  </Step>

  <Step title="Create a new cycle">
    Click **Create Cycle** to open the form dialog. Enter a cycle name, type, start date, and end date.
  </Step>

  <Step title="Edit an existing cycle">
    Find the cycle in the table and click the edit action. The form dialog opens pre-filled.
  </Step>

  <Step title="Open a cycle for details">
    Click a cycle name in the table to navigate to its detail page at `/hr/performance/cycles/:id`.
  </Step>
</Steps>

## Viewing a cycle

The Cycle Details page shows the full detail of a single performance cycle including its status, schedule, and all associated performance reviews. It is available at route `/hr/performance/cycles/:id`.

The page fetches a single cycle from `usePerformanceCycleDetail`. The header shows the cycle name, status badge (using `getStatusConfig` from HR performance constants), and date range. An **Edit** button opens `PerformanceCycleFormDialog` with the existing cycle data pre-filled. Status transition buttons (e.g., Activate, Archive) invoke `updateCycleMutation` against `hr_performance_cycles`. A `PerformanceReviewTable` below the header lists all reviews belonging to this cycle.

Before you start: the cycle must exist. Navigate to `/hr/performance/cycles` to find and select a cycle. To trigger status transitions you need the appropriate manager or HR admin permissions (SME to confirm exact permission string).

1. Go to **HR → Performance → Cycles** (`/hr/performance/cycles`) and click a cycle name. You land on `/hr/performance/cycles/:id`.
2. Check the cycle name, status badge, start date, end date, and any descriptive metadata.
3. Click **Edit** to open the edit dialog and modify cycle name, dates, or description.
4. Use the status action buttons in the header to advance or revert the cycle status.
5. Scroll down to the review table to see all performance reviews linked to this cycle.

**Key detail concepts:**

* **Cycle status** — Values are defined in `CYCLE_STATUSES` in `src/cores/hr/constants/performance`. SME should confirm exact values and transition rules.
* **Review table** — Each row links to a performance review detail page at `/hr/performance/reviews/:id`.

## Related

<Columns cols={2}>
  <Card title="Human Resources" icon="users" href="/hr/overview">
    Human Resources core overview.
  </Card>

  <Card title="Governance & parity" icon="scale-balanced" href="/governance/index" />
</Columns>

<Note>
  This page documents shipped product behavior. It is not medical, legal, or
  billing advice. Verify against your organization's policies and applicable
  regulations before using it for clinical, compliance, or billing decisions.
  Protected health information (PHI) shown in the product is governed by your
  tenant's access controls and is never exposed in this documentation.
</Note>

<Accordion title="Documentation sources">
  * src/routes/hr/performance-routes.tsx
  * src/cores/hr/pages/performance/PerformanceCycleListPage.tsx
  * src/cores/hr/pages/performance/PerformanceCycleDetailPage.tsx
  * src/cores/hr/components/performance/PerformanceCycleTable.tsx
  * src/cores/hr/hooks/performance/usePerformanceCycleDetail.ts
</Accordion>
