Skip to content

Indicators

oda-data has 46 indicators. Each id names who defines it (oecd or one), the table it reads, and what it counts. oda.indicators() returns this list as a DataFrame and oda.describe(id) prints one entry.

An indicator's kind says how it is computed. A sum adds a value over the table's rows. A ratio divides the sum of its numerators by the sum of its denominators, in current USD, so it takes no unit=. A derived indicator adds or subtracts other indicators, each on the basis of each year. A method runs ONE's own code, such as the imputation of multilateral sectors, and then takes units, groups, and by= like any other indicator.

A basis marked "2018 on" or "2010 on" raises BasisRangeError for earlier years. A caveat that names a basis or years in brackets warns with OdaDataWarning when a call reads that basis in those years.

DAC1

DAC1 holds each provider's official totals, one published line per kind of flow. Its indicators answer how much a provider gave.

oecd.dac1.total_oda

Official development assistance from each provider. Read from line 1010 on cash bases and line 11010 on grant equivalents.

  • Name: Total ODA
  • Kind: sum
  • Version: 1
  • Dimensions: provider, year, flow
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.dac1.total_oda", years=2023)

oecd.dac1.bilateral_oda

ODA a provider gives to developing countries itself, funds earmarked through multilateral organisations included. Read from line 1015 on cash bases and line 11015 on grant equivalents.

  • Name: Bilateral ODA
  • Kind: sum
  • Version: 1
  • Dimensions: provider, year, flow
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.dac1.bilateral_oda", years=2023)

oecd.dac1.multilateral_oda

Core contributions to multilateral organisations, capital subscriptions included. Read from line 2000 on cash bases and line 12000 on grant equivalents.

  • Name: Multilateral ODA
  • Kind: sum
  • Version: 1
  • Dimensions: provider, year, flow
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.dac1.multilateral_oda", years=2023)

oecd.dac1.in_donor_refugee_costs

Spending on refugees and asylum seekers in the provider's own country during their first year (line 1820).

  • Name: In-donor refugee costs
  • Kind: sum
  • Version: 1
  • Dimensions: provider, year, flow
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.dac1.in_donor_refugee_costs", years=2023)

oecd.dac1.in_donor_student_costs

Scholarships and imputed costs of students from developing countries studying in the provider's country (line 1500).

  • Name: Scholarships and student costs in donor countries
  • Kind: sum
  • Version: 1
  • Dimensions: provider, year, flow
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.dac1.in_donor_student_costs", years=2023)

oecd.dac1.debt_relief

Debt forgiveness, rescheduling and other action on debt counted as ODA (line 1600).

  • Name: Debt relief
  • Kind: sum
  • Version: 1
  • Dimensions: provider, year, flow
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.dac1.debt_relief", years=2023)

oecd.dac1.administrative_costs

Administrative costs of the provider's aid programme not included elsewhere (line 1700).

  • Name: Administrative costs
  • Kind: sum
  • Version: 1
  • Dimensions: provider, year, flow
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.dac1.administrative_costs", years=2023)

oecd.dac1.development_awareness

Spending in the provider's country to raise awareness of development co-operation (line 1810).

  • Name: Development awareness
  • Kind: sum
  • Version: 1
  • Dimensions: provider, year, flow
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.dac1.development_awareness", years=2023)

oecd.dac1.private_sector_instruments

ODA through private sector instruments, reported from 2018 (line 11030).

  • Name: Private sector instruments
  • Kind: sum
  • Version: 1
  • Dimensions: provider, year, flow
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.dac1.private_sector_instruments", years=2023)

oecd.dac1.gni

The provider's gross national income (line 1) under net flows, the only flow the OECD's ODA/GNI ratios use.

  • Name: Gross national income
  • Kind: sum
  • Version: 1
  • Dimensions: provider, year
  • Bases: net_disbursement (default)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.dac1.gni", years=2023)

oecd.dac1.population

The provider's population in millions (line 4), published under net flows. It is a count of people, so it takes no unit=, and a group's total is its members' sum.

  • Name: Population
  • Kind: sum
  • Version: 1
  • Dimensions: provider, year
  • Bases: net_disbursement (default)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: millions of people, a count that takes no unit=
import oda_data as oda

oda.get("oecd.dac1.population", years=2023)

oecd.dac1.oda_gni_ratio

Total ODA as a percentage of GNI. A group's ratio is its members' total ODA over their total GNI, and GNI is net flows on every basis.

  • Name: ODA as a share of GNI
  • Kind: ratio
  • Version: 1
  • Dimensions: provider, year
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: per cent
import oda_data as oda

oda.get("oecd.dac1.oda_gni_ratio", years=2023)

oecd.dac1.lines

Any published DAC1 line that is an amount of money, named with lines=. Lines nest, so each line is its own row and no two lines are summed. Net flows by default. A line the basis's flow does not publish, such as GNI (line 1) on grant equivalents, raises and names the bases that hold it.

  • Name: DAC1 lines
  • Kind: sum
  • Version: 1
  • Dimensions: provider, year, line, flow
  • Bases: net_disbursement (default), headline, gross_disbursement, commitment, grant_equivalent (2015 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
  • Caveat: Grant equivalents cover only the 25 to 27 DAC members that reported them before they became the headline basis in 2018 (grant_equivalent basis, 2015 to 2017).
import oda_data as oda

oda.get("oecd.dac1.lines", years=2023, by=["provider", "line"])

one.dac1.core_oda

Total ODA less in-donor refugee costs (line 1820), in-donor student costs (line 1500) and debt relief (line 1600). Administrative costs stay in. Each line is read on the basis of each year, so the headline basis subtracts grant equivalents from 2018.

  • Name: Core ODA
  • Kind: derived
  • Version: 1
  • Dimensions: provider, year, flow
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("one.dac1.core_oda", years=2023)

one.dac1.non_core_oda

In-donor refugee costs (line 1820), in-donor student costs (line 1500) and debt relief (line 1600). This is the part of total ODA that one.dac1.core_oda leaves out.

  • Name: Non-core ODA
  • Kind: derived
  • Version: 1
  • Dimensions: provider, year, flow
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("one.dac1.non_core_oda", years=2023)

one.dac1.total_oda_eu_attributed

Total ODA, with the row of EU Institutions (918) reduced by what every other provider paid them that year (line 2102 on the same basis), so 918 adds up with any of its funders without counting that money twice. Every other provider's row is its total ODA. 918's row is the same whichever providers the call names; oecd.dac1.total_oda gives 918's own spending.

  • Name: Total ODA, EU Institutions net of their funders
  • Kind: method
  • Version: 1
  • Dimensions: provider, year
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
  • Caveat: 918's row is negative in a year in which its funders' recorded contributions exceed the ODA EU Institutions report.
  • Caveat: 918's row in DAC1's last year is null until the providers that paid it the year before report line 2102; allow_partial=True nets the contributions reported so far.
import oda_data as oda

oda.get("one.dac1.total_oda_eu_attributed", years=2023)

one.dac1.gni

The provider's GNI (line 1, net flows), and for EU Institutions (918) the summed GNI of the countries that were EU members in each year, the United Kingdom to 2020 included. A member with no GNI in a year between two it reported counts as zero, and explain() names it. In a year after a member's last GNI, 918 has a null GNI unless allow_partial=True. one.dac1.gni_fixed_eu27 gives 918 today's EU27 in every year.

  • Name: Gross national income, EU Institutions included
  • Kind: method
  • Version: 1
  • Dimensions: provider, year
  • Bases: net_disbursement (default)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("one.dac1.gni", years=2023)

one.dac1.gni_fixed_eu27

The provider's GNI (line 1, net flows), and for EU Institutions (918) the summed GNI of today's 27 EU members in every year, so the United Kingdom is excluded. A member with no GNI in a year between two it reported counts as zero, and explain() names it. In a year after a member's last GNI, 918 has a null GNI unless allow_partial=True. one.dac1.gni gives 918 the members of each year.

  • Name: Gross national income, EU Institutions as today's EU27
  • Kind: method
  • Version: 1
  • Dimensions: provider, year
  • Bases: net_disbursement (default)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("one.dac1.gni_fixed_eu27", years=2023)

one.dac1.oda_gni_ratio

Total ODA as a percentage of GNI, as oecd.dac1.oda_gni_ratio, plus a ratio for EU Institutions (918) over the GNI of the countries that were EU members in each year, the United Kingdom to 2020 included (one.dac1.gni). Name 918 to see it. one.dac1.oda_gni_ratio_fixed_eu27 uses today's EU27 in every year.

  • Name: ODA as a share of GNI, EU Institutions included
  • Kind: ratio
  • Version: 1
  • Dimensions: provider, year
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: per cent
import oda_data as oda

oda.get("one.dac1.oda_gni_ratio", years=2023)

one.dac1.oda_gni_ratio_fixed_eu27

Total ODA as a percentage of GNI, as oecd.dac1.oda_gni_ratio, plus a ratio for EU Institutions (918) over the GNI of today's 27 EU members in every year (one.dac1.gni_fixed_eu27). Name 918 to see it. one.dac1.oda_gni_ratio uses the members of each year, the United Kingdom to 2020 included.

  • Name: ODA as a share of GNI, EU Institutions as today's EU27
  • Kind: ratio
  • Version: 1
  • Dimensions: provider, year
  • Bases: headline (default), net_disbursement, gross_disbursement, commitment, grant_equivalent (2018 on)
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: per cent
import oda_data as oda

oda.get("one.dac1.oda_gni_ratio_fixed_eu27", years=2023)

DAC2A

DAC2A holds what each recipient receives from each provider, net of repayments. Its indicators answer who received the money.

oecd.dac2a.recipient_oda

ODA each recipient receives from each provider: net disbursements (line 206) by default, and gross disbursements (line 240) on request.

  • Name: ODA received
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, year
  • Bases: headline (default), net_disbursement, gross_disbursement
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
  • Caveat: Summed over providers, recipient totals fall short of the OECD's official donors total (provider 20005), which also holds non-DAC estimates that no provider reports by recipient. On line 206 the gap is Saudi Arabia's ODA that appears in its developing-countries total (10100) only, from USD 0.6bn to USD 6.4bn a year from 2015 (USD 4.5bn in 2024). Pass providers=20005 for that total.
import oda_data as oda

oda.get("oecd.dac2a.recipient_oda", years=2023, by=["provider", "recipient"])

oecd.dac2a.imputed_multilateral_oda

The share of multilateral organisations' outflows to each recipient that the OECD attributes to each provider's core contributions (line 106). Multilateral providers are left out, since the shares are their own flows.

  • Name: Imputed multilateral ODA
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, year
  • Bases: headline (default), net_disbursement
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
  • Caveat: Summed over providers, recipient totals fall short of the OECD's official donors total (provider 20005), which also holds non-DAC estimates that no provider reports by recipient. On line 106 the gap is Saudi Arabia's imputed shares that appear in its developing-countries total (10100) only, from USD 16m to USD 417m a year from 2017 (USD 417m in 2024).
import oda_data as oda

oda.get("oecd.dac2a.imputed_multilateral_oda", years=2023, by=["provider", "recipient"])

oecd.dac2a.technical_cooperation

Grants that pay for know-how, training, research, and the experts who provide them, by recipient (line 207).

  • Name: Technical co-operation
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, year
  • Bases: headline (default), net_disbursement
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
  • Caveat: Summed over providers, recipient totals fall short of the OECD's official donors total (provider 20005), which also holds non-DAC estimates that no provider reports by recipient. On line 207 the gap is Saudi Arabia's technical co-operation that appears in its developing-countries total (10100) only, from USD 21m to USD 159m a year in 2015-2021 and none from 2022. Pass providers=20005 for that total.
import oda_data as oda

oda.get("oecd.dac2a.technical_cooperation", years=2023, by=["provider", "recipient"])

oecd.dac2a.lines

Any published DAC2A line that is an amount of money, named with lines=. Each line carries its own basis. Net disbursements are the default (line 206 and its parts), and lines 204 and 240 read gross disbursements with basis='gross_disbursement'. Lines nest, so each line is its own row and no two lines are summed. A line counts the rows its named indicator counts, so line 106 leaves out multilateral providers as oecd.dac2a.imputed_multilateral_oda does.

  • Name: DAC2A lines
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, year, line
  • Bases: net_disbursement (default), gross_disbursement
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.dac2a.lines", years=2023, by=["provider", "recipient"])

one.dac2a.recipient_oda_with_imputed_multilateral

Each provider's net ODA to each recipient (line 206) plus its imputed share of multilateral organisations' outflows to that recipient (line 106). Multilateral providers are left out, since the imputed shares are their own flows. Net disbursements only, the one basis of line 106.

  • Name: ODA received, imputed multilateral included
  • Kind: derived
  • Version: 1
  • Dimensions: provider, recipient, year
  • Bases: headline (default), net_disbursement
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("one.dac2a.recipient_oda_with_imputed_multilateral", years=2023, by=["provider", "recipient"])

CRS

The Creditor Reporting System holds one row per activity, with its sector, channel, modality, finance type, and policy markers.

oecd.crs.bilateral_oda

Bilateral ODA reported activity by activity. It is category 10 (categories 10 and 60 on grant equivalents) with bi_multi 1, 3, 7 or 8.

  • Name: Bilateral ODA
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year
  • Bases: gross_disbursement (default), commitment, net_disbursement, grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
  • Caveat: CRS totals differ from DAC1 totals. Use oecd.dac1.bilateral_oda for headline figures.
import oda_data as oda

oda.get("oecd.crs.bilateral_oda", years=2023, by=["provider", "broad_sector"])

oecd.crs.multilateral_oda

ODA multilateral organisations give from their own resources, reported activity by activity. It is category 10 with bi_multi 4, on cash bases only, since the CRS gives these flows no grant equivalent. The providers are the organisations, except EU Institutions (918), which report as bilateral (bi_multi 1), so their outflows (USD 40.0bn in 2023) sit in oecd.crs.bilateral_oda. Members' core contributions to the organisations are oecd.dac1.multilateral_oda.

  • Name: Multilateral ODA
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year
  • Bases: gross_disbursement (default), commitment, net_disbursement
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.multilateral_oda", years=2023, by=["provider", "broad_sector"])

oecd.crs.bilateral_oof

Official flows that are not ODA, such as loans on market terms, reported activity by activity. They are category 21 with bi_multi 1, 3, 7 or 8 and have no grant equivalent.

  • Name: Bilateral other official flows
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year
  • Bases: gross_disbursement (default), commitment, net_disbursement
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.bilateral_oof", years=2023, by=["provider", "broad_sector"])

oecd.crs.multilateral_oof

Other official flows multilateral organisations give from their own resources, such as loans on market terms, reported activity by activity. They are category 21 with bi_multi 4 and have no grant equivalent. The providers are the organisations.

  • Name: Multilateral other official flows
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year
  • Bases: gross_disbursement (default), commitment, net_disbursement
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.multilateral_oof", years=2023, by=["provider", "broad_sector"])

oecd.crs.private_development_finance

Development finance from private foundations, reported activity by activity. It is CRS category 30, mostly bi_multi 6, and has no grant equivalent. The foundations' core contributions to multilateral organisations (bi_multi 2) are left out, since the organisations' own outflows count that money again. By default the providers are the private foundations in oda.groups.private_donors; a few official providers report category 30 rows of their own country's private flows, which a call that names them reads.

  • Name: Private development finance
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year
  • Bases: gross_disbursement (default), commitment, net_disbursement
  • Default providers: Private donors (oda.groups.private_donors)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.private_development_finance", years=2023, by=["provider", "broad_sector"])

oecd.crs.gender_marker

Bilateral allocable ODA by its gender equality policy marker score: principal, significant, not_targeted or not_screened. Group by score to split it. Summed over scores it is all bilateral allocable ODA. It starts in 2010, the first year the CRS records the aid type of nearly every activity.

  • Name: Bilateral allocable ODA by gender equality marker
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year, score
  • Bases: gross_disbursement (default, 2010 on), commitment (2010 on), net_disbursement (2010 on), grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.gender_marker", years=2023, by=["provider", "broad_sector"])

oecd.crs.environment_marker

Bilateral allocable ODA by its environment policy marker score: principal, significant, not_targeted or not_screened. Group by score to split it. Summed over scores it is all bilateral allocable ODA. It starts in 2010, the first year the CRS records the aid type of nearly every activity.

  • Name: Bilateral allocable ODA by environment marker
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year, score
  • Bases: gross_disbursement (default, 2010 on), commitment (2010 on), net_disbursement (2010 on), grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.environment_marker", years=2023, by=["provider", "broad_sector"])

oecd.crs.dig_marker

Bilateral allocable ODA by its participatory development and good governance policy marker score: principal, significant, not_targeted or not_screened. Group by score to split it. Summed over scores it is all bilateral allocable ODA. It starts in 2010, the first year the CRS records the aid type of nearly every activity.

  • Name: Bilateral allocable ODA by participatory development and good governance marker
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year, score
  • Bases: gross_disbursement (default, 2010 on), commitment (2010 on), net_disbursement (2010 on), grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.dig_marker", years=2023, by=["provider", "broad_sector"])

oecd.crs.trade_marker

Bilateral allocable ODA by its trade development policy marker score: principal, significant, not_targeted or not_screened. Group by score to split it. Summed over scores it is all bilateral allocable ODA. It starts in 2010, the first year the CRS records the aid type of nearly every activity.

  • Name: Bilateral allocable ODA by trade development marker
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year, score
  • Bases: gross_disbursement (default, 2010 on), commitment (2010 on), net_disbursement (2010 on), grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.trade_marker", years=2023, by=["provider", "broad_sector"])

oecd.crs.rmnch_marker

Bilateral allocable ODA by its reproductive, maternal, newborn and child health policy marker score: principal, significant, not_targeted or not_screened. Group by score to split it. Summed over scores it is all bilateral allocable ODA. It starts in 2010, the first year the CRS records the aid type of nearly every activity.

  • Name: Bilateral allocable ODA by reproductive, maternal, newborn and child health marker
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year, score
  • Bases: gross_disbursement (default, 2010 on), commitment (2010 on), net_disbursement (2010 on), grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.rmnch_marker", years=2023, by=["provider", "broad_sector"])

oecd.crs.drr_marker

Bilateral allocable ODA by its disaster risk reduction policy marker score: principal, significant, not_targeted or not_screened. Group by score to split it. Summed over scores it is all bilateral allocable ODA. It starts in 2010, the first year the CRS records the aid type of nearly every activity.

  • Name: Bilateral allocable ODA by disaster risk reduction marker
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year, score
  • Bases: gross_disbursement (default, 2010 on), commitment (2010 on), net_disbursement (2010 on), grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.drr_marker", years=2023, by=["provider", "broad_sector"])

oecd.crs.nutrition_marker

Bilateral allocable ODA by its nutrition policy marker score: principal, significant, not_targeted or not_screened. Group by score to split it. Summed over scores it is all bilateral allocable ODA. It starts in 2010, the first year the CRS records the aid type of nearly every activity.

  • Name: Bilateral allocable ODA by nutrition marker
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year, score
  • Bases: gross_disbursement (default, 2010 on), commitment (2010 on), net_disbursement (2010 on), grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.nutrition_marker", years=2023, by=["provider", "broad_sector"])

oecd.crs.disability_marker

Bilateral allocable ODA by its inclusion of persons with disabilities policy marker score: principal, significant, not_targeted or not_screened. Group by score to split it. Summed over scores it is all bilateral allocable ODA. It starts in 2010, the first year the CRS records the aid type of nearly every activity.

  • Name: Bilateral allocable ODA by inclusion of persons with disabilities marker
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year, score
  • Bases: gross_disbursement (default, 2010 on), commitment (2010 on), net_disbursement (2010 on), grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.disability_marker", years=2023, by=["provider", "broad_sector"])

oecd.crs.biodiversity_marker

Bilateral allocable ODA by its biodiversity policy marker score: principal, significant, not_targeted or not_screened. Group by score to split it. Summed over scores it is all bilateral allocable ODA. It starts in 2010, the first year the CRS records the aid type of nearly every activity.

  • Name: Bilateral allocable ODA by biodiversity marker
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year, score
  • Bases: gross_disbursement (default, 2010 on), commitment (2010 on), net_disbursement (2010 on), grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.biodiversity_marker", years=2023, by=["provider", "broad_sector"])

oecd.crs.climate_mitigation_marker

Bilateral allocable ODA by its climate change mitigation policy marker score: principal, significant, not_targeted or not_screened. Group by score to split it. Summed over scores it is all bilateral allocable ODA. It starts in 2010, the first year the CRS records the aid type of nearly every activity.

  • Name: Bilateral allocable ODA by climate change mitigation marker
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year, score
  • Bases: gross_disbursement (default, 2010 on), commitment (2010 on), net_disbursement (2010 on), grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.climate_mitigation_marker", years=2023, by=["provider", "broad_sector"])

oecd.crs.climate_adaptation_marker

Bilateral allocable ODA by its climate change adaptation policy marker score: principal, significant, not_targeted or not_screened. Group by score to split it. Summed over scores it is all bilateral allocable ODA. It starts in 2010, the first year the CRS records the aid type of nearly every activity.

  • Name: Bilateral allocable ODA by climate change adaptation marker
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year, score
  • Bases: gross_disbursement (default, 2010 on), commitment (2010 on), net_disbursement (2010 on), grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.climate_adaptation_marker", years=2023, by=["provider", "broad_sector"])

oecd.crs.desertification_marker

Bilateral allocable ODA by its desertification policy marker score: principal, significant, not_targeted or not_screened. Group by score to split it. Summed over scores it is all bilateral allocable ODA. It starts in 2010, the first year the CRS records the aid type of nearly every activity.

  • Name: Bilateral allocable ODA by desertification marker
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year, score
  • Bases: gross_disbursement (default, 2010 on), commitment (2010 on), net_disbursement (2010 on), grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.crs.desertification_marker", years=2023, by=["provider", "broad_sector"])

one.crs.covid_oda

Bilateral ODA whose CRS keywords include #COVID-19, the tag the OECD asks providers to give activities that respond to the pandemic. Its rows are otherwise those of oecd.crs.bilateral_oda.

  • Name: COVID-19 ODA
  • Kind: sum
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, modality, flow, finance_type, year
  • Bases: gross_disbursement (default), commitment, net_disbursement, grant_equivalent (2018 on)
  • Default providers: every official provider in the table, aggregates excluded
  • Values: USD millions unless unit= says otherwise
  • Caveat: CRS totals differ from DAC1 totals. Use oecd.dac1.bilateral_oda for headline figures.
  • Caveat: Providers tag activities with #COVID-19 from 2020, and some leave the tag off activities that respond to the pandemic.
import oda_data as oda

oda.get("one.crs.covid_oda", years=2023, by=["provider", "broad_sector"])

Multisystem

The Multisystem table holds providers' contributions to each multilateral organisation and fund.

oecd.multisystem.core_contributions

Providers' core (unearmarked) contributions to multilateral organisations and funds, by channel. These are the Multisystem rows 'Core contributions to' in current prices; earmarked money sent through a channel is bilateral and sits in oecd.crs.bilateral_oda.

  • Name: Core contributions to multilateral organisations
  • Kind: sum
  • Version: 1
  • Dimensions: provider, channel, year
  • Bases: gross_disbursement (default), commitment
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("oecd.multisystem.core_contributions", years=2023, by=["provider", "channel"])

one.crs.imputed_multilateral_oda

Each provider's core contributions to multilateral organisations, spread across recipients and sectors in the proportions each organisation spends its own money in the CRS over three years. allocation_status says how each amount was spread: imputed, stale_share, proxy or unallocated.

  • Name: Imputed multilateral ODA
  • Kind: method
  • Version: 1
  • Dimensions: provider, recipient, sector, broad_sector, channel, allocation_status, year
  • Bases: gross_disbursement (default), commitment
  • Default providers: every official provider in the table, aggregates excluded; EU Institutions (918) are left out of a sum across providers and shown when split by provider
  • Values: USD millions unless unit= says otherwise
  • Caveat: Shares come from each organisation's CRS gross disbursements of ODA and other official flows. Unallocated amounts and fixed-purpose proxies have no recipient, so a filter on recipients leaves them out.
import oda_data as oda

oda.get("one.crs.imputed_multilateral_oda", years=2023, by=["provider", "broad_sector"])

one.crs.bilateral_plus_multilateral_oda

Bilateral ODA from the CRS (oecd.crs.bilateral_oda) plus core contributions to multilateral organisations from the Multisystem table (oecd.multisystem.core_contributions), on gross disbursements or commitments, the bases both tables share.

  • Name: Bilateral and multilateral ODA, activity data
  • Kind: derived
  • Version: 1
  • Dimensions: provider, year
  • Bases: gross_disbursement (default), commitment
  • Default providers: DAC countries (oda.groups.dac_countries)
  • Values: USD millions unless unit= says otherwise
import oda_data as oda

oda.get("one.crs.bilateral_plus_multilateral_oda", years=2023)