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
Log Plug-and-play starting point AI & Automation

Register: GxP Analytics Tool Inventory (Scripts, Notebooks, Dashboards, Queries, Macro Workbooks)

A plug-and-play inventory register for every homegrown script, notebook, dashboard, query, and macro-enabled workbook touching GxP data: owner, business process, whether the output is the record of origin, risk class, validated version tag, environment reference, evidence location, validation status, periodic review dates, and decommission status, with field definitions, a shadow-tool discovery process, and a filled specimen.

Document type: Log

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 register. It is the first document an auditor asks for when the subject turns to homegrown analytics, and not having one is itself a finding, because it means nobody knows how many tools produce GxP numbers or who owns them. Replace every <<FILL: ...>> placeholder, keep one row per tool, set your own document numbers and dates, and route the register through your normal document control. Field definitions, the discovery process for unregistered tools, and a filled specimen follow. This content is educational reference, not legal or regulatory advice; verify each cited regulation against the current source before you rely on it.

Register control header

FieldEntry
Register titleGxP Analytics Tool Inventory
Register number<<FILL: register ID, e.g. REG-CSV-009>>
Version<<FILL: version>>
Effective date<<FILL: date>>
Register custodian<<FILL: role, e.g. CSV Lead>>
Governing procedure<<FILL: SOP-ID>> (validation and control of GxP scripts, notebooks, and low-code analytics)
Update triggerNew tool registration, risk reclassification, release of a new validated version, change record closure, periodic review completion, decommissioning, discovery sweep
Review frequency<<FILL: frequency, e.g. quarterly reconciliation, with a full discovery sweep every 6 months>>

How to use this register

  1. One row per tool, one tool ID per row. A tool is one unit of released logic. A dashboard with fourteen measures is one row, not fourteen. A repository containing three separately released scripts is three rows.
  2. Register before use, not after. The register entry is created when the tool is proposed for GxP use, with status Draft. It is not a record of what was validated; it is a record of what exists.
  3. Register non-GxP tools too. A row that says “assessed, not GxP, must not be used for a GxP decision without reclassification” is the evidence that the decision was made rather than avoided.
  4. Never delete a row. Decommissioned tools stay on the register with a decommission date, because the results they produced are still in the retention period.
  5. The register is the schedule. The next-review-due column drives the periodic review workload. If it is not on the register, it does not get reviewed.

Because the field set is wide, this template splits the register into two linked tables sharing the tool ID. Keep them as two sheets of one controlled file, or as one table if your document system handles the width.

Part A: identity and intended use

FieldDefinitionAllowed values or format
Tool IDUnique, permanent identifier. Never reused after decommissioning.<<FILL: convention, e.g. ANL-nnnn>>
Tool nameShort descriptive name a reader can recognise without opening the code.Free text
Tool typeThe technology category, which drives which controls apply.Script / Notebook / Dashboard / Query / Macro workbook / Pipeline job
Language or platformWhat it is written in or built on.Free text, for example Python, R, SQL, a business-intelligence platform, a spreadsheet application
OwnerThe accountable role or person who runs it in production and raises changes.Name and role
AuthorWho wrote the released logic. Recorded separately from owner because independence is judged against the author.Name and role, or “multiple, see repository history”
Business processThe GxP process the tool serves.For example stability, continued process verification, environmental monitoring, release testing, batch disposition, complaint trending
GxP decision supportedThe specific decision or conclusion the output feeds, in one sentence.Free text. “Reporting” is not a decision; say what is decided.
Output statusWhether the tool produces the authoritative record or presents a record held elsewhere.Record of origin / View of a validated source
Source system of recordWhere the input data authoritatively lives.System name and ID
Writes back to sourceWhether the tool modifies the source data. Should be No.Yes / No. Any Yes requires a documented justification reference.

Part B: control state and lifecycle

FieldDefinitionAllowed values or format
Risk classThe classification from the risk classification form.A (High) / B (Medium) / C (Low, GxP) / Non-GxP
Risk classification referenceThe approved classification record.Record ID and approval date
Validated version tagThe version control tag approved for GxP use, plus the commit identifier it points to.For example v1.2-validated at a3f19c4
Code locationRepository and path, or the controlled location for binary project files.Repository or path
Environment referenceThe pinned environment identifier: manifest file, package snapshot, or container image digest.Free text plus digest where applicable
Execution locationWhere the validated version runs.Named server, workspace, or platform. “Analyst workstation” is a finding for class A and B.
Specification referenceThe approved specification.Document ID and version
Code review referenceThe signed independent code review for the current validated version.Record ID and date
Test evidence referenceThe executed test protocol or automated test run record.Document ID and date
Release statement referenceThe approved statement that the tool is fit for intended use.Document ID and date
Validation statusWhere the tool sits in the lifecycle.Draft / In validation / Released / Change in progress / Suspended / Decommissioned
Validation dateDate the current validated version was released for GxP use.Date
Last periodic reviewDate the last periodic review was completed.Date, or “Not yet due”
Next review dueDriven by risk class interval from validation or last review.Date
Open change recordsAny change in flight against this tool.Change record IDs, or None
Decommission status and dateWhether the tool is retired and when.Active / Decommissioned on <<date>> / Superseded by <<tool ID>>
Retention location of archiveWhere the archived code, environment, and evidence sit after decommissioning.Free text
Notes and limitationsStated limits of validity, known caveats, dependencies on other tools.Free text

Discovering shadow tools

A register only reflects reality if you actively look for what is missing. Registration by voluntary self-declaration routinely undercounts, because the people running the highest-risk unregistered tools are usually the ones most convinced their tool is too small to matter. Run all five of the following at the frequency set in the header and record what each one found.

MethodWhat it looks forTypical finding
Repository scanRepositories, branches, and project files in the version control estate that contain analysis code but have no tool ID in the registerCode that was version-controlled but never validated
Scheduled job and orchestration reviewEvery scheduled task, cron entry, pipeline, and platform-scheduled refresh that runs against a GxP source, reconciled against the registerJobs still running for tools everyone believed were retired
Analytics platform workspace reviewEvery published dashboard, dataflow, semantic model, and shared workbook on the business-intelligence platform, and who it is shared withDashboards published to a whole department with no owner and no measure specification
Source system access and query log reviewWhich service accounts and named users read GxP source data, and what tool sits behind each oneAn undeclared account extracting release data into a spreadsheet
Departmental attestationEach function head confirms in writing that every GxP analytics tool used by their function is registered, listing any additionsMacro-enabled workbooks that nobody thought of as software

Additional prompts that reliably surface shadow tools: ask where each number in the quality metrics pack comes from and follow it back; ask what happens if the person who produces a recurring report is on leave; and read the file paths embedded in recently issued reports.

When a shadow tool is found in GxP use:

  1. Register it immediately with status Draft and a note that it was found by discovery, not declared.
  2. Classify it. If it is class A or B, suspend GxP use of its output until at least the code review and calculation verification are complete, or document the interim controls that make continued use defensible.
  3. Assess whether results already produced require verification, under <<FILL: SOP-ID for data integrity investigation>>.
  4. Record the discovery in the sweep record so the trend in shadow-tool count over time is visible to management review.

Register maintenance rules

  • The custodian reconciles the register against version control tags at <<FILL: frequency>>. A production tool whose running version does not match its registered tag is suspended until reconciled.
  • A tool with status Released and a next-review-due date in the past is escalated to <<FILL: role>> within <<FILL: number>> working days.
  • Reclassification upward from C to B, or B to A, requires the deliverable set for the new class before continued GxP use.
  • Owner departure triggers reassignment within <<FILL: number>> working days. An orphaned class A tool is suspended.
  • The register itself is a controlled record and is retained for the life of the program.

Register: Part A (blank rows)

Tool IDTool nameTypeLanguage or platformOwnerAuthorBusiness processGxP decision supportedOutput statusSource system of recordWrites back
<<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>
<<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>

Register: Part B (blank rows)

Tool IDRisk classValidated version tagCode locationEnvironment referenceExecution locationSpec refCode review refTest evidence refRelease refStatusValidation dateLast reviewNext review dueDecommission status
<<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>
<<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>

Filled specimen

Seven rows spanning every risk class, including one non-GxP tool, one tool with a change in flight, one suspended shadow tool found by discovery, and one decommissioned tool. Names, identifiers, and dates are illustrative.

Specimen Part A

Tool IDTool nameTypeLanguage or platformOwnerAuthorBusiness processGxP decision supportedOutput statusSource system of recordWrites back
ANL-0007Stability slope and shelf-life boundScriptPython 3.11K. Osei, Stability LeadK. OseiStabilitySets the potency trend and shelf-life confidence bound reported in the annual product reviewRecord of originLIMS-01No
ANL-0012CPV control limit generatorNotebookR 4.3, QuartoM. Larsen, Process StatisticianM. LarsenContinued process verificationEstablishes the control limits used to judge whether a drug substance batch is in a state of controlRecord of originHistorian-02 and LIMS-01No
ANL-0021Release results dashboardDashboardBusiness-intelligence platformS. Prakash, QC ManagerS. Prakash and D. WhitfieldRelease testingReviewed by the QA lead before batch disposition to confirm all release tests are complete and within specificationView of a validated sourceLIMS-01No
ANL-0034Cell dose calculation workbookMacro workbookSpreadsheet with macrosJ. Boateng, MSAT LeadJ. BoatengCell therapy manufacturingConverts viable cell count to the volume dispensed for the patient dose, transcribed into the batch recordRecord of originMES-03No
ANL-0040EM excursion trending queryQuerySQLR. Ilyas, Micro SupervisorR. IlyasEnvironmental monitoringProduces the monthly excursion rate reviewed at the contamination control forum; no action taken on the query output aloneView of a validated sourceEM-LIMS-04No
ANL-0048Yield exploration notebookNotebookPython 3.11, JupyterA. Ferreira, Process EngineerA. FerreiraProcess developmentNone. Exploratory only. Output must not be used for a GxP decision without reclassificationView of a validated sourceHistorian-02No
ANL-0002Legacy stability slope macroMacro workbookSpreadsheet with macrosK. Osei, Stability LeadUnknown, predates repositoryStabilitySuperseded by ANL-0007Record of originLIMS-01No

Specimen Part B

Tool IDRisk classValidated version tagEnvironment referenceExecution locationSpec refCode review refTest evidence refRelease refStatusValidation dateLast reviewNext review dueDecommission status
ANL-0007Av1.0-validated at a3f19c4requirements.txt, image digest sha256:9c1d4b...Analytics server ANSRV-01SPEC-ANL-0007 v1.0CR-ANL-0007-001, 30 Apr 2026VP-ANL-0007, 05 May 2026RS-ANL-0007 v1.0Released12 May 2026Not yet due12 May 2027Active
ANL-0012Av2.1-validated at 77be0d1renv.lock, image digest sha256:4e77aa...Analytics server ANSRV-01SPEC-ANL-0012 v2.0CR-ANL-0012-004, 11 Feb 2026VP-ANL-0012 rev 2, 19 Feb 2026RS-ANL-0012 v2.1Change in progress (CC-2026-0501, outlier rule update)26 Feb 2026Not yet due26 Feb 2027Active
ANL-0021Bv1.4-validated at c02e5f8Platform workspace QC-PROD, gateway GW-02Business-intelligence service, workspace QC-PRODSPEC-ANL-0021 v1.3 (14 measures specified)CR-ANL-0021-006, 08 Jun 2026VP-ANL-0021, 15 Jun 2026RS-ANL-0021 v1.4Released22 Jun 2026Not yet due22 Jun 2028Active
ANL-0034A (small tool, escalated on patient reach)v3.0-validated at 1de44a9Locked template, spreadsheet build <<FILL>>, macro signing certificate CERT-11Controlled template library, MSAT areaSPEC-ANL-0034 v3.0CR-ANL-0034-002, 03 Mar 2026VP-ANL-0034, 10 Mar 2026RS-ANL-0034 v3.0Released16 Mar 2026Not yet due16 Mar 2027Active
ANL-0040Cv1.1-validated at b8a3771SQL on EM-LIMS-04 read-only replicaReporting replica RPT-02SPEC-ANL-0040 v1.1CR-ANL-0040-001, 21 Jan 2026Verification note VN-ANL-0040, 22 Jan 2026RS-ANL-0040 v1.1Released27 Jan 2026Not yet due27 Jan 2029Active
ANL-0048Non-GxPNot applicableLocal project environmentAnalytics server ANSRV-02, sandbox workspaceNot applicableNot applicableNot applicableNot applicableReleased as non-GxP03 Jul 2026Confirmed at Jul 2026 sweepNext sweepActive. Limitation: output carries a non-GxP watermark and must not be pasted into a controlled document
ANL-0002A (at retirement)v4.2-validated at f5c1092Archived spreadsheet build and macro, archive ARC-2026-0117WithdrawnSPEC-ANL-0002 v4.0CR-ANL-0002-009, 2023VP-ANL-0002 rev 4RS-ANL-0002 v4.2Decommissioned202304 Feb 2026Not applicableDecommissioned 12 May 2026, superseded by ANL-0007. Archive retained to 2043 per stability record retention

Specimen discovery sweep result

Sweep dateMethodTools found unregisteredAction
06 Jul 2026Repository scan2Both registered. One (a potency unit-conversion helper imported by ANL-0007) reclassified as part of ANL-0007 rather than a separate tool
06 Jul 2026Scheduled job review1A nightly refresh still running for decommissioned ANL-0002. Job disabled the same day; no output had been consumed since 12 May 2026, confirmed from the report distribution list
06 Jul 2026Platform workspace review3Two personal-workspace copies of ANL-0021 deleted and users redirected to the published version. One departmental dashboard trending release cycle time registered as ANL-0052, classified C
06 Jul 2026Source access log review1An undeclared service account extracting stability data to a shared folder. Traced to a macro workbook, registered as ANL-0053, suspended pending classification and code review
06 Jul 2026Departmental attestation0 additionalAll four function heads attested. Micro attested with a note that ANL-0040 output is reviewed but never actioned alone, supporting its class C

Shadow-tool count found by sweep: 7 in January 2026, 7 in July 2026. Flat rather than falling, which was escalated to management review with a proposal to add a repository template and a registration step to the analytics onboarding path.

Common inspection findings this register prevents

  • The opening request for a list of GxP scripts and dashboards cannot be answered, and the list produced during the inspection is visibly assembled that week.
  • A tool producing a number in a regulatory document is not on any list, so no classification, review, or test evidence exists for it.
  • A dashboard reviewed before batch disposition has no named owner, and the person who built it left the company.
  • Two versions of the same dashboard exist, one published and one in a personal workspace, and different people are looking at different numbers.
  • A scheduled job is still refreshing and distributing output from a tool the organization believes was retired.
  • Periodic reviews are overdue for tools nobody realised were still in production, because the review schedule was never linked to an inventory.
  • A tool is described as validated but the version running cannot be matched to any tagged, released version.
  • Exploratory output was pasted into a controlled document because nothing on the record said it was non-GxP.

How to adapt this register

  1. Set your tool ID convention and never reuse an ID. Sequential is sufficient; embedding the department or year in the ID creates rework when either changes.
  2. If you already maintain a computerized system inventory, decide deliberately whether these tools become rows in it or live in a separate register. A separate register is usually cleaner because the field set differs, but the two must cross-reference so a system upgrade surfaces the tools that read from it.
  3. Add a column for the upstream system identifier if you want a system upgrade to immediately show which analytics tools are exposed to the schema change. This is the single most useful extra column in practice.
  4. Set the reconciliation and sweep frequencies to what you will actually do. Two real sweeps a year beat four scheduled sweeps and one performed.
  5. Track shadow-tool count found per sweep as a metric and take it to management review. A count that does not fall means the controlled path is still harder than the uncontrolled one.
  6. If your document system cannot handle the width, keep Part A and Part B as two sheets of one controlled workbook joined on tool ID, and control the workbook itself under the same rules this register applies to macro workbooks.
  7. Reference this register by number in the governing SOP, the change control procedure, and the periodic review procedure, so that each one drives updates back into it.
Use madhadi.com as an app Full screen, works offline, one tap from your home screen.