Skip to content
AIAssuranceLabs
Menu

Obligation tracker: published logic

File
data/tool-logic/tracker.json
Version
v1.0
Used by
Obligation tracker

A per-system view of the obligations and dates for one role and tier. The tracker selects the matching profiles from profiles.json (the role and tier profiles, the establishment and FRIA profiles where the flags are set, and the profiles marked any), expands each article that has an obligation page into its documentation and process elements from data/obligations.json, and renders the application date of each row from the regulation entry the profile names. The status column is kept in the browser only and is written into the CSV export.

Inputs

Tracker inputs
IdPromptTypeShown whenOptions
roleRolesinglealways
  • provider Provider (or product manufacturer under Art. 25(3))
  • deployer Deployer
  • importer Importer
  • distributor Distributor
  • gpai-provider General-purpose AI model provider
tierClassification tiersinglealways
  • high-risk-annex-iii High-risk, Annex III (Art. 6(2))
  • high-risk-annex-i-a High-risk, Annex I Section A (Art. 6(1))
  • annex-i-b Annex I Section B product (Art. 2(2))
  • not-high-risk-art-6-3 Annex III area, not high-risk under Art. 6(3)
  • transparency-art-50 Art. 50 transparency duty only
  • gpai General-purpose AI model
  • gpai-systemic-risk General-purpose AI model with systemic risk
estEstablished in the Unionsinglealways
  • eu Yes
  • non-eu No
friaDeployer within Art. 27(1) (public body, public services, or Annex III point 5(b) or 5(c))singlerole = deployer
  • no No
  • yes Yes

Profile selection

Profiles added by flag
WhenProfiles
role and tier match a profilethat profile
est=non-eu and tier=high-risk-annex-iiinon-eu-provider-annex-iii
est=non-eu and tier=high-risk-annex-i-anon-eu-provider-annex-i-a
est=non-eu and role=gpai-providergpai-provider-non-eu
fria=yes and role=deployer and tier=high-risk-annex-iiideployer-fria
tier=gpai-systemic-risk and role=gpai-providergpai-provider, gpai-provider-systemic
alwaysall-literacy

Columns and statuses

Obligation · Element · Kind · Applies from · Source · Status

Not started · In progress · Evidence ready · Recorded as not applicable

The file

data/tool-logic/tracker.json
{
  "id": "tracker",
  "version": "1.0",
  "title": "Obligation tracker",
  "summary": "A per-system view of the obligations and dates for one role and tier. The tracker selects the matching profiles from profiles.json (the role and tier profiles, the establishment and FRIA profiles where the flags are set, and the profiles marked any), expands each article that has an obligation page into its documentation and process elements from data/obligations.json, and renders the application date of each row from the regulation entry the profile names. The status column is kept in the browser only and is written into the CSV export.",
  "inputs": [
    {
      "id": "role",
      "prompt": "Role",
      "type": "single",
      "options": [
        {
          "value": "provider",
          "label": "Provider (or product manufacturer under Art. 25(3))"
        },
        {
          "value": "deployer",
          "label": "Deployer"
        },
        {
          "value": "importer",
          "label": "Importer"
        },
        {
          "value": "distributor",
          "label": "Distributor"
        },
        {
          "value": "gpai-provider",
          "label": "General-purpose AI model provider"
        }
      ]
    },
    {
      "id": "tier",
      "prompt": "Classification tier",
      "type": "single",
      "options": [
        {
          "value": "high-risk-annex-iii",
          "label": "High-risk, Annex III (Art. 6(2))"
        },
        {
          "value": "high-risk-annex-i-a",
          "label": "High-risk, Annex I Section A (Art. 6(1))"
        },
        {
          "value": "annex-i-b",
          "label": "Annex I Section B product (Art. 2(2))"
        },
        {
          "value": "not-high-risk-art-6-3",
          "label": "Annex III area, not high-risk under Art. 6(3)"
        },
        {
          "value": "transparency-art-50",
          "label": "Art. 50 transparency duty only"
        },
        {
          "value": "gpai",
          "label": "General-purpose AI model"
        },
        {
          "value": "gpai-systemic-risk",
          "label": "General-purpose AI model with systemic risk"
        }
      ]
    },
    {
      "id": "est",
      "prompt": "Established in the Union",
      "type": "single",
      "options": [
        {
          "value": "eu",
          "label": "Yes"
        },
        {
          "value": "non-eu",
          "label": "No"
        }
      ]
    },
    {
      "id": "fria",
      "prompt": "Deployer within Art. 27(1) (public body, public services, or Annex III point 5(b) or 5(c))",
      "type": "single",
      "showWhen": {
        "role": "deployer"
      },
      "options": [
        {
          "value": "no",
          "label": "No"
        },
        {
          "value": "yes",
          "label": "Yes"
        }
      ]
    }
  ],
  "profileSelection": {
    "roleAliases": {
      "manufacturer": "provider"
    },
    "always": [
      "all-literacy"
    ],
    "byFlag": {
      "est=non-eu&tier=high-risk-annex-iii": [
        "non-eu-provider-annex-iii"
      ],
      "est=non-eu&tier=high-risk-annex-i-a": [
        "non-eu-provider-annex-i-a"
      ],
      "est=non-eu&role=gpai-provider": [
        "gpai-provider-non-eu"
      ],
      "fria=yes&role=deployer&tier=high-risk-annex-iii": [
        "deployer-fria"
      ],
      "tier=gpai-systemic-risk&role=gpai-provider": [
        "gpai-provider",
        "gpai-provider-systemic"
      ]
    }
  },
  "statuses": [
    {
      "value": "not-started",
      "label": "Not started"
    },
    {
      "value": "in-progress",
      "label": "In progress"
    },
    {
      "value": "evidence-ready",
      "label": "Evidence ready"
    },
    {
      "value": "not-applicable",
      "label": "Recorded as not applicable"
    }
  ],
  "columns": [
    {
      "id": "article",
      "label": "Obligation"
    },
    {
      "id": "element",
      "label": "Element"
    },
    {
      "id": "kind",
      "label": "Kind"
    },
    {
      "id": "appliesFrom",
      "label": "Applies from"
    },
    {
      "id": "source",
      "label": "Source"
    },
    {
      "id": "status",
      "label": "Status"
    }
  ],
  "csv": {
    "filename": "obligation-tracker.csv",
    "columns": [
      "system",
      "article",
      "element",
      "kind",
      "appliesFrom",
      "entryStatus",
      "source",
      "status"
    ]
  }
}