Skip to content
AIAssuranceLabs
Menu

ISO/IEC 42001 and the AI Act: what a QMS audit against Article 17 checks

This guide runs the quality management system check that Art. 17(1) asks for, with ISO/IEC 42001:2023Published, published, as the reference structure and the preparation and record-sampling steps of PR-17-QMS v1.0. Each of the thirteen points in Art. 17(1) is mapped to a clause or an Annex A control of the standard, or marked as having none. At the end the reader holds a crosswalk file, a document inventory, a script that fails on any point without a record, and a gap register with the points the standard does not reach.

What the obligation asks for

Art. 17(1) of Regulation (EU) 2024/1689 requires a provider of a high-risk AI system to put a quality management system in place, documented in written policies, procedures and instructions, that covers at least the aspects in points (a) to (m). Points (a) to (f) and (j) to (m) name the content of the system: a strategy for regulatory compliance with the management of modifications, design and development procedures, examination, test and validation procedures with their frequency, the technical specifications and standards applied, data management, communication with authorities and operators, record-keeping, resource management and an accountability framework. Points (g), (h) and (i) cross-reference three other parts of the Regulation: the risk management system under Art. 9, post-market monitoring under Art. 72 and serious incident reporting under Art. 73. Art. 17(2) makes the implementation proportionate to the size of the provider, and Art. 63(1), as amended by Regulation (EU) 2026/1744, lets an SME without partner or linked enterprises meet certain elements in a simplified manner. The Art. 17 obligation page lists every element with its split into testable, documentation and process. The duty applies from the Annex III application date Deferred for a system classified under Art. 6(2), and from the Annex I date Deferred for a system under Art. 6(1).

The audit the title refers to is the one the Regulation itself names. Under Annex VI point 2, a provider that follows the internal control route verifies that the established quality management system meets the requirements of Art. 17; under Annex VII section 3, a notified body assesses the quality management system where that route applies. The guide covers the eight testable elements of the Art. 17 record: the modification record per released version with its substantial-modification decision (Art. 17(1)(a)), the design verification records (Art. 17(1)(b)), the quality control records (Art. 17(1)(c)), the test and validation records at the stated frequency (Art. 17(1)(d)), the dataset records (Art. 17(1)(f)), the serious incident walk-through (Art. 17(1)(i)), the record retrieval test (Art. 17(1)(k)) and the role walk-through of the accountability framework (Art. 17(1)(m)). The seventeen documentation elements are checked as written procedures with a stated content, and ISO/IEC 42001:2023Published supplies the clause each written procedure maps to. The standard is an international management-system standard from ISO/IEC JTC 1/SC 42; it is not a harmonised standard, it is not cited in the Official Journal, and no presumption of conformity attaches to an audit outcome against it, because no harmonised standard for Art. 17 is cited as of the anchor date. The published European standard for this article is prEN 18286Published, with an Annex ZA mapping to the Act, and the standards page shows the stage of each document.

Inputs

The inputs are the subset of the PR-17-QMS v1.0 input table that the preparation, sampling and walk-through steps use, plus the tools the examples call. The full table is on the protocol page.

  • The quality management system manual with the written policies, procedures and instructions for Art. 17(1) points (a) to (m), exported with a document id, title, version and owner role per document.
  • The scope statement of the AI management system under ISO/IEC 42001:2023Published §4.3 and the Statement of Applicability under §6.1.3, where the provider holds them.
  • The release history and modification records of the high-risk AI system, with version ids and the decision field per change.
  • The design verification, quality control, examination, test and validation records, with the version id on each record.
  • The dataset records for the training, validation and testing sets, with acquisition, labelling, storage and retention entries.
  • The post-market monitoring plan, the serious incident reporting procedure and one agreed simulated incident scenario.
  • The accountability framework with its role list, the internal audit programme, the audit reports and the management review minutes.
  • Read access to the record-keeping system for the retrieval test.
  • A shell with python and the PyYAML parser installed.

Procedure

Each step names the protocol step or the clause it derives from and the record it produces. Code blocks follow the step they belong to. Every document id, record id, version, path and count in the examples is synthetic.

  1. Record the system, the version, the Annex route and whether the §4.3 scope statement covers the system.

    Record review scope record: system, version, provider role, Annex route, management-system scope statement and whether the system sits inside it

    [AIAssuranceLabs procedure; PR-17-QMS step 1; ISO/IEC 42001:2023 §4.3]

  2. Collect every written policy, procedure and instruction into a document inventory with an id, a version and an owner role.

    Record document inventory: one row per policy, procedure, instruction or record type, with id, title, version, owner role and the Art. 17(1) point it serves

    [Regulation (EU) 2024/1689, Art. 17(1); PR-17-QMS step 2; ISO/IEC 42001:2023 §7.5]

  3. Map each Art. 17(1) point to a clause or Annex A control of the standard, or mark it as having none.

    Record crosswalk: one row per Art. 17(1) point with the clauses, the Annex A controls, or 'no clause', and the record ids that answer it

    [prEN 18286, published, Annex ZA mapping to the Act; PR-17-QMS step 3; ISO/IEC 42001:2023 clauses 4 to 10 and Annex A]

  4. Run the check: every Art. 17(1) point has a record reference, and every reference exists in the inventory.

    Record crosswalk check output: points with no record reference, record ids not in the inventory, exit code

    [AIAssuranceLabs procedure; PR-17-QMS step 8]

  5. Sample the modification record of each released version and check the substantial-modification decision and the follow-on step.

    Record modification record sample: version id, substantial-modification decision, conformity assessment step that followed

    [Regulation (EU) 2024/1689, Art. 17(1)(a) and Art. 43(4); PR-17-QMS step 10; ISO/IEC 42001:2023 §6.3]

  6. Sample the design verification and quality control records of the current version and trace each item to a design input.

    Record design verification and quality control sample: verified item, design input traced, checks named by the procedure, checks found, outcome

    [Regulation (EU) 2024/1689, Art. 17(1)(b) and 17(1)(c); PR-17-QMS steps 11 and 12; ISO/IEC 42001:2023 Annex A controls A.6.1.3 and A.6.2.4]

  7. Sample the examination, test and validation records against the frequency the procedure states and check the version id on each.

    Record test record sample: runs expected at the stated frequency, runs found, version id per record

    [Regulation (EU) 2024/1689, Art. 17(1)(d); PR-17-QMS step 14; ISO/IEC 42001:2023 Annex A control A.6.2.4]

  8. Sample the dataset records of the training, validation and testing sets against the steps the data management procedure names.

    Record dataset record sample: acquisition, labelling, storage and retention step per set

    [Regulation (EU) 2024/1689, Art. 17(1)(f); PR-17-QMS step 16; ISO/IEC 42001:2023 Annex A controls A.7.3 to A.7.6]

  9. Walk one simulated serious incident through the procedure until the reporting step names the authority and the timeframe.

    Record incident walk-through record: scenario, steps taken, authority identified, Art. 73 timeframe identified, stop point

    [Regulation (EU) 2024/1689, Art. 17(1)(i) and Art. 73; PR-17-QMS step 19; ISO/IEC 42001:2023 Annex A control A.8.4]

  10. Retrieve each sampled record for the current version and for one earlier version within the stated retention period.

    Record retrieval test record: record id, version, found or not found, location

    [Regulation (EU) 2024/1689, Art. 17(1)(k) and Art. 18; PR-17-QMS step 21; ISO/IEC 42001:2023 §7.5.3]

  11. Walk through each responsibility in the accountability framework with the named role holder and record the confirmation.

    Record role walk-through record: responsibility, role, holder confirmation, gap

    [Regulation (EU) 2024/1689, Art. 17(1)(m); PR-17-QMS step 23; ISO/IEC 42001:2023 §5.3 and Annex A control A.3.2]

  12. Check that the last internal audit and management review covered every Art. 17(1) point, and record the points missed.

    Record audit coverage table: Art. 17(1) point, last internal audit that covered it, management review that recorded it

    [ISO/IEC 42001:2023 §9.2 and §9.3; PR-17-QMS step 7]

  13. Classify each row as conforms, partial, gap or not applicable, then assign each open row an action and owner role.

    Record gap register, classified, with an evidence id per row; corrective-action plan rows with owner role and closing evidence

    [prEN 18286, published, clause on nonconformity and corrective action; ISO/IEC 42001:2023 §10.2; PR-17-QMS steps 37 and 40]

Example for step 2. The inventory below has one row per document or record type. The point column names the Art. 17(1) point the row serves; a document that serves several points appears once per point. The ids, titles and versions are synthetic.

# Synthetic example: qms-inventory.csv for demo-system 2.4.0
doc_id,title,version,owner_role,kind,point
POL-001,AI policy and regulatory strategy,4,head of quality,policy,a
PRC-012,Change control and substantial-modification decision procedure,3,head of quality,procedure,a
PRC-020,Design control and design verification procedure,2,engineering lead,procedure,b
PRC-021,Development and quality assurance procedure,2,engineering lead,procedure,c
PRC-030,Examination test and validation procedure,5,test lead,procedure,d
PRC-040,Data management procedure,3,data lead,procedure,f
RMF-001,Risk management file,7,risk owner,record,g
PRC-060,Communication with authorities and customers procedure,1,head of quality,procedure,j
PRC-070,Record control and retention procedure,2,head of quality,procedure,k
PRC-080,Resource and supplier management procedure,1,operations lead,procedure,l
ORG-001,Accountability framework and role register,3,managing director,record,m
REC-CHG,Modification records per release,n/a,head of quality,record,a
REC-TST,Test and validation run records,n/a,test lead,record,d
REC-DAT,Dataset lineage records,n/a,data lead,record,f

Example for step 3. The crosswalk has one row per Art. 17(1) point. The iso42001 list holds the clause and Annex A control references of ISO/IEC 42001:2023Published that the row maps to; an empty list means the standard has no clause with that content, and the act_only field then names the provision of Regulation (EU) 2024/1689 the procedure has to be written from. The records list holds ids from the inventory. The clause references are read from the standard; the record ids are synthetic.

# Synthetic example: art17-crosswalk.yaml for demo-system 2.4.0
system: demo-system
version: "2.4.0"
reference: "ISO/IEC 42001:2023, published; not cited in the Official Journal"
points:
  - id: a
    text: strategy for regulatory compliance, conformity assessment procedures, management of modifications
    iso42001: ["4.2", "5.2", "6.3", "A.2.2", "A.6.1.2"]
    act_only: "Art. 43 conformity assessment route; Art. 43(4) substantial modification"
    records: [POL-001, PRC-012, REC-CHG]
  - id: b
    text: design, design control and design verification
    iso42001: ["A.6.1.3", "A.6.2.2", "A.6.2.3", "A.6.2.4"]
    records: [PRC-020]
  - id: c
    text: development, quality control and quality assurance
    iso42001: ["8.1", "A.6.1.3", "A.6.2.4"]
    records: [PRC-021]
  - id: d
    text: examination, test and validation before, during and after development, with frequency
    iso42001: ["9.1", "A.6.2.4", "A.6.2.6"]
    act_only: "frequency: no value in the standard; provider's justified value"
    records: [PRC-030, REC-TST]
  - id: e
    text: technical specifications and standards applied; means used for Section 2 requirements not covered
    iso42001: []
    act_only: "Art. 17(1)(e); Chapter III Section 2 requirements, Art. 9 to Art. 15"
    records: []
  - id: f
    text: data management from acquisition to retention
    iso42001: ["A.4.3", "A.7.2", "A.7.3", "A.7.4", "A.7.5", "A.7.6"]
    records: [PRC-040, REC-DAT]
  - id: g
    text: risk management system under Art. 9
    iso42001: ["6.1.2", "6.1.3", "8.2", "8.3"]
    act_only: "Art. 9(2) to 9(9): per-system hazards, acceptance criteria, prior defined metrics and thresholds"
    records: [RMF-001]
  - id: h
    text: post-market monitoring system under Art. 72
    iso42001: ["9.1", "A.6.2.6"]
    act_only: "Art. 72(3) plan as part of the technical documentation"
    records: []
  - id: i
    text: serious incident reporting under Art. 73
    iso42001: ["A.3.3", "A.8.4"]
    act_only: "Art. 73: market surveillance authority, reporting timeframes"
    records: []
  - id: j
    text: communication with authorities, notified bodies, operators, customers and interested parties
    iso42001: ["7.4", "A.8.3", "A.8.5", "A.10.4"]
    records: [PRC-060]
  - id: k
    text: record-keeping of all relevant documentation and information
    iso42001: ["7.5.3", "A.6.2.7", "A.6.2.8"]
    act_only: "Art. 18(1) retention period"
    records: [PRC-070]
  - id: l
    text: resource management, including security of supply
    iso42001: ["7.1", "A.4.2", "A.4.4", "A.4.5", "A.4.6", "A.10.3"]
    records: [PRC-080]
  - id: m
    text: accountability framework for management and other staff
    iso42001: ["5.3", "A.3.2", "A.10.2"]
    records: [ORG-001]

Example for step 4. The script loads the crosswalk and the inventory, checks that all thirteen points (a) to (m) have a row, that every point has at least one record reference, that every referenced id exists in the inventory, and that a point with no clause in the standard carries an act_only provision. It prints one line per failure and exits with code 1 when any point fails, so that it can run as a repository check before the gap register is filed. It needs the PyYAML parser.

# Synthetic example: check art17-crosswalk.yaml against qms-inventory.csv
import csv
import sys
import yaml

POINTS = list("abcdefghijklm")

with open("art17-crosswalk.yaml", encoding="utf-8") as f:
    crosswalk = yaml.safe_load(f)

inventory = set()
with open("qms-inventory.csv", encoding="utf-8") as f:
    for row in csv.DictReader(l for l in f if not l.startswith("#")):
        inventory.add(row["doc_id"])

rows = {p["id"]: p for p in crosswalk.get("points", [])}
failures = []

for pid in POINTS:
    row = rows.get(pid)
    if row is None:
        failures.append((pid, "no row in crosswalk"))
        continue
    records = row.get("records") or []
    if not records:
        failures.append((pid, "no QMS record reference"))
    for rid in records:
        if rid not in inventory:
            failures.append((pid, "record %s is not in qms-inventory.csv" % rid))
    if not row.get("iso42001") and not row.get("act_only"):
        failures.append((pid, "no clause in the standard and no act_only provision named"))

for pid in rows:
    if pid not in POINTS:
        failures.append((pid, "row id is not an Art. 17(1) point"))

for pid, reason in failures:
    print("FAIL (%s) %s" % (pid, reason))
print("%d of %d points have a record reference; %d failures" % (
    sum(1 for p in POINTS if rows.get(p, {}).get("records")), len(POINTS), len(failures)))
sys.exit(1 if failures else 0)

On the synthetic crosswalk above the script reports three failures: points (e), (h) and (i) have no record reference. The three are the points that name a provision of the Regulation which the standard has no clause for, so the inventory holds no document for them until the provider writes one from the article text. Every count is an output of this example, never a requirement of the Act.

Example for step 13. The gap register row follows the layout on the protocol page. The row below is the one point (e) produces on the synthetic crosswalk.

# Synthetic example: gap register row for Art. 17(1)(e)
row_id         : GR-17-01e
aspect         : Art. 17(1)(e) technical specifications and standards applied; means for uncovered Section 2 requirements
clause_map     : ISO/IEC 42001:2023, no clause; prEN 18286 clause on applied standards
element        : applied standards list with a coverage statement per Chapter III Section 2 requirement (documentation)
evidence_id    : none
method         : documentation check
finding        : the applied standards list names ISO/IEC 42001:2023 and no statement of means for Art. 9 to Art. 15
classification : gap
owner_role     : head of quality
action_ref     : CAP-01

A pitfall that vendor documentation omits

Management-system tooling and audit-readiness material present a clause coverage table for ISO/IEC 42001:2023Published as a coverage table for Art. 17. The two tables have different units. The standard's unit is the organisation's AI management system, whose scope the organisation sets itself under §4.3 and whose risk assessment under §6.1.2 and §8.2 addresses the organisation's own AI objectives. The unit of Art. 17(1) is the quality management system of a provider for a high-risk AI system, and four of its thirteen points are written from the Regulation rather than from any management-system clause: point (e) asks for the means used for each Chapter III Section 2 requirement that no harmonised standard covers, point (g) asks for the Art. 9 risk management system with its per-hazard acceptance criteria and its prior defined metrics and thresholds under Art. 9(8), point (h) asks for the Art. 72 post-market monitoring system, and point (i) asks for the Art. 73 serious incident reporting procedure with the authority and the timeframes. A clause coverage table cannot show these four, and the Art. 17 obligation record names the first of them as a common finding: an applied standards list that names the published ISO/IEC 42001:2023 without the statement of how the Section 2 requirements it does not cover are met. A scope statement under §4.3 that leaves the high-risk system outside the management system is the second form of the same pitfall: the standard's clauses are then covered for an organisation, and none of the records the eight testable elements sample exist for the system under review, which is why step 1 records the scope statement before anything else.

Regulation (EU) 2024/1689 sets no numeric threshold in Art. 17; it names no test frequency for point (d), no sampling depth for any point, and no retention period beyond the one Art. 18(1) sets for point (k). No harmonised standard for Art. 17 is cited in the Official Journal as of the anchor date, so no presumption of conformity exists at the first level of the source hierarchy, and an audit outcome against the published ISO/IEC 42001:2023 from any audit body is not a conformity assessment under Art. 43. The structure a gap analysis compares against sits at levels 2 and 3: prEN 18286Published, published and not cited in the Official Journal, supplies the clause content and the Annex ZA mapping; ISO/IEC 42001:2023Published supplies the management-system clauses, the Annex A controls and the internal audit, management review and corrective-action method under §9.2, §9.3 and §10.2. Neither document publishes a frequency, a depth or a period, so the provider sets each value and justifies it against the context of use, and step 38 of PR-17-QMS v1.0 records that justification per point; the methodology index states the same hierarchy for every protocol.

What the result shows and what it does not

The crosswalk, the check output, the record samples and the walk-through records show, for one version at one point in the lifecycle, that a written procedure exists for each Art. 17(1) point, that a record answers it, that the sampled records show the content the procedure names, and that one simulated incident and one set of role holders reach the end points the steps name. They do not show that the quality management system operated between the sampled versions or that it will operate after the review, that every incident type reaches the reporting step, or that a test result inside a sampled record is correct; PR-15-ROB v1.0 executes the tests. The classification of a change as a substantial modification and the SME, start-up or SMC status under Art. 17(2) and Art. 63(1) are the provider's decisions, which the protocol records and does not decide. The result is evidence for the provider's own file under Annex VI point 2 or for the notified body's assessment under Annex VII section 3; the decision whether the system meets Art. 17 remains with the provider, their notified body where one is required, and their counsel. The QMS gap analysis service runs the full protocol and delivers the gap register, corrective-action plan and internal audit checklist, and its scope limits are on what we cannot do.

Related pages

The obligation, the protocol, the related guide on the traceability matrix that the crosswalk rows feed, and the hubs for the two roles this guide serves are listed below.

Obligations
Protocols
Related guides
ICP hubs

Questions

Does an ISO 42001 management system meet Article 17 of the AI Act?

A management system built on ISO/IEC 42001:2023, a published international standard, supplies written procedures for most of the Art. 17(1) points, among them design, development, testing, data management, record-keeping, resources and the accountability framework. The standard has no clause for point (e), the means used for uncovered Chapter III Section 2 requirements, and no clause for the Art. 9, Art. 72 and Art. 73 content of points (g), (h) and (i). The provider writes those procedures from the article text. No harmonised standard for Art. 17 is cited in the Official Journal as of the anchor date, so an audit outcome against the standard carries no presumption of conformity.

How do the EU AI Act and ISO/IEC 42001 relate to each other?

Art. 17 of Regulation (EU) 2024/1689 is a legal obligation on providers of high-risk AI systems. ISO/IEC 42001:2023 is a voluntary management-system standard from ISO/IEC JTC 1/SC 42, published and not cited in the Official Journal. A quality management system under Art. 17 can be built on the clauses and Annex A controls of the standard, and a gap analysis records the clause each Art. 17(1) point maps to. The European standard drafted for Art. 17 is prEN 18286, published by CEN-CENELEC JTC 21 with an Annex ZA mapping to the Act; the standards page shows the stage of each document.

Every inquiry receives a reply within 24 hours. Scope and availability are discussed per request.

Ask about scopehello@aiassurancelabs.com