> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://katalyz.crisp.help/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Relative dates for steps, phases & milestones

Any date on a **step**, **phase**, or **milestone** can be set **absolutely** (e.g. Mar 15, 2026) or **relatively** (e.g. "2 business days after Step 3's due date"). Relative dates keep the schedule **self-adjusting** — move one date and everything that depends on it moves with it. Essential for templating and for handling real-world slippage.

## Where you set them

Relative dates are available in the **date picker** of every step (and of Timeline phases and milestones). Open a step's details sidepanel, click the Start or Due date, and switch the picker from **Absolute** to **Relative**.

![](https://storage.crisp.chat/users/helpdesk/website/-/5/5/4/8/554891f22af0b400/screenshot-2026-06-17-at-18343_1ln98p.png =939xauto)

## Anatomy of a relative date

A relative date has three parts:

1. **Reference** — what the date is relative to
2. **Offset** — how many units away
3. **Offset unit** — business days, calendar days, weeks, or months

### 1. Reference — what you can relate to

The reference picker gives you three entry points:

- **Room dates** — e.g. the room's creation date, or the deal's key dates
- **This action** — the action you're currently editing. Useful for setting one of its own dates relative to another (e.g. Due date = Start date + 5 business days).
- **Any other action** — picked from a searchable list of all the other steps/tasks/subtasks in the room.

For any action you pick (this one or another), you then choose which of its dates to relate to: **Start date**, **Due date**, or **Completion date** (the actual completion timestamp, not the due date).

### 2. Offset

A signed integer. Examples: `+2`, `-1`, `0` (same day).

### 3. Offset unit

| Unit | Meaning |
|---|---|
| **Business days** | Mon–Fri only; skips weekends |
| **Calendar days** | Every day including weekends |
| **Weeks** | Multiples of 7 calendar days |
| **Months** | Calendar months (same day of month next period) |

## Example

> "Kickoff call 3 business days after the contract is signed"

- Reference: **Step "Contract"** → **Completion date**
- Offset: **3**
- Unit: **Business days**

If Contract is signed on Friday, the Kickoff auto-schedules for **Wednesday** (skipping the weekend).

## How changes propagate

- **Reference moves** — the dependent date recomputes automatically. No manual update needed.
- **Reference is deleted or has no usable date** — the dependent date becomes **unresolved** and shows up in the Timeline's **Unresolved dates** badge. Fix it by picking a new reference or entering an absolute date.

## How dates are rendered

- **Absolute dates** — shown in normal style, as entered.
- **Computed relative dates** — shown in **italic**, so you can tell at a glance which dates are driven by rules vs. set directly.
- **Unresolved (yet-to-be-computed) dates** — displayed as **`...`** everywhere in the UI. This happens when the rule can't resolve yet (typically because the reference's date isn't set).

## Special case: relating to a Completion date

A Completion date only exists once the referenced action is marked **Completed** — so the dependent date might not have a real value yet. To keep the schedule usable, Katalyz computes an **expected completion date**:

- If the referenced action's **due date is in the future** → expected completion = the **due date**. (We assume it'll complete on time.)
- If the referenced action's **due date is in the past** (it's already late) → expected completion = **today**. (We assume it'll complete ASAP, not in the past.)

Once the referenced action is actually marked Completed, the dependent date snaps to the real completion date and stays there.

## Showing the expected date while editing

While you're setting up a relative date in the picker, an **expected date** preview is shown — the concrete calendar date the rule currently resolves to. Sanity-check before you apply.

## When to use relative vs. absolute

- **Relative** — for **templates** and plans that get shifted around. Set the kickoff date absolutely; relate everything else to it. Reuse across deals with a single change.
- **Absolute** — for **hard commitments** that won't move (legal, renewal, audit) and for **external** deadlines imposed by the buyer.

Mix freely: one step absolute, another relative — the system resolves both.

## Best practices

- **Relate to Completion date, not Due date**, for steps that need something to *actually happen* before the next step. Due dates are intentions; completion is reality.
- **Use business days for human work**, calendar days for machine/automated delays.
- **Keep chains short** — a relative date that depends on another relative date that depends on another is valid, but hard to reason about. Anchor important points absolutely.
- **Check the Unresolved dates badge** after big edits to catch orphaned references.

## Related articles
- [Steps widget](https://katalyz.crisp.help/en/article/steps-widget-jd7fe5/)
- [Timeline widget](https://katalyz.crisp.help/en/article/timeline-widget-1kesvz0/)
