Sub-Cycles

Cycles can be nested up to three levels deep to model hierarchies like Release → Sprint → Task. A cycle becomes a sub-cycle when you assign it a parent during creation or editing.

How sub-cycles work

When you create or edit a cycle, the Parent field lets you place it under an existing cycle. The parent–child relationship is visible in two places:

  • The Active tab on the cycles listing page, where child cycles are indented under their parents in the tree view.
  • The Hierarchy card in the detail page sidebar, which shows a breadcrumb trail of ancestors.

You can also create a sub-cycle directly from the listing page or the detail page by clicking Add Sub Cycle in the three-dot menu or the Sub cycles section.

Depth limit

The maximum nesting depth is three levels:

Level Role Example
1 Top-level cycle v2.0 Release
2 Child cycle Sprint 1 (under v2.0 Release)
3 Grandchild cycle Auth Module (under Sprint 1)

Maximum depth reached. You cannot add a sub-cycle to a cycle at level 3. The Add Sub Cycle option is hidden for cycles at the deepest level.

Validation rules

The parent dropdown in the create/edit form is filtered to only show valid parent options. The following rules are enforced:

No circular references

A cycle cannot be set as a child of itself or any of its own descendants. This prevents infinite loops in the hierarchy.

Depth cannot exceed three levels

If selecting a particular parent would push the total depth beyond three levels, that parent option is not available in the dropdown.

Completed parent constraint

A non-completed cycle (Upcoming or Active) cannot be placed under a Completed parent. If you need to add a sub-cycle to a completed cycle, reopen the parent first.

Reopening a child of a completed parent: Similarly, you cannot reopen a child cycle if its parent is completed. Reopen the parent first, then reopen the child.

Progress rollup

Parent cycles automatically aggregate progress from all their descendants. The progress bar on a parent reflects the combined test results of:

  • Test runs and explorations linked directly to the parent cycle.
  • All results from child cycles, grandchild cycles, and so on (recursively).

This gives you a single at-a-glance metric for an entire release or phase, without needing to manually calculate totals across sub-cycles.

Changing a cycle’s parent

To move a cycle under a different parent (or remove its parent entirely):

  1. Click the three-dot menu on the cycle and select Edit.
  2. Change the Parent dropdown to the new parent, or select No parent to make it a top-level cycle.
  3. Click Save.

The same validation rules apply — the dropdown only shows valid parent options that respect the depth limit and circular reference constraints.

Deleting a cycle with children

When you delete a cycle that has sub-cycles, the sub-cycles are also removed. The confirmation dialog warns you about this. Any test runs and explorations linked to the deleted cycles are unlinked but not deleted.