Independent and not affiliated with the FDA, MHRA, ISPE, PDA, or any agency. Get the appgoutham@madhadi.com
madhadi.comData Integrity & GxP Quality
Browse all topics → Articles Templates & Procedures Learning paths GlossaryScenariosToolsRegulatory ReferencesLearning PathsTopics About Start here
Template Plug-and-play starting point Manufacturing Automation

Test Script: LIMS Specification Evaluation, Rounding, and OOS Flagging (OQ)

A plug-and-play OQ test script for the highest-risk LIMS logic: spec comparison operators, rounding-before-versus-after, and OOS routing, built around boundary and just-over-boundary cases, with step/expected/actual/pass-fail columns and a filled specimen.

Document type: Template

Read and copy the template below into your own quality system. It is a generic starting point for your own internal use, provided as is, with no warranty; see the Terms and License. Adopting it does not by itself create compliance.

This is a ready-to-use OQ test script for the single highest-risk piece of LIMS logic: how the system rounds a result and compares it to a specification, and what happens at and just over the limit. The middle of a range never breaks; the limit does, which is exactly where an inspector probes. Replace every <<FILL: ...>> placeholder and execute under an approved OQ protocol. Write each actual result as you observe it, never reconstructed afterward. A filled specimen follows. This is general guidance to adapt and verify, not legal or regulatory advice.

Document control header

FieldEntry
Test script titleLIMS Specification Evaluation, Rounding, and OOS Flagging
Test script ID<<FILL: TS-ID, e.g. TS-OQ-LIMS-020>>
Parent OQ protocol / plan<<FILL: OQ protocol or VP ID>>
LIMS name / version / build<<FILL>>
Configuration baseline<<FILL: config spec / baseline ID, frozen for OQ>>
Test environment<<FILL: qualified validation environment, not production>>
Function riskHigh (affects pass/fail and release)
Author / effective date<<FILL>>

1. Requirements traced

Requirement IDRequirement (summary)Source
<<FILL: URS-LIMS-013>>Rounding/sig-fig rule applied per the approved method, before or after comparison as specified.<<FILL: URS/FS ID>>
<<FILL: URS-LIMS-020>>Result evaluated against the configured spec; pass/fail computed, not entered.<<FILL>>
<<FILL: URS-LIMS-021>>OOS flagged and routed to the OOS workflow; no silent re-test or overwrite.<<FILL>>

2. Objective

Verify that, for a defined spec and rounding convention, the system reports the result to the correct precision, compares it correctly at and around the limit, computes the right pass/fail, and routes an OOS to the OOS workflow without allowing a silent change.

3. Prerequisites

No.PrerequisiteVerified (initials/date)
3.1Parent OQ protocol approved and effective.<<FILL>>
3.2Master data for the test spec verified to source (<<FILL: master-data verification protocol ID>>).<<FILL>>
3.3Software at version <<FILL>> in the qualified environment, against baseline <<FILL>>.<<FILL>>
3.4The approved method’s stated rounding/reporting convention is on hand (<<FILL: method ID, version>>).<<FILL>>

4. Test data: the spec under test

ItemValue
Specification<<FILL: e.g. single impurity NMT 0.20%>>
Operator<<FILL: NMT / NLT / between>>
Reporting precision<<FILL: e.g. 2 decimals>>
Rounding rule<<FILL: e.g. round half up>>
Compare basis (per method)<<FILL: rounded value OR raw value>>

State the compare basis explicitly from the approved method before executing. The script verifies the configured behavior matches that convention; it does not assume a default.

5. Test cases

Execute each case by entering the raw value and recording what the system reports and decides. Expected outcomes below assume the example spec NMT 0.20%, 2-decimal reporting, “round half up”, comparing the rounded value per method. Adjust expected outcomes to your actual spec and convention before execution.

No.CaseRaw value enteredExpected reported valueExpected pass/failExpected routingActual reportedActual pass/failActual routingPass/FailTester/date
5.1Well within0.150%0.15%PassNone<<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>
5.2At the limit0.200%0.20%PassNone<<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>
5.3Just over, rounds down0.204%0.20%Pass (per convention)None<<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>
5.4Just over, rounds up0.205%0.21%FailOOS workflow<<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>
5.5Clear fail0.250%0.25%FailOOS workflow<<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>
5.6OOS no silent change0.250% then attempt to re-enter 0.150%original retainedFail heldOOS open; re-entry blocked/audit-trailed<<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>
5.7Analyst cannot alter specenter any valuespec unchanged by analystn/an/a<<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>

6. Acceptance criteria

  • Every case produces the expected reported value, pass/fail, and routing for the stated convention.
  • The boundary cases (5.2, 5.3, 5.4) behave exactly as the approved method specifies; any deviation is a Fail.
  • An OOS routes to the OOS workflow and cannot be silently re-entered or overwritten (5.6).
  • The analyst cannot select or change the spec at entry (5.7).
  • Any Fail is logged as a test deviation, assessed, resolved, and re-tested. See <<FILL: test failure management SOP / article>>.

7. Deviation log

No.StepDescriptionDispositionResolved (initials/date)
<<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>

8. Execution signoff

FieldEntry
All cases executed; results recordedYes / No
Open deviations<<FILL: none or list>>
Tester (name, signature, date)<<FILL>>
Reviewer (name, signature, date)<<FILL>>

Filled specimen

No.Raw valueReportedPass/FailRoutingResult
5.30.204%0.20%PassNonePass: matches method (compare rounded value)
5.40.205%0.21%FailOOS workflow openedPass: flagged and routed correctly
5.60.250%, re-entry 0.150% attempted0.25% retainedFail heldRe-entry blocked, audit-trailedPass: no silent change

Reading: cases 5.3 and 5.4 confirm the configured rounding-then-compare behavior matches the approved method exactly at the boundary, the place a near-limit result decides a batch. Case 5.6 confirms an OOS cannot be quietly replaced with a passing value. Together these are the cases that turn “the LIMS evaluates specs” into demonstrated, inspectable proof.

Common inspection findings this script prevents

  • Rounding-before-versus-after behavior never specified or tested at the boundary.
  • An OOS that could be silently re-tested or overwritten in the system.
  • The analyst able to change the spec at entry time.
  • Spec evaluation “tested” only with mid-range values that never exercise the limit.

How to adapt

  1. Set your script ID, parent protocol, and the exact spec, operator, precision, and compare basis from the approved method.
  2. Recompute the expected reported value and pass/fail for your convention before execution; do not ship the example expected values unchanged.
  3. Add cases for each distinct operator you use (NLT, between, inclusive versus exclusive bounds).
Use madhadi.com as an app Full screen, works offline, one tap from your home screen.