ErlangC

ErlangC(transactions, aht, asa, interval[, ...])

Computes the number of positions required to attend a number of transactions in a queue system based on erlangc.rst.

ErlangC.waiting_probability(positions[, ...])

Returns the probability of waiting in the queue

ErlangC.service_level(positions[, ...])

Returns the expected service level given a number of positions

ErlangC.achieved_occupancy(positions[, ...])

Returns the expected occupancy of positions

ErlangC.required_positions(service_level[, ...])

Computes the requirements using erlangc.rst

class pyworkforce.queuing.ErlangC(transactions: float, aht: float, asa: float, interval: int, shrinkage=0.0, **kwargs)[source]

Computes the number of positions required to attend a number of transactions in a queue system based on erlangc.rst. Implementation inspired on: https://lucidmanager.org/data-science/call-centre-workforce-planning-erlang-c-in-r/

Parameters:
transactions: float,

The number of total transactions that comes in an interval.

aht: float,

Average handling time of a transaction (minutes).

asa: float,

The required average speed of answer (minutes).

interval: int,

Interval length (minutes) where the transactions come in

shrinkage: float,

Percentage of time that an operator unit is not available.

achieved_occupancy(positions: int, scale_positions: bool = False)[source]

Returns the expected occupancy of positions

Parameters:
positions: int,

The number of raw positions

scale_positions: bool, default=False

Set it to True if the positions were calculated using shrinkage.

required_positions(service_level: float, max_occupancy: float = 1.0)[source]

Computes the requirements using erlangc.rst

Parameters:
service_level: float,

Target service level

max_occupancy: float,

The maximum fraction of time that a transaction can occupy a position

Returns:
raw_positions: int,

The required positions assuming shrinkage = 0

positions: int,

The number of positions needed to ensure the required service level

service_level: float,

The fraction of transactions that are expected to be assigned to a position, before the asa time

occupancy: float,

The expected occupancy of positions

waiting_probability: float,

The probability of a transaction waiting in the queue

service_level(positions: int, scale_positions: bool = False)[source]

Returns the expected service level given a number of positions

Parameters:
positions: int,

The number of positions attending.

scale_positions: bool, default = False

Set it to True if the positions were calculated using shrinkage.

waiting_probability(positions: int, scale_positions: bool = False)[source]

Returns the probability of waiting in the queue

Parameters:
positions: int,

The number of positions to attend the transactions.

scale_positions: bool, default=False

Set it to True if the positions were calculated using shrinkage.