# The three assignment mechanisms

Every order is ultimately resolved using one — or a combination — of three mechanisms.

| Mechanism | When it's used |
|---|---|
| **PG Mode (FIFO)** | You have enough own drivers to cover pending orders |
| **Google OR-Tools** | There are more pending orders than own drivers, so routes need planning more efficiently |
| **Third-Party Carriers** | Your external delivery network |

> Which of PG Mode or Google OR-Tools is used for a given store is decided automatically, from the ratio of pending orders to available drivers — unless you force one specific mode in the scheduling plan. See [Scheduling plans: how the automatic cycle works](/books/console-yF7/page/scheduling-plans-how-the-automatic-cycle-works).

## How they combine

Zone configuration decides **whether Third-Party gets the first attempt** or only acts as a safety net. Everything else works the same either way.

**Standard zone** — own fleet first:

1. **Own solver** (PG Mode or Google OR-Tools).
2. **Idle driver retry** — free store drivers the solver didn't use.
3. **Third-Party fallback** — last resort.

**Third-Party-first zone** — carrier first:

1. **Third-Party carrier**, one attempt. If assigned, done.
2. **Own solver** (PG Mode or Google OR-Tools).
3. **Idle driver retry**.
4. **No further fallback** — the order already had its Third-Party turn.

## The rule that keeps it fair

Each order gets **exactly one attempt with each resource type** — own fleet and Third-Party — per assignment cycle.

The zone configuration only decides *which one goes first*, never *how many* attempts an order gets:

| Zone type | Attempt order | Total attempts |
|---|---|---|
| Standard | Own fleet → Third-Party | 2 |
| Third-Party-first | Third-Party → Own fleet | 2 |

Always two. Never three, never one.

## Before the order is left for the next cycle

There is one more relaxed attempt within the same cycle — see [Last-Option: the final safety net](/books/console-yF7/page/last-option-the-final-safety-net).

If the order is still unassigned after that, the next scheduled run starts completely fresh, including a brand-new Third-Party attempt. How soon that happens is set by the store's scheduling plan.