Inspection operations · Industrial engineering
Inspection queue capacity
A simulation of an inspection station with queues, rework, and scheduled breaks. It compares staffing and work-in-process limits across 800 synthetic shifts.
Executed simulation study

Implementation
Implemented finite admitted WIP, parallel inspection, rework visits, deferred full-duration breaks, FIFO and estimated-service dispatch.
Ran 40 matched seeds for five policies under four workload conditions. Exported job traces, scenario means, paired confidence intervals and input sensitivities.
Executed synthetic/theoretical validation with a selected operating envelope, adverse conditions, and reproducible acceptance evidence.
Inputs and assumptions
- All inputs are synthetic. A shift starts empty, lasts exactly 28,800 seconds, has no warm-up removal, and stops without draining the queue. This is a terminating-shift experiment, not a steady-state capacity estimate.
- Arrivals follow a piecewise Poisson process: 30/hour except a 20-minute, 70/hour burst before the first break. Job classes are 70% quick and 30% detailed; their means are 77 and 187 seconds. Within-class service time is lognormal with CV 0.45.
- After each of the first two visits a job returns with probability 0.12, waits 60 seconds externally to the inspector, and retains its admitted WIP slot. Every job exits after its third visit. Exiting means inspection completed, not an assumed quality acceptance; scrap and defect disposition are outside the model.
- Every inspector takes 15, 30 and 15 minutes of breaks. A busy inspector finishes the current visit first, then takes the entire deferred break. The second inspector's scheduled breaks are offset by 15 minutes.
- Capacity counts running, waiting and rework-delay jobs together. A new arrival at the limit is turned away and counted; it does not vanish and it does not re-enter later. No upstream storage, retry system or downstream machine is simulated.
- Each of 40 seeds generates its full arrival/service/rework stream before any policy runs. Policies under the same input condition receive identical jobs. The four input conditions are separate experiments, with 800 total scenario-shift runs.
Results
| Scenario-shift runs | 800 |
|---|---|
| Independent seeds per condition | 40 |
| Reference completions: 1 inspector / WIP 8 | 188.38 jobs / shift |
| Reference completions: 2 inspectors / WIP 8 | 239.03 jobs / shift |
| Virtual validation checks | 9 / 9 |
| Additional virtual operating shifts | 1300 |
| Combined stress backlog, 2 FIFO | 2.58 jobs |
Verification
20 regression and analytical-reference tests passed. Job, waiting-area and WIP-area balances passed in all 800 runs. Additional virtual validation: 9 checks matched their expected outcomes. Adverse design conditions remain in the results.
python run.pyDownload the verification record ↓Additional scenarios
9 outcomes checked through synthetic/theoretical. The report lists the expected and observed outcomes for each check.
Read the validation report ↗Project files
The ZIP contains the source, inputs, results, and instructions. These files are also available individually.
- Discrete-event modelsimulation.py · 8 KB
- Reference inputs and seed setinputs.json · 1 KB
- Scenario means and confidence intervalsresults/scenario-means-ci.csv · 18 KB
- Paired policy differencesresults/paired-differences-ci.csv · 21 KB
- All 800 replication resultsresults/replications.csv · 211 KB
- One reproducible arrival and service streamresults/reference-workload.json · 39 KB
- Job-level shift outcomesresults/trace-0-jobs.csv · 24 KB
- Time-study collection plantime-study-plan.md · 2 KB
- Observation templatetime-study-template.csv · 1 KB
- Virtual validation reportvirtual-validation.html · 12 KB
- Completion evidence and source hashescompletion.json · 6 KB
- Reproducible virtual validationvirtual_commissioning.py · 15 KB
- Executed acceptance matrixresults/virtual-acceptance.csv · 3 KB
- Selected FIFO policy and staffing reservesselected-operating-envelope.json · 2 KB
- Independent selected-policy acceptanceresults/virtual-selected-risk.csv · 1 KB
- 500 independent holdout shiftsresults/virtual-selected-holdout.csv · 60 KB
- Mean end-of-shift backlog under the five workload conditionsfigures/virtual-operations.svg · 19 KB
- All 800 operating-trial runsresults/virtual-operations-runs.csv · 115 KB
- Scenario means and intervalsresults/virtual-operations-means-ci.csv · 9 KB
- Exact service-screen failure intervalsresults/virtual-service-risk-ci.csv · 1 KB
- Matched two-versus-three inspector comparisonresults/virtual-staffing-paired-ci.csv · 2 KB
- Individual stress-case job outcomesresults/virtual-stress-job-trace.csv · 25 KB
- Independent workload capacity calculationresults/virtual-capacity-budget.csv · 1 KB
Archive checksum
SHA-256
073dcbfe977a0b558c879271c5b241b72382026e5a52f5470f34f7bcf5fec048Original project scope
Archived brief PDF ↗Run locally
Python 3.11+ / NumPy 2.3.5 / SciPy 1.17.0 / Matplotlib 3.10.8
Extract the ZIP and open a terminal in the inspection-queue-capacity folder. The README includes setup and usage details.
python -m pip install -r requirements.txt
python run.py
python -m unittest -vLimits
- No factory observations or staffing trial were used. The virtual operating trial adds batch arrivals and staff absence. Fatigue, learning, inspection errors, equipment failures and space geometry remain outside the model.
- Turned-away work is an upstream burden, not a throughput improvement. Economic or whole-line bottleneck conclusions need an extended system boundary and observed costs.
- Completed-job tail waits are censored by the end of the shift; unfinished work is reported explicitly. The added virtual trial separately follows up to two hours of clearance. Neither study estimates overnight carryover or a long-run stationary distribution.