Skip to main content
IATI - International Aid Transparency Initiative
  • Lang:
  • EN
  • FR
  • News
  • Events
  • Contact
  • About

    About IATI

    Our work involves making data on development and humanitarian spending and projects easier to access, use and understand. Organisations publish information according to the rules and guidance set out in the IATI Standard and this data is freely available and open to anyone in the world.

    Read more

    Introduction to IATI

    Read basic information about our initiative.

    • How IATI works
    • Who is IATI for?
    • Why use IATI?
    • About the Standard
    • The IATI story so far

    Case studies

    See how IATI data is used to improve decisions and accountability.

    • Madagascar case study
    • Oxfam Novib case study
    • AfDB's IATI portal improves development investments
  • IATI Standard

    IATI Standard

    The IATI Standard is a set of rules and guidance on how to publish useful development and humanitarian data. Find out the full range of data included in the IATI Standard and more about its technical format.

    Read more

    Using the reference site

    IATI Reference is an ‘instruction manual’ giving details of all the ‘parts’ you’ll need to build your datafiles.

    • How to use IATI Reference

    Standard documentation

    Find details of all the elements and attributes that can be included in IATI data.

    • Activity Standard
    • Organisation Standard
    • Codelists

    Developer documentation

    Explore how IATI data and the schema can be imported and used in different platforms.

    • IATI Developer Documentation
    • IATI Datastore
  • Using Data

    Using IATI data

    IATI data can be an invaluable resource for anyone searching for information on development or humanitarian spending and projects.

    Read more
    • Tools and resources
    • Types of data available
    • How do I use IATI data?
    • How to get help with using IATI data
    • IATI data use research
  • Tools & Resources

    Tools and resources

    Use IATI tools and resources to enable you to publish, improve and use IATI data.

    Read more

    d-portal

    Search key data on development and humanitarian activities presented in charts, graphs and maps. Recommended for users who are new to IATI.

    Visit d-portal

    IATI Datastore

    Use Datastore Search to download a wide range of IATI data in CSV, JSON and XML formats. Use IATI’s API to build complex searches.

    Visit Datastore

    IATI Validator

    Check if your data files align with the rules and guidance of the IATI Standard. Run checks on data files published by all other organisations.

    Visit Validator

    Additional IATI tools

    • IATI Registry
    • Country Development Finance Data
    • IATI Dashboard
    • API Gateway
    • Third-party tools and services for data use
  • Guidance & Support

    Guidance and support

    Find out how to publish data to the IATI Standard and improve your data by using our publishing guidance.

    Read more

    Standard overview

    Understand what data you can publish to IATI.

    • New: IATI CSO Course
    • Key qualities of IATI data
    • What data should I publish?
    • Donors' reporting requirements

    Publishing guidance

    Understand how to create, check and publish your IATI files.

    • Publishing checklist
    • How to create your IATI organisation identifier
    • Data quality and visualisation

    Standard guidance

    Find guides on to how interpret specific areas of the IATI Standard.

    • COVID-19 related data
    • Sustainable Development Goals (SDGs)

    Get support

    Contact the IATI Helpdesk with questions about using and publishing IATI data, and other technical enquiries.

  • Get Involved

    Get Involved

    Find out how to join IATI as a member, engage with IATI’s community and access useful resources about the initiative.

    Read more

    IATI Community

    Engage in IATI's Communities of Practice.

    IATI Connect

    Membership

    Discover the benefits of joining IATI as a member.

    Join IATI

    Present IATI

    Access custom presentation materials on IATI.

    Learn more
    • IATI Videos
    • IATI Membership Pack
    • Working Groups
    • External resources
  • Governance

    Governance

    IATI is governed and funded by our members and run by the Governing Board and Secretariat.

    Read more

    Who runs IATI?

    Meet the Governing Board and Secretariat and understand their roles and responsibilities.

    Governing Board and Secretariat

    Membership

    Discover the benefits of joining IATI as a member.

    List of members
    • IATI future hosting arrangements post 2022
    • IATI Strategic Plan 2020-2025
    • Finances
    • IATI workplan
    • Annual reports
    • Governance documents
    • IATI Members' Assembly 2023
  • News
  • Events
  • Contact
  • Lang:
  • EN
  • FR

Reference

  • Version 2.03
    • Activity Standard
      • iati-activities
        • iati-activity
          • iati-identifier
          • reporting-org
            • narrative
          • title
            • narrative
          • description
            • narrative
          • participating-org
            • narrative
          • other-identifier
            • owner-org
              • narrative
          • activity-status
          • activity-date
            • narrative
          • contact-info
            • organisation
              • narrative
            • department
              • narrative
            • person-name
              • narrative
            • job-title
              • narrative
            • telephone
            • email
            • website
            • mailing-address
              • narrative
          • activity-scope
          • recipient-country
            • narrative
          • recipient-region
            • narrative
          • location
            • location-reach
            • location-id
            • name
              • narrative
            • description
              • narrative
            • activity-description
              • narrative
            • administrative
            • point
              • pos
            • exactness
            • location-class
            • feature-designation
          • sector
            • narrative
          • tag
            • narrative
          • country-budget-items
            • budget-item
              • description
                • narrative
          • humanitarian-scope
            • narrative
          • policy-marker
            • narrative
          • collaboration-type
          • default-flow-type
          • default-finance-type
          • default-aid-type
          • default-tied-status
          • budget
            • period-start
            • period-end
            • value
          • planned-disbursement
            • period-start
            • period-end
            • value
            • provider-org
              • narrative
            • receiver-org
              • narrative
          • capital-spend
          • transaction
            • transaction-type
            • transaction-date
            • value
            • description
              • narrative
            • provider-org
              • narrative
            • receiver-org
              • narrative
            • disbursement-channel
            • sector
              • narrative
            • recipient-country
              • narrative
            • recipient-region
              • narrative
            • flow-type
            • finance-type
            • aid-type
            • tied-status
          • document-link
            • title
              • narrative
            • description
              • narrative
            • category
            • language
            • document-date
          • related-activity
          • legacy-data
          • conditions
            • condition
              • narrative
          • result
            • title
              • narrative
            • description
              • narrative
            • document-link
              • title
                • narrative
              • description
                • narrative
              • category
              • language
              • document-date
            • reference
            • indicator
              • title
                • narrative
              • description
                • narrative
              • document-link
                • title
                  • narrative
                • description
                  • narrative
                • category
                • language
                • document-date
              • reference
              • baseline
                • comment
                  • narrative
                • dimension
                • document-link
                  • category
                  • description
                    • narrative
                  • document-date
                  • language
                  • title
                    • narrative
                • location
              • period
                • period-start
                • period-end
                • target
                  • comment
                    • narrative
                  • dimension
                  • document-link
                    • category
                    • description
                      • narrative
                    • document-date
                    • language
                    • title
                      • narrative
                  • location
                • actual
                  • comment
                    • narrative
                  • dimension
                  • document-link
                    • category
                    • description
                      • narrative
                    • document-date
                    • language
                    • title
                      • narrative
                  • location
          • crs-add
            • other-flags
            • loan-terms
              • repayment-type
              • repayment-plan
              • commitment-date
              • repayment-first-date
              • repayment-final-date
            • loan-status
              • interest-received
              • principal-outstanding
              • principal-arrears
              • interest-arrears
            • channel-code
          • fss
            • forecast
      • Activity Standard Summary Table
      • Example Usage XML
    • Organisation Standard
      • iati-organisations
        • iati-organisation
          • organisation-identifier
          • name
            • narrative
          • reporting-org
            • narrative
          • total-budget
            • period-start
            • period-end
            • value
            • budget-line
              • value
              • narrative
          • recipient-org-budget
            • recipient-org
              • narrative
            • period-start
            • period-end
            • value
            • budget-line
              • value
              • narrative
          • recipient-region-budget
            • recipient-region
              • narrative
            • period-start
            • period-end
            • value
            • budget-line
              • value
              • narrative
          • recipient-country-budget
            • recipient-country
              • narrative
            • period-start
            • period-end
            • value
            • budget-line
              • value
              • narrative
          • total-expenditure
            • period-start
            • period-end
            • value
            • expense-line
              • value
              • narrative
          • document-link
            • title
              • narrative
            • description
              • narrative
            • category
            • language
            • document-date
            • recipient-country
              • narrative
      • Organisation Standard Summary Table
      • Example Usage XML
    • Codelists
      • Activity Date Type
      • Activity Scope
      • Activity Status
      • Aid Type
      • Aid Type (category)
      • Aid Type Vocabulary
      • Budget Identifier
      • Budget Identifier Sector
      • Budget Identifier Sector (category)
      • Budget Identifier Vocabulary
      • Budget Not Provided
      • Budget Status
      • Budget Type
      • CRS Additional Other Flags
      • CRS Channel Code
      • Cash and Voucher Modalities
      • Collaboration Type
      • Condition Type
      • Contact Type
      • Country
      • Currency
      • DAC 3 Digit Sector
      • DAC 5 Digit Sector
      • Description Type
      • Disbursement Channel
      • Document Category
      • Document Category (category)
      • Earmarking Category
      • File Format
      • Finance Type
      • Finance Type (category)
      • Flow Type
      • Gazetteer Agency
      • Geographic Exactness
      • Geographic Location Class
      • Geographic Location Reach
      • Geographic Vocabulary
      • Geographical Precision
      • Humanitarian Scope Type
      • Humanitarian Scope Vocabulary
      • IATI Organisation Identifier
      • Indicator Measure
      • Indicator Vocabulary
      • Language
      • Loan Repayment Period
      • Loan Repayment Type
      • Location Type
      • Location Type (category)
      • Organisation Identifier
      • Organisation Registration Agency
      • Organisation Role
      • Organisation Type
      • Other Identifier Type
      • Policy Marker
      • Policy Marker Vocabulary
      • Policy Significance
      • Publisher Type
      • Region
      • Region Vocabulary
      • Related Activity Type
      • Result Type
      • Result Vocabulary
      • Sector Vocabulary
      • Tag Vocabulary
      • Tied Status
      • Transaction Type
      • UN Sustainable Development Goals (SDG)
      • UN Sustainable Development Goals (SDG) Targets
      • Verification Status
      • Version
      • Vocabulary
    • Rulesets
      • IATI Ruleset Spec - JS Edition
      • Standard Ruleset
    • Schema
    • Namespaces & Extensions
    • Reference
  • Upgrades
  • How we manage the standard
    • All versions
    • IATI codelist management
    • Previous upgrade process
    • Upgrade process
  • Upgrade changelogs
    • Non-Core Codelist Changelog
    • Decimal Upgrade to 2.03
      • 2.03 Changelog
    • Decimal Upgrade to 2.02
      • 2.02 Changelog
    • Integer Upgrade to 2.01
      • 2.01 Changelog
      • 2.01 Headlines
      • Migrating from versions 1.x to version 2.01
    • Version 1 upgrades
      • Decimal Upgrade to 1.05
        • 1.05 changelog
      • Decimal Upgrade to 1.04
        • 1.04 changes
        • Location: summary of changes in IATI Standard version 1.04
      • Decimal Upgrade to 1.03
        • 1.03 changes
      • Decimal Upgrade to 1.02
        • 1.02 changes
  • IATI Standard Publishing Guidance: How to suggest changes

Migrating from versions 1.x to version 2.01

Contents

  • Migrating from versions 1.x to version 2.01

    • Overview

      • Organisation and Activity Identifiers

      • Update to other-identifier element

      • Changes introduced between versions 1.04 and 1.05 have also been included in 2.01

      • Element Order

      • Mandatory Fields in Activity Standard

      • Mandatory Fields in Organisation Standard

      • Declaring the Version of the IATI Standard being used

      • Using Namespaces

      • Segmentation and file size

      • Free Text Fields

      • Handling Translations

      • Descriptive text is no longer allowed on data specified by codes (with some exceptions)

      • Language Neutral Codelists

      • Allow multiple languages to be specified for a single document (document-link)

      • New Elements

      • Renamed, Moved and Removed Elements

      • Using Recipient-Region and Recipient Country

      • Additional elements in transactions (sector, recipient-country, recipient-region)

      • Additional elements in Organisation documents (document-link)

      • Formatting of Dates (and datetimes)

      • URL validation

      • Location Changes

      • Changes to the Planned Disbursement element (planned-disbursement)

      • Removal of the @type attribute on some description elements

      • Embedded codelists - Codelists added and removed

      • Embedded codelists - New Codes

      • Embedded codelists - descriptions of code values

      • Non-Embedded Codelists

      • Update of Schema description texts

      • Tied and partially tied values

      • Modify guidance on participating-org/@role : Definition of funding organisation

Overview

This is an issue by issue guide for data publishers and data users of the IATI Standard.

It is aimed at people who are already familiar with the IATI Standard in it’s version 1.x form, and are looking to find out what has changed and how it may or may not affect them when creating or using data built to the 2.01 version of the IATI Standard.

It is recommended that you inspect each point in turn to decide if you need to take any action.

Readers of this document should not assume that the ordering of issues in the document implies a hierarchy of importance. Different data users/publishers will find some issues more relevant/important than others.

Organisation and Activity Identifiers

What does version 2.01 of the IATI Standard require?

IATI organisation identifiers should:

  • be globally unique

  • be constructed from a consistent methodology

  • be compatible with other data standards

Specifically, a valid organisation identifier:

  • Must start with a valid agency prefix

  • The agency prefix MUST be a valid code in the IATI OrganisationRegistrationAgency codelist

  • MUST only contain alphanumeric characters and hyphen, underscore, colon or period

IATI activity identifiers

  • must be globally unique

  • must be persistent

  • must be prefixed with an organisation identifier

It should be recognised that IATI organisation identifiers can change over time. i.e. they CAN NOT be persistent. Therefore when a reporting organisation’s identifier changes, the previous reporting organisation identifier(s) should be reported in addition to the new one.

This will allow data users to continue to link activities to the organisation that reported them (because activity identifiers are constructed using the organisation identifier as part of the string, and once reported, an activity should maintain its original identifier).

In version 2.01 of the IATI Standard, therefore, we need a way to record the previous organisation identifier when this changes. We can do this using the other-identifier element.

For information on the changes to that element see: Update to other-identifier element

In addition:

  • ALL publishers of IATI data MUST have a valid organisation identifier reported in reporting-org/@ref

  • When using the @ref attribute in participating-org/@ref, transaction/provider-org/@ref and transaction/receiver-org/@ref must be a valid organisation identifier. If you do not have one, then the narrative element may be used to describe the organisation.

  • The reporting-org element is MANDATORY.

    • ALL the following rules must apply to the organisation-identifier in reporting-org/@ref

    • It is mandatory

    • The identifier MUST be the same as that recorded by the publisher on the IATI Registry

  • The iati-identifier is MANDATORY

    • It MUST be globally unique among all activities published through the IATI Registry

    • Once an activity has been reported to IATI its identifier MUST NOT be changed in subsequent updates,

    • It MUST be prefixed with EITHER the organisation-identifier found in reporting-org/@ref OR a previous reporting-org identifier reported in other-identifier

    • The identifier MUST only contain alphanumeric characters and hyphen, underscore, colon or period

What is the change?

The biggest change is that all organisations must have an Organisation Identifier that is prefixed with a valid code on the IATI OrganisationRegistrationAgency codelist

This means that a number of publishers will have to:

  • Change their organisation identifier

  • Continue to report existing activities using the same activity identifier, but also report their previous Organisation Identifier using the other-identifier element.

In addition, if they wish to use IATI as their registration agency, they will need to agree their new identifier on the IATIOrganisationIdentifier codelist

Wherever @ref is used to talk about organisations in the standard, those references must be a valid organisation identifier (as defined above).

Where is this applicable?

This is fundamental to the creation and use of IATI data and applies throughout the IATI Standard

What happens if we do not do this?

While the schema will not be able to test for valid Organisation and Activity identifiers, it is possible to machine write tests to check for some compliance. However if your data does not meet these standards then it becomes difficult for others to use.

Update to other-identifier element

What is the change?

In versions 1.x of the IATI Standard the other-identifier element could be used to specify an alternative, non-IATI identifier for the activity.

In version 2.01 of the IATI Standard the definition of the element has changed to allow an number of types of alternative identifiers.

In version 2.01 of the IATI Standard the element has been re-constructed
  • The @owner-ref and @owner-name attributes have been removed.

  • New attributes other-identifier/@type and other-identifier/@ref are added

  • The @type attribute is used to specify the type of identifier being given.

  • The @ref attribute is used for the identifier itself.

  • There is a child element other-identifier/owner-org where information about the organisation that crafted the identifier can be given. This field is set up so that multilingual text can be supplied,

In version 2.01 of the IATI Standard a new OtherIdentifierType codelist is introduced.

Where is this applicable?

In the Activity schema

Why has this been done?

This change is in part to be able to deal with organisations changing their organisation identifiers. Because an iati-identifier needs to be unique and (once reported to IATI) will never change, and because it is constructed using an organisation identifier, when organisation identifiers change, data users still need to be able to relate activities to organisations.

To solve this, a previous reporting-org identifier can be reported in the other-identifier element. This then allows us to require that an iati-identifier must be prefixed with:

  • EITHER the organisation-identifier found in reporting-org/@ref

  • OR a previous reporting-org identifier reported in other-identifier

For more information see: Organisation and Activity Identifiers proposal on the support forum.

To make this element work, a new OtherIdentifierType codelist has been constructed, and the entire element has been re-constructed.

Example

See: other-identifier

What happens if we do not do this?

  • Anyone reporting other-identifier in versions 1.x of the IATI Standard will need to reconstruct the way they report the data. They can continue to report the same data, but just need to reformat it.

  • Data users should be aware that parsing other-identifier is different in 2.01.

  • Data publishers may take advantage of the opportunities to report other types of identifier that were not previously available to them.

  • Data may fail validation against the relevant 2.01 schema if the changes are not taken into consideration.

Changes introduced between versions 1.04 and 1.05 have also been included in 2.01

As 2.01 of the IATI Standard was being prepared there was a decimal upgrade to version 1.05 that ran in parallel. All changes to the Standard between version 1.04 and 1.05 have been carried over into 2.01

Element Order

What does version 2.01 of the IATI Standard require?

Data elements must be published in the order specified by the schema.

What is the change?

In versions 1.x of the IATI Standard, data elements could be published in any order and still be valid when checked against the relevant schema.

In 2.01 you MUST publish data elements in the order specified by the schema to pass schema validation.

Why has this been done?

By enforcing order on the schema we can also enforce the number of times certain elements may occur in the data. This should drive up data quality by making it easier for data publishers to know if they have got their data right using simple validation tests. While this will not cover all the complexities of the the IATI Standard, it will substantially increase the number of data elements than can be checked in this way.

Where is this applicable?

In both the Organisation and Activity Standards

Example

Element order can be found by:

  • inspecting the schema directly

Or via our GitHub repository:

  •  Activity schema

  • Organisation schema

  • Common schema

The order is also reflected in the left hand navigation of the 2.01 website

Tables generated from the schema can be found at:

  • Activity summary table

  • Organisation summary table

What happens if we do not do this?

Data will fail validation against the relevant 2.01 schema.

Mandatory Fields in Activity Standard

What does version 2.01 of the IATI Standard require?

Certain elements are now mandatory within any iati-activity record.

What is the change?

There are more mandatory items. More elements and attributes are made mandatory by the schema.

Each Activity record MUST contain:

  • a valid activity identifier;  (element (iati-identifier) presence tested by schema - validity could be tested by software)

  • a valid reporting organisation identifier; (element (reporting-org) presence tested by schema - validity could be tested by software)

  •  a funding or implementing organisation; (element (participating-org) presence tested by schema - role=funding OR implementing could be tested by software)

  • a title and description; (elements (title/narrative, description/narrative) presence tested by schema)

  • a start date; (element (activity-date) and attribute (iso-date) presence tested by schema, type=”1” could be tested by software ) an activity status;  (element (activity-status) presence tested by schema)

  • a sector; (presence could be tested by software)

  • a recipient-country or recipient-region (presence could be tested by software)

Participating organisation

  • At least one occurrence of iati-activity/participating-org is MANDATORY - enforced by the schema

  • For each occurrence of participating-org @role is MANDATORY  - enforced by the schema

  • For each occurrence of participating-org @ref or participating-org/narrative is MANDATORY - not enforceable by the schema

for discussion go to Validation and guidance on the support forum.

Title

  • iati-activity/title is MANDATORY  - enforced by the schema

  • It is recommended that the title contains a meaningful summary of the activity - not enforceable by the schema

for discussion go to Modify title : validation and guidance on the support forum.

Description

  • The iati-activity/description is MANDATORY  - enforced by the schema

  • It is recommended that the description contains a meaningful description of the activity -not enforceable by the schema

for discussion go to Modify description : validation and guidance on the support forum.

Activity Date

  • At least one occurrence of iati-activity/activity-date is MANDATORY  - enforced by the schema

  • All activities MUST contain a start date: either planned or actual - not enforceable

for discussion go to Modify activity-date : validation and guidance on the support forum.

Sector / Transaction Sector

  • Sector may now be reported at transaction level instead of activity level. For details see Replicate more activity-level elements at transaction level on the support forum.

  • At least one occurrence of sector OR transaction/sector is MANDATORY - not enforceable

  • sector/@code OR transaction/sector/@code is MANDATORY  - enforced by the schema

  • If Sector/@vocabulary is not present then the DAC 5-digit vocabulary is assumed

  • Use of DAC codes (either 5-digit or 3-digit) is recommended

for discussion go to Modify sector : validation and guidance on the support forum.

budgets / planned-disbursement

budgets and planned-disbursements now contain mandatory elements when used.

Budget dates

  • The budget element should be repeated for each year of the activity’s

    duration - not enforceable

  • If the budget element is present then

    • period-start/@iso-date is MANDATORY and must be a valid ISO format (enforced by the schema)

    • period-end/@iso-date is MANDATORY and must be a valid ISO format (enforced by the schema)

    • period-end/@iso-date must be after period-start/@iso-date (not enforceable by the schema)

    • Each budget should cover a period no longer than 1 year (not enforceable by the schema)

for discussion go to Modify budget/period-start and budget/period-end : make mandatory on the support forum.

In addition, when other non-mandatory elements are used, the schema may dictate whether or not child elements must be present, the number of times they may occur, and the presence of attributes. You can find the detail in the relevant schema documents

The ‘occurs’ column of the standard overview table also indicates where both elements and attributes are required, and how often they may occur.

What happens if we do not do this?

Data will fail validation against the relevant 2.01 schema

Mandatory Fields in Organisation Standard

What does version 2.01 of the IATI Standard require?

Certain elements are now mandatory within any iati-organisation record.

What is the change?

There are more mandatory items. More elements and attributes are made mandatory by the schema.

Each Organisation record MUST contain:

  • a valid organisation identifier;  (element (organisation-identifier) presence tested by schema)

  • a name; (element (name/narrative) presence tested by schema)

  • a valid reporting organisation identifier (element (reporting-org) presence tested by schema - validity could be tested by software)

In addition, when other non-mandatory elements are used, the schema may dictate whether or not child elements must be present, the number of times they may occur, and the presence of attributes.  You can find the detail in the relevant schema documents.

The ‘occurs’ column of the standard overview table also indicates where both elements and attributes are required, and how often they may occur.

What happens if we do not do this?

Data will fail validation against the relevant 2.01 schema

Declaring the Version of the IATI Standard being used

What does version 2.01 of the IATI Standard require?

You MUST correctly report the version of the standard you are using.

What is the change?

In the Activity Standard

  • From version 2.01, the @version attribute of iati-activities is mandatory

  • In version 1.x the ``iati-activity``element had an @version attribute. This is no longer the case in version 2.01 (it has been removed).

  • The values for @version must be on the version codelist.

In the Organisation Standard

  • From version 2.01, the @version attribute of iati-organisations is mandatory

  • In version 1.x the `iati-organisation` element had an @version attribute. This is no longer the case in version 2.01 (it has been removed).

  • The values for @version must be on the version codelist.

Where is this applicable?

In both the Organisation and Activity standards

Example

For examples see:

  • iati-activity example

  • iati-organisation example

What happens if we do not do this?

If you omit iati-activities/@version or iati-organisations/@versions the data will fail validation against the relevant 2.01 schema.

If you include iati-activity/@version or [email protected] the data will fail validation against the relevant 2.01 schema.

If you do not use a value for @version from the version codelist. data users may have difficulty processing your data.

Using Namespaces

What does version 2.01 of the IATI Standard require?

Data publishers are allowed to add data using their own defined namespaces to add additional data to an IATI data file. They must do this in such a way that their data is still valid against the relevant schema.

What is the change?

Because ordering has been enforced in the schema, any namespace elements are now expected to be positioned as the last child of the relevant parent element.

Where is this applicable?

In both the Organisation and Activity standards

This applies to any use of namespaces

Example

For examples see:

  • iati-activity example

  • iati-organisation example

What happens if we do not do this?

Data will fail validation against the relevant 2.01 schema

Segmentation and file size

What does version 2.01 of the IATI Standard require?

  • In order to ensure that all all IATI-XML files can be handled by all consuming systems it is proposed that a limit of 40MB is placed on the size of any single XML file.

  • Publishers are still encouraged to segment their data into meaningful chunks, BUT the guidance to segment by country is no longer necessarily considered to be best practice.

  • (NB the rule that the activity iati-identifier must be unique still applies. i.e. the same activity should not be reported in two different files by the same publisher)

What is the change?

Previous guidance has been to segment data by country where possible/useful. This was an arbitrary decision.

What happens if we do not do this?

Files larger than 40MB are difficult for data users to use - even at 40MB this is still difficult for many users. If your files are too large it is possible that applications wanting to use your data may not be able to do so.

Free Text Fields

What is the change?

In version 2.01 free text is handled very differently than it is in versions 1.x

Every element in versions 1.x where free text can be supplied has changed in version 2.01.

Text is no longer reported directly in the element itself, instead every affected element gets a new ‘narrative’ child element, where the text can be supplied. The narrative element can be repeated in order to supply translations in different languages.  See Handling Translations

There are many elements that contain data specified by a code value where free text can no longer be supplied at all. See Descriptive text is no longer allowed on data specified by codes (with some exceptions)

Why has this been done?

The change has been made to improve how multilingual reporting can occur, and to improve clarity where codes are reported.

Where is this applicable?

In both the Organisation and Activity Standards

Even where publishers do not supply translations of their text data, they are still required to alter the way they report free text.

Example

How to declare a title

In 1.x

<title>Some title here</title>

in 2.01

<title>
        <narrative>Some title here</narrative>
</title>

See also

Examples of how this change works can be seen on (for example):

  • activity title

  • organisation name

What happens if we do not do this?

Data will fail validation against the relevant 2.01 schema

Handling Translations

What does version 2.01 of the IATI Standard require?

The standard wants to allow publishers to easily declare multilingual translations for text data, and for data users to be able to easily access those translations. In 2.01 the way in which this done should make it easier for data users to handle.

What is the change?

In version 1.x elements that allowed text to be declared (e.g. title) could be repeated for different languages.

In version 2.01 instead of repeating the parent element  (e.g. title) , those elements now have a <narrative> child element, which can repeated for different languages.

The narrative element uses the xlm:lang attribute to declare the language of the supplied text. If omitted then the text is assumed to be in the default language declared in the document root element.

Where is this applicable?

For a full list of elements where this now applies, see: Including nested, multi-lingual text elements for all elements containing free text in this post: Multi-lingual text fields on the support forum.

Example

Examples of how this change works can be seen on (for example):

  • activity title

  • organisation name

What happens if we do not do this?

Data will fail validation against the relevant 2.01 schema

Descriptive text is no longer allowed on data specified by codes (with some exceptions)

What does version 2.01 of the IATI Standard require?

Where published data is defined by codes, the code is authoritative, and the associated look up value should not supplied.

There are two exceptions:  recipient-country and recipient-region, where descriptive text is allowed when a publishing organisation does not agree with the definition given by the ISO 3166-1 part of the ISO 3166 standard

What is the change?

In version 1.x of the standard, a number of elements allowed the reporting of a code (usually in an attribute) and free text.  Where both a code and text was supplied it was impossible for a data user to know which field was authoritative.

In 2.01 the code is authoritative, and the ability to add free text has been removed from a number of elements.

Where is this applicable?

For a list of elements where this applies see:

Scrapping text of purely code elements - Multi-lingual text fields on the support forum.

Example

In version 1.x this was allowed:

<activity-status code="2" >Implementing</activity-status>

as was;

<activity-status code="2" >implementing</activity-status>

and;

<activity-status code="2" >any text here</activity-status>

and even;

<activity-status code="2" >Post Completion</activity-status>

In version 2.01, all of the above would fail validation against the schema as text is not allowed at all in this element. To indicate an activity status of implementing you would simply declare:

<activity-status code="2" />

Exceptions

Both the recipient-region and recipient-country elements still allow both a code and descriptive text to be specified. This is to cover the cases where the organisation publishing the data may not agree with name of a country or region given by the lookup codelists IATI uses.

Data users should be aware that where the narrative element has been supplied then that publishers prefers the name supplied to be associated with it’s data.

Example

To declare a recipient country of Kosovo, both of these are acceptable:

<recipient-country code="XK" />

Here, a lookup against the relevant codelist (Country)

would return a country name of ‘Kosovo’

If you prefer to declare a different name that differs from the ISO 3166-1 part of the ISO 3166 standard  (e.g. Kosovo (As per UNSCR 1244)) then do this:

<recipient-country code="XK">
        <narrative>Kosovo (As per UNSCR 1244)</narrative>
</recipient-country>

What happens if we do not do this?

Data will fail validation against the relevant 2.01 schema

Language Neutral Codelists

What is the change?

A number of codes on several codelists have been changed, in order to make them language neutral.

In general:

  • Codes have changed from english strings to numbers

  • The english string now becomes the ‘name’ associated with that code

  • Where ‘name’ information was previously available, this is moved into a ‘description’ field

Where is this applicable?

A list of the affected codelists, and the differences between version 1.x and 2.01 are detailed under Codelist Changes on the 2.01 Changes page of the website.

What happens if we do not do this?

Data will not be referenceable against the relevant code list, making it difficult to use.

Allow multiple languages to be specified for a single document (document-link)

What is the change?

In version 1.x of the IATI Standard, you were only allowed to use one document-link/language child element per document-link parent.

In version 2.x of the IATI Standard, you can specify as many document-link/language elements as you need.

Where is this applicable?

In both the Activity and Organisation standard.

Why has this been done?

In recognition that some documents are multilingual

What happens if we do not do this?

Nothing. This change is an opportunity to produce more accurate data.

New Elements

What is the change?

In version 2.01 of the IATI Standard there is a new element iati-activity/contact-info/department

In version 2.01 of the IATI Standard there are many new ‘narrative’ elements introduced as child elements to specify free text: see Free Text Fields above

In version 2.01 of the IATI Standard there is a new element iati-organisation/total-budget/budget-line

In version 2.01 of the IATI Standard there is a new element iati-organisation/recipient-org-budget/budget-line

In version 2.01 of the IATI Standard there is a new element iati-organisation/recipient-country-budget/budget-line

Usage

  • budget-line should be used in addition to total-budget/value, recipient-org-budget/value and/or recipient-country-budget/value. NB that it does not replace the existing reporting guidelines

  • budget-line/@ref as a reporting organisation reference for the budget line

  • budget-line/narrative for a description of the budget line (repeated for multiple languages)

  • budget-line/value

See also

Additionally, new child elements have been introduced to the existing

  • iati-activity/transaction element: Additional elements in the transactions

  • iati-organisation/document-link elements: Additional elements in Organisation documents (document-link)

Why has this been done?

A number of publishers have requested the facility to add department information to contact details.

A number of publishers have requested the facility to add granularity to organisation-level budgets.

Free text has been altered to improve the ability to report data in many languages.

What happens if we do not do this?

In the case of the narrative element, these are required when using freetext

The other new elements are all optional.

Renamed, Moved and Removed Elements

What is the change?

In versions 1.x of the IATI Standard there is an element iati-organisation/iati-identifier

In version 2.01 of the IATI Standard this element has been renamed as iati-organisation/organisation-identifier

In versions 1.x of the IATI Standard there is an element: iati-activity/crs-add/aid-type-flag. This element has an associated codelist: AidTypeFlag

In version 2.01 of the IATI Standard this element has been renamed: iati-activity/crs-add/other-flags, and the AidTypeFlag codelist has been renamed CRSAddOtherFlags

In versions 1.x of the IATI Standard iati-activities/iati-activity/activity-website element is it’s own element.

In version 2.01 of the IATI Standard, to report an activity website you would do so using a document-link element, and it’s child ‘category’ (usually code A12) to specify the document is a web site. Additionally, the FileFormat code text/html should be used:

<document-link format="text/html" url="http:www.example.org/activity/1234">
  <title>
    <narrative>Activity website</narrative>
  </title>
  <category code="A12" />
  <language code="en" />
</document-link>

What happens if we do not do this?

If elements and attributes are published with the old properties, then data will fail validation against the relevant 2.01 schema

Using Recipient-Region and Recipient Country

What does version 2.01 of the IATI Standard require?

From the schema (recipient-country):

“Multiple countries and regions can be reported, in which case the percentage attribute MUST be used to specify the share of total commitments across all reported countries and regions.

The country can also be specified at transaction rather than activity level. If transaction/recipient-country AND/OR

transaction/recipient-region are used THEN ALL transaction elements MUST contain a recipient-country and/or

recipient-region element AND iati-activity/recipient-region and iati-activity/recipient-region MUST NOT be used AND each

transaction MUST only contain one recipient-country or recipient-region.”

It should be clear that:

  • recipient-region should only be used to indicate that the region as a whole is a recipient, not as an added description to a named recipient-country

  • if both elements are used percentages must be reported and they should add up to 100% across all recipient- elements

What is the change?

In versions 1.x of the IATI Standard, data publishers were told to report EITHER recipient-country or recipient-region, but not both.

In version 2.01 of the IATI Standard, data publishers may report BOTH recipient-country AND recipient-region with a percentage split.

In versions 1.x of the IATI Standard, it was not possible to report regions or countries at transaction level.

In version 2.01 of the IATI Standard, regions or countries can be reported at transaction level.

In version 2.,01 of the standard, you MUST NOT report regions and countries at BOTH activity and transaction level

Example

See:

  • Country

  • Region

See also

Additional elements in transactions (sector, recipient-country, recipient-region) below

What happens if we do not do this?

Nothing. This change is an opportunity to produce more accurate data.

Additional elements in transactions (sector, recipient-country, recipient-region)

What is the change?

In version 2.01 of IATI activity standard the elements of sector, recipient-country and recipient-region have been added as child elements for any transaction. Each of these elements takes the same format as when used at activity level except that the @percentage attribute is missing.

Where is this applicable?

Only in the Activity standard

Why has this been done?

In order to provide more accurate reporting of multi-country and multi-sector activities, and to allow for the changing of the activity-level sector over time without compromising previously reported sector-specific commitments and disbursements, it is proposed to add the following fields at transaction level (in addition to activity-level):

N.B. If any of these elements are used at transaction level, they must not be used at activity level within the same activity.

N.B. Percentage splits at transaction level are not allowed. If you wish to do this, you should break the transaction up into more transactions, each of which reports more specific information.

For more information see: Replicate more activity-level elements at transaction level on the support forum.

What happens if we do not do this?

Nothing. This change is an opportunity to produce more accurate data.

Additional elements in Organisation documents (document-link)

What is the change?

There is now a document-link/recipient-country element ONLY in the Organisation standard. This is to allow multiple countries to be reported per document-link.

Where is this applicable?

Only in the Organisation standard

Why has this been done?

In order for organisation-level documents to be classified by country.

What happens if we do not do this?

Nothing. This change is an opportunity to produce more accurate data.

Formatting of Dates (and datetimes)

What does version 2.01 of the IATI Standard require?

To ensure that IATI data can be utilised, dates and datetimes should be formatted in a consistent way.

In version 2.01 a date should be a valid xsd:date, and a datetimes should be a valid xsd:dateTime

What is the change?

In versions 1.x of the IATI Standard dates and date formats were specified with reference to ISO 8601 standard, and it was not always clear how that standard should be interpreted and used.

In version 2.01 a date should be a valid xsd:date, and a datetimes should be a valid xsd:dateTime

Why has this been done?

In the past IATI has not given clear guidance about the specific formats of the ISO 8601 standard that can be used. It is clear that the data types built into the XML standard, xsd:date and xsd:dateTime, are both well suited and sufficient for the needs of data publishers and data users.

By specifying this requirement, it also allows dates and datetimes in the data to be easily validated.

Where is this applicable?

In both Activity and Organisation standard.

Wherever a date or a datetime is required (search the schema for xsd:date xsd:dateTime) it should be a valid value.

For most publishers their existing date/datetime data will be valid. Testing your data against schema validation will easily show if your dates need altering (re-formatting)

Affected attributes:

dates:

  • all @iso-date attributes

  • fss/@extraction-date attribute

  • all @value-date attributes

datetimes:

  • all @generated-datetime attributes

  • all  @last-updated-datetime attributes

Example

Examples of how this change works can be seen on (for example):

    • <Activity standard - activity date

  • <Organisation standard - period start

What happens if we do not do this?

If your dates and datetimes are not in the correct formats, schema validation will fail. If your dates already meet xsd:date and xsd:dateTime formats, then you do not to take any action.

URL validation

What is the change?

In version 1.x of the IATI Standard,  the schema data type used for some data fields where a URL was expected was set as xsd:string.

In version 2.01 of the IATI Standard,  the schema data type used for some data fields where a URL is expected is now set as xsd:anyURI

Example

‘website’ is a child element of contact-info.

In version 1.x the following would validate against the schema:

<website>any string here</website>

In version 2.01, in order to validate against the schema the data you supply must fit the requirements of xsd:anyURI

N.B. xsd:anyURI does not guarantee that a valid URL will be supplied.

Why has this been done?

To make validation of the data at the schema level easier

What happens if we do not do this?

Nothing UNLESS you have been publishing data that does not meet the restrictions of xsd:anyURI. URL data that was recognised as a string, but not as xsd:anyURI will now fail validation against the relevant 2.01 schema

Location Changes

What does version 2.01 of the IATI Standard require?

If you are currently using a version of the IATI Standard lower than 1.04 AND report details of sub-national geographic locations, you MUST adopt all the changes specified in the upgrade from version 1.03 of the IATI Standard to version 1.04.

What is the change?

Significant changes to the way that location data could be reported were introduced in the upgrade of the standard from version 1.03 to version 1.04.

However, to ensure backwards compatibility, nothing was removed, but some elements and attributes were deprecated (i.e. still available for use, but no longer recommended).

In addition more elements and attributes were added.

Anything deprecated in 1.x has not been carried over into 2.01 (it has, in effect, been removed)

If you currently report location information BUT have NOT switched to the supported way of doing so in line with version 1.04 of the IATI Standard, you will need to adjust the way you report location information in 2.01

A detailed guide to what has changed and what you need to do can be found in the location summary guide

In version 2.01, these elements are no longer available:

  • location/coordinates

  • location/gazetteer-entry

  • location/location-type

In version 2.01, these attributes are no longer available:

  • location/@percentage

  • location/administrative/@country

  • location/administrative/@adm1

  • location/administrative/@adm2

What happens if we do not do this?

Data will fail validation against the relevant 2.01 schema

Changes to the Planned Disbursement element (planned-disbursement)

What is the change?

In versions 1.x of the IATI Standard there is a planned-disbursement/@updated attribute

In version 2.01 of the IATI Standard the  planned-disbursement/@updated attribute is no longer available (it has been removed)

In version 2.01 of the IATI Standard the planned-disbursement/@type attribute, that uses the BudgetType codelist is added

In version 2.01 of the IATI Standard, if a planned-disbursement is given, then the planned-disbursement/period-start element is mandatory and a date must be supplied using its @iso-date attribute.

In versions 1.x of the IATI Standard the description in the schema of the planned-disbursement/period-end stated that “This element must be present”

In version 2.01 of the IATI Standard the planned-disbursement/period-end element is optional.

Why has this been done?

The planned-disbursement element contain indicative information that is subject to change. The standard does not expect an audit trail of these changes to be reported.

While, for example, the budget element handles this correctly by simply indicating (through budget/@type) whether the budget is original or revised, a planned-disbursement currently requires a date on which the data was last updated (planned-disbursement/@updated). This is not necessary, so it is being removed and instead the @type attribute is added.

Making the start date mandatory (if the element is used) will improve data quality and enable publishers and data users to better check that their data is complete. See: Modify planned-disbursement/period-start : Alter guidance AND make start-date mandatory on the support forum.

Making the planned-disbursement/period-end element optional allows publishers more scope to report planned disbursements that do not have a defined end date.

What happens if we do not do this?

If you continue to use the @updated attributes your data will fail validation against the relevant 2.01 schema

The @type attribute is optional.

Removal of the @type attribute on some description elements

What is the change?

In version 1.x of the IATI Standard all description elements have a @type attribute.

In version 2.01 of the IATI Standard this is only applicable to iati-activity/description, therefore the following attributes have been removed:

  • country-budget-items/budget-item/description/@type

  • result/description/@type

  • result/indicator/description/@type

What happens if we do not do this?

If you currently use @type on any of the elements detailed above and do not change that when creating 2.01 data, your data will fail validation against the schema. Data users should be aware that if they expect to gather data from those fields they should no longer be present.

Embedded codelists - Codelists added and removed

What is the change?

As part of the 2.01 IATI Standard upgrade, the Vocabulary codelist was split into two new codelists. The following embedded codelists were added:

  • Policy Marker Vocabulary

  • Sector Vocabulary

and the following embedded codelists were removed:

  • Vocabulary

See also

Codelist Changes on the 2.01 Changes

Why has this been done?

The Vocabulary codelist has over time become unfit for it’s original purpose as more and more elements have required their own tailored vocabulary choices. Where vocabularies are used, they are often tailored to that particular element.

What happens if we do not do this?

You will need to re-organise the way you present data using the new vocabularies. If you do not do this your data may not be useable by data users.

Embedded codelists - New Codes

What is the change?

As part of the 2.01 IATI Standard upgrade, the following embedded codelists were updated.

  • Aid Type Flag: Renamed to CRSADDOtherFlags codelist

  • Activity Date Type: Amended codes

  • Document Category: New codes

  • Gazetteer Agency: Amended codes

  • Organisation Role: Amended codes

  • Policy Marker Vocabulary (was Vocabulary): Amended codes

  • Related Activity Type: New code

  • Sector Vocabulary (was Vocabulary): Amended codes

  • Transaction Type: Amended codes

  • Vocabulary: Removed / split codelist

See also

Codelist Changes on the 2.01 Changes

Embedded codelists - descriptions of code values

What is the change?

Embedded codelist descriptions have been reviewed and updated.

In some cases, description text has been added, where it was previously missing.

Where is this applicable?

In all embedded codelists.

You can see the changes in this code commit: https://github.com/IATI/IATI-Codelists/commit/33b2174f8c2aeb42f277f8ad9d715b31233179bc

See also

Codelist Changes on the 2.01 Changes

Why has this been done?

It was recognised that various description texts were out-of-date or not clear.  This has been an opportunity to update these.

Non-Embedded Codelists

What is the change?

As part of the 2.01 IATI Standard upgrade, the following non-embedded codelists were created.

New Non-Embedded Codelists * Other Identifier Type * Version * IATIOrganisationIdentifier

and the following Non-Embedded Codelists were removed: * OrganisationIdentifier

See also

Non-Embedded Codelist Changelog

Update of Schema description texts

What is the change?

Descriptive text in the schema has been reviewed and updated.

In some cases, description text has been added, where it was previously missing.

Descriptive text no longer contains URLs (in effect they have been removed). See: Removing urls from schema descriptions on the support forum.

Where is this applicable?

In the Activity schema, the Organisation schema and the Common schema.

Why has this been done?

It was recognised that various description texts were out-of-date or not clear.  This has been an opportunity to update these.

URLs are no longer maintained in schema text in order to maintain those links more appropriately. As part of that decision, a machine readable way of mapping attributes to codelists has been created to help developers. See:Mapping between codelists and schemas on the support forum.

Tied and partially tied values

New guidance has been added

See: Tied and partially tied values on the support forum.

Modify guidance on participating-org/@role : Definition of funding organisation

See: Modify guidance on participating-org/@role : Definition of funding organisation on the support forum.

Useful links

  • Contact
  • Privacy policy
  • Translation FAQs
  • Data removal

Newsletter

Copyright IATI 2023. All rights reserved

  • Twitter
  • YouTube