SupervisionLaborScenario
Economics scenarios · Implementation: mlsysim/engine/scenario_definitions/economics.py.
Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.
The person-hours a supervised fleet creates in one operating_day: an assistant staffed the whole day (busy at queue’s utilization, watching otherwise) plus sweeps corridor sweeps.
Notes
Equation: Busy hours are utilization*operating_day; staffed labor is the whole operating day plus sweep duration; shifts divide by shift length.
Assumptions: Watch time remains staffed even without requests, and sweeps add labor rather than overlapping watch coverage.
Excludes: Breaks, peak staffing reserve, and a stability check; an overloaded queue can make residual watch time negative.
References
Derivation: Busy hours are utilization*operating_day; staffed labor is the whole operating day plus sweep duration; shifts divide by shift length. This is declared scenario accounting rather than a fitted empirical law.
Examples
>>> from mlsysim import Scenarios
>>> scenario = Scenarios.WarehouseRemoteAssistantLabor
>>> value = scenario.request_time
>>> str(value.units)
'h'Attributes
| Name | Description |
|---|---|
| operating_day | |
| queue | |
| request_time | Expected request-handling hours within the operating day, using the queue’s utilization. |
| shift | |
| shifts | Total labor hours divided by hours per shift, a fractional staffing equivalent. |
| sweep_time | |
| sweep_total | Additional labor hours allocated to corridor sweeps. |
| sweeps | |
| total | Staffed hours plus sweep hours, without subtracting idle watch time. |
| watch_time | Non-request watch hours left in the staffed operating day; unstable demand can make this |
queue
Type: SupervisorQueueScenario.
Declared default: required.
operating_day
Type: Quantity.
Declared default: required.
sweeps
Type: int.
Declared default: required.
sweep_time
Type: Quantity.
Declared default: required.
shift
Type: Quantity.
Declared default: required.
request_time
engine.scenario_types.SupervisionLaborScenario.request_time
Expected request-handling hours within the operating day, using the queue’s utilization.
Equation: (queue.result.utilization * operating_day).to('hour').
watch_time
engine.scenario_types.SupervisionLaborScenario.watch_time
Non-request watch hours left in the staffed operating day; unstable demand can make this negative.
Equation: (operating_day - request_time).to('hour').
sweep_total
engine.scenario_types.SupervisionLaborScenario.sweep_total
Additional labor hours allocated to corridor sweeps.
Equation: (sweeps * sweep_time).to('hour').
total
engine.scenario_types.SupervisionLaborScenario.total
Staffed hours plus sweep hours, without subtracting idle watch time.
Equation: (operating_day + sweep_total).to('hour').
shifts
engine.scenario_types.SupervisionLaborScenario.shifts
Total labor hours divided by hours per shift, a fractional staffing equivalent.
Equation: (total / shift).to('').magnitude.