---
title: "LabOps"
slug: labops
category: industry
term_status: niche
evidence_status: verified
summary: "LabOps (laboratory operations) runs everything around the science: samples, instruments, reagents, records and the quality system, so that every reported result can be traced from the physical sample to an attributable, audit-ready record."
audience: [Lab managers and lab operations staff, QA and QC staff, Laboratory informatics and LIMS administrators, Scientists and analysts, Engineers who integrate instruments, Beginners]
last_verified: 2026-10-23
key_takeaways:
  - "\"LabOps\" is a niche label used mainly in life-science companies, by a practitioner non-profit (LabOps Unite) and by vendors; no standard defines it. The practice behind it, laboratory operations under a quality system, is long established."
  - "The core job is integrity from physical sample to digital record: a sample's identity, location, condition and status must be provable at every handover, and every result must be attributable, contemporaneous and unaltered (ALCOA+)."
  - "Status is a claim that needs evidence. \"Inactivated\", \"calibrated\", \"in date\" and \"approved\" must be recorded facts that a system checks, not labels people trust."
  - "Pick the obligations before the tools: Good Laboratory Practice (GLP), Good Manufacturing Practice (GMP), ISO/IEC 17025, ISO 15189 and clinical rules differ in purpose and jurisdiction, and they decide which records, audit trails and validation you need."
  - "Measure flow and integrity together: turnaround time as median plus 90th percentile, right-first-time, calibration on time, custody completeness and audit-trail review backlog. A rising rate of invalidated results is a warning, not an efficiency."
  - "LabOps ends where instrument data enters analysis pipelines (BioOps) and begins where purchasing hands over reagents and instruments (ProcurementOps)."
related: [bioops, healthops, researchdataops, procurementops, complianceops, iotops, privacyops, backupops]
---

## What LabOps is

### In 30 seconds

**LabOps (laboratory operations) is the work that keeps a laboratory able to produce results that can be trusted:** receiving and
tracking samples, keeping instruments qualified, calibrated and booked, keeping reagents and consumables in stock and in date,
capturing data so that it is attributable and unaltered, and running the quality system that proves all of this to a customer,
auditor or regulator.

**In one line: LabOps answers "for this result, can we show which sample it came from, who handled it, on which working instrument,
with which in-date reagents, and that nobody changed the record without a trace?"**

This Atlas's emphasis is **integrity from the physical sample to the digital record**; facilities, safety and purchasing appear
only where they touch that chain. **For** lab managers and LabOps staff, quality assurance and quality control (QA/QC),
laboratory informatics staff, scientists, and engineers who connect instruments to software. No prerequisites.

::: note How common is the label?
- **"LabOps" is niche and not standardised.** LabOps Unite, a practitioner network, describes itself as a free, vendor-agnostic
  501(c)(3) non-profit with 1700+ members and more than ten chapters (October 2026);[^lou] MassBio partnered with it in March
  2025.[^massbio]
- Vendors use it: Elemental Machines published "The State of LabOps" (gated; not read),[^em-report] and Tecan named a
  LabNavigator monitoring-and-control view "LabOps".[^tecan-labops] "Lab Ops" is also an ordinary team name, as at Berkeley Lab's
  ESE division.[^lbl]
- **Collision:** in engineering, "lab operations" can mean shared hardware and network **test labs** (a vendor sells "Lab
  Operations for Networking").[^keysight] That sense is out of scope; software test environments belong to [TestOps](../testops/).
- No certification, standards body or official definition of the compact label "LabOps" was found (searches on 2026-10-23).
  The spaced form has credentials: CASRAI lists a "Laboratory Operations Management — Professional" (LOMP) exam, enrolment not
  yet open on 2026-10-23;[^casrai] Australia's Advanced Diploma of Laboratory Operations was retitled Laboratory Management
  (MSL60122) in 2022.[^tga] Noted, not endorsed.
:::

### At a glance

| Item | Summary |
|---|---|
| Term status | **Niche.** Real use in life-science lab communities and by vendors; no formal definition. The practice is established. |
| Goal | Trustworthy results, audit-ready records, available instruments, no stock surprises. |
| Users | Lab managers, LabOps staff, analysts, QA/QC, administrators of the LIMS (laboratory information management system) and ELN (electronic lab notebook), metrology staff. |
| In scope | Sample lifecycle and custody; LIMS and ELN; instrument integration, qualification, calibration and maintenance; reagent and consumable inventory; data integrity (ALCOA+); instrument scheduling; the lab quality system (GLP, GMP lab controls, ISO/IEC 17025, ISO 15189; see the [glossary](#glossary-and-mental-model)). |
| Out of scope | Analysis pipelines ([BioOps](../bioops/)); clinical care ([HealthOps](../healthops/)); publishing research data ([ResearchDataOps](../researchdataops/)); purchasing ([ProcurementOps](../procurementops/)); biosafety and environment, health and safety (EHS) as disciplines (referenced only). |
| Key outputs | Sample register and custody trail, released results with complete data, calibration and maintenance records, inventory with lot and expiry, standard operating procedures (SOPs), deviation and corrective and preventive action (CAPA) records. |
| Prerequisites | None. Basic statistics helps for the metrics part. |

### The problem it solves

Science often fails in the lab before it fails in the analysis, in mundane and expensive ways:

- **Wrong sample, right answer.** A swapped label makes a perfect measurement belong to someone else. In clinical laboratory
  diagnostics, pre-analytical errors (collection, transport, preparation) are estimated at up to 70% of all mistakes, varying
  widely by study design.[^plebani]
- **Status believed, not proven.** In June 2014 a CDC high-containment lab sent *B. anthracis* samples to lower-containment labs
  after a procedure that may not have inactivated them; colleagues handled them believing they were. CDC's review cited a study
  plan not followed and no SOPs on when agents are properly inactivated. CDC judged exposure "extremely unlikely", no one became
  ill, and it halted transfers out of its biosafety level 3 and 4 (BSL-3/4) labs.[^cdc2014]
- **Records that cannot be trusted.** In 2019 the FDA warned a contract testing lab about access to its high-performance liquid
  chromatography (HPLC) system without employee-specific logins, a chromatography audit trail it had not enabled (repeating a
  2017 observation) and incomplete records.[^grace] Such results may be correct and still unusable, and customers relying on the
  lab inherit the weakness.
- **Quiet waste.** Expired reagents, double-booked instruments, overdue calibrations found on audit day.

**Before:** personal spreadsheets, paper booking, calibration stickers, results typed from printouts, a yearly audit sprint.
**After:** one sample register with custody, booking that refuses lapsed instruments, data captured with an audit trail, and a
weekly exception report for QA.

### What LabOps is not

- **Not "doing the science".** Methods and study design belong to scientists; LabOps makes their environment reliable and their
  records defensible.
- **Not buying a LIMS.** ASTM's laboratory-informatics guide treats LIMS, laboratory execution systems (LES), laboratory
  information systems (LIS, the clinical term), ELN, SDMS and CDS as a landscape with a life cycle, not one product.[^astm]
- **Not BioOps.** Once data leaves the instrument and enters an analysis pipeline, reproducibility of computation is
  [BioOps](../bioops/)'s job. The handoff is a checked file plus sample metadata (see [Lab 2](#lab-2-intermediate-a-release-gate-between-instruments-and-analysis)).
- **Not HealthOps.** Patient flow, electronic health records (EHR) and clinical operations belong to [HealthOps](../healthops/);
  this page covers the lab's own operation, including medical labs under ISO 15189. No regulator cited here uses "LabOps".

## Where it comes from and where it sits

### Origins and evolution

The practice is old; the label is new. US Good Laboratory Practice (21 CFR Part 58) was first published in 1978; today it
requires documented equipment maintenance and calibration, labelled and in-date reagents, and handling that keeps test articles
identified.[^cfr58] The OECD GLP Principles and laboratory accreditation (ISO Guide 25, later ISO/IEC 17025) grew up in parallel
from the 1970s.[^oecd-18] Electronic records brought 21 CFR Part 11 in the US and EU GMP Annex 11 (current revision January
2011).[^cfr11][^annex11] Data-integrity guidance then made ALCOA (and ALCOA+) the common vocabulary: the UK MHRA (2018), FDA
(2018), the Pharmaceutical Inspection Co-operation Scheme (PIC/S, 2021), WHO (2021) and the OECD for GLP (2021).[^mhra][^fda-di][^pics][^who-di][^oecd-22]

The "-Ops" label comes from industry; uses found date from about 2021.[^em-report][^lou][^tecan-labops] It signals a shift in
emphasis, not a new discipline: treating the lab as a system with services, data and metrics.

### Glossary and mental model

| Term | Meaning | Example |
|---|---|---|
| GxP | Umbrella for the "good practice" rules: GLP (non-clinical safety studies), GMP or US CGMP (current GMP: making and testing medicines), GCP (clinical trials), GDP (distribution) | "GxP data" = data any of these rules covers |
| QA vs. QC | Quality assurance oversees the system and approves; quality control tests samples and products | QC runs the assay; QA reviews the deviation |
| TAT, RFT | Turnaround time (receipt to release); right-first-time (released without rework) | See [metrics](#metrics-and-kpis) |
| Sample / test item | The physical material tested; ISO/IEC 17025 says "test or calibration item"[^iso17025-toc] | Tube S-0001, aliquot S-0001-A2 |
| Accessioning | Registering a received sample with a unique ID and label | Barcode printed at receipt |
| Chain of custody | Recorded sequence of who held a sample, where and when | Receiving → freezer F-07 → QC bench |
| ALCOA / ALCOA+ | Attributable, Legible, Contemporaneous, Original, Accurate; "+" adds Complete, Consistent, Enduring, Available[^mhra] | Balance printout signed and dated at the bench |
| Audit trail | Secure, computer-generated, time-stamped record allowing reconstruction of creation, change or deletion[^fda-di] | HPLC reprocessing with user, time, parameters |
| Static / dynamic record | Fixed record (printout) vs. one that can be reprocessed[^fda-di] | Infrared (FT-IR) spectral file kept electronically |
| LIMS / ELN / CDS / SDMS | Sample-and-test management; notebook; chromatography data system; scientific data management system[^astm] | LIMS holds the sample; CDS the raw chromatogram |
| DQ / IQ / OQ / PQ | Design, installation, operational, performance qualification[^annex15] | OQ after a new HPLC is installed |
| Calibration, traceability | Comparing readings with reference standards whose link to higher standards is documented (policy: ILAC P10, from the International Laboratory Accreditation Cooperation)[^ilac-p10] | Balance checked with certified weights |
| OOS | Out-of-specification result; must be investigated[^fda-oos] | Assay 92% against a 95–105% limit |
| Deviation / CAPA | Departure from procedure; corrective and preventive action | Freezer door left open |

**Mental model: two ledgers that must agree.** The physical ledger is where the tube is and in what condition; the digital ledger
is what the systems say about it. LabOps keeps them in step at every handover and proves it afterwards. Most lab failures are a
disagreement between them that nobody noticed in time.

### How LabOps relates to other Ops

::: figure Where LabOps sits in the research and testing chain
```mermaid
flowchart TB
  subgraph U["Inputs and support"]
    direction TB
    P["ProcurementOps: reagents, instruments"] ~~~ C["ComplianceOps: obligations"] ~~~ I["IoTOps: sensor fleet"]
  end
  U --> L["LabOps: sample to record"]
  L --> B["BioOps: pipelines"]
  L --> H["HealthOps: care"]
  B --> R["ResearchDataOps: publish"]
  classDef core fill:#e8f3f2,stroke:#16756f,color:#122029
  classDef neutral fill:#f1f4f6,stroke:#5b7a87,color:#122029
  class L core
  class P,B,R,H,C,I neutral
```
Text equivalent: three neighbours feed LabOps: ProcurementOps hands over reagents and instruments, ComplianceOps manages the
company-wide obligations that LabOps evidences, and IoTOps operates the sensor fleet whose data LabOps uses. LabOps hands checked
instrument data to BioOps pipelines, whose outputs go to ResearchDataOps for publication; in clinical settings LabOps results go
to HealthOps for use in care.
:::

| Neighbour | Shared scope | LabOps focus | Choose the neighbour when |
|---|---|---|---|
| [BioOps](../bioops/) | Sample identity in data files | Identity and custody up to the instrument file | You run analysis pipelines |
| [HealthOps](../healthops/) | Turnaround of clinical tests | Running the laboratory itself | You manage patient flow and clinical capacity |
| [ResearchDataOps](../researchdataops/) | Metadata captured at source | Records while work is active | You publish, cite and preserve datasets |
| [ProcurementOps](../procurementops/) | Reagents, consumables, instruments | Receipt, lot, expiry, use | You run sourcing, contracts, purchase-to-pay |
| [ComplianceOps](../complianceops/) | Evidence for audits | Lab-specific GxP and accreditation records | You run the cross-company obligation programme |
| [IoTOps](../iotops/) | Freezer and room sensors | Using sensor data as GxP evidence | You operate the device fleet and its network |

**LabOps ends where instrument data enters the analysis pipelines**: an editorial distinction of this Atlas, not an industry
standard.

## Principles and operating model

### A proposed charter and principles

The following charter is **this Atlas's proposal**; no official LabOps manifesto was found.

> **Mission:** every result this lab releases can be traced to its sample, method, instrument, materials and people, and was
> produced on time by a process we can show to an outsider.

1. **Identity first.** No unique, durable identity, no test. Identity travels with the material and its data.
2. **Status is evidence.** "Calibrated", "inactivated", "in date", "released" are records with an owner and a date, checked by the
   system at the point of use.
3. **Record at the moment of work.** Instrument capture beats typing; typing at the bench beats transcribing later.
4. **Never overwrite.** Corrections are new entries with a reason; GLP and Part 11 require that changes not obscure the
   original.[^cfr58][^cfr11]
5. **One person, one account**, so every entry is attributable.[^fda-di][^mhra]
6. **Review by exception, at the cadence of the data.**[^fda-di]
7. **Independent quality.** The approver is not the person whose work is approved (in US GLP, a QA unit separate from study
   personnel).[^cfr58]
8. **Measure flow and integrity together.** A faster lab with weaker records is not better.

**Non-goals:** designing experiments, owning purchasing contracts, running analysis pipelines, giving legal advice.

### Building blocks

| Block | What it contains | Typical system |
|---|---|---|
| Sample register | IDs, origin, consent or custody documents, location, status, aliquots | LIMS or sample registry |
| Method and SOP library | Approved methods, versions, training records | Document management, ELN |
| Instrument register | Qualification, calibration due, maintenance, bookings | LIMS, maintenance system (CMMS) or asset register |
| Material inventory | Reagents, standards, consumables with lot, expiry, opened date | Inventory module, LIMS |
| Data capture | Raw data, metadata, audit trails | CDS, SDMS, instrument software |
| Quality system | Deviations, OOS, CAPA, change control, audits, training | Quality management system (QMS) |
| Environment | Temperatures and alarms for freezers, rooms, incubators | Monitoring ([IoTOps](../iotops/)) |

### Roles, ownership and RACI

Titles vary by lab; the separation of duties does not.

| Activity | Lab manager / LabOps lead | Analyst / scientist | QA | Lab informatics | Metrology / maintenance |
|---|---|---|---|---|---|
| Sample receipt and accessioning | A | R | I | C | — |
| Custody and storage | A | R | C | C | — |
| Test execution and raw data | C | R | I | — | — |
| Second-person review of results | A | R (reviewer is another analyst) | C | — | — |
| Audit-trail review | A | R (the second-person reviewer, with the record) | R (periodic review) | C | — |
| Instrument qualification and calibration | A | C | C | — | R |
| LIMS/ELN configuration and validation | C | C | A (approves) | R | — |
| Deviations, OOS, CAPA | R | R | A | C | C |
| Inventory and expiry | A | R | I | C | — |
| Release of results | R (authorised signatory) | — | A | — | — |

R = responsible, A = accountable, C = consulted, I = informed. The FDA places audit-trail review with the people responsible for
record review.[^fda-di] Who signs releases depends on the regime; the release row fits a GMP QC lab. An ISO/IEC 17025 lab
nominates the people authorised to release results (Australia's accreditation body, NATA, requires it),[^nata] so there that
signatory, not QA, is usually accountable (our reading). In a small lab one person may hold several columns; keep **at
least the analyst/reviewer split and the QA independence**.

### Sample lifecycle

::: figure The lifecycle of a sample and its exception states
```mermaid
stateDiagram-v2
  [*] --> Expected: submission form
  Expected --> Received: arrives, logged
  Received --> Rejected: fails acceptance
  Received --> Accessioned: unique ID, label
  Accessioned --> Stored
  Stored --> InTest: checked out
  InTest --> Stored: returned
  InTest --> Consumed: used up in test
  InTest --> Reported: result released
  InTest --> Quarantined: doubt in testing
  Stored --> Quarantined: excursion or doubt
  Quarantined --> Stored: QA release
  Quarantined --> Disposed: QA decision
  Reported --> Retained: retention period
  Retained --> Disposed: authorised
  Rejected --> Disposed
  Consumed --> [*]
  Disposed --> [*]
```
Text equivalent: an expected sample is received and logged, then rejected at acceptance or accessioned with a unique ID and
label; it is stored, checked out for testing and returned (or used up), and its result released. Doubt during storage or
testing, or a storage excursion, moves it to quarantine, from which QA releases it or decides disposal. After reporting it is
retained, then disposed of only with authorisation.
:::

The lab-system lifecycle around it follows Day 0 to Day 2:

- **Day 0 (design):** rules that apply; sample IDs, acceptance criteria, statuses, custody events; systems; requirements and a
  [risk-based validation plan](#qualification-and-validation-proportionately).
- **Day 1 (go-live):** qualify instruments, migrate or freeze legacy records, train, run in parallel.
- **Day 2 (operate):** calibration, weekly exception review, periodic evaluation of computerised systems,[^annex11] audits.

### Operating model and governance

| Cadence | Forum | Inputs | Decisions |
|---|---|---|---|
| Daily | Bench huddle (10 min) | Queue, instrument status, overdue samples | Re-sequence work, escalate blockers |
| Weekly | Exceptions review (lab manager + QA) | Audit-trail exceptions, open deviations, custody gaps, calibrations due in 30 days | Assign owners, close or escalate |
| Monthly | Operations review | TAT, RFT, utilisation, inventory write-offs | Capacity, booking rules, purchasing triggers |
| Quarterly | Management review | Trends, audits, CAPA effectiveness, complaints | Resources, system changes, risk acceptance |
| On change | Change control | Proposed change to method, instrument, system or SOP | Approve, test, train, release |

**Escalation:** anything that may affect a released result goes to QA the same day and may trigger customer notification; MHRA
expects significant data-integrity incidents to be notified to regulators where appropriate.[^mhra]

## Architecture and workflow

### Reference architecture

A **logical** architecture: small labs collapse boxes into one product, large ones split them. Each fact has one home, and the
boxes exchange identifiers rather than retyped values.

::: figure Logical reference architecture of a laboratory's systems
```mermaid
flowchart TB
  I1["Networked instruments"] --> D["Device interfaces: SiLA 2, LADS, APIs"]
  I2["Standalone instruments, printouts"] --> LIMS["LIMS: samples, tests, results"]
  S1["Freezer and room sensors"] --> M["Monitoring and alarms"]
  D --> CDS["CDS / SDMS: raw data, audit trail"]
  M --> QMS["QMS and asset register"]
  QMS -. "blocks lapsed instruments" .-> LIMS
  CDS --> G["Release gate"]
  LIMS --> G
  G --> BIO["BioOps pipelines"]
  LIMS --> REP["Reports to customers or EHR"]
  CDS --> ARC["Archive and backup"]
  classDef core fill:#e8f3f2,stroke:#16756f,color:#122029
  classDef neutral fill:#f1f4f6,stroke:#5b7a87,color:#122029
  classDef decision fill:#fdf3e3,stroke:#c9800f,color:#122029
  class LIMS,CDS,QMS core
  class G decision
  class I1,I2,S1,D,M,BIO,REP,ARC neutral
```
Text equivalent: networked instruments send data through device interfaces (SiLA 2, LADS, vendor APIs), the trust boundary,
into the CDS/SDMS; standalone instruments produce printouts entered against the LIMS record; sensors feed a monitoring and alarm
service whose events land in the QMS and asset register. Raw data and LIMS sample metadata pass a release gate (see Lab 2) to
BioOps pipelines; the LIMS issues reports to customers or the EHR; raw data goes to archive and backup. Calibration status in the asset register
can block use of an instrument in the LIMS.
:::

**Component responsibilities and trade-offs:**

- **Integration layer as trust boundary.** Instrument PCs often run old operating systems tied to validated software, where
  every patch needs change control and an impact assessment, and sometimes re-qualification; segment them behind the
  integration layer. Standards reduce custom drivers: SiLA 2 runs over HTTP/2 with Protocol Buffers and the gRPC wire
  format;[^sila] LADS is a device-type-agnostic OPC UA information model for laboratory devices;[^lads] Allotrope defines
  standardised laboratory data formats, including JSON-based Allotrope Simple Models it describes as human- and
  machine-readable.[^allotrope]
- **One home per fact** (LIMS: sample status; CDS: raw data and audit trail; asset register: calibration), and **keep dynamic
  records dynamic**: archive native files, not just PDFs.[^fda-di]
- **Alternatives:** one "lab platform" reduces integration work but increases lock-in and validation scope; best-of-breed tools
  need a stronger integration layer.

### End-to-end workflow: from receipt to released result

::: figure Happy path and the out-of-specification exception path
```mermaid
flowchart TB
  A["Sample arrives with submission form"] --> B{"Meets acceptance criteria?"}
  B -- no --> X{"Customer accepts testing under a documented deviation?"}
  X -- no --> XR["Reject: return or dispose, inform customer"]
  X -- yes --> C
  B -- yes --> C["Accession: unique ID, label, store"]
  C --> D["Test on a qualified, calibrated instrument with in-date materials"]
  D --> E["Raw data and audit trail captured"]
  E --> F{"Second-person review: complete and within specification?"}
  F -- yes --> R["Release result and report"]
  F -- "OOS or anomaly" --> G["Phase I: laboratory investigation, keep preparations"]
  G --> H{"Clear laboratory error?"}
  H -- yes --> I["Invalidate with documented justification, retest per plan"]
  I --> D
  H -- no --> J["Phase II: full-scale investigation by the quality unit"]
  J --> K["Decision and report with investigation outcome"]
  classDef core fill:#e8f3f2,stroke:#16756f,color:#122029
  classDef risk fill:#fbeceb,stroke:#b4332b,color:#122029
  classDef decision fill:#fdf3e3,stroke:#c9800f,color:#122029
  class A,C,D,E,R core
  class B,F,H,X decision
  class XR,G,I,J,K risk
```
Text equivalent: a sample failing acceptance is rejected (returned or disposed of, customer informed) unless the customer
accepts testing under a documented deviation, which rejoins the normal path. A sample is accessioned, tested on a qualified,
calibrated instrument with in-date materials, and its raw data and audit trail captured. A second person reviews; a complete,
in-specification result is released. An OOS result starts a Phase I laboratory investigation with preparations kept: a clear
laboratory error leads to documented invalidation and a planned retest; otherwise the quality unit runs Phase II and decides.
:::

The exception path follows the US FDA's OOS guidance: every OOS result is investigated; Phase I assesses the lab's data, if
possible before preparations are discarded; a contract lab passes findings to the manufacturer's quality unit, which runs Phase
II if no clear lab error is found; retests are predefined, not adjusted to results; and "Laboratory error should be relatively
rare".[^fda-oos] Invalidation needs a documented, scientifically sound justification, and "testing into compliance" is not
consistent with CGMP.[^fda-di] Labs outside pharmaceuticals are not bound by this guidance, but its logic (decide the retest rule
before seeing the retest) is a sound default.

## Practices, standards and tools

### Core practices and playbooks

Owners are in the [RACI](#roles-ownership-and-raci) and the checks in the [metrics](#metrics-and-kpis); the playbooks give the
steps.

#### Playbook: sample identity and custody

1. **Use identifiers unique beyond your lab.** The AMP/CAP pipeline guideline notes that probably more than 100 institutions have
   a case number "S17-123", and for clinical next-generation sequencing (NGS) recommends at least four identifiers (sample,
   patient, run, laboratory location) in each data file and its name.[^roy] Elsewhere: sample ID plus run ID plus site.
2. **Label at receipt** with a 2D barcode and readable ID, on stock that survives your storage (cryogenic, solvent).
3. **Model aliquots as children** of the parent sample, so S-0001-A2 traces to S-0001.
4. **Record a custody event at every handover** (from, to, where, when, by whom); a handover with no event is a gap.
5. **Scan, don't read, at the instrument.** Later genetic-fingerprint checks against sequencing data[^roy] belong to
   [BioOps](../bioops/).
6. **Quarantine on doubt** until QA decides.

#### Playbook: data integrity at the bench

- **Individual accounts** wherever data is created or changed; shared read-only accounts only for viewing.[^fda-di] If the
  system supports individual users, use it even if that means buying licences.[^mhra]
- **Audit trails on** for creation, change and deletion.[^cfr11][^annex11]
- **Keep originals:** a balance or pH-meter printout can be the original record; a spectral file is dynamic and stays
  electronic.[^fda-di] Issue numbered blank forms and reconcile them.[^fda-di]
- **Review audit trails with their records**, at the same frequency, or by risk where rules are silent.[^fda-di] MHRA accepts
  exception reporting: a validated search for predefined abnormal data or actions.[^mhra]

#### Playbook: instruments

- **Qualify before use** (see below), **calibrate on justified intervals** and review them; ILAC G24 gives methods.[^ilac-g24]
- **Name the responsible person in maintenance SOPs** and record routine and non-routine work, including how the defect was found
  and what was done (21 CFR 58.63 requires this in US GLP).[^cfr58]
- **Block, don't remind:** the LIMS or booking system refuses an instrument whose calibration has lapsed.

#### Qualification and validation, proportionately

"Validated" means documented evidence that an instrument or system does what **your** intended use needs, scaled to risk.

- **Computerised systems.** EU GMP Annex 11 bases the extent of validation on a justified, documented risk assessment, wants
  user requirements traceable through the life cycle, and has users review supplier documentation for off-the-shelf products;
  bespoke or customised systems need formal evidence for every life-cycle stage.[^annex11] In practice: test your configuration,
  workflows, calculations and interfaces, rely on assessed supplier evidence for the standard product, and do not re-test the
  vendor's whole product.
- **Analytical instruments.** USP general chapter <1058> covers analytical instrument qualification; its official text dates from
  2017. A restructured revision, "Analytical Instrument and System Qualification", was proposed in Pharmacopeial Forum 51(2)
  (comments until 31 May 2025)[^usp1058] and was still under discussion at a USP workshop in June 2026.[^usp-ws] Check the
  current USP–NF.
- **Manufacturing qualification.** EU GMP Annex 15 defines DQ, IQ, OQ and PQ for facilities, equipment, utilities and processes
  used to manufacture medicines;[^annex15] QC labs borrow its vocabulary.
- **Methods are separate.** Method validation and measurement uncertainty (ISO/IEC 17025 clauses 7.2 and 7.6)[^iso17025-toc]
  are scientific work; LabOps keeps the records and the instruments they depend on.

**Re-qualify or assess?** Every change goes through change control, and a documented risk assessment decides the testing; Annex
15 uses quality risk management to plan any validation, verification or requalification a change needs.[^annex15] **Editorial
rule of thumb:** re-test the affected functions when a change could alter what the instrument measures or what the system
calculates, stores or signs (a repaired detector, a move that disturbs alignment, a new software version); otherwise record the
assessment and why no testing is needed.

#### Playbook: reagents and consumables

Label reagents with identity, concentration, storage and expiry, and never use outdated material (21 CFR 58.83 in US
GLP).[^cfr58] Record lots against the tests that used them, issue first-expiry-first-out, record opened dates, and set reorder
points from consumption. Purchasing belongs to [ProcurementOps](../procurementops/).

### Methods, standards and frameworks

The obligations decide the controls. Orientation only, **not legal advice**; check current texts for your jurisdiction.

| Framework | Type | Applies to | Where | What LabOps takes from it |
|---|---|---|---|---|
| ISO/IEC 17025:2017 | Voluntary standard, basis for accreditation | Testing and calibration labs | International | Clauses on equipment, traceability, handling of items, technical records, data control[^iso17025][^iso17025-toc] |
| ISO 15189:2022 | Standard | Medical laboratories | International | Quality and competence for medical labs[^iso15189] |
| ISO 20387:2018 | Standard (under revision, October 2026) | Biobanks | International | Competence and quality control for biological material and data collections[^iso20387] |
| OECD GLP; 21 CFR Part 58 | Regulation (via national law) | Non-clinical safety studies | OECD members and non-members adhering to Mutual Acceptance of Data (MAD), e.g. India, Singapore, South Africa, Brazil;[^mad] US (Part 58) | Study conduct, QA unit, equipment, reagents, records[^cfr58][^oecd-docs] |
| 21 CFR Part 11 | Regulation | Electronic records and signatures | US (FDA-regulated) | Audit trails, controls for e-records[^cfr11] |
| EU GMP Annex 11 and 15 | GMP guideline | Computerised systems; qualification | EU (PIC/S equivalents) | Risk-based validation and audit trail; DQ/IQ/OQ/PQ[^annex11][^annex15] |
| FDA, MHRA, PIC/S, WHO data-integrity guidance | Guidance | GxP data | US, UK, PIC/S members, WHO | ALCOA+, shared logins, audit-trail review[^fda-di][^mhra][^pics][^who-di] |
| USP <1058> | Pharmacopoeial guidance (revision in progress) | Analytical instruments | US (USP–NF) and users elsewhere | Instrument qualification by risk[^usp1058] |
| FDA OOS guidance | Guidance | Pharmaceutical QC testing | US | Investigation phases, retest rules[^fda-oos] |
| CLIA (Clinical Laboratory Improvement Amendments) | Regulation | Human clinical testing | US | Requirements scaled by test complexity[^clia] |
| ILAC P10, ILAC G24 | Accreditation policy and guidance | Accredited labs | International | Traceability policy; recalibration intervals[^ilac-p10][^ilac-g24] |

Three cautions:

1. **GLP and ISO/IEC 17025 are not interchangeable** (see the [comparison](#deep-comparisons)).
2. **Revisions are in flight.** On 23 October 2026 the European Commission's GMP page still listed Annex 11 as the January 2011
   revision and no annex beyond Annex 21;[^eudralex] drafts of a revised Annex 11, Chapter 4 and a new Annex 22 on artificial
   intelligence (AI) were consulted on from 7 July to 7 October 2025.[^annex11-draft] Re-check before relying on either.
3. **Clinical labs have their own regimes** (CLIA in the US, national rules elsewhere, often ISO 15189 accreditation); patient
   privacy is covered on [PrivacyOps](../privacyops/) and [HealthOps](../healthops/).

### Tooling landscape

Choose the category before the brand. Examples were checked on 2026-10-23 and are illustrations, not endorsements.

| Category | Job | Examples | Selection criteria | Risks |
|---|---|---|---|---|
| LIMS | Samples, tests, results, reports | SENAITE (open source, GPLv2, documented API);[^senaite] many commercial LIMS | Workflow fit, configuration vs code, validation support | Over-configuration, lock-in |
| ELN | Experiments, observations, protocols | eLabFTW (open source; supports the `.eln` exchange format);[^elabftw] openBIS (FAIR data management with lab notebook and inventory)[^openbis] | Structure vs freedom, export formats, signatures | Free text that cannot be queried |
| CDS / SDMS | Raw instrument data and audit trails | Instrument-vendor or independent products | Native-file retention, audit trail, user management | Data trapped in vendor formats |
| Device integration | Commands and data from instruments | SiLA 2 (Python implementation under MIT licence);[^sila][^sila-python] LADS on OPC UA;[^lads] Allotrope data formats[^allotrope] | Vendor support for your instrument mix | Partial support; drivers to maintain |
| Orchestration and scheduling | Run and book automated workflows | Vendor platforms such as Tecan LabNavigator (announced 2024)[^tecan-2024] | Instrument coverage, openness | Single-vendor dependence |
| Monitoring | Temperatures, alarms, utilisation | Sensor platforms; see [IoTOps](../iotops/) | Alarm routing, audit trail, calibration of sensors | Alarm fatigue; unvalidated data used as evidence |
| QMS | Deviations, CAPA, change control, training | Commercial eQMS or document systems | Workflow fit, e-signatures | Paper and system diverge |

**Questions that matter more than features:** can it prove who did what, when and why; can you export everything, audit trails
included; and how long does a validated configuration change take?

### Automation and AI

Lab automation (liquid handlers, plate movers, schedulers) moves the integrity problem rather than removing it: the robot's log
joins the record, jam recovery becomes a procedure, and unattended runs need alarms that reach a person.

AI helps around the record more than inside it: drafting SOP text for review, summarising deviation trends, pointing reviewers at
audit-trail anomalies, forecasting consumption. Anything that creates or changes a GxP record or decides a result is risky. The
draft EU Annex 22 is not final ([caution 2 above](#methods-standards-and-frameworks)); until it is, treat AI tools that touch
regulated data as computerised systems that need validation.

## LabOps in practice

### Reference implementation: operating artefacts

Artefacts for an **illustrative** 20-person testing lab; field names are examples, not a standard.

**1. Submission and acceptance record.** Custody starts here; acceptance criteria are written in advance.

_Example status: YAML syntax-checked by the Atlas validator; fictional data._

```yaml
submission:
  id: SUB-2026-0412
  customer: Example Pharma Ltd (fictional)
  submitted_by: { name: "R. Patel", signed_at: "2026-10-20T07:40:00Z" }
  samples:
    - customer_ref: BATCH-77-A
      matrix: tablet
      quantity: "20 units"
      tests: [assay-hplc, dissolution]
      storage_required: "15-25 C"
acceptance_criteria:          # decided before receipt, versioned with the SOP
  - container intact and sealed
  - label matches the submission form
  - quantity >= quantity required by the requested tests
  - temperature logger within range for the whole transit
receipt:
  received_by: a.rivera       # a named person, never "receiving"
  received_at: "2026-10-20T08:02:00Z"
  outcome: accepted           # accepted | rejected | accepted_with_deviation
  deviation: null
  lab_id: S-0001
```

**2. Instrument register entry**, the source for "may this instrument be used today?"

_Example status: YAML syntax-checked; fictional data._

```yaml
instrument:
  id: HPLC-02
  type: HPLC with UV detector
  location: QC lab, room 2.14
  owner: j.chen
  qualification: { iq: 2025-03-04, oq: 2025-03-06, pq: 2025-03-20 }
  calibration:
    last: 2026-06-30
    interval_days: 184          # justified and reviewed (see ILAC G24)
    due: 2026-12-31
  status: in_service            # in_service | out_of_service | quarantined
  software: { cds_version: "x.y (validated 2025-03)", audit_trail: enabled }
  maintenance_sop: SOP-EQ-014
booking_rule: refuse booking if status != in_service or today > calibration.due
```

**3. Status rules the LIMS enforces** (written as requirements for the configuration, reviewed by QA):

| Rule | Check at | Action when it fails |
|---|---|---|
| Sample status is `in_test` and not quarantined | Result entry | Block entry; open deviation |
| Instrument is in service and in calibration on the acquisition date | Run start and result entry | Block; notify instrument owner |
| Every reagent lot used is in date on the use date | Run start | Block; list expired lots |
| Analyst is trained on the current method version | Run start | Block; notify lab manager |
| Reviewer is not the analyst | Review sign-off | Block sign-off |

### Hands-on labs

**All three labs were executed for this page** on 2026-10-23 with Python 3.8.10 and SQLite 3.31.1 (standard library only); the
expected outputs are copied from those runs. Fictional data; they write only to the current directory.

#### Lab 1 (beginner): an append-only custody ledger

**Objective:** see how "never overwrite, correct with a reason" and custody-gap detection work, using a database you can inspect.

**Prerequisites:** Python 3.8 or later. **Cost and risk:** none; creates one file, `custody.db`.

1. Save the script as `custody.py`.
2. Run `python3 custody.py custody.db`.
3. Open the database with any SQLite browser and look at the `custody_event` table and its triggers.

_Example status: executed (Python 3.8.10, SQLite 3.31.1)._

```python
"""Lab 1: an append-only custody ledger in SQLite (Python standard library only)."""
import sqlite3
import sys

db = sqlite3.connect(sys.argv[1] if len(sys.argv) > 1 else "custody.db")
db.executescript("""
CREATE TABLE IF NOT EXISTS custody_event (
  seq        INTEGER PRIMARY KEY AUTOINCREMENT,
  sample_id  TEXT NOT NULL,
  event      TEXT NOT NULL CHECK (event IN
             ('received','stored','transferred','consumed','disposed','correction')),
  from_party TEXT,
  to_party   TEXT NOT NULL,
  location   TEXT NOT NULL,
  actor      TEXT NOT NULL,          -- a named person, never a shared account
  at_utc     TEXT NOT NULL,          -- ISO 8601, recorded when it happens
  reason     TEXT                    -- mandatory for corrections
);
CREATE TRIGGER IF NOT EXISTS no_update BEFORE UPDATE ON custody_event
BEGIN SELECT RAISE(ABORT, 'custody events are append-only: add a correction'); END;
CREATE TRIGGER IF NOT EXISTS no_delete BEFORE DELETE ON custody_event
BEGIN SELECT RAISE(ABORT, 'custody events cannot be deleted'); END;
CREATE TRIGGER IF NOT EXISTS correction_needs_reason BEFORE INSERT ON custody_event
WHEN NEW.event = 'correction' AND (NEW.reason IS NULL OR trim(NEW.reason) = '')
BEGIN SELECT RAISE(ABORT, 'a correction needs a reason'); END;
""")

events = [
    ("S-0001", "received", None, "Receiving", "Dock-1", "a.rivera",
     "2026-10-20T08:02Z", None),
    ("S-0001", "stored", "Receiving", "Freezer F-07", "F-07/R2/B4", "a.rivera",
     "2026-10-20T08:15Z", None),
    ("S-0001", "transferred", "Freezer F-07", "Chem QC", "QC bench 3", "j.chen",
     "2026-10-21T09:40Z", None),
    ("S-0002", "received", None, "Receiving", "Dock-1", "a.rivera",
     "2026-10-20T08:05Z", None),
    # Gap: S-0002 shows up in QC without a recorded handover from Receiving.
    ("S-0002", "transferred", "Freezer F-07", "Chem QC", "QC bench 3", "j.chen",
     "2026-10-21T09:41Z", None),
]
INSERT = ("INSERT INTO custody_event (sample_id, event, from_party, to_party,"
          " location, actor, at_utc, reason) VALUES (?,?,?,?,?,?,?,?)")
db.executemany(INSERT, events)
db.commit()

try:
    db.execute("UPDATE custody_event SET location = 'QC bench 4' WHERE seq = 3")
except sqlite3.DatabaseError as exc:
    print("blocked:", exc)

# Each event's from_party must equal the previous to_party for the same sample.
gaps = db.execute("""
SELECT e.sample_id, e.seq, p.to_party AS last_holder, e.from_party AS claimed_from
FROM custody_event e
JOIN custody_event p ON p.sample_id = e.sample_id
 AND p.seq = (SELECT max(seq) FROM custody_event x
              WHERE x.sample_id = e.sample_id AND x.seq < e.seq)
WHERE e.event <> 'correction' AND e.from_party IS NOT p.to_party
ORDER BY e.sample_id, e.seq""").fetchall()
for sample, seq, last, claimed in gaps:
    print(f"custody gap: {sample} event {seq}: last holder {last!r}, "
          f"event claims {claimed!r}")
print(f"{db.execute('SELECT count(*) FROM custody_event').fetchone()[0]} events, "
      f"{len(gaps)} gap(s)")

# A late entry is added as a correction with a reason; the original gap stays visible.
fix = ("S-0002", "correction", "Receiving", "Freezer F-07", "F-07/R2/B4", "a.rivera",
       "2026-10-21T10:05Z", None)
for reason in (None, "Late entry: moved to F-07 at 08:20Z per freezer door log"):
    try:
        db.execute(INSERT, fix[:7] + (reason,))
        db.commit()
        print("correction recorded for S-0002")
    except sqlite3.DatabaseError as exc:
        print("blocked:", exc)
```

**Expected output** (first run on a new file):

```text
blocked: custody events are append-only: add a correction
custody gap: S-0002 event 5: last holder 'Receiving', event claims 'Freezer F-07'
5 events, 1 gap(s)
blocked: a correction needs a reason
correction recorded for S-0002
```

**Validation:** the update and the reason-less correction were refused; the S-0002 gap was found; the reasoned correction was
stored. Query `SELECT seq, event, reason FROM custody_event`: event 5 is still there next to the correction. **The record of the
gap survives its explanation**, which is what an auditor wants to see.

**Troubleshooting:** a second run appends again (11 events, 4 gaps); delete `custody.db` to restart. `database is locked`:
another program has the file open.

**Limits:** the file's owner can drop triggers or edit the file; real systems add audit trails, access control, separate
administrator rights and backups.

**Teardown:** `rm custody.db`.

#### Lab 2 (intermediate): a release gate between instruments and analysis

**Objective:** build the LabOps-to-BioOps handoff: only files from registered samples in test, from instruments in service and
in calibration, leave the lab, with checksums.

**Prerequisites:** Bash and Python 3.8 or later. **Cost and risk:** none; writes only to `./lab2`.

1. Create the practice landing zone with the setup script below (`bash setup_lab2.sh`).
2. Save the gate as `gate.py` and run
   `python3 gate.py lab2/drop lab2/lims_samples.csv lab2/instruments.csv 2026-10-23`.
3. Read `lab2/manifest.json`.

_Example status: executed (Bash, Python 3.8.10)._

```bash
#!/usr/bin/env bash
# Creates a practice landing zone with fake instrument output.
# Safe: writes only to ./lab2 in the current directory.
set -euo pipefail
mkdir -p lab2/drop
cat > lab2/lims_samples.csv <<'CSV'
sample_id,status,project
S-0001,in_test,PRJ-A
S-0002,in_test,PRJ-A
S-0003,received,PRJ-B
CSV
cat > lab2/instruments.csv <<'CSV'
instrument_id,calibration_due,status
HPLC-02,2026-12-31,in_service
PLATE-01,2026-10-01,in_service
CSV
printf 'time,signal\n0.0,0.01\n0.1,0.35\n' > lab2/drop/HPLC-02_S-0001_R001.csv
printf 'time,signal\n0.0,0.02\n0.1,0.33\n' > lab2/drop/HPLC-02_S-0002_R001.csv
cp lab2/drop/HPLC-02_S-0002_R001.csv lab2/drop/HPLC-02_S-0002_R002.csv
printf 'well,od\nA1,0.41\n' > lab2/drop/PLATE-01_S-0001_R001.csv
printf 'well,od\nA1,0.38\n' > lab2/drop/HPLC-02_S-0003_R001.csv
printf 'well,od\nA1,0.40\n' > lab2/drop/HPLC-02_S-0099_R001.csv
printf 'junk\n' > lab2/drop/export_final_v2.csv
echo "created $(ls lab2/drop | wc -l) files in lab2/drop"
```

_Example status: executed (Python 3.8.10)._

```python
"""Lab 2: a release gate between instruments and analysis (standard library only).

Usage: python3 gate.py DROP_DIR LIMS_CSV INSTRUMENTS_CSV YYYY-MM-DD
Writes DROP_DIR/../manifest.json for accepted files and prints every rejection.
"""
import csv
import datetime as dt
import hashlib
import json
import pathlib
import re
import sys

NAME = re.compile(r"^(?P<instrument>[A-Z]+-\d{2})_"
                  r"(?P<sample>S-\d{4})_(?P<run>R\d{3})\.csv$")


def load(path, key):
    with open(path, newline="") as fh:
        return {row[key]: row for row in csv.DictReader(fh)}


def main(drop, lims_csv, instr_csv, today):
    samples = load(lims_csv, "sample_id")
    instruments = load(instr_csv, "instrument_id")
    day = dt.date.fromisoformat(today)
    accepted, rejected, seen = [], [], {}
    for f in sorted(pathlib.Path(drop).iterdir()):
        if not f.is_file():
            rejected.append((f.name, ["not a regular file"]))
            continue
        digest = hashlib.sha256(f.read_bytes()).hexdigest()
        m = NAME.match(f.name)
        problems = []
        if not m:
            problems.append("name does not follow INSTRUMENT_SAMPLE_RUN.csv")
        else:
            s, i = samples.get(m["sample"]), instruments.get(m["instrument"])
            if s is None:
                problems.append(f"sample {m['sample']} is not registered in the LIMS")
            elif s["status"] != "in_test":
                problems.append(f"sample {m['sample']} has status {s['status']!r}")
            if i is None:
                problems.append(f"instrument {m['instrument']} is unknown")
            elif i["status"] != "in_service":
                problems.append(f"{m['instrument']} has status {i['status']!r}")
            elif dt.date.fromisoformat(i["calibration_due"]) < day:
                problems.append(f"{m['instrument']} calibration overdue since "
                                f"{i['calibration_due']}")
        if digest in seen:
            problems.append(f"identical content to {seen[digest]}")
        seen.setdefault(digest, f.name)
        if problems:
            rejected.append((f.name, problems))
        else:
            accepted.append({"file": f.name, "sha256": digest, "bytes": f.stat().st_size,
                             "sample_id": m["sample"], "instrument_id": m["instrument"],
                             "run": m["run"], "project": samples[m["sample"]]["project"]})
    out = pathlib.Path(drop).parent / "manifest.json"
    out.write_text(json.dumps({"gate_date": today, "files": accepted}, indent=2) + "\n")
    for name, problems in rejected:
        print(f"REJECT {name}: " + "; ".join(problems))
    print(f"accepted {len(accepted)}, rejected {len(rejected)} -> {out}")
    return 1 if rejected else 0


if __name__ == "__main__":
    sys.exit(main(*sys.argv[1:5]))
```

**Expected output** (exit code 1 because files were rejected):

```text
REJECT HPLC-02_S-0002_R002.csv: identical content to HPLC-02_S-0002_R001.csv
REJECT HPLC-02_S-0003_R001.csv: sample S-0003 has status 'received'
REJECT HPLC-02_S-0099_R001.csv: sample S-0099 is not registered in the LIMS
REJECT PLATE-01_S-0001_R001.csv: PLATE-01 calibration overdue since 2026-10-01
REJECT export_final_v2.csv: name does not follow INSTRUMENT_SAMPLE_RUN.csv
accepted 2, rejected 5 -> lab2/manifest.json
```

**Validation:** `lab2/manifest.json` lists two files, each with a SHA-256 checksum, sample, instrument, run and project; every
rejection names an actionable reason.

**Troubleshooting and lessons:**

- The duplicate (R002 identical to R001) may be an innocent re-export or a copy presented as a new run; a person decides.
- Try it: set PLATE-01's status in `instruments.csv` to `quarantined`; the rejection reason becomes the status.
- The gate compares calibration with the **gate date**; a production gate should use the file's **acquisition date**, since data
  acquired before the due date is not invalid because it was uploaded late.
- `ValueError: Invalid isoformat string` means a date is not `YYYY-MM-DD`.

**Extend it:** send the manifest with the files; [BioOps](../bioops/) verifies the checksums on arrival.

**Teardown:** `rm -r lab2`.

#### Lab 3 (advanced): review an audit trail by exception

**Objective:** practise risk-based audit-trail review: turn rules into an exception report, then judge each flag.

**Prerequisites:** Python 3.8 or later; read the [data-integrity playbook](#playbook-data-integrity-at-the-bench) first.
**Cost and risk:** none. In a real lab, an exception report used for GxP review is itself a tool that must be validated.[^mhra]

1. Save the extract as `audit.csv` and the script as `review.py`.
2. Run `python3 review.py audit.csv`.
3. For each HIGH flag, write in one line what record you would ask for and who you would ask.

_Example status: fictional audit-trail extract._

```csv
ts_utc,user,action,record,reason
2026-10-20T09:12:00Z,j.chen,acquire,RUN-0412,
2026-10-20T09:55:00Z,j.chen,reprocess,RUN-0412,baseline drift; SOP-CDS-07 step 4
2026-10-20T10:03:00Z,j.chen,result_entry,RUN-0412,
2026-10-20T11:30:00Z,m.okafor,approve,RUN-0412,
2026-10-20T13:02:00Z,j.chen,result_change,RUN-0412,
2026-10-20T23:41:00Z,qclab,reprocess,RUN-0413,
2026-10-21T00:05:00Z,qclab,delete,RUN-0413-inj2,
2026-10-21T08:20:00Z,j.chen,acquire,RUN-0414,
```

_Example status: executed (Python 3.8.10)._

```python
"""Lab 3: exception report for an audit-trail extract (standard library only).

Usage: python3 review.py audit.csv
Flags are prompts for a reviewer's judgement, not findings of misconduct.
"""
import csv
import sys

GENERIC = {"admin", "qclab", "lab", "service", "instrument"}
NEEDS_REASON = {"reprocess", "result_change", "integration_change"}


def review(rows):
    approved = set()
    for r in rows:
        hour = int(r["ts_utc"][11:13])
        rec, act, who = r["record"], r["action"], r["user"]
        if who in GENERIC:
            yield "HIGH", r, "generic account: not attributable"
        if act == "delete":
            yield "HIGH", r, "deletion: check data kept + reason"
        if act in NEEDS_REASON and not r["reason"].strip():
            yield "HIGH", r, f"{act} without a reason"
        if act in NEEDS_REASON and rec in approved:
            yield "HIGH", r, "changed after approval"
        if hour >= 22 or hour < 5:
            yield "INFO", r, "outside staffed hours"
        if act == "approve":
            approved.add(rec)


def main(path):
    with open(path, newline="") as fh:
        flags = list(review(list(csv.DictReader(fh))))
    for level, r, why in flags:
        print(f"{level:4} {r['ts_utc'][5:16]} {r['user']:7} {r['action']:13} "
              f"{r['record']:13} {why}")
    high = sum(1 for f in flags if f[0] == "HIGH")
    print(f"{len(flags)} flags ({high} HIGH) for reviewer follow-up")


if __name__ == "__main__":
    main(sys.argv[1])
```

**Expected output:**

```text
HIGH 10-20T13:02 j.chen  result_change RUN-0412      result_change without a reason
HIGH 10-20T13:02 j.chen  result_change RUN-0412      changed after approval
HIGH 10-20T23:41 qclab   reprocess     RUN-0413      generic account: not attributable
HIGH 10-20T23:41 qclab   reprocess     RUN-0413      reprocess without a reason
INFO 10-20T23:41 qclab   reprocess     RUN-0413      outside staffed hours
HIGH 10-21T00:05 qclab   delete        RUN-0413-inj2 generic account: not attributable
HIGH 10-21T00:05 qclab   delete        RUN-0413-inj2 deletion: check data kept + reason
INFO 10-21T00:05 qclab   delete        RUN-0413-inj2 outside staffed hours
8 flags (6 HIGH) for reviewer follow-up
```

**Validation and judgement:** six HIGH flags, two INFO. Now judge them, because the script cannot:

- RUN-0412 changed **after approval, without a reason**: ask analyst and approver for the justification; the approval no longer
  covers the record.
- RUN-0413 reprocessed and an injection deleted **under a generic account at night**: not attributable. Check the deleted data
  still exists, open a deviation, remove the account.
- The 09:55 reprocessing cites an SOP step and is not flagged: reprocessing is not wrong, unexplained reprocessing is.

**Troubleshooting:** `KeyError: 'reason'` means the CSV header differs (exports vary by system; map columns first). Convert
times to UTC before applying "outside hours" rules.

**Teardown:** `rm audit.csv review.py`.

### Use cases and scenarios

All four scenarios are **illustrative**; the real cases and standards they point to are sourced.

| Scenario | Context and method | Trade-off | Success criteria |
|---|---|---|---|
| A. Contract testing lab seeking ISO/IEC 17025 accreditation | An assessor asks for one sample's handling record; nobody can produce it. Method below ([2019 warning letter](#the-problem-it-solves) for the stakes) | Receipt takes minutes longer; investigations take hours, not days | Zero custody gaps in sampled audits; TAT P90 within the service level |
| B. Pharmaceutical QC laboratory | GMP release testing; predefined OOS procedure;[^fda-oos] audit-trail review inside result review; invalidation rate reported monthly | Strict retest rules feel slow while a batch waits; loose ones invite testing into compliance | Phase I opened the same shift for every OOS; audit-trail backlog under a week |
| C. Shared research facility | Shared instruments, freezers and stockroom; rotating researchers (a real remit: Berkeley Lab's ESE Lab Ops team)[^lbl] | Heavy controls push scientists back to spreadsheets | Freezer positions match inventory on spot checks |
| D. Biobank holding material for decades | ISO 20387 covers competence and quality control of biological material and data collections[^iso20387] | Location accuracy and excursion history matter more than speed | Every aliquot locatable; consent restrictions travel with it |

**Scenario A, step by step.** (1) Trace one test from receipt to report, listing hand-overs. (2) Barcode items at receipt
against written acceptance criteria; record a custody event at each hand-over. (3) Make the register block lapsed instruments;
review exceptions weekly. (4) When a calibration is found late, list the results since the last good
calibration and compare the as-found calibration data with the tolerance: within it, record "no impact" and why; outside it,
handle the results as nonconforming work (clause 7.10)[^iso17025-toc] and decide which customers to tell (step 4 is our method, not
the standard's text).

**Pitfalls:** in A, auditing your own lab but not your testing suppliers; in B, reading a high invalidation rate as "careful
analysts" rather than as a sign of a weak method, instrument or training.

## Measure, govern, pay

### Metrics and KPIs

| KPI | Definition / formula | Data source | Pitfall | Cadence |
|---|---|---|---|---|
| Turnaround time (TAT) | Median and 90th percentile of (release − receipt), per test and priority; outlier rate = results over target ÷ all | LIMS timestamps | Mean hides the tail | Weekly |
| Right-first-time (RFT) | Results released without rework, retest or deviation ÷ results released | LIMS, QMS | Rework not recorded, so RFT looks perfect | Monthly |
| Custody completeness | Sampled items with no custody gap ÷ items sampled | Custody records | Measured only before audits | Monthly |
| Calibration on time | Calibrations done by due date ÷ calibrations due | Asset register | Extending intervals to hit the target | Monthly |
| Audit-trail review backlog | Records with unreviewed audit trail older than N days | CDS/LIMS | Reviews signed without looking | Weekly |
| OOS invalidation rate | OOS results invalidated as laboratory error ÷ all OOS results | QMS | Read as efficiency; the FDA expects lab error to be rare[^fda-oos] | Monthly |
| Instrument utilisation | Hours used ÷ hours available (excluding planned maintenance) | Booking system, instrument logs | Booked but unused hours counted as use | Monthly |
| Expired-stock write-off | Value of expired or discarded stock ÷ value consumed | Inventory | Over-ordering hidden in "safety stock" | Quarterly |

**Why median and 90th percentile?** TAT distributions are right-skewed, so the TAT literature prefers the median plus a tail
measure (outlier rate, or the time by which 90% of results are complete) over the mean; definitions differ in start and end
points, so state yours.[^hawkins]

::: example Worked calculation (illustrative month in a QC lab)
**TAT.** Ten results for one test took 1.5, 2.0, 2.2, 2.8, 3.0, 3.1, 3.5, 4.0, 6.5 and 9.0 days.

- Median = (3.0 + 3.1) ÷ 2 = **3.05 days**.
- 90th percentile (nearest rank: rank = ⌈0.9 × 10⌉ = 9) = **6.5 days**.
- Mean = 37.6 ÷ 10 = **3.76 days**, pulled up by two slow results.
- With a 5-day target, the outlier rate = 2 ÷ 10 = **20%**. The median looks healthy; one result in five breaks the promise.

**RFT.** 1,240 results released; 37 needed a retest, rework or deviation: RFT = 1,203 ÷ 1,240 = **97.0%**.

**OOS invalidation.** 11 of 18 OOS results invalidated as laboratory error: **61%**, the number to worry about (see the mastery
check).

**Calibration on time.** 44 of 46 done by the due date: **95.7%**; the two late ones need an impact assessment of results
since the last good calibration ([method](#use-cases-and-scenarios)). **Utilisation.** HPLC-02 used 118 of 160 hours: **73.8%**; judge it with the queue.
:::

**Leading vs lagging:** calibrations due in 30 days, audit-trail backlog and low stock lead; TAT, RFT and audit findings lag.

### Quality, security, privacy and compliance

- **Least privilege.** Analysts without administrator rights on systems holding their data; access matched to job roles, with
  a history of access levels kept (MHRA).[^mhra] Contemporaneous records also need synchronised clocks.
- **Instrument PCs.** Segment them (see the [reference architecture](#reference-architecture)), restrict removable media, back up
  native data, plan replacement. The OECD has GLP documents on IT security (2024) and cloud computing (2023).[^oecd-docs]
- **Retention.** Periods come from regulation and contract (US GLP: 21 CFR 58.195, including calibration and maintenance
  records).[^cfr58] Keep native files readable; test restores ([BackupOps](../backupops/)).
- **Privacy.** Label human samples with lab IDs, keep the identity mapping only where needed, and let consent restrictions travel
  with the sample ([PrivacyOps](../privacyops/); not legal advice).
- **Safety.** Biosafety and EHS are separate disciplines; LabOps owns records such as the verified status of material moving
  between containment levels (the [2014 CDC incident](#the-problem-it-solves)).

### Cost, capacity and sustainability

**Cost drivers** are mostly people's time: transcription, searching, rework, audit preparation, investigations; system costs are
licences, configuration, validation and interfaces. Ignore ROI claims you cannot check; measure your own transcription and rework
hours before and after a change.

**Capacity** is usually limited by a few bottleneck instruments and the people qualified to run them; add capacity where the
queue forms, not where utilisation merely looks high.

**Sustainability is material.** An NIH newsletter says lab space can use up to five times the energy of office space per square
foot; Cornell cites Harvard's "more than three times".[^nems][^cornell] Two levers sit with LabOps:

- **Cold storage.** The NIH newsletter reports that −70 °C instead of −80 °C can cut ultra-low temperature (ULT) freezer energy
  use by 30%, and that most samples are fine at −70 °C;[^nems] confirm stability for your materials first. My Green Lab's
  International Freezer Challenge has run since 2017; the organiser reports 137 million kWh saved.[^freezer]
- **Fume hoods**, which the same source says can be up to twice as energy-intensive as ULT freezers: closed sashes are
  measurable.[^nems]

### Assurance of the operating model

| Signal | What it tells you |
|---|---|
| Exception-report trend | Whether controls work or are worked around |
| Internal audit findings by clause | Which parts of the system are weak |
| Proficiency testing | Whether results agree with other labs[^oecd-18] |
| Periodic system evaluation | Whether computerised systems remain in a valid state[^annex11] |
| CAPA effectiveness; complaints | Whether fixes worked; where the promise breaks |

**Audit your own audit:** each quarter, reconstruct five random released results end to end from records alone. If that takes
days, the next external audit will hurt.

## When things go wrong

### Common failures and troubleshooting

| Symptom | Likely cause | Diagnosis | Remediation | Prevention |
|---|---|---|---|---|
| Result does not fit the sample's history | Swap or mislabel | Custody trail, scan logs, aliquot tree; genomic identity check ([BioOps](../bioops/)) | Quarantine; retest retained material | Scan at every handover |
| Auditor finds a calibration overdue | Reminder-based programme | Asset register vs. use logs | Impact assessment of results since the last good calibration | System blocks use after due date |
| Two versions of the same result | Reprocessing, transcription, or both | Audit trail of CDS and LIMS | Determine the valid one with justification; deviation | Interface instead of retyping |
| Expired reagent used | Opened date not recorded; first-expiry-first-out (FEFO) ignored | Lot records against runs | Assess impact; retest if needed | Run start checks lot expiry |
| Freezer alarm unanswered overnight | Alarm routed to a shared mailbox | Alarm log, on-call list | See runbook below | Escalation chain with acknowledgement |
| Reviews "done", nothing found for months | Signing without reviewing | Re-review a sample | Retrain | QA spot checks |

### Worked runbook: ultra-low temperature freezer excursion

**Illustrative scenario.** At 02:10 the monitoring system alarms: freezer F-07 (set point −70 °C) reads −52 °C and rising. It
holds 9 racks of customer and study samples.

::: figure Runbook for a freezer temperature excursion
```mermaid
flowchart TB
  A["Alarm: F-07 above alert limit"] --> B{"On-call acknowledges within 15 min?"}
  B -- no --> C["Escalate to second contact and lab manager"]
  C --> D
  B -- yes --> D{"Temperature still rising?"}
  D -- yes --> E["Move racks to the reserved backup freezer, record times"]
  D -- no --> F["Check door, power, alarm sensor; keep monitoring"]
  E --> G["Mark affected samples quarantined in the LIMS"]
  F --> G
  G --> H["Record peak temperature and duration from the logger"]
  H --> I{"Within stability data for each material?"}
  I -- yes --> J["QA releases samples, note on future results"]
  I -- no --> K["QA decides: discard, test with caveat, inform owners"]
  J --> L["Deviation and CAPA: cause, fix, check effectiveness"]
  K --> L
  classDef risk fill:#fbeceb,stroke:#b4332b,color:#122029
  classDef decision fill:#fdf3e3,stroke:#c9800f,color:#122029
  classDef core fill:#e8f3f2,stroke:#16756f,color:#122029
  class A,C,E,K risk
  class B,D,I decision
  class F,G,H,J,L core
```
Text equivalent: the alarm fires when F-07 passes its alert limit; without acknowledgement within 15 minutes it escalates to a
second contact and the lab manager. If the temperature is still rising, racks move to a reserved backup freezer; otherwise staff
check door, power and sensor. Either way the samples are quarantined in the LIMS and the peak temperature and duration taken
from the logger. Within stability data for each material, QA releases them with a note; otherwise QA decides whether to discard
or test with a caveat, and informs the owners. A deviation and CAPA record cause, fix and effectiveness check.
:::

What the diagram does not show: acknowledgement is recorded by the monitoring system (the 15-minute limit is this example's
choice); the backup freezer is **reserved in advance**, with time out and time in recorded per rack; quarantine happens **in the
system, not just the room**, so nobody tests a sample tomorrow before QA decides; and the logger's own calibration is checked
before its peak temperature is trusted.

### Anti-patterns and myths

- **"The LIMS will fix it."** A LIMS automates the process you configure; a messy process becomes a fast messy process with an
  audit trail. Map the sample lifecycle first.
- **Shared "lab" accounts and printed-then-deleted chromatograms.** Both save minutes and destroy the record (see the
  [data-integrity playbook](#playbook-data-integrity-at-the-bench)).
- **Measuring only speed.** TAT targets without RFT and invalidation rates reward shortcuts.
- **Myth: "ALCOA+ is a different standard from ALCOA."** MHRA says there is no difference in expectations whichever acronym is
  used.[^mhra]
- **Gold-plating a research lab.** Full GxP validation for exploratory work drives scientists to private spreadsheets, worse for
  integrity than proportionate controls.

## Deciding and adopting

### When to use and when not to use

**Invest in a deliberate LabOps practice when** several of these hold: others rely on your results (customers, regulators,
clinicians, publications); samples pass through several people or locations; instruments are shared; you are or will be
inspected or accredited; or you already lose time to searching, rework and audit preparation.

**Keep it light, or do not build a dedicated function, when** a small team runs exploratory work whose results never leave the
group, with few shared instruments and no external obligations. One accountable lab manager, a sample spreadsheet with unique IDs,
an ELN and a calibration list may be enough. Over-building costs validation effort for every change, licence fees, and an
administrative layer scientists route around.

**Exit conditions:** obligations ended, volume dropped, or a partner lab took over testing. Records keep their retention period.

### Decision framework

::: figure Choosing how much laboratory system you need
```mermaid
flowchart TB
  A{"Do results leave the group or support regulated decisions?"} -- no --> B{"Shared instruments or many sample handovers?"}
  B -- no --> C["Light: lab manager, ELN, sample sheet with unique IDs"]
  B -- yes --> D["Registry: barcodes, inventory, booking, ELN"]
  A -- yes --> E{"GLP, GMP, clinical or accreditation in scope?"}
  E -- no --> D
  E -- yes --> F{"Repeated, standard tests at volume?"}
  F -- yes --> G["LIMS with audit trails, validated to the rules that apply"]
  F -- no --> H["Validated ELN and registry with GxP controls"]
  classDef decision fill:#fdf3e3,stroke:#c9800f,color:#122029
  classDef core fill:#e8f3f2,stroke:#16756f,color:#122029
  classDef neutral fill:#f1f4f6,stroke:#5b7a87,color:#122029
  class A,B,E,F decision
  class G,H core
  class C,D neutral
```
Text equivalent: if results stay in the group, a light setup (lab manager, ELN, sample sheet with unique IDs) suffices unless
instruments are shared or handovers many, which calls for a registry with barcodes, inventory and booking. If results leave the
group but no GLP, GMP, clinical or accreditation rules apply, the registry is still the answer. Where such rules apply, repeated
standard tests at volume call for a validated LIMS with audit trails; varied low-volume work for a validated ELN and registry.
:::

For a tool choice within a branch, weight criteria explicitly. An illustrative weighting for a regulated QC lab:

| Criterion | Weight |
|---|---|
| Audit trail, access control, e-signatures | 25% |
| Fit to your sample and test workflow (configuration effort) | 20% |
| Export of all data and audit trails in open formats (exit, retention) | 15% |
| Instrument integration (standards, existing drivers) | 15% |
| Validation support and effort per change | 15% |
| Licence and hosting cost | 10% |

Assumptions: regulated work, 5–10 year horizon, a small informatics team. A research lab would move weight from validation to
usability.

### Maturity model

This is **this Atlas's model**, not an industry standard.

| Level | Observable behaviour | Evidence to exit the level | Typical constraint |
|---|---|---|---|
| 1. Ad hoc | Personal spreadsheets, paper booking, calibration stickers, shared logins | Unique sample IDs; named accounts everywhere | No owner |
| 2. Documented | SOPs for receipt, custody, calibration; registers kept by hand | Custody event at every handover; complete calibration register | Manual effort |
| 3. Systematised | LIMS or registry with barcodes; audit trails on; lots and expiry tracked | Use blocked when calibration lapses; weekly exception review | Validation capacity |
| 4. Integrated | Direct instrument capture; release gate to analysis; acknowledged alarms | Hand transcription below a set share; checksummed manifests | Legacy instruments |
| 5. Measured | TAT, RFT and invalidation rate reviewed monthly; random reconstructions | Trends improve after CAPAs; reconstructions take hours | Quality of the metric data |

### Adoption roadmap: 30/60/90 days

| Window | Actions | Quick wins | Milestone metric |
|---|---|---|---|
| Days 1–30 | Map obligations and the sample lifecycle; remove shared accounts; list instruments with calibration status | Shared logins gone; overdue calibrations visible | 100% of instruments registered |
| Days 31–60 | Unique IDs and barcodes at receipt; custody events; reagent expiry labels; weekly exception review | No unlabelled samples in storage | Custody completeness measured |
| Days 61–90 | Choose or reconfigure systems (decision framework); block-on-lapse rule; first TAT and RFT report; first reconstruction | First monthly operations review | Baselines for TAT, RFT, invalidation rate |

Dependencies: QA sign-off, informatics time, and a sponsor who protects analysts' time. LIMS selection and validation usually run
beyond 90 days; this quarter builds their foundation.

## Toolkit

### Checklists

**Quick start (first week)**

- [ ] Named accounts for everyone who creates or changes data; audit trails on wherever available
- [ ] Every stored sample has a unique ID and a known location
- [ ] Every instrument listed with qualification and calibration status
- [ ] Every reagent in use shows identity, concentration, storage condition and expiry

**System go-live readiness**

- [ ] [Validation approach](#qualification-and-validation-proportionately) approved by QA; requirements traced to executed tests
- [ ] Legacy data migrated and verified, or frozen read-only
- [ ] Administrators separate from analysts; SOPs updated; users trained; parallel run reviewed
- [ ] Backup, restore and native data export tested

**Audit and inspection preflight**

- [ ] Five random results reconstructed end to end from records alone
- [ ] Training records match current method versions; periodic system evaluations current
- [ ] CAPAs from the last audit closed with effectiveness checks

### Templates

**One-page LabOps charter**

```text
LABOPS CHARTER - <lab name>                         Version <n>, approved <date>
Mission     Every released result is traceable to sample, method, instrument,
            materials and people, and is produced on time.
Scope       Receipt to release; storage; instruments; inventory; lab records.
Out         Study design; analysis pipelines; purchasing; EHS programme.
Rules       <GLP / GMP / ISO/IEC 17025 / ISO 15189 / clinical / none> - owner: QA
Owner       Lab manager <name>; QA <name>; informatics <name>
Metrics     TAT median and P90; RFT; custody completeness; calibration on time;
            audit-trail backlog; OOS invalidation rate
Cadence     Daily huddle; weekly exceptions; monthly ops review;
            quarterly management review
Escalation  Anything that may affect a released result -> QA the same day
```

**SOP skeleton: sample receipt and accessioning**

```text
SOP-SR-001  Sample receipt and accessioning                     Version <n>
1 Purpose     Establish identity and custody of every sample at receipt.
2 Scope       All samples delivered to <lab>; excludes <...>.
3 Roles       Receiving analyst (R); lab manager (A); QA (C).
4 Materials   Label printer, label stock rated for <storage>, scanner.
5 Procedure   5.1 Check form and container against acceptance criteria.
              5.2 Record receipt time, receiver and condition in the LIMS.
              5.3 Assign lab ID; print and apply label; scan to verify.
              5.4 Store at the required condition; record location.
              5.5 If a criterion fails: reject, or record a deviation and
                  inform the customer before testing.
6 Records     Receipt record, custody events, deviation (if any).
7 References  <rules, customer agreements>
```

**Deviation record**

```text
DEVIATION <id>   Opened <date/time> by <name>
What happened    <facts only: what, where, when, which samples/instruments>
Immediate action <containment, quarantine>
Impact           Results affected: <list or "none, because ...">
Root cause       <method used; evidence>
CAPA             <action> - owner <name> - due <date>
Effectiveness    Check on <date>: <criterion and result>
Approved by QA   <name, date>
```

### Deep comparisons

**Quality frameworks side by side.** This is the page's one comparison of GLP and ISO/IEC 17025: the OECD calls them documents
with different purposes, and applying one to meet the purposes of the other is "impractical, and in many cases would be
inappropriate".[^oecd-18]

| Aspect | OECD GLP / 21 CFR 58 | ISO/IEC 17025 | ISO 15189 | GMP QC laboratory |
|---|---|---|---|---|
| Purpose | Regulatory control of non-clinical safety studies | Competence of testing and calibration labs | Quality and competence of medical labs | Quality of medicines released to market |
| Unit of work | The study | The test or calibration within scope | The examination | The batch and its tests |
| Checked by | Government GLP monitoring inspections | Accreditation body | Accreditation body; clinical regulators by country | Medicines inspectors |
| Typical LabOps emphasis | Study records, QA unit, archives | Traceability, validity of results, technical records | Pre-analytical control, TAT, patient identity | OOS, data integrity, release |

Sources for the table: OECD's position paper on GLP and ISO/IEC 17025,[^oecd-18] 21 CFR 58,[^cfr58] the ISO pages,[^iso17025][^iso15189]
and the FDA's guidance.[^fda-oos][^fda-di] Details vary by country.

### FAQ

**Is LabOps a job title or a department?**
Both, where it exists (lab operations managers and associates; "Lab Ops" teams).[^lou][^lbl] Often the work is split between the
lab manager, QA and informatics without the label.

**Do we need a LIMS to be ISO/IEC 17025 accredited?**
The standard names no product; its clauses cover control of data and information management (7.11) and technical records
(7.5).[^iso17025-toc] **Editorial view, not from the standard's text:** controlled paper and spreadsheets can work at low volume,
but controlling them becomes expensive as volume grows; ask your accreditation body how it assesses them.

**Is ALCOA+ a regulation?**
No. It is a widely used summary of data-integrity expectations that appears in regulators' guidance (MHRA, PIC/S) and is built on
legal requirements such as 21 CFR 58.130(e) and Part 11 in the US.[^mhra][^pics][^cfr58][^cfr11]

**Where exactly does LabOps hand over to BioOps?**
At the release gate: a checked instrument file plus sample metadata ([Lab 2](#lab-2-intermediate-a-release-gate-between-instruments-and-analysis)).
Sample identity is checked on both sides.

**Are research labs subject to GLP?**
US GLP defines a nonclinical laboratory study as one that determines the safety of a test article, and excludes basic exploratory
studies.[^cfr58] Many research labs fall under no GxP rule, though funders and partners may still expect traceable records.

## Going further

### Advanced topics and emerging direction

- **Established, unevenly adopted:** standard instrument interfaces. SiLA 2 version 1.1 added a server-initiated connection
  for cloud scenarios;[^sila] LADS brings lab devices to OPC UA.[^lads] Vendor coverage of your instrument mix is the limit.
- **Maturing:** standardised data formats (Allotrope Simple Models in JSON, the `.eln` exchange format) that aim to keep records
  usable beyond one product.[^allotrope][^elabftw] One interface for mixed fleets, as vendors describe it, is a claim to test on
  your instruments.[^tecan-2024]
- **Pending:** EU Annex 11, Chapter 4 and Annex 22 ([caution 2](#methods-standards-and-frameworks)); USP <1058>
  ([qualification](#qualification-and-validation-proportionately)).
- **Speculative:** autonomous "self-driving" labs in routine regulated testing. Attribution, custody and review do not disappear
  when the operator is software.

### Learning path

| Stage | What to do | Output |
|---|---|---|
| 1 day | Read the FDA data-integrity Q&A and MHRA's definitions;[^fda-di][^mhra] run Lab 1 | A one-paragraph ALCOA+ definition with a bench example |
| 1 week | Map one sample type's lifecycle with every handover; run Labs 2 and 3; compute TAT median and P90 for one test | Lifecycle map, first metrics sheet |
| 30 days | Run a weekly exception review; reconstruct five results; revise the receipt SOP from the template | A gap list ranked by risk |
| Specialise | Quality (GLP/GMP, ISO/IEC 17025 internal auditor), informatics (LIMS, SiLA/LADS), or operations (capacity, inventory, sustainability) | A portfolio project, e.g. a release gate for one instrument family |

Communities such as LabOps Unite run webinars and chapters;[^lou] credentials are in the [note on the label](#in-30-seconds).

## Wrap-up

### Executive recap and cheat sheet

| Topic | Remember |
|---|---|
| Label | Niche; the practice (laboratory operations under a quality system) is established |
| First decisions | Which rules apply; sample ID scheme; where each fact lives; how much validation the risk justifies |
| Essential practices | Custody events; named accounts and audit trails; block-on-lapse calibration; in-date reagents; review by exception |
| Metrics | TAT median + P90; RFT; custody completeness; calibration on time; audit-trail backlog; OOS invalidation rate |
| Watch-outs | Printouts of dynamic data; reminder-driven calibration; speed-only targets; gold-plating research labs |
| Next actions | Remove shared accounts; list instruments and calibration status; start a weekly exception review |

### A judgement call: buy a LIMS now, or build a registry first?

**Situation (illustrative).** A 40-person biotech runs research assays and plans GLP studies in about 18 months. Samples live in
spreadsheets, instruments are booked on a whiteboard, audit trails are off on two instruments, and there is budget for "a LIMS
this year".

**Option A: select and configure a LIMS now.** Attractive: one project, ready for GLP. Risks: GLP requirements are not yet
known, so today's research workflow is configured and later re-configured and re-validated; the project absorbs the two people
who would fix basic controls; scientists resist a heavy system for exploratory work.

**Option B: fix the foundation now, select the LIMS in about 9 months.** Named accounts and audit trails now; IDs, barcodes and
custody events in a registry; an instrument register; an ELN. Then write LIMS requirements from the GLP study plans. Risks: two
migrations; the registry may become a permanent workaround; the GLP start may slip if selection starts late.

**Assumptions that decide it:** (1) GLP work will differ from current research workflows; (2) basic attribution failures are the
biggest current risk; (3) the informatics team is two people; (4) the GLP date is uncertain by ±6 months.

**Reasoning.** Under these assumptions, B reduces the largest risk (unattributable, unaudited records) within weeks, and makes the
LIMS project cheaper because requirements will be known. **If** the GLP studies were starting within six months, or the registry work could not be staffed,
A would win, with a narrower first release.

**Uncertainty.** No sourced benchmark prices reconfiguration in a given product; estimate it with vendors on your own workflows.

### Learning objectives and mastery check

After this page you should be able to:

- **Explain** ALCOA+ and chain of custody with examples from your lab.
- **Select** controls, and a validation depth, from the rules and risks that apply.
- **Design** a sample lifecycle, a release gate and an exception review.
- **Operate** a freezer excursion or OOS investigation without losing the record.
- **Evaluate** a lab's maturity and choose the next three improvements.

1. A colleague says: "We print the HPLC chromatogram, sign it and file it, so we can delete the files to save space." What is
   wrong?

::: answer Answer
The chromatography file is a dynamic, reprocessable record, and the FDA says a printout does not preserve it. Keep the electronic
files with metadata and audit trail; the printout may supplement them, not replace them.
:::

2. Your TAT median is 3 days against a 5-day target, but customers complain. What do you measure next, and why?

::: answer Answer
The tail: 90th percentile and outlier rate. TAT is right-skewed; in the worked example a 3.05-day median hid a 6.5-day P90 and
20% of results over target.
:::

3. 11 of 18 OOS results last quarter were invalidated as laboratory error. Is that a sign of careful investigation?

::: answer Answer
No. The FDA expects laboratory error to be relatively rare: either methods, instruments or training are unreliable, or
investigations find "lab error" too readily. Trend the rate, read a sample of investigations, look for repeated causes.
:::

4. A sample appears in the QC lab with no record of leaving receiving. The result is already released. What do you do?

::: answer Answer
Tell QA the same day, quarantine retained material, reconstruct the movement from other evidence (scan and door logs, people),
add a correction with a reason instead of editing the old record, assess the impact, inform the customer if needed, fix the cause.
:::

5. Your lab is ISO/IEC 17025 accredited. A client asks whether that means you can run their GLP study. How do you answer?

::: answer Answer
Not automatically: the two have different purposes and different checks (see the [comparison](#deep-comparisons)). A GLP study
needs the GLP framework: study director, QA unit, archives and GLP inspection status.
:::

6. Two vendor patches arrive for your validated LIMS: one changes report fonts, the other changes how a calculated result is
   rounded. Do both need re-testing?

::: answer Answer
Both go through change control with a documented risk assessment. The font change cannot alter results: record the assessment
and check a report. The rounding change alters what the system calculates: re-test the affected calculations before release
(see [qualification and validation](#qualification-and-validation-proportionately)).
:::

### Conclusion

LabOps is a small word for an old discipline. The label belongs to a community of practitioners and a few vendors; the practice
belongs to every laboratory whose results someone else relies on. Its core is unglamorous: sample identity and custody, status
the system checks, data never overwritten, review by exception. Name the rules that apply, validate in proportion to risk, and do not gold-plate the rest.

The test of a laboratory's operations is not how fast it produced a result, but how quickly and convincingly it can show, months
later, where that result came from. A lab that can reconstruct a result in an hour has good LabOps, whatever it calls them.

## Sources and further reading

All sources were opened and checked on 2026-10-23. Where a site refused automated access, the archived copy that was read is
named. Evidence ledger: `research/labops-ledger.md`.

**The label and its community**

[^lou]: [LabOps Unite home page](https://labopsunite.org/) — LabOps Unite; read from the [archived copy of 2026-10-08](https://web.archive.org/web/20261008095201/https://labopsunite.org/). Checked 2026-10-23.
[^massbio]: [MassBio & LabOps Unite Announce Partnership to Strengthen the Life Sciences Ecosystem](https://www.massbio.org/?p=504117) — MassBio, 2025-03-04. Checked 2026-10-23.
[^em-report]: [The State of LabOps](https://resources.industrydive.com/the-state-of-labops) — Elemental Machines, landing page (2021); report gated. Checked 2026-10-23.
[^tecan-labops]: [What is LabOps?](https://web.archive.org/web/20250426111004/https://www.tecan.com/knowledge-portal/what-is-labops) — Tecan Knowledge Portal, archived 2025-04-26 (live page now 404). Checked 2026-10-23.
[^tecan-2024]: [Tecan launches digital tools to enhance lab productivity at SLAS 2024](https://www.tecan.com/customer-news/tecan-launches-digital-tools-to-enhance-lab-productivity-at-slas-2024-2403) — Tecan, 2024-01-30. Checked 2026-10-23.
[^lbl]: [ESE - Lab Ops](https://ese.lbl.gov/lab-ops) — Lawrence Berkeley National Laboratory, ESE division, undated. Checked 2026-10-23.
[^keysight]: [Getting the Most From The Lab (Lab Operations for Networking)](https://www.keysight.com/us/en/solutions/network-test/network-test-automation/software-defined-labs.html) — Keysight, undated. Checked 2026-10-23.
[^casrai]: [Laboratory Operations Management — Professional (LOMP)](https://casrai.org/certifications/laboratory-operations-management-professional) — CASRAI, page as of 2026-10-23. Checked 2026-10-23.
[^tga]: [MSL60122 Advanced Diploma of Laboratory Management, Release 1](https://training.gov.au/assets/MSL/MSL60122_R1.pdf) — training.gov.au, 2022-12-20 (supersedes MSL60118 Advanced Diploma of Laboratory Operations; live register status not confirmed). Checked 2026-10-23.

**Data integrity, records and computerised systems**

[^fda-di]: [Data Integrity and Compliance With Drug CGMP: Questions and Answers](https://www.fda.gov/regulatory-information/search-fda-guidance-documents/data-integrity-and-compliance-drug-cgmp-questions-and-answers) — U.S. FDA, guidance for industry, December 2018. Checked 2026-10-23.
[^mhra]: ['GXP' Data Integrity Guidance and Definitions, Revision 1](https://assets.publishing.service.gov.uk/media/5aa2b9ede5274a3e391e37f3/MHRA_GxP_data_integrity_guide_March_edited_Final.pdf) — UK MHRA, March 2018. Checked 2026-10-23.
[^pics]: [PI 041-1 Good Practices for Data Management and Integrity in Regulated GMP/GDP Environments](https://picscheme.org/docview/4234) — PIC/S, 1 July 2021. Checked 2026-10-23.
[^who-di]: [TRS 1033 - Annex 4: WHO Guideline on data integrity](https://www.who.int/publications/m/item/annex-4-trs-1033) — WHO, 2021; [guideline PDF](https://cdn.who.int/media/docs/default-source/medicines/norms-and-standards/guidelines/inspections/trs1033-annex4-guideline-on-data-integrity.pdf). Checked 2026-10-23.
[^cfr11]: [21 CFR Part 11 — Electronic Records; Electronic Signatures](https://www.ecfr.gov/current/title-21/chapter-I/subchapter-A/part-11) — eCFR, current text. Checked 2026-10-23.
[^annex11]: [EudraLex Volume 4, Annex 11: Computerised Systems](https://health.ec.europa.eu/system/files/2016-11/annex11_01-2011_en_0.pdf) — European Commission, revision January 2011. Checked 2026-10-23.
[^annex15]: [EudraLex Volume 4, Annex 15: Qualification and Validation](https://health.ec.europa.eu/document/download/7c6c5b3c-4902-46ea-b7ab-7608682fb68d_en?filename=2015-10_annex15.pdf) — European Commission, in operation since 1 October 2015. Checked 2026-10-23.
[^eudralex]: [EudraLex - Volume 4 - Good Manufacturing Practice (GMP) guidelines](https://health.ec.europa.eu/medicinal-products/eudralex/eudralex-volume-4_en) — European Commission, page as of 2026-10-23. Checked 2026-10-23.
[^usp1058]: [Proposed Update to USP <1058> on Analytical Instrument and System Qualification](https://www.gmp-compliance.org/gmp-news/proposed-update-to-usp-1058-on-analytical-instrument-and-system-qualification) — ECA Academy, 2025-03-12 (secondary report). Checked 2026-10-23.
[^usp-ws]: [USP AISQ Virtual Workshop: ECA AQCG Board Members Contributed as Speakers](https://www.gmp-compliance.org/gmp-news/usp-aisq-virtual-workshop-eca-aqcg-board-members-contributed-as-speakers) — ECA Academy, 2026-08-04 (secondary report). Checked 2026-10-23.
[^annex11-draft]: [Stakeholders' Consultation on GMP Annex 11, Chapter 4, and New Annex 22](https://www.pharmtech.com/view/stakeholders-consultation-on-gmp-annex-11-chapter-4-and-new-annex-22) — Pharmaceutical Technology, 2025-08-22. Checked 2026-10-23.

**Laboratory quality systems and metrology**

[^iso17025]: [ISO/IEC 17025:2017 General requirements for the competence of testing and calibration laboratories](https://www.iso.org/standard/66912.html) — ISO, confirmed 2023; [archived copy](https://web.archive.org/web/20261011012629/https://www.iso.org/standard/66912.html). Checked 2026-10-23.
[^iso17025-toc]: [ISO/IEC 17025:2017 preview (table of contents)](https://www.vde-verlag.de/iec-normen/preview-pdf/info_isoiec17025%7Bed3.0%7Den.pdf) — IEC webstore preview hosted by VDE Verlag, 2017. Checked 2026-10-23.
[^iso15189]: [ISO 15189:2022 Medical laboratories — Requirements for quality and competence](https://www.iso.org/standard/76677.html) — ISO; [archived copy](https://web.archive.org/web/20260917074022/https://www.iso.org/standard/76677.html). Checked 2026-10-23.
[^iso20387]: [ISO 20387:2018 Biotechnology — Biobanking — General requirements for biobanking](https://www.iso.org/standard/67888.html) — ISO; [archived copy](https://web.archive.org/web/20261004021043/https://www.iso.org/standard/67888.html), stage 90.92 "to be revised". Checked 2026-10-23.
[^cfr58]: [21 CFR Part 58 — Good Laboratory Practice for Nonclinical Laboratory Studies](https://www.ecfr.gov/current/title-21/chapter-I/subchapter-A/part-58) — eCFR, current text (originally 43 FR 60013, 1978). Checked 2026-10-23.
[^oecd-18]: [OECD Position Paper Regarding the Relationship between the OECD Principles of GLP and ISO/IEC 17025 (Series on GLP No. 18)](https://www.bfr.bund.de/cm/349/oecd-position-paper-regarding-the-relationship-between-the-oecd-principles-of-glp.pdf) — OECD, 2016; copy hosted by Germany's BfR. Checked 2026-10-23.
[^oecd-docs]: [OECD Documents on Good Laboratory Practice](https://www.bfr.bund.de/en/oecd_documents_on_good_laboratory_practice-70456.html) — BfR (German GLP Federal Bureau), index incl. Nos. 17, 22 and 25. Checked 2026-10-23.
[^oecd-22]: [OECD GLP No. 22, GLP Data Integrity (German working translation)](https://www.bfr.bund.de/assets/02_Service/03_Downloads/OECD_GLP_Nr._22_final.pdf) — OECD, 2021; hosted by BfR. Checked 2026-10-23.
[^mad]: [Trends in good laboratory practice studies submitted for the marketing authorization of pharmaceuticals in Japan](https://www.frontiersin.org/journals/pharmacology/articles/10.3389/fphar.2025.1591433/full) — Oku et al., Frontiers in Pharmacology, 2025-07-04 (secondary source; OECD pages could not be fetched automatically). Checked 2026-10-23.
[^clia]: [Clinical Laboratory Improvement Amendments (CLIA)](https://www.cms.gov/medicare/quality/clinical-laboratory-improvement-amendments) — U.S. CMS. Checked 2026-10-23.
[^ilac-p10]: [ILAC Policy Series (ILAC P10:07/2020, Policy on Metrological Traceability of Measurement Results)](https://ilac.org/publications-and-resources/ilac-policy-series/) — ILAC. Checked 2026-10-23.
[^nata]: [ISO/IEC 17025 Standard Application Document](https://nata.com.au/files/2024/10/ISO-IEC-17025-Standard-Application-Document.pdf) — NATA (Australia), October 2024, clause 6.2.5. Checked 2026-10-23.
[^ilac-g24]: [ILAC Guidance Series (ILAC G24:2022, recalibration intervals of measuring equipment)](https://ilac.org/publications-and-resources/ilac-guidance-series/) — ILAC. Checked 2026-10-23.
[^fda-oos]: [Investigating Out-of-Specification (OOS) Test Results for Pharmaceutical Production](https://www.fda.gov/regulatory-information/search-fda-guidance-documents/investigating-out-specification-oos-test-results-pharmaceutical-production-level-2-revision) — U.S. FDA/CDER, guidance for industry, May 2022. Checked 2026-10-23.
[^astm]: [ASTM E1578-18 Standard Guide for Laboratory Informatics](https://www.astm.org/e1578-18.html) — ASTM International (abstract; active version E1578-18R26). Checked 2026-10-23.

**Integration standards and tools (change-sensitive)**

[^sila]: [SiLA standards](https://sila-standard.com/standards/) — SiLA. Checked 2026-10-23.
[^sila-python]: [SiLA2 / sila_python](https://gitlab.com/SiLA2/sila_python) — SiLA, Python implementation (MIT licence). Checked 2026-10-23.
[^lads]: [LADS – Laboratory and Analytical Device Standard](https://opcfoundation.org/markets-collaboration/lads/) — OPC Foundation. Checked 2026-10-23.
[^allotrope]: [Our Technology](https://allotropefoundation.org/our-technology/) — Allotrope Foundation. Checked 2026-10-23.
[^senaite]: [SENAITE — the open source LIMS](https://www.senaite.com/) — SENAITE project. Checked 2026-10-23.
[^elabftw]: [eLabFTW — free open source ELN](https://www.elabftw.net/) — eLabFTW project. Checked 2026-10-23.
[^openbis]: [openBIS](https://openbis.ch/) — openBIS project. Checked 2026-10-23.

**Measurement, errors and sample identity**

[^hawkins]: [Laboratory Turnaround Time](https://pmc.ncbi.nlm.nih.gov/articles/PMC2282400/) — Robert C. Hawkins, Clinical Biochemist Reviews 28(4):179–194, 2007. Checked 2026-10-23.
[^plebani]: [Diagnostic Errors and Laboratory Medicine – Causes and Strategies](https://pmc.ncbi.nlm.nih.gov/articles/PMC4975219/) — Mario Plebani, EJIFCC 26(1):7–14, 2015. Checked 2026-10-23.
[^roy]: [Standards and Guidelines for Validating Next-Generation Sequencing Bioinformatics Pipelines](https://doi.org/10.1016/j.jmoldx.2017.11.003) — Roy et al. (AMP/CAP), J Mol Diagn 20(1), 2018; read from a [hosted copy](https://www.color.com/wp-content/uploads/2020/01/2018_Roy_et_al_JMD.pdf). Checked 2026-10-23.

**Cost and sustainability**

[^nems]: [Reducing Energy Usage in the Laboratory](https://nems.nih.gov/Documents/Newsletter/2018/October%202018/Take_Action_Lab_Energy_Usage.pdf) — NIH Environmental Management System newsletter, October 2018. Checked 2026-10-23.
[^cornell]: [Labs reduce energy in annual cold storage competition](https://sustainable.cornell.edu/news/labs-reduce-energy-annual-cold-storage-competition-0) — Cornell Campus Sustainability Office, 2022-09-15. Checked 2026-10-23.
[^freezer]: [Freezer Challenge](https://mygreenlab.org/programs/freezer-challenge/) — My Green Lab (organiser's figures). Checked 2026-10-23.

**Documented incidents**

[^cdc2014]: [CDC Report on the Potential Exposure to Anthrax (press release)](https://archive.cdc.gov/www_cdc_gov/media/releases/2014/p0711-lab-safety.html) — U.S. CDC, 2014-07-11. Checked 2026-10-23.
[^grace]: [Warning Letter: Grace Analytical Lab Inc. (MARCS-CMS 586510)](https://www.fda.gov/inspections-compliance-enforcement-and-criminal-investigations/warning-letters/grace-analytical-lab-inc-586510-11192019) — U.S. FDA, 2019-11-19. Checked 2026-10-23.

**Further reading:** the full texts of ISO/IEC 17025, ISO 15189 and ISO 20387 (from ISO or national standards bodies), and OECD
GLP documents No. 17 and No. 22 via the BfR index above.

**Changelog**

- 2026-10-23 — r0: first draft (term status confirmed niche; IT test-lab collision added; three labs executed; 43 sources
  checked). Awaiting independent review.
- 2026-10-23 — r1: revised after independent review (`reviews/labops-r1-response.md`): proportionate qualification and
  validation added; core acronyms defined; repetition cut; Allotrope and Freezer Challenge re-sourced; RACI, Lab 2 gate and three
  diagrams corrected; credentials, MAD adherents and ISO 20387 revision added; labs re-run.
- 2026-10-23, post-score polish: OECD No. 18 quoted exactly; ISO/IEC 17025 release accountability (NATA); scenario A method with
  a late-calibration impact check; impact window ("since the last good calibration") made consistent across the page.
