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

# Policies

> Reusable routing rules: distribution, tiebreaker, assignment units, availability, and crediting.

A routing policy holds the rules a queue runs: the distribution rule, tiebreaker, and
crediting behavior. A queue's routing behavior lives on its policy, not on the queue
itself. A policy is reusable across [queues](/queues) and is versioned: each edit creates a
new version, and a queue always runs the active version, so changing one policy updates
every queue that uses it.

<Note>
  Open the **Routing** app from the **Dock** (the app bar at the bottom of the screen),
  then select the **Policies** tab, alongside **Queues**, **Assignments**, and **Activity**.
  This page covers the **Policies** tab.
</Note>

The policy editor has four tabs: **General**, **Assignment**, **Availability**, and
**Credit Behavior**.

## General

The General tab defines the policy's identity and what it routes:

* **Name**: what the policy is called everywhere it's referenced.
* **Assignment Units**: whether the policy routes **Objects** (CRM records such as people,
  companies, and opportunities), **Meetings**, or both.
* **Slots Rule** (under **Scheduler Settings**): whether schedulers show times for
  **All Active Members** of the queue or for a **Single Member**.

To delete a policy, open it in edit mode and use the **Danger Zone** in the General tab.
You can't delete a policy that queues still point to; the dialog lists the queues you need
to update first.

## Assignment

The Assignment tab holds the distribution rule and its settings, which together
determine how the engine scores members and picks a winner.

### Distribution rule

The distribution rule is the primary way the engine scores members and picks a
winner. Choose one of three:

| Rule                                                  | What it does                                        | How it scores                                                                                                                                             |
| ----------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Take turns equally** (Round Robin, the default)     | Takes turns equally across members.                 | Effective assignments divided by weight; the lowest wins.                                                                                                 |
| **Most available calendar time** (Availability-based) | Favors the member with the most open calendar time. | Weight multiplied by remaining free time in the work schedule; the highest wins. Only selectable when the policy's assignment units include **Meetings**. |
| **Least recent assignment** (Recency-based)           | Favors the member who was assigned least recently.  | The oldest (or never-assigned) member wins.                                                                                                               |

### Distribution settings

Below the distribution rule, the **Distribution Settings** group holds three controls:

* **Tiebreaker rule**: picks the winner when two members score equally under the
  distribution rule. Choose **Recency** (the default) or **Random**. When the distribution
  rule is already **Least recent assignment**, Recency isn't offered as a tiebreaker. If
  members are still tied after the tiebreaker, the engine falls back to join order.
* **Enable weighted distribution**: lets member weights drive weighted shares of
  assignments. Off by default, and not available with the **Least recent assignment**
  rule.
* **Assignment reset schedule**: how often assignment counts and calibration credits reset
  for a fresh period: **Never** (the default), **Monthly**, or **Quarterly**. You can also
  reset manually.

## Availability

The **Availability** tab controls how out-of-office and busy status affect whether a
member qualifies for routing at all. Enabling a toggle performs that check and excludes
members who match; disabling it ignores that condition. By default, currently-OOO
members are excluded; currently-busy and upcoming-OOO checks are off:

* **Exclude members currently out of office**: members currently marked out of office
  cannot qualify (on by default).
* **Exclude members currently busy**: check current calendar availability and exclude
  members who are busy (off by default).
* **Exclude members with upcoming out-of-office**: exclude members whose out-of-office
  period begins within the configured window (off by default). Turning it on reveals
  **Upcoming OOO window (hours)**, how far ahead of an upcoming OOO block to stop
  qualifying a member (default 4 hours).

Beyond these controls, when the engine scores calendar availability (the
**Most available calendar time** rule, and slot generation for queue-hosted events) it
automatically respects each member's working hours and meeting buffers over a 7-day
planning window; those constraints are built in and aren't configurable.

## Credit Behavior

The Credit Behavior tab controls when members are credited back for meetings that don't
result in a completed assignment, so they aren't penalized in distribution scoring.

**Enable crediting** is the master switch (on by default). The toggles below it only apply
while it's on, and all of them start on:

| Toggle                   | What it credits back                          |
| ------------------------ | --------------------------------------------- |
| **Cancelled meetings**   | Meetings that get cancelled.                  |
| **Rescheduled meetings** | Meetings rescheduled with a different member. |
| **No-show meetings**     | Meetings marked as a no-show.                 |
