
{
    "$id": "https://standaard.algoritmeregister.org/schemas/registration-v0.3.1.schema.json",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "title": "Algorithmic Transparency Standard",
    "description": "Standard for registration of the use of models, algorithms or AI in policy or decision making processes by governmental organisations.",
    "type": "object",
    "properties": {
        
        "name": {
            "name": "Name",
            "category": "BASIC INFORMATION",
            
            "type": "string",
            
            
            
            "description": "What is the colloquial name used to identify this use of the algorithm? Examples: 'WMO prediction Rotterdam', 'Crowd-monitoring Enschede', 'Top 400/ 600'",
            "required": true
        },
        
        "description_short": {
            "name": "Short description",
            "category": "BASIC INFORMATION",
            
            "type": "string",
            
            
            
            "description": "Please give a short description of maximum 150 chars in order to give a quick overview of what this registration is about. Examples: 'Prioritising traffic modalities based on applicable law and local regulations'",
            "required": true
        },
        
        "organization": {
            "name": "Responsible organization",
            "category": "BASIC INFORMATION",
            
            "type": "string",
            
            
            
            "description": "What is the official name of the organization responsible for the use of the algorithm? Examples: 'City of Amsterdam', 'Water Authority Limburg'",
            "required": true
        },
        
        "department": {
            "name": "Department",
            "category": "BASIC INFORMATION",
            
            "type": "string",
            
            
            
            "description": "What is the name of the department, division, programme, team, ... using the algorithm? Examples: 'District Segbroek', 'Traffic and transport', 'Public safety'",
            "required": true
        },
        
        "contact_email": {
            "name": "Contact e-mail",
            "category": "BASIC INFORMATION",
            
                "type": "string",
                "format": "email",
            
            "description": "Contact e-mail address for this registration.",
            "required": true
        },
        
        "contact_phone": {
            "name": "Contact phone number",
            "category": "BASIC INFORMATION",
            
            "type": "string",
            
            
            
            "description": "Contact phone number for this registration.",
            "required": false
        },
        
        "contact_name": {
            "name": "Contact name",
            "category": "BASIC INFORMATION",
            
            "type": "string",
            
            
            
            "description": "Contact name for this registration.",
            "required": false
        },
        
        "area": {
            "name": "Geographical area",
            "category": "BASIC INFORMATION",
            
            "type": "string",
            
            
            
            "description": "Official name of the geographical area in which the algorithm is being used.",
            "required": true
        },
        
        "domain": {
            "name": "Domain",
            "category": "BASIC INFORMATION",
            
            "enum": ["taxes","housing, living and living environment","culture, sports and leisure","defence","economy and entrepreneurship","family, youth and households","finance","generic","health and health care","immigration and integration","international collaboration and development aid","agriculture, nature and food","environment, spacial planning and water","education and science","public safety","government","justice","travel, living and working abroad","subsidies, benefits and allowances","traffic and transportation","work and career"],
            
            "description": "In which domain will the algorithm be deployed? Examples: justice, finance, 'travel, living and working abroad'",
            "required": true
        },
        
        "website": {
            "name": "Website",
            "category": "BASIC INFORMATION",
            
                "type": "string",
                "format": "uri",
                "pattern": "^https?://",
            
            "description": "URL of a human readable web page for this registration, for example on the organization web page or public algorithm register. Examples: https://algoritmeregister.amsterdam.nl/vroeg-eropaf/",
            "required": false
        },
        
        "status": {
            "name": "Status",
            "category": "BASIC INFORMATION",
            
            "enum": ["planned","design","development","pilot","evaluation","operational","retired"],
            
            "description": "Status of the use of the algorithm.",
            "required": true
        },
        
        "remark": {
            "name": "Remark",
            "category": "BASIC INFORMATION",
            
            "type": "string",
            
            
            
            "description": "Add a remark to this registration. Examples: This project was ended because of ...",
            "required": false
        },
        
        "decision_making_process": {
            "name": "Decision-making process",
            "category": "USE CASE",
            
            "type": "string",
            
            
            
            "description": "What is the formal process in the organisation in which the algorithm will be/is involved? Examples: refer to concrete laws, regulation or policy, as published in publicly available sources",
            "required": true
        },
        
        "goal": {
            "name": "Goals",
            "category": "USE CASE",
            
            "type": "string",
            
            
            
            "description": "What are the goals of the policy for which the algorithm is being/was put in place and how will the application expectedly contribute to reaching these goals?",
            "required": true
        },
        
        "impact": {
            "name": "Impact",
            "category": "USE CASE",
            
            "type": "string",
            
            
            
            "description": "In what way will people come into contact with the effects of the algorithm. Under what specific circumstances will this happen and what are the expected consequences on the individual level and/or societal level?",
            "required": true
        },
        
        "risks": {
            "name": "Risks",
            "category": "USE CASE",
            
            "type": "string",
            
            
            
            "description": "Please indicate which risk assessment was used and give an overview of the risks and mitigation measures. Examples: risk assessments such as the audit framework 'understanding algorithms' by the Netherlands Court of Audit, and the regulation on a European approach for artificial intelligence",
            "required": true
        },
        
        "risk_category": {
            "name": "Risk category",
            "category": "USE CASE",
            
            "enum": ["minimal risk","limited risk","high risk","unacceptable"],
            
            "description": "Classification of the risk category for this use of the algorithm. Check for more information: https://ec.europa.eu/info/strategy/priorities-2019-2024/europe-fit-digital-age/excellence-trust-artificial-intelligence_en .",
            "required": true
        },
        
        "proportionality": {
            "name": "Proportionality",
            "category": "USE CASE",
            
            "type": "string",
            
            
            
            "description": "Explain why use of the algorithm is reasonably necessary. Explain why the expected benefits outweigh any potential expected harm.",
            "required": true
        },
        
        "lawful_basis": {
            "name": "Lawful basis",
            "category": "USE CASE",
            
            "type": "string",
            
            
            
            "description": "What is the lawful basis for the use of the algorithm?",
            "required": true
        },
        
        "documentation": {
            "name": "More information",
            "category": "USE CASE",
            
                "type": "string",
                "format": "uri",
                "pattern": "^https?://",
            
            "description": "URL reference to any extended information about the use of the algorithm within this specific use case.",
            "required": false
        },
        
        "training_data": {
            "name": "Training data",
            "category": "DATA",
            
            "type": "string",
            
            
            
            "description": "Please give an overview of the data that was used for training the algorithm. It should describe the pupose with which each data source was added.",
            "required": true
        },
        
        "source_data": {
            "name": "Source data",
            "category": "DATA",
            
            "type": "string",
            
            
            
            "description": "Please give an overview of the data that is being processed by the algorithm. It should describe the pupose with which each data source is added and possible dependencies that result from this.",
            "required": true
        },
        
        "data_bias": {
            "name": "Data bias",
            "category": "DATA",
            
            "type": "string",
            
            
            
            "description": "Does the data contain a certain bias? How is this compensated for?",
            "required": false
        },
        
        "connected_data_sources": {
            "name": "Connections to data sources",
            "category": "DATA",
            
            "type": "string",
            
            
            
            "description": "Please indicate wether a connection is being made to a Personal Records Database or other data sources.",
            "required": true
        },
        
        "DPIA_description": {
            "name": "Description of the DPIA",
            "category": "DATA",
            
            "type": "string",
            
            
            
            "description": "Please give an overview of the key points from the data protection impact assessment. It should explain how discrimination is prevented when (proxies of) ethnicity, sex or zipcode are being used.",
            "required": false
        },
        
        "DPIA_url": {
            "name": "DPIA URL",
            "category": "DATA",
            
                "type": "string",
                "format": "uri",
                "pattern": "^https?://",
            
            "description": "URL to the full DPIA documentation.",
            "required": false
        },
        
        "algorithm_type": {
            "name": "Type of algorithm",
            "category": "ALGORITHM",
            
            "enum": ["self-learning","rule-based","hybrid"],
            
            "description": "Please indicate wether the algorithm is self-learning, rule-based or hybrid. This information can be used as a possible risk indicator.",
            "required": true
        },
        
        "description": {
            "name": "Explanation",
            "category": "ALGORITHM",
            
            "type": "string",
            
            
            
            "description": "Please provide an extensive description between 500 and 10000 chars explaining the inner workings of the algorithm. It should detail all relevant aspects that are needed to understand how the algorithm processes data and feeds decision making.",
            "required": true
        },
        
        "methods_and_models": {
            "name": "Methods and models",
            "category": "ALGORITHM",
            
            "type": "string",
            
            
            
            "description": "Please indicate which known methods or models the algorithm is using. Examples: ROC-curve, confusion matrix, expert system, neural network",
            "required": false
        },
        
        "performance": {
            "name": "Algorithm performance",
            "category": "ALGORITHM",
            
            "type": "string",
            
            
            
            "description": "Please describe what the performance of the algorithm is and how this measured.",
            "required": false
        },
        
        "alternatives_considered": {
            "name": "Considered alternatives",
            "category": "ALGORITHM",
            
            "type": "string",
            
            
            
            "description": "Were there any other options considered? Why is this algorithm the best fit for the given goal?",
            "required": false
        },
        
        "product_information": {
            "name": "Central registration URL",
            "category": "ALGORITHM",
            
                "type": "string",
                "format": "uri",
                "pattern": "^https?://",
            
            "description": "URL for the central product information on the algorithm or publiccode.yml file.",
            "required": false
        },
        
        "codebase_url": {
            "name": "Source code URL",
            "category": "ALGORITHM",
            
                "type": "string",
                "format": "uri",
                "pattern": "^https?://",
            
            "description": "URL reference to the codebase of the algorithm. Examples: link to a Github repository, the Common Ground Component Catalogue, supplier website.",
            "required": false
        },
        
        "product_page": {
            "name": "Product page URL",
            "category": "ALGORITHM",
            
                "type": "string",
                "format": "uri",
                "pattern": "^https?://",
            
            "description": "URL reference of the product page with further information about the algorithm? This facilitates users searching more in-depth information about the practical use or technical details.",
            "required": false
        },
        
        "AIA_description": {
            "name": "Algorithm impact assessment",
            "category": "ALGORITHM",
            
            "type": "string",
            
            
            
            "description": "Please indicate which algorithm impact assessment was used and give an overview of the key points. Examples: impact assessments such as FRAIA, AIIA, capAI",
            "required": false
        },
        
        "AIA_url": {
            "name": "Algorithm impact assessment URL",
            "category": "ALGORITHM",
            
                "type": "string",
                "format": "uri",
                "pattern": "^https?://",
            
            "description": "URL to the full AIA documentation.",
            "required": false
        },
        
        "monitoring": {
            "name": "Performance monitoring",
            "category": "OVERSIGHT",
            
            "type": "string",
            
            
            
            "description": "Please describe what the expected performance of the algorithm is, how this monitored and by whom. Examples: which criteria are used, how frequently is the performance monitored",
            "required": true
        },
        
        "type": {
            "name": "Type of use of the algorithm",
            "category": "OVERSIGHT",
            
            "enum": ["descriptive","diagnostic","predictive","prescriptive"],
            
            "description": "Please indicate wether the algorithm is being used descriptive, diagnostic, predictive or prescriptive. This information can be used as a possible risk indicator.",
            "required": true
        },
        
        "human_intervention": {
            "name": "Human intervention",
            "category": "OVERSIGHT",
            
            "type": "string",
            
            
            
            "description": "Please describe how the outcomes of the algorithm can be intervened with by humans. It should detail how the responsibility for possible human intervention is secured, so it's clear who can and may act.",
            "required": true
        },
        
        "objection_procedure": {
            "name": "Objection procedure",
            "category": "OVERSIGHT",
            
            "type": "string",
            
            
            
            "description": "Please describe in what way can people object against the use or outcome of the algorithm.",
            "required": true
        },
        
        "rollback": {
            "name": "Rollback",
            "category": "OVERSIGHT",
            
            "type": "string",
            
            
            
            "description": "Is it possible to completely roll back the effects of the algorithm if needed? What does that take?",
            "required": false
        },
        
        "standard_version": {
            "name": "Version of the standard used",
            "category": "METADATA",
            
            "const": "0.3.1",
            
            "description": "Version of the standard used for this registration.",
            "required": true
        },
        
        "uuid": {
            "name": "Unique identifier",
            "category": "METADATA",
            
                "type": "string",
                "format": "uuid",
            
            "description": "Universally unique identifier for this registration.",
            "required": false
        },
        
        "lang": {
            "name": "Language",
            "category": "METADATA",
            
            "type": "string",
            
            
            
            "description": "ISO 639-1 for the language in which this registration was filled in. Examples: 'en', 'nl'",
            "required": true
        },
        
        "publication_date": {
            "name": "Publication date",
            "category": "METADATA",
            
                "type": "string",
                "format": "date",
            
            "description": "Date at which this registration was first published.",
            "required": true
        },
        
        "last_change_date": {
            "name": "Last change date",
            "category": "METADATA",
            
                "type": "string",
                "format": "date",
            
            "description": "Date of the last change to this registration.",
            "required": true
        },
        
        "revision_date": {
            "name": "Revision date",
            "category": "METADATA",
            
                "type": "string",
                "format": "date",
            
            "description": "Date before which this registration has to be revisited.",
            "required": true
        },
        
        "revision_note": {
            "name": "Revision date note",
            "category": "METADATA",
            
            "type": "string",
            
            
            
            "description": "Why is the revision planned? Examples: start of pilot, end of pilot, yearly revision, expected changes in law",
            "required": false
        },
        
        "keywords": {
            "name": "Keywords",
            "category": "METADATA",
            
            "type": "string",
            
            
            
            "description": "Keywords that might help finding this information.",
            "required": false
        }
        
    }
}
