⚠️ Simulation Data · Not Validated on Live Patients
ClinQC
Monitor
Data
Analyse
Validate
Simulate
Research
Resources
Synthetic / simulated data only — research & training tool, not validated for clinical decision-making.
RESEARCH MODE ACTIVE — Equations, 95% CIs, audit trail, and illustrative validation figures visible |
ClinQC Pro v5.x | ISO 15189:2022 · CLSI C24-Ed4 · EWMA λ=0.20 · CUSUM k=0.5σ h=5σ |
View Validation Metrics |
View Methods & Equations
Online
Command Center
System Nominal
Status
▼
Date Range
▼
Analyte Group
▼
No QC data yet
Add your first analyte and enter a QC run to activate all monitoring charts, alerts, and AI analysis.
0
Total QC Runs
No data yet
0
Active Alerts
Tap to review →
—
In-Control Rate
Westgard pass rate
0
Analytes
Configured tests
EWMA Driftⓘ
λ-weighted · z-scale
—
CUSUMⓘ
C⁺/C⁻ · k=0.5σ · h=5σ
—
Isolation Forestⓘ
heuristic score · threshold 2.5
—
One-Class SVMⓘ
heuristic distance · z-equiv
—
Detection Methods
● Optimal Within TEa · Stable bias/CV
● Westgard 1:3s/2:2s rules · Random error
● EWMA λ=0.2 · Drift detection
● CUSUM k=0.5σ h=5σ · Shift & trend
● Anomaly Scores IF + OCSVM heuristics · secondary signal
Live Run StatisticsLIVE
σ= (TEa − |bias|) / CV%
L1 — Low Control
📊
Diagnostics ready
Select an analyte to activate.
Recommendations
Notifications
Levey-Jennings Monitor (Westgard)
Raw QC concentration — select analyte
Lab Intel
Rule-based QC summary — local calculation, no external service
Awaiting analyte selection…
Select an analyte to generate a contextual IQC summary from your run history, method agreement, and sigma performance.
—
Method consensus
Data›Enter QC Run Data
Enter QC Run Data
Record new QC measurements. All 4 methods run automatically on submission.
Select Analyte & Level
⚠️ "" is not in your library or presets
Choose how to proceed:
⚠️ Placeholder numbers only (mean=10, SD=0.5) — not a real reference range. Edit Mean/SD below before recording any QC run.
"Add to Library" lets you type in your lab's real target mean/SD. "Use Placeholder Values" inserts arbitrary numbers as a starting point only — you'll still need to edit them.
Reference Values
QC Measurement
Live preview
Paste column from Excel / clipboard
Copy a column of values from Excel and paste below. Each line = one run. The analyte, level, and date/time selected above will be applied to all runs.
Analysis Result
Monitor›Analyte Inspector
Analyte Inspector
Deep-dive investigation for a single analyte — LJ chart · CUSUM · Rolling CV · Lot-change markers · Violation pattern analysis · Full run log
Rolling CV% — Imprecision Trendlast 10 / 20 / 30 runs vs baseline · ↑ rising = imprecision worsening
Reagent Lot Changes Detected in This Dataset
Clinical Decision Support Guideline PENDING INVESTIGATION
Method Alert Summary
Method
Alerts
Last Rule
Status
No data
Run Log
#
Value
Z
Alerts
Date
No runs logged
Data›Analyte Library
Analyte Library
All configured analytes with QC parameters
Data›Add New Analyte
Add New Analyte
Configure biochemistry test parameters. Preset library included for common analytes.
Quick Load — Common Biochemistry Tests
Analyte Details
Runs used to establish target mean/SD — used for 95% confidence intervals
Intra-individual biological variation from EFLM Biological Variation Database
Inter-individual biological variation from EFLM Biological Variation Database
Auto-populates TEa, CVi, CVg for all preset analytes in EFLM database
QC Target Values
L1
L2
L3
Clinical Context (used in troubleshooting advice)
Analyse›Troubleshooting Guide
Troubleshooting Guide
Method-specific investigation pathways for each QC violation type
Westgard Multirules
EWMA
CUSUM
Isolation Forest
One-Class SVM
Validate›Method Benchmarking
Method Benchmarking
Detection performance across five IQC methods — 300 independent simulation replications
ℹ️
REAL SIMULATION RESULTS — MATCHES ACCOMPANYING MANUSCRIPT METHODS
The figures on this page come from an executed Monte Carlo simulation (300 replications, twelve analytes, five fault types) run in Python/scikit-learn, matching the methodology described in the accompanying manuscript's Methods section. They still describe simulated, idealised conditions and do not represent your laboratory's actual performance — for figures from your own data, run the Training Lab simulator and report what it actually computes.
Median Detection Delay with IQR (Runs after fault onset) — real simulation, 300 replications
Method
Shift (IQR)
Trend (IQR)
Imprecision (IQR)
Outliers (IQR)
FAR/100
Best for
Westgard
2.0 (1–3)
56.0 (30–80)
3.0 (1–6) ✦
16.0 (6–32)
1.09
Interpretable, accreditation baseline
EWMA
2.0 (1–3)
45.0 (25–64) ✦
6.0 (2–12)
26.0 (10–55)
1.50 (highest)
Fastest for gradual drift/trend
Isolation Forest
2.0 (0–3)
51.0 (28–73)
3.0 (1–6) ✦
16.0 (6–31)
1.02
Imprecision & outliers, complements Westgard
CUSUM
2.0 (2–3)
66.0 (49–81) (slowest)
9.0 (4–16) (slowest)
60.0 (26–118) (slowest)
0.76 (lowest)
Lowest false-alarm burden; slow to detect
One-Class SVM
2.0 (1–3)
52.0 (28–73)
3.0 (1–7)
15.0 (6–31) ✦
1.33
Fastest for sporadic outliers
Best performer per scenario, from a real executed simulation (see manuscript Methods for full specification). FAR = false alarm rate per 100 in-control runs. Isolation Forest and One-Class SVM here are the genuine scikit-learn trained models (contamination=0.01 / ν=0.01) used in the simulation study — not the app's own internal fixed-weight heuristic scores used elsewhere in the live dashboard, which remain untrained approximations for illustrative interactive use.
Detection Delay by Scenario
Sensitivity vs False Alarm (Trend)
Single fixed-horizon comparison (50-run cutoff). The manuscript additionally reports full threshold-swept ROC curves (AUC): CUSUM 0.876, EWMA 0.859, Isolation Forest 0.835, One-Class SVM 0.789, Westgard 0.649 — CUSUM has the highest AUC despite the lowest sensitivity at this fixed operating point, indicating its calibrated threshold here is conservative rather than its underlying discrimination being weak.
Detection power across fault severities
The single-severity results above (2σ shift, ×2 SD imprecision, 4σ outliers) were additionally swept across a range of magnitudes (1σ–3σ shift and trend, ×1.5–×3 imprecision, 3σ–5σ outliers), reusing the same trained models. The relative ordering held at every severity level tested for trend, imprecision, and outliers — EWMA fastest for trend, Westgard/Isolation Forest fastest for imprecision, One-Class SVM fastest for outliers, and CUSUM slowest of the five in every case — confirming this is not an artefact of the single magnitude used above. See manuscript Figure 3 for the full severity-sweep curves.
Feature attribution (real SHAP values)
Real Shapley values (TreeExplainer) were computed for Isolation Forest on alarm observations pooled across 20 replications, replacing an earlier simplified feature-ratio approximation. roll_SD dominates attribution for imprecision alerts (mean |SHAP| 1.62); |z|, roll_mean, and ewma dominate for shift and trend (1.47–1.60); attribution is more evenly spread for outliers. A complementary counterfactual analysis (minimal single-feature perturbation to flip an alert) mostly agrees but consistently favours |z| as the cheapest feature to perturb — the two methods measure related but distinct notions of "importance." See manuscript Figure 6 and Limitations for the full discussion. This is separate from the app's own live "SHAP-like" attribution in the Analyte Inspector, which is a heuristic leave-one-out breakdown of the hand-set Risk Score formula, not a trained-model explanation.
Method Agreement Asymmetry (Imprecision Scenario)
To assess complementarity, the proportion of post-fault runs with exclusive alerts was calculated.
Isolation Forest-only alerts (undetected by Westgard) occurred on 15.33% of post-fault runs,
whereas Westgard-only alerts occurred on only 3.78% of post-fault runs.
Both are non-trivial, proving the two methods provide complementary value rather than one strictly subsuming the other (see manuscript Figure 8).
Monitor›Alert Log
Alert Log
All QC violations with method-specific details
0 selected
Alert ↕
Severity ↕
Detection ↕
Trend
Status ↕
Details
Manage
No alerts recorded yet
Monitor›Resolution & Audit Log
Resolution & Audit Log
Archived corrective actions for laboratory compliance (ISO 15189)
Date Resolved ↕
Analyte ↕
Severity ↕
Methodology ↕
Violation ↕
Corrective Action ↕
Time to Resolve
Final Outcome ↕
No archived actions found
Simulate›Training Lab
QC Training Lab & Fault Simulator
Inject controlled faults · compare Westgard rules vs AI anomaly detection · CLSI C24 & ISO 15189 decision logic
100runs simulated
—methods detected
—best detection
—avg false alarm
⚙️ Fault Injection Control PanelBaseline
Select parameters and click Inject Fault to begin.
⏱ Detection Timeline — First Alarm After Fault Onset
Run a simulation to see the detection timeline.
EWMA Drift Monitor
CUSUM C⁺ / C⁻
AI Anomaly Score
CLSI C24-A3 / ISO 15189 Interpretation
Performance ComparisonCLSI C24
Run a simulation to generate performance metrics.
Scenario Explanation
Select an analytical scenario and magnitude, then click ▶ Inject Fault. Runs 1–50 are the in-control baseline; runs 51–100 carry the fault. The simulator reveals how each detection method responds to different error types.
Detection Summary
Run a simulation to see the detection summary.
Learning Objectives
① Understand systematic bias (shift/trend) vs random error (outliers/imprecision) rule responses
② See why EWMA excels at slow drift while Westgard 1:3s catches acute outliers first
③ Learn CUSUM's unique power for directional accumulation — critical for reagent lot-change detection
④ Compare false alarm budgets: high sensitivity vs specificity trade-offs per CLSI C24
Knowledge CheckQ 1 of 8
Analyte Clinical Reference
Clinical Purpose
Select an analyte.
QC Considerations
—
Reference Range
—
Common Failure Causes
—
Validate›EQAS / Proficiency Testing
EQAS / Proficiency Testing Simulation
Simulate External Quality Assessment Scheme performance. Enter peer-group statistics to calculate z-scores, SDI, and assess PT acceptability per ISO 13528 / CLSI EP09-A3.
⚠️
SIMULATION & TRAINING USE ONLY
This tool is designed for educational, training, and publication purposes only. It does not replace a real accredited EQAS programme (e.g. NEQAS, RIQAS, RCPAQAP). Results generated here are simulations based on the data you enter and should not be submitted to any PT scheme or used to make clinical patient-care decisions. Always refer to your laboratory's official PT provider for accreditation purposes.
Enter PT Survey Results
PEER GROUP STATISTICS
PT Performance Report
Normal Distribution — Lab Position vs Peer Group
Your result plotted against the peer group normal distribution (μ ± 3σ). Green zone = acceptable (|z| ≤ 2).
Historical PT Z-Score Trend
PT History Log
No PT results logged yet. Calculate and add results above.
Validate›Method Comparison & Bias Analysis
Method Comparison & Bias Analysis
Deming regression, Passing-Bablok approximation, Bland-Altman difference plot, and concordance correlation coefficient per CLSI EP09-A3 / ISO 5725.
⚠️
TRAINING & PUBLICATION PURPOSE ONLY
This module uses simulated statistical algorithms (Deming regression, Bland-Altman) for teaching method comparison concepts. It is intended for training, research, and academic publication, not as a validated instrument verification tool. For formal IVD method validation studies, use accredited software reviewed by your laboratory's quality manager under your ISO 15189 / CLIA framework.
Enter Paired Measurements
PASTE DATA — one pair per line (x, y or x TAB y)
Use 1.0 when imprecision is equal (orthogonal regression); adjust if reference and test methods have different precision
Regression Statistics
Enter data and run analysis to see results.
Deming Regression Plot
Bland-Altman Difference Plot
Simulate›Power Analysis
Prospective Power & QC Optimisation Simulation
Monte Carlo power analysis for QC rule selection. Computes Ped (probability of error detection) vs Pfr (false rejection rate) across Westgard rules. Based on Parvin (2008) Patient Risk framework and Westgard QC Sigma metrics.
Simulation Parameters
WESTGARD RULES TO TEST
Running simulation...
Sigma Metric & Ped / Pfr Summary
Configure parameters and run simulation.
Power Function Graph — Ped vs Systematic Error (ΔSE)
Parvin Patient Risk Model
Run simulation to compute MaxE(Nuf) — maximum expected number of unacceptable results before detection.
Validate›Inter-Laboratory Comparison
Inter-Laboratory Comparison Dashboard
Compare your lab's CV% and Sigma metrics against a simulated peer group of 50 anonymous laboratories. Powered by EFLM/RCPAQAP benchmarking distributions.
⚠️
SIMULATED PEER GROUP — TRAINING & PUBLICATION USE ONLY
The 50-laboratory "peer group" used on this page is algorithmically generated from published EFLM and RCPAQAP benchmarking distributions — it does not represent a real network of laboratories or any specific EQA scheme. This tool is provided for educational training and academic publication to help illustrate where a laboratory's performance sits relative to published benchmarks. Do not use these outputs for formal accreditation submissions or clinical governance reporting.
Your Laboratory Inputs
Your Performance Tier
Enter your parameters and run comparison.
CV% Distribution — Peer Group of 50 Labs
Sigma Metric Distribution — Peer Group
Peer Benchmarking Table — Ranked Performance
Run comparison to see peer rankings.
Resources›Evidence Base & References
Evidence Base & References
Peer-reviewed citations, standards and guidelines underpinning ClinQC Pro v5.x
Statistical QC Methods
Westgard Multi-Rule (1981)
Westgard JO, Barry PL, Hunt MR, Groth T. A multi-rule Shewhart chart for quality control in clinical chemistry. Clin Chem. 1981;27(3):493–501.
Neubauer AS. The EWMA control chart: properties and comparison with other quality control procedures by computer simulation. Clin Chem Lab Med. 1997;35(7):249–260.
Westgard JO, Westgard SA. The quality of laboratory testing today: an assessment of sigma metrics for analytic quality using performance data from proficiency testing surveys and the CLIA criteria for acceptable performance. Am J Clin Pathol. 2006;125(3):343–354.
Parvin CA. Assessing the impact of the frequency of quality control testing on the quality of reported patient results. Clin Chem. 2008;54(12):2049–2054.
Background Reading — Algorithms Referenced by Name Only
ClinQC's "Isolation Forest" and "One-Class SVM" scores are fixed-weight heuristic formulas, not trained models. The papers below describe the real algorithms these names are borrowed from — they are not a description of what runs in this app. See the Anomaly Detection methods section for the actual formulas.
Isolation Forest (2008)
Liu FT, Ting KM, Zhou Z-H. Isolation Forest. 8th IEEE Int Conf Data Mining (ICDM). 2008:413–422. IEEE Computer Society.
Schölkopf B, Platt JC, Shawe-Taylor J, Smola AJ, Williamson RC. Estimating the support of a high-dimensional distribution. Neural Comput. 2001;13(7):1443–1471.
Badrick T, Loh TP, Squire I, et al. A systematic review of the application of statistical process control in the clinical laboratory. Clin Biochem Rev. 2019;40(1):9–26.
Park S-H, Lee W, Chun S, Min W-K. Evaluation of quality control procedures using patient data-based real-time quality control system. Ann Lab Med. 2021;41(2):180–188.
Loh TP, Beastall GH, Fryer AA, et al. Practical recommendations for managing the implementation of patient-based real-time quality control in laboratory medicine. Clin Chem Lab Med. 2021;59(6):983–988.
International Organization for Standardization. ISO 15189:2022 Medical laboratories — Requirements for quality and competence. Geneva: ISO; 2022. (Section 7.3: Quality Control)
NICE Guideline DG56. Faecal calprotectin diagnostic tests for inflammatory diseases of the bowel. 2022. National Institute for Health and Care Excellence.
Settings saved and applied to all new QC calculations.
Regulatory Compliance Note
Settings changes apply to new QC runs only. Existing historical runs retain the λ and threshold values active at the time of entry. All parameter changes are logged in the audit trail.
Display & Workflow Preferences
Appearance, Themes & Personalisation
Changes apply instantly across the entire app and are saved automatically.
Swaps the red/amber/green used for Westgard violations, alert badges and KPI tiles for a blue/orange/grey scheme that remains distinguishable for the most common forms of colour vision deficiency (deuteranopia/protanopia). Applies instantly, app-wide.
In controlWarningCritical
Live Preview
Sample Card
This is how content looks with the current theme and settings.
In ControlWarningCritical
Critical Data Management
Database Export / Import
Analytical Reset
Factory Reset
Real ML Model InferenceEnter QC value to predict anomaly score
Isolation Forest
—
Anomaly Score (0–1)
One-Class SVM
—
Distance (0–5)
Enter QC value and rolling SD, then click Predict
Multi-Day QC SimulationRun 10-day persistent simulation with fault injection
Concurrent directional shifts across analytes = reagent lot change or calibration event.
Analyte Correlation Network
force-directed layout · same z-score Pearson r data as the heatmap above
Same Pearson r values as the heatmap above, shown as a graph instead of a grid — clusters of connected analytes are easier to spot here than scanning a matrix. Edge thickness and color encode |r|; isolated nodes have no correlation above the current threshold. This is a layout of already-computed correlations — not a new statistical method, and not AI.
Click "Analyse Now" above to populate the network.
Strong ≥0.7 Moderate 0.4–0.7 NegativeDrag nodes · scroll to zoom
Analyte Pair Correlation Detail
Analyte A
Analyte B
Pearson r
Strength
Shared Runs
Concurrent Drift
Clinical Significance
No analysis results yet
Click the Analyse button to run multivariate correlation analysis
Multivariate Alarm Summary
No alarms detected
Run analysis to check for multivariate shifts and anomalies
Analyte Drift Score Ranking
Drift ranking unavailable
Run analysis to rank analytes by drift severity and identify problem tests
Analyse›Sigma Metric Calculator
Sigma Metric Calculator
Six Sigma quality framework — quantify analytical process capability and optimise QC design
Input Parameters
Source: RCPAQAP, EQAS or CLIA proficiency guidelines
Use 0 if unknown — will be estimated from QC mean deviation
Auto-populated from your entered QC runs. Override if needed.
TEa saved and synchronised across all views.
Sigma Score ⓘ
Enter parameters to calculate
Sigma Summary — All Analytes
Add analytes and QC data to populate this table.
OPSpecs Chart — Operational Process Specifications
OPSpecs charts map your lab's imprecision (CV%) and bias against the Ped ≥ 90% boundary curves for each Westgard rule combination.
Points inside a curve = that rule provides ≥ 90% error detection at your current performance.
Points outside = insufficient power for that rule.
Auto-populated from sigma page inputs. This is a standards-based mathematical calculation — not AI.
Reference: Westgard JO. Internal Quality Control: Planning and Implementation Strategies. AACC Press, 2006. Boundary curves computed analytically using P(detection) = 1 − Φ(z_crit − Δ/σ) for each rule. n=1 single-rule evaluation.
Measurement Uncertainty Budget (GUM framework, ISO 21748)
JCGM 100:2008 (GUM) combination rule · ISO 21748:2017 uncertainty estimation from validation/QC data
Combines four uncertainty components into one expanded uncertainty (U, k=2, ~95% coverage) using the standard GUM root-sum-of-squares rule.
This is a standards-based arithmetic calculation — not AI, not a statistical estimate beyond what the formula and your inputs provide.
Auto-populated from within-day SD across QC runs. Override if needed.
Auto-populated from between-day SD of daily means. Override if needed.
Enter from the calibrator certificate of analysis. Use 0 if not stated.
Leave at 0 if this component doesn't apply or is unknown.
Combined Standard Uncertainty
—
Expanded Uncertainty (k=2, ~95%)
—
Relative Contribution by Component
Select an analyte and level above, then click Calculate Uncertainty.
Formula: uc = √(urepeat² + urepro² + ucal² + uref²), U = 2·uc (k=2). All components combined as relative (%) standard uncertainties. Reference: JCGM 100:2008 (GUM); ISO 21748:2017.
Analyse›QC Frequency Advisor
QC Frequency Advisor
Risk-based QC frequency recommendation derived from detection-delay data and clinical risk classification
Risk Parameters
Frequency Recommendation
Select analyte and parameters to generate recommendation
Detection Delay — Real-Time Conversion
How many hours/days each method takes to detect each fault type at your QC frequency.
ISO 15189:2022 Compliance Context
ISO 15189:2022 clause 7.3.1 requires QC frequency to be determined by the risk to patient from incorrect results, the stability of the measurement procedure, and the volume of samples processed between QC events. This advisor translates those requirements into a practical frequency recommendation calibrated to the detection-delay profile of each IQC method. The recommendation should be reviewed by the responsible professional and documented in the quality management system.
Resources›Accreditation Report Generator
Accreditation Report Generator
Generate ISO 15189-formatted monthly IQC summary reports for laboratory accreditation audit
Report Configuration
Report Preview
Click Preview to see report structure.
Generate & Download
PDF generated in-browser — no data leaves your device
ClinQC Pro is a comprehensive clinical QC management platform combining traditional Westgard multi-rule analysis with two secondary heuristic anomaly scores inspired by Isolation Forest and One-Class SVM (alongside EWMA and CUSUM — none of these are trained models; see the Anomaly Detection section below), advanced statistical rigor (Sigma grading, Measurement Uncertainty, Bayesian adaptive targets, change-point detection), clinical validation tools (EQAS/PT, Method Comparison, Inter-Lab Benchmarking), a Lab Intel panel that generates rule-based QC summaries locally from your run data, and a prospective Monte Carlo Power Simulation framework — all in a single offline HTML application.
① Setup (5 min)
Add analytes to the library with Mean, SD and TEa — or import a CSV and they're configured automatically.
② Enter or Import QC
Use QC Entry for single manual runs, or Batch Import for bulk Excel/CSV from your analyser. All 4 methods run automatically.
③ Review & Act
Alerts appear in the Active Alert Log. Resolve each one with a corrective action. Resolved alerts become your ISO 15189-compliant audit trail.
Dashboard
›
Enter QC
›
🔍 4 Methods Check
›
View Charts
›
Review Alerts
›
Resolve & Archive
② Dashboard
Your at-a-glance command centre. The compact top bar shows title + KPI metrics (Runs, Alerts, Confidence, Tests) + export and Purge All buttons all in one row. Below: Levey-Jennings Monitor alongside Lab Intel AI, EWMA/IF/OCSVM charts, and Sigma Metrics with Live Run Statistics side by side.
Key interactions
Select Analyte and Level (L1/L2/L3 buttons) to load LJ chart and Run Statistics
Click any data point to open the Westgard Inspector — shows full run details plus the risk score breakdown bars and change-point shift markers
Run Statistics panel shows Sigma Metrics (σ = (TEa − |bias|) / CV%), Westgard %, EWMA drift, secondary anomaly score, Measurement Uncertainty (ISO GUM), 95% CI on baseline, Relative Risk Score, Multi-Level Correlation, and z-trend
Click Purge All to wipe all QC data (irreversible — export backup first)
Sigma score guide
≥ 6σWorld Class
4–6σGood
3–4σMarginal — tighten rules
<3σPoor — investigate now
③ Manual QC Entry
Use the QC Entry page to record individual QC runs. Date and time auto-fill to the current moment. After submitting, all 4 detection methods run instantly and a result card appears showing z-score, EWMA, IF score, OCSVM distance, and any rule violations.
Example — Glucose L1 run
Analyte
Glucose (L1)
Analyser
COBAS 701
Value
5.10 mmol/L
Date/Time
Auto-filled
Result
● IN CONTROL
Tip: If the analyte dropdown is empty, go to the Analyte Library and add at least one analyte first, or run a Batch Import.
④ Batch Import (Excel / CSV)
Click Import QC Data in the top bar to upload an Excel or CSV file from your analyser. The format is auto-detected. All 4 detection methods run on every row. New analytes are created automatically.
Unit Conversion: If your CSV uses mg/dL and the library uses mmol/L, ClinQC Pro converts automatically using built-in biochemistry conversion tables.
1 Click Import
›
2 Upload File
›
3 Auto-Detect Format
›
4 Unit Convert
›
5 All 4 Methods
›
6 View Navigator
⑤ Fleet Status (formerly Status Grid)
Fleet Status shows every analyte's QC runs as colour-coded rows. Use the analyte dropdown to filter to a single analyte — all others are hidden. Select Show all analytes to restore the full fleet view. Click any row to open the Westgard Inspector. The table scrolls fully to the last row.
Green — In Control (z ≤ ±2σ)
Amber — Warning (2–3σ)
Red — Out of Control (>3σ)
The period dropdown (Today / Yesterday / Past 7 Days / Past 14 Days / Past Month / All Time / Custom Range) filters which runs appear. All Time shows every run ever recorded with no date limit.
⑥ Analyte Inspector
🔬 INVESTIGATE › Analyte Inspector
Your deep-dive destination when something needs explaining. Select an analyte and level, then read all five signal layers together. The Dashboard shows what is failing; the Analyte Inspector shows why.
Investigation Workflow — 5 Steps
① Pick analyte + level
›
② Check LJ + EWMA
›
③ Read rolling CV
›
④ Check lot-change markers
›
⑤ Act on guideline card
Chart Panels
Panel 1 — LJ + EWMA Chart
Levey-Jennings z-score chart with ±2/3/4σ control lines. EWMA drift trend overlaid as a dashed blue line — both on the same z-axis so they are directly comparable. Alert points are coloured by severity. Violet diamond markers on the x-axis indicate reagent lot changes detected automatically from your run data.
Panel 2 — AI Anomaly Panel
Heuristic Isolation Forest scores as amber bars (left axis, threshold 2.5). Heuristic One-Class SVM distance as a violet line (right axis, threshold 2.2). Each has its own independent y-axis — do not compare their numeric values to z-scores. High scores here that are below Westgard thresholds are early-warning signals.
Investigation Panels — Appear Automatically on Analyte Load
📈 Rolling CV% — Imprecision Trend
Shows CV% for the last 10, 20, and 30 runs versus the baseline target. Rising CV indicates worsening imprecision. If the 10-run CV is markedly higher than the 30-run figure, imprecision is recent — suspect pipette, reagent instability, or maintenance.
🚨 Violation Pattern Banner
Shown when a systematic pattern is detected across recent violations — e.g. a string of results consistently above the mean (shift), or alternating above/below (imprecision). The banner names the likely cause and links to the relevant Troubleshooting tab.
🔬 Reagent Lot-Change Summary
Lists every lot change detected in the current dataset — date, run index, the size of any mean shift that followed, and a CUSUM-based assessment of significance. CUSUM is the recommended method for lot-change bias detection per CLSI C24-Ed4.
📋 Clinical Decision Support Guideline Card
Appears when an analyte with active violations is loaded. Shows the most likely root cause, patient-impact risk level, a step-by-step corrective action checklist, and the applicable CLSI / ISO / Westgard references. Use this card to guide your investigation and document the action taken in the Alert Log.
💡 Tip: Navigate here directly from a Dashboard sigma cell or alert by clicking “Investigate →”. The analyte and level are pre-selected so you can start the investigation immediately.
⑦ Sigma Metrics Calculator
Access via sidebar or click "Confirm TEa →" in a dashboard sigma cell. Formula: σ = (TEa% − |bias%|) / CV%
Press Save TEa to Library & Sync after reviewing. This saves TEa to the analyte record and immediately refreshes sigma scores everywhere — dashboard, tables, and reports. No page reload needed.
Measurement Uncertainty Budget (GUM/ISO 21748)
Below the OPSpecs chart, enter the four uncertainty components for the selected analyte/level. u(repeat) and u(repro) auto-populate from this analyte's own run history — within-day SD pooled across days for repeatability, and the SD of daily means for reproducibility — but only once there's enough structure to split them (at least 2 distinct days, each with ≥2 runs). u(cal) and u(ref) always need to be entered by hand, from a calibrator certificate or reference-method documentation, because the app has no way to know those values on its own.
Formula: uc = √(urepeat² + urepro² + ucal² + uref²), expanded uncertainty U = 2·uc (k=2, ~95% coverage under the standard normal approximation used by GUM). If TEa% is set above, U is automatically checked against it as a pass/fail. This is the standard GUM combination rule applied to your numbers — it is exact arithmetic, not a model, and its quality is only as good as the inputs you provide.
⑧ Alert Log & Resolution
Every QC violation is automatically logged — Westgard rules, EWMA drift, Isolation Forest anomalies, OCSVM boundary breaches. Filter by method, severity, analyte, or search text.
How to resolve an alert
1 Click Manage
›
2 Pick Status
›
3 Write Action
›
4 Confirm & Save
›
5 Audit Log ✅
Resolve Filtered: Use the Resolve Filtered button to bulk-resolve all alerts matching the current analyte + method + search filter in one click. Each resolved alert is automatically written to the Audit Trail.
Status options: Resolved (closes alert), Monitoring (keep open, under observation), Escalated (raised to supervisor), Unresolved (still active). Resolved alerts move to the Audit Log for compliance.
🕸️ Cross-analyte alert cluster (auto-detected)
If 2+ different analytes have unresolved alerts within a 90-minute window, a banner appears at the top of this page naming them — that pattern usually points to an instrument-wide or environmental cause rather than several unrelated test failures. It links straight to the Multivariate Correlation tool for confirmation. This is a simple time-window group-by on the alert log, not a predictive model.
Recurring patterns (auto-detected)
Any analyte/level showing a repeat-rule or escalating-severity pattern gets a one-line summary in a "Recurring patterns" card (capped at 3 shown, with a "+N more" note if there are others — see the table below for the full list). Each row's Likely root causes breakdown is collapsed by default; click it to expand the ranked rule-based guidance and percentages.
Note: Alerts for brand-new analytes (first import batch) are automatically suppressed — so you can set target parameters without spurious violations.
⑨ Analyte Library & Add New Analyte
Stores target parameters — Mean, SD, CV, TEa, reference range, clinical notes — for each analyte and QC level. All detection methods use these to calculate z-scores and sigma.
Adding: Go to Data › Add Analyte. Pick a Quick Load preset (50+ common biochemistry tests) or fill in manually. Required: name, unit, and L1/L2/L3 mean & SD. TEa is optional but needed for sigma.
Editing: From the Analyte Library, click ✏️. The same ID is preserved so all existing runs and alerts stay linked. Changing TEa instantly updates sigma everywhere.
Auto-configure: Importing a CSV with a new analyte name creates it automatically with mean/SD from the import data.
Presets: Selecting a preset pre-fills typical reference ranges, TEa, and method information.
Smart prefill from your own lab history
A fresh Add Analyte form auto-fills Instrument ID, Control Lot, Manufacturer and Expiry from the most recently added analyte, since a lab panel almost always runs on the same instrument/control material. Picking a Category also suggests a TEa% and baseline-N starting point averaged from your other analytes in that category, with a one-click "Use as starting point" button — this is a starting point pulled from your own data, not a clinical recommendation, so confirm it against this test's own method validation.
Add New Analyte — Field Reference
Analyte Details: Name, Abbreviation, Category, Unit, Normal Low/High, Method/Analyser, TEa%.
Instrument & Control tracking: Instrument ID, Control Lot Number, Control Manufacturer, Control Expiry — lets you trace which QC lot/instrument generated a given result, useful when investigating a lot-change-related shift.
Baseline N Runs: Number of runs used to establish the target mean/SD and 95% confidence intervals (default 20; minimum 2).
CVi% / CVg% (EFLM Biological Variation): Within-subject and between-subject biological variation — click Auto-fill from EFLM to populate TEa, CVi, CVg automatically for preset analytes from the EFLM Biological Variation Database.
QC Target Values: Mean, SD, and CV% entered separately for L1/L2/L3 control levels.
Clinical Context (used in Troubleshooting Guide advice): Pre-analytical sensitivity (High/Moderate/Low), common interferences (e.g. haemolysis, lipaemia, icterus), and clinical notes such as critical values or turnaround-time requirements.
⑩ Settings & Appearance
Appearance: Choose from 8 built-in themes (Light, Dark, Ocean Blue, Warm Sunset, Forest, High Contrast, Slate, Lavender), 5 font families, 5 size options, 6 accent colours, 4 background patterns, and card style options. All apply instantly app-wide and are saved automatically. Use Reset to Default to restore the original Clinical Light theme.
Colour-blind safe palette: A single toggle that swaps the red/amber/green used for Westgard violations, alert badges, and KPI tiles for a blue/orange/grey scheme that stays distinguishable for the most common forms of colour vision deficiency (deuteranopia/protanopia). Applies instantly app-wide and persists with your other appearance settings.
EWMA Lambda (λ): 0.05–0.20 detects slow drift; 0.5–1.0 reacts only to sudden changes. Default: 0.20.
AI Sensitivity: Slide 1–10 to control how many anomalies IF and OCSVM flag.
Bayesian Adaptive Targets: Toggle to enable live target recalculation using EWMA-Bayesian shrinkage. Displayed in Dashboard Run Statistics alongside fixed targets.
Auto-Refresh: Set an interval for automatic data reload — useful for always-on monitoring screens.
⑪ Backup & Restore
All data is stored in your browser's IndexedDB — persists automatically between sessions. Nothing is lost unless you explicitly wipe it.
⬇ Exporting a Backup
Settings → Critical Data → Export Full Database (.JSON) Downloads a complete JSON snapshot of all analytes, runs, alert log, and settings. Save to a shared drive or email to yourself. Recommended monthly.
⬆ Restoring a Backup
Settings → Critical Data → Restore from Backup (.JSON) Select your previously exported .json file. All data merges into the current database and saves instantly. No page reload needed.
Factory Reset:Wipe All Clinical Data permanently deletes all runs, alerts, and analytes. Cannot be undone. Always export a backup first.
⑫ Westgard Rules Reference
Rule
Trigger Condition
Error Type
Severity
Recommended Action
1-3s
1 result exceeds ±3σ
Random / gross error
Critical
Reject run — repeat immediately, inspect probe & reagents
2-2s
2 consecutive results exceed same ±2σ limit
Systematic bias
Warning
Check calibration drift, recalibrate
R-4s
Range of 2 results >4σ in same run
Random / imprecision
Warning
Check pipette, carry-over, cuvette
4-1s
4 consecutive results exceed same ±1σ
Systematic drift
Warning
Monitor trend, recalibrate if confirmed
10x
10 consecutive results on same side of mean
Systematic bias
Critical
Recalibrate with fresh calibrators, check lot change
Exponentially weighted moving average (λ=0.2). Detects slow systematic drift that Westgard rules miss. Alert when |EWMA| exceeds the configured threshold. Best for: gradual calibration drift. (Typical trend-detection speed varies by dataset — see the Validation Dashboard disclaimer before citing a specific number.)
Σ CUSUM (Cumulative Sum)
C⁺ and C⁻ statistics accumulate directional deviations. Breach when C⁺ or C⁻ > h=5σ (k=0.5σ per CLSI C24-Ed4). In the accompanying manuscript's executed simulation, CUSUM at these settings had the lowest false alarm rate of all five methods but was the slowest to detect trend, imprecision, and outlier faults — its evidence-accumulation design trades detection speed for fewer false alarms at this particular threshold, rather than being faster overall as sometimes assumed.
🌲 "Isolation Forest" heuristic
A fixed-weight formula over 6 features (z, |z|, Δz, roll_mean, roll_SD, EWMA value), not a trained model — see Anomaly Detection above. Score >2.5 = anomaly. Weighted toward roll_SD, so it's designed to be more sensitive than Westgard's mean-deviation rules to imprecision (variance-structure) faults — but its exact detection rate on real data hasn't been measured.
⬡ "One-Class SVM" heuristic
A fixed-weight Euclidean distance over the same 6 features, not a trained model — no kernel, no support vectors, no training step, despite the name. Distance >2.2 = breach. Tends to fire more often than the "Isolation Forest" score above, so treat alarms as a prompt to look closer, not a confirmed finding — better suited to investigation mode than routine deployment.
Using all 5 methods together — layered IQC strategy
• CUSUM only → Earliest drift warning — pre-emptive recalibration
• EWMA only → Slow systematic drift — monitor and recalibrate
• IF only → Imprecision change — check probe, CV%, rolling SD
• OCSVM only → Complex multivariate pattern — investigate features
General pattern (from the accompanying manuscript's executed simulation): no single method dominates — EWMA tends fastest for gradual trend (but highest false alarm rate); Westgard and the "Isolation Forest" heuristic tend fastest for imprecision; the "One-Class SVM" heuristic tends fastest for sporadic outliers (but fires more often, so treat as investigation-mode); CUSUM tends to have the lowest false alarm rate but is typically the slowest to detect non-shift faults at standard settings. (Specific FAR figures elsewhere in this app are illustrative examples, not measured on your data — see Method Benchmarking for the real simulation figures.)
⑮ EQAS / Proficiency Testing Simulation
Simulation & training use only. Does not replace a real accredited EQAS programme (e.g. NEQAS, RIQAS, RCPAQAP). Do not submit results generated here to any PT scheme or use them for clinical patient-care decisions.
Accessible via Validate › EQAS / PT. Enter your laboratory result alongside the peer-group Mean, SD, and N for any proficiency testing survey cycle. ClinQC Pro calculates your SDI (z-score relative to peers), plots your result on a bell curve, and grades performance against TEa.
Step-by-Step Guide
Enter the analyte name (e.g. "Glucose", "HbA1c") and the result your lab obtained for that PT survey sample.
Fill in the Peer Group Statistics — these come from your PT provider's report: peer mean, peer SD, and number of participating labs (N).
Enter the TEa % (Total Allowable Error) for your analyte — use RCPA or EQA scheme limits.
Add a Lot / Survey number and date for record-keeping.
Click ▶ Calculate PT Performance to see your z-score, SDI, and acceptability verdict.
Click + Add Current to History to track your z-score trend over multiple surveys.
SDI / Z-Score
SDI = (Your result − Peer mean) / Peer SD. Values within ±2.0 are acceptable; ±2–3 is a warning; >±3 is unacceptable per ISO 13528. Displayed numerically and on a Bell Curve chart.
Bias Trend History
Add results to history to track SDI trend across survey cycles. Consistent bias in the same direction across surveys (e.g. always positive z-scores) may indicate a systematic calibration issue, even if individual surveys pass.
Sigma from PT Data
If TEa% is provided, the sigma metric is calculated from the peer-group CV and your bias: σ = (TEa − |Bias|) / Peer CV%. Sigma grade and Westgard rule recommendation are displayed automatically.
💡 Tip for training use: Try entering your real lab's last PT result alongside the scheme's peer statistics — this helps trainees understand why passing individual surveys is not enough; trend and bias direction matter too.
⑯ Method Comparison & Bias Analysis
Training & publication purpose only. Uses simulated statistical algorithms for teaching method comparison concepts — not a validated instrument verification tool. For formal IVD method validation, use accredited software reviewed by your quality manager under ISO 15189 / CLIA.
Accessible via Validate › Method Comparison. Enter paired Method A / Method B results (comma-separated or line-by-line) to run a full method comparison analysis.
Step-by-Step Guide
Label your Reference Method (e.g. LC-MS/MS, reference lab) and your Test Method (e.g. immunoassay, point-of-care device).
Paste paired measurements into the data box — one pair per line, separated by a tab or comma. Left column = reference, right column = test value.
Set λ (lambda): use 1.0 when both methods have similar imprecision (orthogonal Deming). If the reference method is much more precise, use a smaller λ.
Enter the TEa % to judge whether the measured bias is clinically acceptable.
Click ▶ Run Analysis to generate regression statistics, scatter plot, and Bland-Altman limits of agreement.
Deming Regression
Accounts for measurement error in both axes (unlike ordinary least-squares). Slope (β) ≈ 1.0 and intercept (α) ≈ 0 indicate good agreement with no systematic bias.
Bland-Altman Plot
Plots differences (A−B) vs averages ((A+B)/2). Limits of Agreement (LoA = mean bias ± 1.96 SD) show how the two methods compare across the clinical range; points outside LoA suggest clinically significant disagreement.
CCC ≥ 0.99 indicates excellent agreement; <0.95 is generally not acceptable for clinical use. Minimum n: CLSI EP09-A3 recommends ≥40 paired samples spanning the full clinical range, or at least 20 for a reliable estimate.
💡 For publication: Report the Deming regression equation, Bland-Altman mean bias ± 1.96 SD, CCC, and whether the bias falls within your stated TEa. Cite CLSI EP09-A3 and Bland & Altman Lancet 1986 (PMID: 2868172).
⑰ Inter-Laboratory Comparison Dashboard
Simulated peer group — training & publication use only. The 50-laboratory "peer group" is algorithmically generated from published EFLM and RCPAQAP benchmarking distributions — it does not represent a real network of laboratories or any specific EQA scheme. Do not use these outputs for formal accreditation submissions or clinical governance reporting.
Accessible via Validate › Inter-Lab Compare. Enter your analyte name, CV%, bias%, and TEa% to compare your performance against a simulated peer group of 50 anonymous laboratories drawn from EFLM/RCPAQAP benchmarking distributions.
Step-by-Step Guide
Select your Analyte from the dropdown or type a name (e.g. "Glucose", "TSH").
Enter your laboratory's current CV% (imprecision) — this is found on your IQC chart or sigma calculator.
Enter your Bias% — the percentage difference between your method mean and the assigned target value.
Set the TEa% (Total Allowable Error) for this analyte. Use your EQA scheme limits or RCPA ALP criteria.
Click ▶ Generate Peer Comparison to see your ranked position in the simulated peer group, performance tier, and distribution charts.
CV% Distribution Chart
Bar chart of peer-lab CV% values. Your lab is highlighted in purple. Shows where you rank among peers for imprecision.
Sigma Distribution Chart
Bar chart of computed sigma scores for the peer group. Your sigma is highlighted in red. Performance tiers: World Class (σ≥6), Excellent (≥5), Good (≥4), Marginal (≥3), Unacceptable (<3).
Ranked Peer Table
All 50 labs ranked by CV% ascending (best first). Your lab is starred and highlighted. Tier assigned: Top 20% / Top 40% / Average / Below Average.
Note: Peer distributions are modelled from EFLM Biological Variation database and RCPAQAP/EQAS published benchmarking data. They are simulated for demonstration — not sourced from real individual laboratory records.
💡 Training use: Ask trainees to enter different CV% values (e.g. 1.5%, 3%, 6%) for the same analyte and TEa to see how imprecision alone determines their performance tier — a powerful way to demonstrate why imprecision control matters in clinical labs.
⑱ Power Analysis & QC Simulation
Accessible via Simulate › Power Analysis. Monte Carlo simulation that calculates Probability of Error Detection (Ped) and False Rejection Rate (Pfr) for multiple Westgard rulesets across a range of systematic error magnitudes.
How to use
Enter your analyte's sigma score (or use the current analyte's value)
Set N per run (number of QC materials per run), simulation replicates, and error range
Select which Westgard rulesets to compare
Click ▶ Run Monte Carlo Simulation
Review the power curve chart and Parvin MaxE(Nuf) risk table
Parvin Patient Risk Model
MaxE(Nuf) = maximum expected number of erroneous patient results before QC detection. Acceptability criterion: MaxE(Nuf) < 1. Based on Parvin (2008), Clin Chem.
⑲ Advanced AI Features
Bayesian Adaptive Targets
Enable in Settings › Bayesian Adaptive Target Updating. When on, target mean and SD adapt dynamically with each new run using EWMA-Bayesian shrinkage — simulating commercial real-time recalculation (e.g. Bio-Rad Unity). Adaptive targets are displayed in the Run Statistics panel. Original targets are never overwritten.
Relative Risk Score
Displayed in the Run Statistics panel on the Dashboard. A formula with hand-set (not fitted or trained) weights combines current z-score magnitude, EWMA drift, run-to-run delta, rolling CV trend, and systematic slope into a single 0–100% score. Useful for ranking which runs look comparatively riskier; not a calibrated probability of an actual future failure. Colour-coded: green <35%, amber 35–60%, red >60%.
Change-Point Detection
Automatically detected when you open the Westgard Inspector on any run. Change-points (binary segmentation algorithm) are drawn as purple dashed vertical lines labelled “⚠ Shift” on the LJ chart, indicating probable reagent lot changes, recalibrations, or systematic shifts.
Risk Score Breakdown
In the Westgard Inspector sidebar, a breakdown chart shows how much each factor (z-score magnitude, run-to-run delta, EWMA drift, rolling CV, trend slope) contributes to the Relative Risk Score for the selected run, using a leave-one-out comparison (similar in spirit to SHAP, applied to the hand-set formula above rather than a trained model). Positive bars (red) increase the score; negative bars (green) reduce it.
Multi-Level Correlation
Shown in the Dashboard Run Statistics panel. Pearson correlation of L1 vs L2 z-scores by date. r ≥ 0.7 = Systematic error (calibration, lot change); r < 0.4 = Random error (pipetting, cuvette, level-specific issue). Helps differentiate instrument-wide from material-specific failures.
📀 Measurement Uncertainty (ISO GUM)
Combined standard uncertainty uc and expanded uncertainty U (k=2, 95% confidence) are calculated from repeatability CV, reproducibility CV, and bias fraction. Displayed in Dashboard Run Statistics and the Westgard Inspector sidebar. Based on ISO/IEC Guide 98-3 (GUM).
Lab Import automatically detects your analyzer export format, identifies analyte names, QC levels, units and values — then instantly calculates all four analysis methods: Levey-Jennings, EWMA, Westgard multi-rules and AI-generated insights with trend detection, risk scoring and actionable recommendations.
① Supported Formats
Roche cobas RD · Roche Wide Matrix · Siemens ADVIA · Abbott Architect · Beckman AU/DxC · Generic CSV/XLSX long-tidy · Wide/columnar matrix · Any file with Date + Analyte + Value
② AI Auto-Detection
Skips metadata rows, maps analyzer codes to clinical names (K→Potassium), detects L1/L2/L3 from material names, validates numeric columns and separates analytes from metadata automatically.
③ 4 Methods + Integration
LJ · EWMA · Westgard · Smart Summary. Push results directly to Sigma Calculator, Active Alerts, or import runs into the main database.
How to Use
① Export from analyzer
›
② Drop file or click Upload
›
③ Select analyte + level
›
④ Browse 4 analysis tabs
›
⑤ Push to Sigma / Alerts / DB
Tip: Set TEa % for your analyte before clicking → Sigma Calc to get accurate sigma metric results. TEa defaults use RCPA/Ricos allowable error guidelines.
⑳ Method Benchmarking
Real simulation data. Figures come from an executed Monte Carlo simulation (300 replications per fault type, twelve analytes) using synthetic QC run data, matching the methodology in the accompanying manuscript. They represent typical algorithm behaviour under idealised conditions and do not represent your laboratory's actual performance.
Accessible via Analyse › Method Benchmarking. Compares five QC detection algorithms — Westgard Multi-Rule, EWMA, CUSUM, Isolation Forest, and One-Class SVM — across four fault types: Shift (sudden step change, e.g. new reagent lot), Trend (gradual linear drift, e.g. calibrator instability), Imprecision (increase in SD/variance, e.g. pipette malfunction), and Outliers (random sporadic extreme values).
Each table cell shows the median number of runs required to detect the fault, with the IQR (interquartile range from 300 replications) in brackets. ✦ = best performer for that scenario. CUSUM (k=0.5σ, h=5σ per CLSI C24-Ed4) is included as a 5th method alongside the original four.
Lower delay = better
A method that detects a shift in 2 runs is preferable to one that takes 10 runs, because fewer erroneous patient results are reported before the fault is caught.
FAR (False Alarm Rate)
Number of false alarms per 100 in-control runs. All five methods fall within a comparable 0.76–1.50 range in this simulation; EWMA has the highest rate (most nuisance alerts) and CUSUM the lowest — important when designing your QC strategy.
No single method is best for all scenarios. EWMA is fastest for trend but has the highest false alarm rate; CUSUM has the lowest false alarm rate but is the slowest method for every non-shift fault type at these settings; Isolation Forest and One-Class SVM match or beat the conventional methods for imprecision and outliers. A layered approach combining multiple methods is recommended over relying on any single one.
💡 For publications: Cite these figures as simulation-based benchmarks from ClinQC Pro, with reference to Westgard (1981), CLSI C24-Ed4, and the EFLM Biological Variation Database.
㉑ Troubleshooting Guide
Accessible via Analyse › Troubleshooting Guide. Method-specific investigation pathways for each QC violation type. Five tabs — Westgard Multirules, EWMA, CUSUM, Isolation Forest, One-Class SVM — each list the typical root causes, recommended corrective actions, and escalation guidance for a violation flagged by that method.
Use the analyte filter at the top to narrow guidance to a specific test if your investigation concerns one analyte. Switch tabs to compare how different methods would interpret the same underlying pattern (e.g. a Westgard 2₂s flag vs. what CUSUM or Isolation Forest would say about the same run sequence).
㉒ QC Training Lab & Simulator
Accessible via Training Lab in the top navigation. An active-learning environment: inject controlled faults into a simulated analyzer stream and compare how rule-based methods (Westgard) and AI models (EWMA, Isolation Forest, One-Class SVM) respond to the same fault, side by side.
Step-by-Step Guide
Select a Target Analyte from Biochemistry, Immunoassay, Urine Chemistry, CSF/Fluids, or Special Tests, and a QC Level (L1/L2/L3).
Choose a Fault Scenario: Baseline (in-control), Systematic Step Shift, Progressive Linear Trend, Imprecision (variance doubled), or Intermittent Outliers (3% rate).
Choose a Magnitude/Rate: ±1.5 SD (Moderate) up to ±4.0 SD (Extreme).
Click ▶ Inject Fault & Run Simulation. The simulator generates 100 synthetic QC observations — the first 50 runs are normal baseline operation, the final 50 contain the injected fault.
Review the Levey-Jennings Monitor to see exactly when and how each method (Westgard, EWMA, Isolation Forest, One-Class SVM) flags the fault.
Use the Interactive QC & AI Quiz in the sidebar to test understanding of the concepts just demonstrated.
The Analyte Clinical Reference card updates automatically with the clinical purpose, QC considerations, reference range, and common failure causes for whichever analyte is selected — useful as a quick-reference handout during teaching sessions.
💡 Teaching tip: Run the same fault scenario at increasing magnitudes (1.5 SD → 4.0 SD) to show a class how detection delay shortens as the fault becomes more severe — a clear, visual way to illustrate why sensitivity and severity are linked.
㉓ Validation & Performance Dashboard
Mixed real and illustrative content. The ROC Comparison chart below shows real AUC values from the accompanying manuscript's ablation analysis (Table 3, imprecision scenario, pooled across 300 replications). The CUSUM change-point statistics and some reproducibility figures elsewhere on this page remain illustrative examples for teaching purposes and were not computed by an executed benchmark within this app — check each card individually before citing a number.
Accessible via Validate › Validation Dashboard. Performance figures for five detection approaches — Westgard Multirules, EWMA, CUSUM, and two heuristic anomaly scores loosely named after Isolation Forest and One-Class SVM (neither is a trained model in this app; see the Anomaly Detection methods section) — the ROC AUC values are real (see banner above); other qualitative trade-off descriptions (e.g. CUSUM's shift-detection speed relative to Westgard) remain illustrative characterisations rather than measured figures from this app.
Step-by-Step Guide
Review each algorithm card — the ROC/AUC figures are real (from the manuscript); other qualitative descriptions are illustrative.
Examine the ROC Comparison chart for real AUC values matching Table 3 of the accompanying manuscript.
Review the Feature Weight Reference to understand what each heuristic formula weights, and why (illustrative — see Figure 6 of the manuscript for real SHAP-based feature importance).
The Reproducibility table's confidence intervals are also illustrative, except the Sigma Metric Calc row, which is genuinely exact (deterministic formula).
Use Export Validation Report / Export Manuscript Package for a written summary of the real formulas/citations this app uses.
Read before publishing or presenting:
For publication or accreditation submissions: do not cite any AUC, false-alarm rate, or detection-delay figure from this page — none of them came from an executed study. If you need real comparative figures, generate them yourself with the Training Lab simulator and report what it actually computes, or cite the published literature directly.
For training/teaching: fine to use as a rough illustration of how detection methods typically trade off sensitivity, speed, and false-alarm rate — just be explicit with learners that the specific numbers are illustrative examples, not measured results.
What's real on this page: the underlying Westgard, EWMA, and CUSUM math genuinely runs on your own data elsewhere in the app (Dashboard, Charts, Westgard Inspector) and is appropriate to describe accurately in a manuscript Methods section — see the Export Manuscript Package for accurate wording.
㉔ Synthetic QC Data Generator
Accessible via Simulate › Synthetic Data Generator. Generates realistic synthetic QC datasets by simulating Gaussian-distributed QC values around a user-defined mean and CV%, with optional injection of controlled analytical faults (random error, drift, shift, trend, increased imprecision). All data is generated entirely within the browser — no real patient or specimen data is used at any point.
Step-by-Step Guide
Enter an analyte name, total QC runs, target mean, and CV%.
Optionally enter a systematic bias% and TEa%.
Under Fault Injection, choose a fault type and magnitude.
Set the run number where the fault should begin.
Click Generate Dataset to create and preview the data.
Review the chart, sigma classification, and Westgard analysis.
Click Export CSV to save the dataset, or Inject into ClinQC to use it live in the app.
Safe use for publication & training:
All data generated is fully synthetic — produced by random number generation, no real patient data, QC results, or instrument data is involved.
Safe for publication: describe generated datasets as "computer-simulated synthetic QC data generated using Gaussian noise modelling with fault injection" — a well-accepted method in laboratory medicine methodology papers.
Safe for training: ideal for teaching staff how QC faults appear visually on Levey-Jennings charts and how sigma metrics respond to different error types.
Limitation: synthetic data cannot capture all instrument- or reagent-specific variation. Intended for algorithm demonstration and education, not as a substitute for real method validation data.
㉕ Methods & Equations
Accessible via Validate › Methods & Equations. A complete mathematical reference document covering every formula and algorithm used in ClinQC Pro — Sigma metric, Measurement Uncertainty, Westgard rules, EWMA, CUSUM, Deming regression, Bland-Altman, OPSpecs, and the AI anomaly detection models. Each equation is cited to its original published standard or peer-reviewed source.
How to use it
Scroll through each numbered section to find the method you need.
Copy the equation and citation directly into your manuscript's Methods section.
Each section identifies the governing standard (ISO, CLSI, Westgard, RCPATH).
Use Export Methods PDF to generate a self-contained PDF appendix ready to submit as supplementary material or attach to an accreditation submission.
For ISO 15189 submissions, reference specific section numbers in your QMS documentation.
Safe for publication & accreditation:
This page contains no AI-generated claims or synthetic results. Every equation is drawn from established peer-reviewed standards (ISO, CLSI, Westgard) and can be cited directly.
For journal submission: appropriate for the Methods section. Cite the referenced standards directly (e.g. CLSI C24-Ed4, ISO 15189:2022) rather than citing this software.
For accreditation (ISO 15189): the exported PDF is suitable as a supporting document demonstrating the mathematical basis of your QC procedures.
For training: an ideal reference handout — equations, grading thresholds, and interpretation notes are all in one place.
㉖ Resolution & Audit Log
Accessible via Monitor › Audit Log. A permanent, searchable archive of every QC alert that has been investigated and resolved — built for ISO 15189 compliance, where every out-of-control event must have a documented corrective action and outcome.
What gets logged
Date resolved, analyte, severity, which methodology flagged it (Westgard / EWMA / CUSUM / Isolation Forest / One-Class SVM), the specific rule/violation, the corrective action taken, and the final outcome (e.g. accepted, repeated, recalibrated).
Using the log
Click any column header to sort. Use the search box to filter by analyte, rule, or outcome. Export the full archive to Excel or PDF for an accreditation audit or quality manager review.
⏱ Timing Anomaly Review (auto-detected)
Each analyte/level builds its own typical entry-time pattern once it has 8+ runs of history. Any of its 10 most recent runs logged 5+ hours outside that pattern shows up here, grouped by analyte and collapsed by default — click an analyte to expand the individual flagged run times. It's a timing outlier check only, not a quality judgement on the result itself; useful for spotting after-hours entry, missed shifts, or backfilled data for ISO 15189 traceability.
💡 Tip: An alert moves here automatically once it's been marked resolved from the Active Alert Log — there's nothing extra to do to populate this page.
🔗 Related: Each "Lot Change" card on the LJ chart panel (Results page) also closes the loop on its own — showing whether that lot change went on to trigger a Westgard violation, and whether it's since been resolved.
㉗ Multivariate Drift Detection
Auto-Summary
Accessible via Analyse › Multivariate Drift. Most QC methods watch one analyte at a time — this page looks across all your analytes simultaneously, since a reagent lot change, calibration event, or instrument fault often shifts several tests in the same direction at once, a pattern invisible to single-analyte charts.
Step-by-Step Guide
Click ⟳ Analyse Now to compute pairwise correlations across the z-score series of all analytes (last 30 runs each).
Review the Pearson Correlation Heatmap — strong correlations (≥0.7) between unrelated analytes are the signature of a systemic event rather than a single bad analyte.
Check the Z-Score Drift Overlay chart for analytes moving in the same direction at the same time.
Read the Auto-Generated Interpretation banner — it's a plain-language summary, written from the correlation numbers above it, of which analyte pairs are most strongly linked and what that pattern typically indicates (e.g. reagent lot, calibrator, environmental).
Open the Analyte Pair Correlation Detail table and use the Strong Only filter to focus on clinically actionable pairs.
Accessible via Simulate › QC Frequency Advisor. Recommends how often to run QC for a given analyte, based on clinical risk, patient volume, and your analyser's stability history — directly addressing ISO 15189:2022 clause 7.3.1, which requires QC frequency to be risk-based rather than fixed by convention.
Step-by-Step Guide
Select the Analyte you want a frequency recommendation for.
Set its Clinical Risk Category: Critical (e.g. K+, troponin, glucose, Na+), High (e.g. ALT, creatinine, bilirubin), Moderate, or Low.
Set your Daily Patient Volume and Analyser Stability History (how often it has failed in the last month).
Enter your current QC runs per day for comparison.
Review the Frequency Recommendation panel and the Detection Delay — Real-Time Conversion table, which translates each method's run-based detection delay into hours/days at your actual testing pace.
💡 For accreditation: the recommendation here should be reviewed by the responsible professional and documented in your quality management system — it is a starting point calibrated to detection-delay data, not an automatic policy.
㉙ Evidence Base & References
Accessible via Validate › References. A curated library of the peer-reviewed papers, standards, and guidelines that ClinQC Pro's statistical methods are built on — organised into Statistical QC Methods, Background Reading (source papers for heuristic algorithms referenced by name only), and Standards & Guidelines. Every entry links directly to its PubMed record.
There's nothing to configure here — browse by column, or use it as a ready-made citation list when writing the Methods section of a paper, an SOP, or an accreditation submission. Each card shows the full citation and PMID link so you can verify and cite the primary source directly rather than this software.
㉚ Accreditation Report Generator
Accessible via Validate › Report Generator. Produces an ISO 15189-formatted monthly IQC summary report suitable for an accreditation audit, combining your real laboratory data (analytes, runs, alerts, sigma) into a single document.
Step-by-Step Guide
Choose the Report Period (last 30/90 days, or all available data).
Fill in your Laboratory Name, Department, and Authorising BMS — these appear on the cover page.
Select the Accreditation Standard (ISO 15189:2022 or UKAS Medical).
Tick which sections to include: Executive Summary, Per-Analyte Performance, Alert Log, Sigma Metric Summary, Audit Trail.
Click Preview to check the report, then Generate PDF to download the final document.
💡 Note: unlike the Validation Dashboard or Method Benchmarking pages, this report is built entirely from your own laboratory's real entered data — it is appropriate to submit as a genuine internal QC summary for audit.
esc
Keyboard Shortcuts
Open command palette⌘K or CtrlK
Show this list?
Close any overlayEsc
Navigate palette results↑↓
Jump to selected resultEnter
New QC entryN
Import dataI
DashboardD
Alert LogA
Chart
Intelligent Batch Import
Excel Diagnostic Engine Active
Upload Laboratory Spreadsheet
Supports .xlsx, .xls, and .csv exports
Not connected
Auto-detected formats — drop any Excel or CSV:
① Long Tidy — row per run② Wide Matrix — analyte rows × date cols③ Daily Summary — N / Mean / SD rows④ Columnar — one col per analyte⑤ Single-Analyte — one column of valuesUnits auto-converted (mg/dL↔mmol/L etc.)
Research›Validation & Performance Dashboard
Validation & Performance Dashboard
Mixed real and illustrative figures for comparing detection methods. The Isolation Forest / One-Class SVM AUC values and ROC curves are real (from the accompanying manuscript's executed simulation); other cards remain illustrative examples — see the notice below for exactly which is which.
Mixed real & illustrative contentAUC cards, CUSUM delay card & ROC chart are real (manuscript sim, n=54,000 series); other cards are illustrative — don't cite them.
Real, from the manuscript's executed 300-replication simulation: the Isolation Forest and One-Class SVM AUC cards, the CUSUM detection-delay card, and the ROC Comparison chart — citable with reference to the manuscript. Still illustrative, not produced by any benchmark this app ran: the Change-Point Detection card, the Feature Weight Reference ratios, and the CUSUM Change-Point row in the Reproducibility table — do not cite these in a manuscript, accreditation submission, or method-selection decision. The "Isolation Forest" / "One-Class SVM" heuristics running live elsewhere in this app (Dashboard, Alert Log) are still fixed-weight formulas, not the trained models referenced here — see Help → AI Methods.
Real dataset size
54,000 time series (300 reps × 12 analytes × 3 levels × 5 scenarios)
Scenarios
In-control, shift, trend, imprecision, outliers
Standard referenced
CLSI C24-Ed4 / ISO 15189:2022
Want your own numbers?
Run the Training Lab simulator yourself
"Isolation Forest" heuristic — real AUC values ⓘ
Not a trained model in this app
Shift AUC
0.987
Trend AUC
0.835
Imprecision AUC
0.931
Outlier AUC
0.615
Imprecision AUC, raw z-score only0.698
Real values from a trained scikit-learn model in the manuscript's simulation — not this app's live heuristic. What's the difference?
"One-Class SVM" heuristic — real AUC values ⓘ
Not a trained model in this app
Shift AUC
0.996
Trend AUC
0.789
Imprecision AUC
0.903
Outlier AUC
0.593
False Alarm Rate / 100 runs1.33
Real values from a trained scikit-learn model in the manuscript's simulation — not this app's live heuristic. What's the difference?
Σ CUSUM (k=0.5σ, h=5σ) — real detection delays ⓘ
Real, from executed simulation
Shift (median)
2 runs
Trend (median)
66 runs
Imprecision (median)
9 runs
Outliers (median)
60 runs
False Alarm Rate / 100 runs (lowest of all 5 methods)0.76
Slowest of the 5 methods for every non-shift fault type at this calibration. Why keep it, then?
📍 Change-Point Detection
Example figures
Detection Rate
91.8%
Mean Delay
1.8 runs
False Alarms
3.2%
Miss Rate
8.2%
A separate binary-segmentation feature that genuinely runs on your data in the Westgard Inspector — but these performance numbers are illustrative, not measured. Why illustrative?
Drawn through real AUC values from the manuscript's imprecision-scenario ablation (Table 3).
Isolation Forest, full (0.931)One-Class SVM, full (0.903)Iso. Forest, z-scores only (0.698)Random (0.500)
Feature Weight Reference — which input matters most per fault type
Example figures
This app's own fixed-weight heuristic formulas (not learned from data). How does this compare to the real model?
Imprecision Alerts
Most heavily weighted: roll_SD
roll_SD ("Isolation Forest")×1.63
roll_SD ("One-Class SVM")×2.01
Trend Alerts
Most heavily weighted: ewma, roll_mean
ewma ("Isolation Forest")×3.17
roll_mean ("Isolation Forest")×2.97
Outlier Alerts
Most heavily weighted: |z|, Δz
|z| ("Isolation Forest")×3.82
Δz ("Isolation Forest")×3.17
Illustrative ratios, not measured from an executed study. Read the full note
Reproducibility & Robustness
Rows marked Real are from the manuscript's executed 300-replication simulation. What about the other rows?
Component
Metric
Median (IQR)
Replicates
Status
Isolation Forest (real model)
Imprecision AUC
0.931
300
\u2713 Real
One-Class SVM (real model)
Imprecision AUC
0.903
300
\u2713 Real
CUSUM
Trend detection delay (runs)
66 (49\u201381)
300
\u2713 Real
One-Class SVM (real model)
FAR / 100 runs
1.33
300
\u2713 Real
CUSUM Change-Point (app feature)*
FAR / 100 runs (example)
0.94 \u00b1 0.34
100
Not measured
Sigma Metric Calc
Agreement vs Manual
100.0% \u00b1 0.0%
n/a
\u2713 Genuinely exact
Research›Synthetic QC Data Generator
Synthetic QC Data Generator
Generate realistic synthetic QC datasets for validation, training, and benchmarking. Configure analytical characteristics, fault type and magnitude, then inject directly into the system or export as CSV.
Dataset Parameters
FAULT INJECTION
Generating...
Generated Dataset Preview
Configure parameters and click Generate.
Auto-Validation Results — Westgard + AI Analysis
Generate a dataset to see automatic Westgard rule evaluation, sigma classification, and anomaly detection results.
Research›Methods & Equations
Methods & Equations
Complete mathematical documentation for all algorithms implemented in ClinQC Pro. Suitable for Methods section of peer-reviewed publications and ISO 15189 accreditation submissions.
1 · Sigma Metric & Westgard Classification
CLIA / Westgard
σ = (TEa − |bias%|) / CV%
Where TEa = total allowable error (%), bias% = systematic bias as % of target mean, CV% = coefficient of variation (%). TEa values from RCPATH, CLIA, or EFLM biological variation database (Ricos et al.).
Combined standard uncertainty u_c derived from Type A (imprecision, n QC runs) and Type B (systematic bias, rectangular distribution) components. Expanded uncertainty U reported at k=2 coverage factor (≈95% confidence interval). ISO/IEC Guide 98-3:2008 (GUM) methodology. Required by ISO 15189:2022 Section 7.3.4.
λ = smoothing parameter (0.05–0.3; default 0.15). Lower λ → greater smoothing, slower response to real shifts, more stable against noise. L = control limit multiplier (default 3.0). As n accumulates, EWMA converges toward the true mean with SD approaching σ·√(λ/(2−λ)). Reference: Montgomery DC. Introduction to Statistical Quality Control. 7th ed. Wiley; 2012.
CI_mean = x̄ ± t_(α/2,n−1) · s/√n
CI_SD = √((n−1)s²/χ²_(upper)) to √((n−1)s²/χ²_(lower))
Small-n warning: n < 20 → unreliable estimates
95% CI on peer-group mean uses t-distribution with n−1 df. 95% CI on SD uses chi-squared distribution. For n < 20 QC runs, estimates are flagged as unreliable; CIs are wide and peer-group comparisons should be treated with caution.
What's actually running: ClinQC does not train an Isolation Forest or a One-Class SVM model on your data — there's no tree ensemble, no kernel, and no training step. The two scores below are fixed-formula heuristics, named after those algorithms because they're built to mimic the same idea (catch multi-feature patterns that a single Westgard rule would miss), using hand-set weights rather than weights learned from data. Treat them as a second opinion based on a simple formula, not as a calibrated probability or a literal implementation of the published methods cited below.
"Isolation Forest" score (concept: Liu et al., 2008)
This is the actual formula evaluated on your data — a weighted sum of five features, with fixed weights chosen by the developer, not learned from a training set. It is named after, and loosely inspired by, the real Isolation Forest algorithm (Liu FT, Ting KM, Zhou Z-H. ICDM 2008:413–422), which works differently (random recursive partitioning across an ensemble of trees) and is not what runs here.
"One-Class SVM" score (concept: Schölkopf et al., 2001)
A weighted Euclidean distance across the same five features, again with fixed weights. It is named after, and loosely inspired by, the real One-Class SVM (Schölkopf B et al. Neural Comput. 2001;13(7):1443–1471), which fits a kernel-space boundary from training data — no kernel or fitting happens here. Tends to flag more often than the score above, so treat alarms as a prompt to look closer rather than a confirmed finding.
5 · CUSUM & Change-Point Detection
CLSI EP23
C⁺_t = max(0, C⁺_(t−1) + (x_t − μ₀ − k))
C⁻_t = max(0, C⁻_(t−1) − (x_t − μ₀ + k))
Signal if C⁺_t > h or C⁻_t > h
k = 0.5σ (reference value)
h = 5σ (decision interval)
Two-sided CUSUM. k=0.5σ is optimal for detecting 1σ shifts. Binary segmentation change-point algorithm (penalty = 2·log(n)) identifies the exact run number of structural breaks. Reference: Page ES. Biometrika. 1954;41(1/2):100–115. Killick R et al. J Am Stat Assoc. 2012;107(500):1590–1598.
Deming regression accounts for measurement error in both x and y (λ=1 = ordinary Deming). Bland–Altman plots difference against mean; limits of agreement (LoA) contain 95% of differences. Reference: Deming WE. Statistical Adjustment of Data. 1943. Bland JM, Altman DG. Lancet. 1986;327(8476):307–310.
7 · Relative Risk Score (heuristic, not a trained model)
Five features actually used: current z-score, run-to-run Δz, EWMA drift, rolling CV trend, systematic slope. The weights (−2.5, 1.2, 0.8, 0.6, 0.4, 0.5) were chosen by the developer to feel directionally reasonable, not fitted to any dataset — there is no training step, no held-out test set, and no calibration procedure. The sigmoid keeps the output between 0 and 1, but this does not make it a calibrated probability of failure. Use it only to rank which runs look comparatively riskier, not as a likelihood estimate.
8 · Parvin Patient Risk Model (MaxE(Nuf))
CLSI C24-Ed4
MaxE(Nuf) = (1 − P_ed) × R × N_patients
P_ed = probability of error detection
R = prevalence of critical errors
N_patients = patients tested between QC events
MaxE(Nuf) = maximum expected number of unacceptable patient results reported before QC detects an error. Framework from CLSI C24-Ed4 (2016). Links QC rule selection directly to patient risk: lower P_ed or higher N_patients → greater patient harm. Reference: Parvin CA. Clin Chem. 2008;54(7):1168–1177.
AI Diagnostic Resolution Pilot
RECOMMENDED CLINICAL PROTOCOL
Likely causes — heuristic scoring
ⓘ
Weights derived from violation rule, co-firing analytes & audit history — not a trained model. Use clinical judgement.
Analyzing violation pattern...
Saving this resolution will archive the selected alerts and move them from Active Alerts into the Resolution & Audit Log if the outcome is Resolved or Unresolved.