Choose the channel before counting slots
This local example has two channels: email and message. Remaining slots equal the chosen channel’s limit minus used slots. Agents also need exports and active status. Used slots cannot exceed the declared limit; that would be an invalid input, not negative spare capacity. These counts are not workload hours or a waiting-time forecast.
| Agent | Email used / limit | Message used / limit | New message |
|---|---|---|---|
| A | 2 / 5 | 2 / 2 | Full |
| B | 5 / 5 | 0 / 2 | Eligible: 2 slots |
Apply all conditions to the chosen channel
A new message can go to B under the eligibility contract. A new email can go to A. Neither route is decided by adding all unused channel slots together. The model displays each agent’s capability/status/slot checks.
- Select email or message
- Subtract used from the channel limit
- Apply skills and active status
- List eligible and unknown agents
An unknown capacity record stays unknown; do not substitute the other channel’s record.
Switch the incoming channel to email. Which agent passes?
Show the worked answer
A: 5−2=3 email slots. B has 5−5=0 email slots, so B is full.
Edit channel load without changing capability
Change the channel selector or A’s message used count. Reducing A’s message count to 1 makes both A and B eligible for a message. Reset restores A’s two occupied message slots and the message channel.
A message used value of 3 with a limit of 2 is rejected as CAPACITY_INPUT. A null capacity is an unknown fact. Limits and used counts must be whole numbers 0–1,000. Manual self-assignment and total human effort are outside this model.
Use the queue-order example when the request enters the wrong team even though eligible staff exist.
Capacity for this channel
- Eligible agents
- B
- Unknown candidates
- None
| Record | All required skills | Available | Spare slot exists | Remaining slots | Decision |
|---|---|---|---|---|---|
| A | Yes | Yes | No | 0 | Not eligible |
| B | Yes | Yes | Yes | 2 | Eligible |