{
  "$schema": "https://datapackage.org/profiles/2.0/datapackage.json",
  "name": "euroflation",
  "id": "https://euroflation.com/data",
  "title": "euroflation: euro-area inflation, ECB rates and economic indicators",
  "description": "Tidy CSV files compiled from Eurostat, the European Central Bank and the European Commission (DG ECFIN) by euroflation.com, refreshed daily, plus derived series (10-year spreads over the German Bund, food-minus-headline inflation). See https://euroflation.com/data for the data dictionary, licence and how to cite.\n\neuroflation's contribution is licensed under CC BY 4.0. That covers the selection and arrangement of these files, the harmonised columns and codes, the derived series (bond_spread_bund, hicp_food_minus_headline), the rearranged hicp_panel, the data dictionary, catalog.csv, geographies.csv, datapackage.json and the documentation on this page. Licensor: euroflation (https://euroflation.com). Licence: Creative Commons Attribution 4.0 International, https://creativecommons.org/licenses/by/4.0/, including its section 4 on database rights.\nThe official figures stay under their publishers' terms. Their publishers allow reuse, commercially too, on the conditions below; the ECB's permission does not cover data it marks as coming from third parties. euroflation does not relicense them.\n- Eurostat and the European Commission (rows whose source starts with \"Eurostat\" or \"European Commission\"): acknowledge the source. euroflation has reformatted these data (tidy CSV, harmonised geography codes, HICP history joined from the ECOICOP v1 and ECOICOP 2 datasets); the values are unchanged. Eurostat and the European Commission are not responsible for these files or for any use made of them. Terms: https://ec.europa.eu/eurostat/web/main/help/copyright-notice\n- European Central Bank (rows whose source starts with \"ECB\"): quote \"Source: ECB statistics.\" euroflation has reformatted these data (tidy CSV; the ECB's euro area, code U2, appears as geo EA21 with the name \"Euro area (ECB U2, changing composition)\"); the values are unchanged. If you include them in something you sell, tell buyers the information is available free of charge from the ECB website. If you modify them, say so. Terms (the ECB's conditions for free use, and the ESCB policy on reusing statistics): https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html https://www.ecb.europa.eu/stats/ecb_statistics/governance_and_quality_framework/html/usage_policy.en.html\n- Derived series (rows whose source starts with \"euroflation calculation\"): calculated by euroflation from the official figures named in source. They are not official Eurostat, European Commission or ECB statistics. Credit both euroflation and the original publisher.\nThe data are provided as is, without warranty. Publishers revise their figures; check retrieved_on. Nothing here is financial advice. euroflation is independent and not affiliated with Eurostat, the European Commission or the ECB.",
  "homepage": "https://euroflation.com/data",
  "version": "1.0.0",
  "keywords": [
    "inflation",
    "HICP",
    "euro area",
    "ECB",
    "interest rates",
    "bond spreads",
    "open data"
  ],
  "contributors": [
    {
      "title": "euroflation",
      "path": "https://euroflation.com",
      "roles": [
        "creator",
        "publisher"
      ]
    }
  ],
  "licenses": [
    {
      "name": "LicenseRef-Eurostat-reuse",
      "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
      "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
    },
    {
      "name": "LicenseRef-ECB-reuse",
      "path": "https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html",
      "title": "ECB conditions for free use of information: ECB observations"
    },
    {
      "name": "CC-BY-4.0",
      "path": "https://creativecommons.org/licenses/by/4.0/",
      "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
    }
  ],
  "sources": [
    {
      "title": "Eurostat",
      "path": "https://ec.europa.eu/eurostat"
    },
    {
      "title": "European Central Bank Data Portal",
      "path": "https://data.ecb.europa.eu"
    },
    {
      "title": "European Commission, DG ECFIN, Business and Consumer Surveys",
      "path": "https://economy-finance.ec.europa.eu/economic-forecast-and-surveys/business-and-consumer-surveys_en"
    }
  ],
  "resources": [
    {
      "name": "hicp_yoy",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/hicp_yoy.csv",
      "title": "HICP all-items, annual rate of change",
      "description": "Annual rates from Eurostat prc_hicp_minr (ECOICOP 2); where that dataset has no value for a period, from the discontinued prc_hicp_manr (ECOICOP v1).",
      "sources": [
        {
          "title": "Eurostat prc_hicp_minr (history: prc_hicp_manr)",
          "path": "https://doi.org/10.2908/PRC_HICP_MINR"
        },
        {
          "title": "Eurostat prc_hicp_manr (discontinued; early history)",
          "path": "https://doi.org/10.2908/PRC_HICP_MANR"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "hicp_yoy"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "hicp_core",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/hicp_core.csv",
      "title": "HICP excluding energy, food, alcohol and tobacco, annual rate",
      "description": "Annual rates from Eurostat prc_hicp_minr (ECOICOP 2); where that dataset has no value for a period, from the discontinued prc_hicp_manr (ECOICOP v1).",
      "sources": [
        {
          "title": "Eurostat prc_hicp_minr (history: prc_hicp_manr)",
          "path": "https://doi.org/10.2908/PRC_HICP_MINR"
        },
        {
          "title": "Eurostat prc_hicp_manr (discontinued; early history)",
          "path": "https://doi.org/10.2908/PRC_HICP_MANR"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "hicp_core"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "hicp_energy",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/hicp_energy.csv",
      "title": "HICP energy, annual rate",
      "description": "Annual rates from Eurostat prc_hicp_minr (ECOICOP 2); where that dataset has no value for a period, from the discontinued prc_hicp_manr (ECOICOP v1).",
      "sources": [
        {
          "title": "Eurostat prc_hicp_minr (history: prc_hicp_manr)",
          "path": "https://doi.org/10.2908/PRC_HICP_MINR"
        },
        {
          "title": "Eurostat prc_hicp_manr (discontinued; early history)",
          "path": "https://doi.org/10.2908/PRC_HICP_MANR"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "hicp_energy"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "hicp_food",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/hicp_food.csv",
      "title": "HICP food including alcohol and tobacco, annual rate",
      "description": "Annual rates from Eurostat prc_hicp_minr (ECOICOP 2); where that dataset has no value for a period, from the discontinued prc_hicp_manr (ECOICOP v1).",
      "sources": [
        {
          "title": "Eurostat prc_hicp_minr (history: prc_hicp_manr)",
          "path": "https://doi.org/10.2908/PRC_HICP_MINR"
        },
        {
          "title": "Eurostat prc_hicp_manr (discontinued; early history)",
          "path": "https://doi.org/10.2908/PRC_HICP_MANR"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "hicp_food"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "hicp_services",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/hicp_services.csv",
      "title": "HICP services, annual rate",
      "description": "Annual rates from Eurostat prc_hicp_minr (ECOICOP 2); where that dataset has no value for a period, from the discontinued prc_hicp_manr (ECOICOP v1).",
      "sources": [
        {
          "title": "Eurostat prc_hicp_minr (history: prc_hicp_manr)",
          "path": "https://doi.org/10.2908/PRC_HICP_MINR"
        },
        {
          "title": "Eurostat prc_hicp_manr (discontinued; early history)",
          "path": "https://doi.org/10.2908/PRC_HICP_MANR"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "hicp_services"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "hicp_mom",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/hicp_mom.csv",
      "title": "HICP all-items, monthly rate of change",
      "description": "Monthly rates from Eurostat prc_hicp_minr (ECOICOP 2); where that dataset has no value for a period, from the discontinued prc_hicp_mmor (ECOICOP v1).",
      "sources": [
        {
          "title": "Eurostat prc_hicp_minr (history: prc_hicp_mmor)",
          "path": "https://doi.org/10.2908/PRC_HICP_MINR"
        },
        {
          "title": "Eurostat prc_hicp_mmor (discontinued; early history)",
          "path": "https://doi.org/10.2908/PRC_HICP_MMOR"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "hicp_mom"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "ecb_dfr",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/ecb_dfr.csv",
      "title": "ECB deposit facility rate",
      "description": "Official ECB key interest rate, one row per change; each rate applies from period_start until the next row.",
      "sources": [
        {
          "title": "ECB FM.B.U2.EUR.4F.KR.DFR.LEV",
          "path": "https://data.ecb.europa.eu/data/datasets/FM"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-ECB-reuse",
          "path": "https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html",
          "title": "ECB conditions for free use of information: ECB observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "ecb_dfr"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "ecb_mro",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/ecb_mro.csv",
      "title": "ECB main refinancing operations rate (fixed rate)",
      "description": "Official ECB key interest rate, one row per change; each rate applies from period_start until the next row.",
      "sources": [
        {
          "title": "ECB FM.B.U2.EUR.4F.KR.MRR_FR.LEV",
          "path": "https://data.ecb.europa.eu/data/datasets/FM"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-ECB-reuse",
          "path": "https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html",
          "title": "ECB conditions for free use of information: ECB observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "ecb_mro"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "ecb_mlf",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/ecb_mlf.csv",
      "title": "ECB marginal lending facility rate",
      "description": "Official ECB key interest rate, one row per change; each rate applies from period_start until the next row.",
      "sources": [
        {
          "title": "ECB FM.B.U2.EUR.4F.KR.MLFR.LEV",
          "path": "https://data.ecb.europa.eu/data/datasets/FM"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-ECB-reuse",
          "path": "https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html",
          "title": "ECB conditions for free use of information: ECB observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "ecb_mlf"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "estr",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/estr.csv",
      "title": "Euro short-term rate (ESTR), volume-weighted trimmed mean",
      "description": "Daily euro short-term rate as published by the ECB, one row per TARGET2 business day.",
      "sources": [
        {
          "title": "ECB EST.B.EU000A2X2A25.WT",
          "path": "https://data.ecb.europa.eu/data/datasets/EST"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-ECB-reuse",
          "path": "https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html",
          "title": "ECB conditions for free use of information: ECB observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "estr"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "unemployment_rate",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/unemployment_rate.csv",
      "title": "Unemployment rate, total, seasonally adjusted",
      "description": "Published by Eurostat in une_rt_m (total, seasonally adjusted, % of the labour force); values as published.",
      "sources": [
        {
          "title": "Eurostat une_rt_m",
          "path": "https://doi.org/10.2908/UNE_RT_M"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "unemployment_rate"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "gdp_yoy",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/gdp_yoy.csv",
      "title": "Real GDP, change on same quarter of previous year (SCA)",
      "description": "Published by Eurostat in namq_10_gdp (chain-linked volumes, seasonally and calendar adjusted); values as published.",
      "sources": [
        {
          "title": "Eurostat namq_10_gdp",
          "path": "https://doi.org/10.2908/NAMQ_10_GDP"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "gdp_yoy"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "ind_prod_yoy",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/ind_prod_yoy.csv",
      "title": "Industrial production (B-D), change on a year earlier (CA)",
      "description": "Published by Eurostat in sts_inpr_m (mining, manufacturing and energy, calendar adjusted); values as published.",
      "sources": [
        {
          "title": "Eurostat sts_inpr_m",
          "path": "https://doi.org/10.2908/STS_INPR_M"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "ind_prod_yoy"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "retail_yoy",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/retail_yoy.csv",
      "title": "Retail trade volume (G47), change on a year earlier (CA)",
      "description": "Published by Eurostat in sts_trtu_m (retail trade except motor vehicles, volume, calendar adjusted); values as published.",
      "sources": [
        {
          "title": "Eurostat sts_trtu_m",
          "path": "https://doi.org/10.2908/STS_TRTU_M"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "retail_yoy"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "unemployment_rate_youth",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/unemployment_rate_youth.csv",
      "title": "Unemployment rate, under 25, seasonally adjusted",
      "description": "Published by Eurostat in une_rt_m (under 25, seasonally adjusted, % of the labour force); values as published.",
      "sources": [
        {
          "title": "Eurostat une_rt_m",
          "path": "https://doi.org/10.2908/UNE_RT_M"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "unemployment_rate_youth"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "gov_debt_gdp",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/gov_debt_gdp.csv",
      "title": "General government gross debt, % of GDP",
      "description": "Published by Eurostat in gov_10dd_edpt1 (excessive deficit procedure notification); values as published.",
      "sources": [
        {
          "title": "Eurostat gov_10dd_edpt1",
          "path": "https://doi.org/10.2908/GOV_10DD_EDPT1"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "gov_debt_gdp"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "gov_deficit_gdp",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/gov_deficit_gdp.csv",
      "title": "General government net lending (+) / net borrowing (-), % of GDP",
      "description": "Published by Eurostat in gov_10dd_edpt1 (excessive deficit procedure notification); a negative value is a deficit; values as published.",
      "sources": [
        {
          "title": "Eurostat gov_10dd_edpt1",
          "path": "https://doi.org/10.2908/GOV_10DD_EDPT1"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "gov_deficit_gdp"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "m3_yoy",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/m3_yoy.csv",
      "title": "Monetary aggregate M3, annual growth rate",
      "description": "Published by the ECB in BSI (M3, annual growth rate); values as published. Eurostat EA21 is the fixed 21-member euro area; ECB rows for EA21 are the ECB's U2 euro area (changing composition).",
      "sources": [
        {
          "title": "ECB BSI.M.U2.Y.V.M30.X.I.U2.2300.Z01.A",
          "path": "https://data.ecb.europa.eu/data/datasets/BSI"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-ECB-reuse",
          "path": "https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html",
          "title": "ECB conditions for free use of information: ECB observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "m3_yoy"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "mir_house_rate",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/mir_house_rate.csv",
      "title": "Bank rate on new loans to households for house purchase",
      "description": "Published by the ECB in MIR (new business, households, lending for house purchase); values as published. Eurostat EA21 is the fixed 21-member euro area; ECB rows for EA21 are the ECB's U2 euro area (changing composition).",
      "sources": [
        {
          "title": "ECB MIR.M.<geo>.B.A2C.A.R.A.2250.EUR.N",
          "path": "https://data.ecb.europa.eu/data/datasets/MIR"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-ECB-reuse",
          "path": "https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html",
          "title": "ECB conditions for free use of information: ECB observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "mir_house_rate"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "mir_nfc_rate",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/mir_nfc_rate.csv",
      "title": "Bank rate on new loans to non-financial corporations",
      "description": "Published by the ECB in MIR (new business, non-financial corporations); values as published. Eurostat EA21 is the fixed 21-member euro area; ECB rows for EA21 are the ECB's U2 euro area (changing composition).",
      "sources": [
        {
          "title": "ECB MIR.M.<geo>.B.A2A.A.R.A.2240.EUR.N",
          "path": "https://data.ecb.europa.eu/data/datasets/MIR"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-ECB-reuse",
          "path": "https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html",
          "title": "ECB conditions for free use of information: ECB observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "mir_nfc_rate"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "bond_yield_10y",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/bond_yield_10y.csv",
      "title": "Long-term (10-year) government bond yield, convergence criterion",
      "description": "Published by the ECB in IRS (Maastricht convergence-criterion 10-year yield); values as published. Eurostat EA21 is the fixed 21-member euro area; ECB rows for EA21 are the ECB's U2 euro area (changing composition).",
      "sources": [
        {
          "title": "ECB IRS.M.<geo>.L.L40.CI.0000.EUR.N.Z",
          "path": "https://data.ecb.europa.eu/data/datasets/IRS"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-ECB-reuse",
          "path": "https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html",
          "title": "ECB conditions for free use of information: ECB observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "bond_yield_10y"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "bond_spread_bund",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/bond_spread_bund.csv",
      "title": "10-year yield spread over Germany (derived)",
      "description": "Country 10-year yield minus Germany's 10-year yield for the same month, rounded to 2 dp; months without a German reading are skipped. Calculated by euroflation from ECB IRS; not an official ECB statistic.",
      "sources": [
        {
          "title": "euroflation calculation from ECB IRS",
          "path": "https://data.ecb.europa.eu/data/datasets/IRS"
        }
      ],
      "licenses": [
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        },
        {
          "name": "LicenseRef-ECB-reuse",
          "path": "https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html",
          "title": "ECB conditions for free use of information: ECB observations"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "bond_spread_bund"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "esi",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/esi.csv",
      "title": "Economic Sentiment Indicator (long-run average = 100)",
      "description": "European Commission (DG ECFIN) Business and Consumer Surveys, disseminated by Eurostat in ei_bssi_m_r2; values as published.",
      "sources": [
        {
          "title": "European Commission (DG ECFIN) via Eurostat ei_bssi_m_r2",
          "path": "https://doi.org/10.2908/EI_BSSI_M_R2"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "esi"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "conf_industry",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/conf_industry.csv",
      "title": "Industrial confidence indicator",
      "description": "European Commission (DG ECFIN) Business and Consumer Surveys, disseminated by Eurostat in ei_bssi_m_r2; seasonally adjusted balance; values as published.",
      "sources": [
        {
          "title": "European Commission (DG ECFIN) via Eurostat ei_bssi_m_r2",
          "path": "https://doi.org/10.2908/EI_BSSI_M_R2"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "conf_industry"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "conf_services",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/conf_services.csv",
      "title": "Services confidence indicator",
      "description": "European Commission (DG ECFIN) Business and Consumer Surveys, disseminated by Eurostat in ei_bssi_m_r2; seasonally adjusted balance; values as published.",
      "sources": [
        {
          "title": "European Commission (DG ECFIN) via Eurostat ei_bssi_m_r2",
          "path": "https://doi.org/10.2908/EI_BSSI_M_R2"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "conf_services"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "conf_retail",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/conf_retail.csv",
      "title": "Retail trade confidence indicator",
      "description": "European Commission (DG ECFIN) Business and Consumer Surveys, disseminated by Eurostat in ei_bssi_m_r2; seasonally adjusted balance; values as published.",
      "sources": [
        {
          "title": "European Commission (DG ECFIN) via Eurostat ei_bssi_m_r2",
          "path": "https://doi.org/10.2908/EI_BSSI_M_R2"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "conf_retail"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "conf_construction",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/conf_construction.csv",
      "title": "Construction confidence indicator",
      "description": "European Commission (DG ECFIN) Business and Consumer Surveys, disseminated by Eurostat in ei_bssi_m_r2; seasonally adjusted balance; values as published.",
      "sources": [
        {
          "title": "European Commission (DG ECFIN) via Eurostat ei_bssi_m_r2",
          "path": "https://doi.org/10.2908/EI_BSSI_M_R2"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "conf_construction"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "conf_consumer",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/conf_consumer.csv",
      "title": "Consumer confidence indicator",
      "description": "European Commission (DG ECFIN) Business and Consumer Surveys, disseminated by Eurostat in ei_bssi_m_r2; seasonally adjusted balance; values as published.",
      "sources": [
        {
          "title": "European Commission (DG ECFIN) via Eurostat ei_bssi_m_r2",
          "path": "https://doi.org/10.2908/EI_BSSI_M_R2"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "conf_consumer"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "hicp_rent",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/hicp_rent.csv",
      "title": "HICP actual rentals for housing (CP041), annual rate",
      "description": "Annual rates from Eurostat prc_hicp_minr (ECOICOP 2); where that dataset has no value for a period, from the discontinued prc_hicp_manr (ECOICOP v1).",
      "sources": [
        {
          "title": "Eurostat prc_hicp_minr (history: prc_hicp_manr)",
          "path": "https://doi.org/10.2908/PRC_HICP_MINR"
        },
        {
          "title": "Eurostat prc_hicp_manr (discontinued; early history)",
          "path": "https://doi.org/10.2908/PRC_HICP_MANR"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "hicp_rent"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "hpi_yoy",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/hpi_yoy.csv",
      "title": "House Price Index, total purchases, annual rate of change",
      "description": "Published by Eurostat in prc_hpi_q (total purchases of dwellings, annual rate of change); values as published.",
      "sources": [
        {
          "title": "Eurostat prc_hpi_q",
          "path": "https://doi.org/10.2908/PRC_HPI_Q"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "hpi_yoy"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "food_price_level",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/food_price_level.csv",
      "title": "Price level index, food and non-alcoholic beverages (EU27_2020 = 100)",
      "description": "Published by Eurostat in prc_ppp_ind_1 (price level index, food and non-alcoholic beverages, EU27_2020 = 100); values as published.",
      "sources": [
        {
          "title": "Eurostat prc_ppp_ind_1",
          "path": "https://doi.org/10.2908/PRC_PPP_IND_1"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "food_price_level"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "hicp_food_minus_headline",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/hicp_food_minus_headline.csv",
      "title": "Food inflation minus headline inflation (derived)",
      "description": "HICP food annual rate minus HICP all-items annual rate for the same geography and month, rounded to 1 dp; months where either is missing are skipped. Calculated by euroflation from Eurostat prc_hicp_minr; not an official Eurostat statistic.",
      "sources": [
        {
          "title": "euroflation calculation from Eurostat prc_hicp_minr (history: prc_hicp_manr)",
          "path": "https://doi.org/10.2908/PRC_HICP_MINR"
        },
        {
          "title": "Eurostat prc_hicp_manr (discontinued; early history)",
          "path": "https://doi.org/10.2908/PRC_HICP_MANR"
        }
      ],
      "licenses": [
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        },
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "hicp_food_minus_headline"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "hicp_panel",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/hicp_panel.csv",
      "title": "HICP headline and components, one row per geography and month",
      "description": "Wide panel of the seven HICP series (hicp_yoy, hicp_core, hicp_energy, hicp_food, hicp_services, hicp_rent, hicp_mom), one row per geography and month; an empty cell means no observation.",
      "sources": [
        {
          "title": "Eurostat prc_hicp_minr",
          "path": "https://doi.org/10.2908/PRC_HICP_MINR"
        },
        {
          "title": "Eurostat prc_hicp_manr (discontinued; early history)",
          "path": "https://doi.org/10.2908/PRC_HICP_MANR"
        },
        {
          "title": "Eurostat prc_hicp_mmor (discontinued; early history)",
          "path": "https://doi.org/10.2908/PRC_HICP_MMOR"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference month, YYYY-MM.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "hicp_yoy",
            "type": "number",
            "description": "hicp_yoy (pct_yoy); empty when there is no observation."
          },
          {
            "name": "hicp_core",
            "type": "number",
            "description": "hicp_core (pct_yoy); empty when there is no observation."
          },
          {
            "name": "hicp_energy",
            "type": "number",
            "description": "hicp_energy (pct_yoy); empty when there is no observation."
          },
          {
            "name": "hicp_food",
            "type": "number",
            "description": "hicp_food (pct_yoy); empty when there is no observation."
          },
          {
            "name": "hicp_services",
            "type": "number",
            "description": "hicp_services (pct_yoy); empty when there is no observation."
          },
          {
            "name": "hicp_rent",
            "type": "number",
            "description": "hicp_rent (pct_yoy); empty when there is no observation."
          },
          {
            "name": "hicp_mom",
            "type": "number",
            "description": "hicp_mom (pct_mom); empty when there is no observation."
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true if any value in the row is a flash estimate.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "The latest retrieved_on of the row's values."
          }
        ],
        "primaryKey": [
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "latest",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/latest.csv",
      "title": "Latest observation for every indicator and geography",
      "description": "The most recent observation of every indicator for every geography, in the long format.",
      "sources": [
        {
          "title": "Eurostat, European Commission (DG ECFIN) and ECB",
          "path": "https://euroflation.com/data#files"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "LicenseRef-ECB-reuse",
          "path": "https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html",
          "title": "ECB conditions for free use of information: ECB observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "hicp_yoy",
                "hicp_core",
                "hicp_energy",
                "hicp_food",
                "hicp_services",
                "hicp_mom",
                "ecb_dfr",
                "ecb_mro",
                "ecb_mlf",
                "estr",
                "unemployment_rate",
                "gdp_yoy",
                "ind_prod_yoy",
                "retail_yoy",
                "unemployment_rate_youth",
                "gov_debt_gdp",
                "gov_deficit_gdp",
                "m3_yoy",
                "mir_house_rate",
                "mir_nfc_rate",
                "bond_yield_10y",
                "bond_spread_bund",
                "esi",
                "conf_industry",
                "conf_services",
                "conf_retail",
                "conf_construction",
                "conf_consumer",
                "hicp_rent",
                "hpi_yoy",
                "food_price_level"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "all",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/all.csv.gz",
      "title": "Every series in one gzip-compressed tidy CSV",
      "description": "All per-indicator files plus hicp_food_minus_headline concatenated under one header, gzip-compressed.",
      "sources": [
        {
          "title": "Eurostat, European Commission (DG ECFIN) and ECB",
          "path": "https://euroflation.com/data#files"
        }
      ],
      "licenses": [
        {
          "name": "LicenseRef-Eurostat-reuse",
          "path": "https://ec.europa.eu/eurostat/web/main/help/copyright-notice",
          "title": "Eurostat / European Commission reuse notice: Eurostat and DG ECFIN observations"
        },
        {
          "name": "LicenseRef-ECB-reuse",
          "path": "https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html",
          "title": "ECB conditions for free use of information: ECB observations"
        },
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "compression": "gz",
      "schema": {
        "fields": [
          {
            "name": "indicator",
            "type": "string",
            "description": "euroflation indicator code; equals the file name.",
            "constraints": {
              "required": true,
              "enum": [
                "hicp_yoy",
                "hicp_core",
                "hicp_energy",
                "hicp_food",
                "hicp_services",
                "hicp_mom",
                "ecb_dfr",
                "ecb_mro",
                "ecb_mlf",
                "estr",
                "unemployment_rate",
                "gdp_yoy",
                "ind_prod_yoy",
                "retail_yoy",
                "unemployment_rate_youth",
                "gov_debt_gdp",
                "gov_deficit_gdp",
                "m3_yoy",
                "mir_house_rate",
                "mir_nfc_rate",
                "bond_yield_10y",
                "bond_spread_bund",
                "esi",
                "conf_industry",
                "conf_services",
                "conf_retail",
                "conf_construction",
                "conf_consumer",
                "hicp_rent",
                "hpi_yoy",
                "food_price_level",
                "hicp_food_minus_headline"
              ]
            }
          },
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code: ISO 3166-1 alpha-2 for countries (GR for Greece, where Eurostat uses EL), EA21 euro area, EU27 European Union. Mapping to Eurostat and ECB codes in geographies.csv.",
            "constraints": {
              "required": true,
              "enum": [
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EA21",
                "EE",
                "ES",
                "EU27",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IS",
                "IT",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK"
              ]
            }
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name of the geography."
          },
          {
            "name": "period",
            "type": "string",
            "description": "Reference period in its native form: YYYY-MM monthly, YYYY-Qn quarterly, YYYY annual, YYYY-MM-DD daily and irregular.",
            "constraints": {
              "required": true,
              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-\\d{2})?|-Q[1-4])?$"
            }
          },
          {
            "name": "period_start",
            "type": "date",
            "description": "ISO 8601 first day of the period (for irregular policy rates: the date the rate took effect).",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (policy rates: one row per change, the value applies until the next row).",
            "constraints": {
              "enum": [
                "daily",
                "monthly",
                "quarterly",
                "annual",
                "irregular"
              ]
            }
          },
          {
            "name": "value",
            "type": "number",
            "description": "The value exactly as stored: upstream values unrounded and unmodified; derived values rounded (spread 2 dp, food gap 1 dp). Dot decimal separator, no thousands separator, no exponent notation.",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code: pct_yoy, pct_mom, pct, pp, index or balance.",
            "constraints": {
              "enum": [
                "balance",
                "index",
                "pct",
                "pct_mom",
                "pct_yoy",
                "pp"
              ]
            }
          },
          {
            "name": "is_flash",
            "type": "boolean",
            "description": "true when euroflation's ingest classified the value as a flash (preliminary) HICP estimate: the source dataset was last updated before the 10th of the month after the reference month. A heuristic, not an upstream status flag; always false for non-HICP series.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "source",
            "type": "string",
            "description": "Provider and dataset (Eurostat), full series key (ECB), or 'euroflation calculation from ...' for derived rows. HICP rows name the current dataset and the discontinued one that fills early history, e.g. 'Eurostat prc_hicp_minr (history: prc_hicp_manr)': the files do not record which of the two supplied a given row."
          },
          {
            "name": "source_updated_on",
            "type": "date",
            "description": "The Eurostat dataset 'updated' stamp of the version in which euroflation saw this value last change (normally the release day). Empty when no stamp is on record: always for ECB series and the bond spread; for Eurostat rows, when the value was first loaded without a stamp (which includes history from the discontinued prc_hicp_manr/prc_hicp_mmor, and many older and some recent prc_hicp_minr months) and has not changed since. An empty cell does not tell you which dataset a value came from. For the food gap: the later of its two inputs."
          },
          {
            "name": "retrieved_on",
            "type": "date",
            "description": "UTC date on which euroflation last fetched (or, for derived series, recomputed) the row. The daily job re-fetches only the latest periods of most series; older rows keep the date of the last full backfill."
          }
        ],
        "primaryKey": [
          "indicator",
          "geo",
          "period"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "catalog",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/catalog.csv",
      "title": "Data dictionary: one row per file",
      "description": "One row per file with title, unit, frequency, source dataset and DOI, method, coverage, row count and licence scope.",
      "sources": [
        {
          "title": "euroflation",
          "path": "https://euroflation.com"
        }
      ],
      "licenses": [
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "name",
            "type": "string",
            "description": "File name without extension; equals the indicator code for series files."
          },
          {
            "name": "title",
            "type": "string",
            "description": "Title of the file."
          },
          {
            "name": "file_url",
            "type": "string",
            "description": "Download URL."
          },
          {
            "name": "kind",
            "type": "string",
            "description": "indicator, derived, convenience or metadata."
          },
          {
            "name": "unit",
            "type": "string",
            "description": "Unit code (series files)."
          },
          {
            "name": "unit_label",
            "type": "string",
            "description": "Meaning of the unit code."
          },
          {
            "name": "frequency",
            "type": "string",
            "description": "daily, monthly, quarterly, annual or irregular (series files)."
          },
          {
            "name": "family",
            "type": "string",
            "description": "Topic group on the /data page."
          },
          {
            "name": "source",
            "type": "string",
            "description": "Value of the source column (ECB country keys shown with a <geo> placeholder)."
          },
          {
            "name": "source_dataset",
            "type": "string",
            "description": "Upstream dataset code (Eurostat) or dataflow (ECB)."
          },
          {
            "name": "source_dataset_url",
            "type": "string",
            "description": "Upstream dataset page."
          },
          {
            "name": "source_doi",
            "type": "string",
            "description": "Eurostat dataset DOI; empty for ECB series."
          },
          {
            "name": "method",
            "type": "string",
            "description": "How the values were obtained or calculated."
          },
          {
            "name": "geographies",
            "type": "integer",
            "description": "Number of geographies with at least one row."
          },
          {
            "name": "first_period",
            "type": "string",
            "description": "First period in the file."
          },
          {
            "name": "last_period",
            "type": "string",
            "description": "Last period in the file."
          },
          {
            "name": "rows",
            "type": "integer",
            "description": "Number of data rows."
          },
          {
            "name": "licence_scope",
            "type": "string",
            "description": "Which terms apply to the values and to the compilation."
          },
          {
            "name": "status",
            "type": "string",
            "description": "active or discontinued."
          }
        ],
        "primaryKey": [
          "name"
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "geographies",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "dialect": {
        "lineTerminator": "\n"
      },
      "path": "https://euroflation.com/data/v1/geographies.csv",
      "title": "Geography codes and reference data",
      "description": "Every geography code with its name, euro-area membership, currency, central bank, inflation target and the matching Eurostat and ECB codes.",
      "sources": [
        {
          "title": "euroflation",
          "path": "https://euroflation.com"
        }
      ],
      "licenses": [
        {
          "name": "CC-BY-4.0",
          "path": "https://creativecommons.org/licenses/by/4.0/",
          "title": "CC BY 4.0: euroflation's compilation, derived series and documentation"
        }
      ],
      "schema": {
        "fields": [
          {
            "name": "geo",
            "type": "string",
            "description": "euroflation geography code."
          },
          {
            "name": "geo_name",
            "type": "string",
            "description": "English name."
          },
          {
            "name": "type",
            "type": "string",
            "description": "country or aggregate."
          },
          {
            "name": "in_euro_area",
            "type": "boolean",
            "description": "true for euro-area members and the EA21 aggregate.",
            "trueValues": [
              "true"
            ],
            "falseValues": [
              "false"
            ]
          },
          {
            "name": "euro_area_since",
            "type": "date",
            "description": "Date the country adopted the euro; empty otherwise."
          },
          {
            "name": "currency",
            "type": "string",
            "description": "ISO 4217 currency code; empty for the EU27 aggregate (no single currency)."
          },
          {
            "name": "central_bank",
            "type": "string",
            "description": "Central bank short name; empty for the EU27 aggregate."
          },
          {
            "name": "inflation_target",
            "type": "number",
            "description": "Numeric inflation target in percent, as published by the central bank (the ECB's 2% for euro-area geographies); empty where there is no numeric point target (see inflation_target_band) and for the EU27 aggregate."
          },
          {
            "name": "inflation_target_band",
            "type": "string",
            "description": "Tolerance band or regime note (for example an exchange-rate peg); empty when there is none."
          },
          {
            "name": "eurostat_code",
            "type": "string",
            "description": "Code used by Eurostat (EL for Greece, EU27_2020 for the EU)."
          },
          {
            "name": "ecb_code",
            "type": "string",
            "description": "Code used in ECB series keys; empty for geographies without ECB series here. EA21 maps to U2, the ECB's euro area in its changing composition: ECB rows for EA21 carry the geo_name 'Euro area (ECB U2, changing composition)'."
          }
        ],
        "primaryKey": [
          "geo"
        ],
        "missingValues": [
          ""
        ]
      }
    }
  ]
}
