inflation_adjust
Adjust an amount for inflation between two years or two months with a consumer price index: bundled dated series (US CPI-U from BLS, euro-area HICP from Eurostat, Spain's IPC from INE), each answer naming its source, series id, base and fetch date, or any index given in the input. Returns the adjusted amount, the factor, cumulative and annualised inflation. Decimal arithmetic.
Install
/tools install inflation_adjust /tools install inflation_adjust@1.0.0
In a console session, or let the model find it in normal mode: axlr_catalog describes it and axlr_install_tool asks for the same install card. The card reads catalog axlr · inflation_adjust 1.0.0 · verified once the index signature, the manifest digest and every file digest check out. Then the model runs it with axlr_run_tool inflation_adjust; each run is approved as a local_exec.
Arguments
One JSON object on stdin, validated against the schema before the program starts.
| name | type | required | default | meaning |
|---|---|---|---|---|
amount | number | string | no | ||
from | integer | string | no | A year (2020) or a month ("2020-06") | |
to | integer | string | no | Same kind as from | |
series | string | no | one of "us_cpi_u", "ea_hicp", "es_ipc" | |
index | object of ['number', 'string'] | no | Your own index values keyed by year or YYYY-MM, instead of series | |
list_series | boolean | no | Only list the bundled series, their coverage and sources |
Input schema (JSON)
{
"type": "object",
"additionalProperties": false,
"properties": {
"amount": {
"type": [
"number",
"string"
]
},
"from": {
"type": [
"integer",
"string"
],
"description": "A year (2020) or a month (\"2020-06\")"
},
"to": {
"type": [
"integer",
"string"
],
"description": "Same kind as from"
},
"series": {
"type": "string",
"enum": [
"us_cpi_u",
"ea_hicp",
"es_ipc"
]
},
"index": {
"type": "object",
"additionalProperties": {
"type": [
"number",
"string"
]
},
"description": "Your own index values keyed by year or YYYY-MM, instead of series"
},
"list_series": {
"type": "boolean",
"description": "Only list the bundled series, their coverage and sources"
}
}
}
Example
Input
{
"amount": 100,
"from": 2020,
"to": 2022,
"series": "us_cpi_u"
}
Output (stdout)
{
"from_index": "258.811",
"to_index": "292.655",
"adjusted_amount": "113.08",
"cumulative_inflation_pct": "13.08"
}
Files
The command the install card registers is python3 inflation_adjust.py, run in the workspace with PATH and HOME as its only environment. Each file's SHA-256 is in the signed index; the console checks them before showing the card and again before writing.
cpi.json · sha256 11d47b8f4a0a75bcfef42c21b196fd6569d0245dc7592b00a9aad9d2085fe7ea
{
"generated": "2026-10-18",
"generator": "tools/catalog/data/inflation_adjust.py",
"series": {
"us_cpi_u": {
"title": "United States, CPI-U, U.S. city average, all items, not seasonally adjusted",
"agency": "U.S. Bureau of Labor Statistics",
"series_id": "CUUR0000SA0",
"base": "1982-84=100",
"currency": "USD",
"source_url": "https://api.bls.gov/publicAPI/v1/timeseries/data/CUUR0000SA0",
"annual_method": "BLS annual average (period M13)",
"fetched": "2026-10-18",
"annual": {
"1913": "9.9",
"1914": "10.0",
"1915": "10.1",
"1916": "10.9",
"1917": "12.8",
"1918": "15.1",
"1919": "17.3",
"1920": "20.0",
"1921": "17.9",
"1922": "16.8",
"1923": "17.1",
"1924": "17.1",
"1925": "17.5",
"1926": "17.7",
"1927": "17.4",
"1928": "17.1",
"1929": "17.1",
"1930": "16.7",
"1931": "15.2",
"1932": "13.7",
"1933": "13.0",
"1934": "13.4",
"1935": "13.7",
"1936": "13.9",
"1937": "14.4",
"1938": "14.1",
"1939": "13.9",
"1940": "14.0",
"1941": "14.7",
"1942": "16.3",
"1943": "17.3",
"1944": "17.6",
"1945": "18.0",
"1946": "19.5",
"1947": "22.3",
"1948": "24.1",
"1949": "23.8",
"1950": "24.1",
"1951": "26.0",
"1952": "26.5",
"1953": "26.7",
"1954": "26.9",
"1955": "26.8",
"1956": "27.2",
"1957": "28.1",
"1958": "28.9",
"1959": "29.1",
"1960": "29.6",
"1961": "29.9",
"1962": "30.2",
"1963": "30.6",
"1964": "31.0",
"1965": "31.5",
"1966": "32.4",
"1967": "33.4",
"1968": "34.8",
"1969": "36.7",
"1970": "38.8",
"1971": "40.5",
"1972": "41.8",
"1973": "44.4",
"1974": "49.3",
"1975": "53.8",
"1976": "56.9",
"1977": "60.6",
"1978": "65.2",
"1979": "72.6",
"1980": "82.4",
"1981": "90.9",
"1982": "96.5",
"1983": "99.6",
"1984": "103.9",
"1985": "107.6",
"1986": "109.6",
"1987": "113.6",
"1988": "118.3",
"1989": "124.0",
"1990": "130.7",
"1991": "136.2",
"1992": "140.3",
"1993": "144.5",
"1994": "148.2",
"1995": "152.4",
"1996": "156.9",
"1997": "160.5",
"1998": "163.0",
"1999": "166.6",
"2000": "172.2",
"2001": "177.1",
"2002": "179.9",
"2003": "184.0",
"2004": "188.9",
"2005": "195.3",
"2006": "201.6",
"2007": "207.342",
"2008": "215.303",
"2009": "214.537",
"2010": "218.056",
"2011": "224.939",
"2012": "229.594",
"2013": "232.957",
"2014": "236.736",
"2015": "237.017",
"2016": "240.007",
"2017": "245.120",
"2018": "251.107",
"2019": "255.657",
"2020": "258.811",
"2021": "270.970",
"2022": "292.655",
"2023": "304.702",
"2024": "313.689",
"2025": "321.943"
},
"monthly": {
"1913-01": "9.8",
"1913-02": "9.8",
"1913-03": "9.8",
"1913-04": "9.8",
"1913-05": "9.7",
"1913-06": "9.8",
"1913-07": "9.9",
"1913-08": "9.9",
"1913-09": "10.0",
"1913-10": "10.0",
"1913-11": "10.1",
"1913-12": "10.0",
"1914-01": "10.0",
"1914-02": "9.9",
"1914-03": "9.9",
"1914-04": "9.8",
"1914-05": "9.9",
"1914-06": "9.9",
"1914-07": "10.0",
"1914-08": "10.2",
"1914-09": "10.2",
"1914-10": "10.1",
"1914-11": "10.2",
"1914-12": "10.1",
"1915-01": "10.1",
"1915-02": "10.0",
"1915-03": "9.9",
"1915-04": "10.0",
"1915-05": "10.1",
"1915-06": "10.1",
"1915-07": "10.1",
"1915-08": "10.1",
"1915-09": "10.1",
"1915-10": "10.2",
"1915-11": "10.3",
"1915-12": "10.3",
"1916-01": "10.4",
"1916-02": "10.4",
"1916-03": "10.5",
"1916-04": "10.6",
"1916-05": "10.7",
"1916-06": "10.8",
"1916-07": "10.8",
"1916-08": "10.9",
"1916-09": "11.1",
"1916-10": "11.3",
"1916-11": "11.5",
"1916-12": "11.6",
"1917-01": "11.7",
"1917-02": "12.0",
"1917-03": "12.0",
"1917-04": "12.6",
"1917-05": "12.8",
"1917-06": "13.0",
"1917-07": "12.8",
"1917-08": "13.0",
"1917-09": "13.3",
"1917-10": "13.5",
"1917-11": "13.5",
"1917-12": "13.7",
"1918-01": "14.0",
"1918-02": "14.1",
"1918-03": "14.0",
"1918-04": "14.2",
"1918-05": "14.5",
"1918-06": "14.7",
"1918-07": "15.1",
"1918-08": "15.4",
"1918-09": "15.7",
"1918-10": "16.0",
"1918-11": "16.3",
"1918-12": "16.5",
"1919-01": "16.5",
"1919-02": "16.2",
"1919-03": "16.4",
"1919-04": "16.7",
"1919-05": "16.9",
"1919-06": "16.9",
"1919-07": "17.4",
"1919-08": "17.7",
"1919-09": "17.8",
"1919-10": "18.1",
"1919-11": "18.5",
"1919-12": "18.9",
"1920-01": "19.3",
"1920-02": "19.5",
"1920-03": "19.7",
"1920-04": "20.3",
"1920-05": "20.6",
"1920-06": "20.9",
"1920-07": "20.8",
"1920-08": "20.3",
"1920-09": "20.0",
"1920-10": "19.9",
"1920-11": "19.8",
"1920-12": "19.4",
"1921-01": "19.0",
"1921-02": "18.4",
"1921-03": "18.3",
"1921-04": "18.1",
"1921-05": "17.7",
"1921-06": "17.6",
"1921-07": "17.7",
"1921-08": "17.7",
"1921-09": "17.5",
"1921-10": "17.5",
"1921-11": "17.4",
"1921-12": "17.3",
"1922-01": "16.9",
"1922-02": "16.9",
"1922-03": "16.7",
"1922-04": "16.7",
"1922-05": "16.7",
"1922-06": "16.7",
"1922-07": "16.8",
"1922-08": "16.6",
"1922-09": "16.6",
"1922-10": "16.7",
"1922-11": "16.8",
"1922-12": "16.9",
"1923-01": "16.8",
"1923-02": "16.8",
"1923-03": "16.8",
"1923-04": "16.9",
"1923-05": "16.9",
"1923-06": "17.0",
"1923-07": "17.2",
"1923-08": "17.1",
"1923-09": "17.2",
"1923-10": "17.3",
"1923-11": "17.3",
"1923-12": "17.3",
"1924-01": "17.3",
"1924-02": "17.2",
"1924-03": "17.1",
"1924-04": "17.0",
"1924-05": "17.0",
"1924-06": "17.0",
"1924-07": "17.1",
"1924-08": "17.0",
"1924-09": "17.1",
"1924-10": "17.2",
"1924-11": "17.2",
"1924-12": "17.3",
"1925-01": "17.3",
"1925-02": "17.2",
"1925-03": "17.3",
"1925-04": "17.2",
"1925-05": "17.3",
"1925-06": "17.5",
"1925-07": "17.7",
"1925-08": "17.7",
"1925-09": "17.7",
"1925-10": "17.7",
"1925-11": "18.0",
"1925-12": "17.9",
"1926-01": "17.9",
"1926-02": "17.9",
"1926-03": "17.8",
"1926-04": "17.9",
"1926-05": "17.8",
"1926-06": "17.7",
"1926-07": "17.5",
"1926-08": "17.4",
"1926-09": "17.5",
"1926-10": "17.6",
"1926-11": "17.7",
"1926-12": "17.7",
"1927-01": "17.5",
"1927-02": "17.4",
"1927-03": "17.3",
"1927-04": "17.3",
"1927-05": "17.4",
"1927-06": "17.6",
"1927-07": "17.3",
"1927-08": "17.2",
"1927-09": "17.3",
"1927-10": "17.4",
"1927-11": "17.3",
"1927-12": "17.3",
"1928-01": "17.3",
"1928-02": "17.1",
"1928-03": "17.1",
"1928-04": "17.1",
"1928-05": "17.2",
"1928-06": "17.1",
"1928-07": "17.1",
"1928-08": "17.1",
"1928-09": "17.3",
"1928-10": "17.2",
"1928-11": "17.2",
"1928-12": "17.1",
"1929-01": "17.1",
"1929-02": "17.1",
"1929-03": "17.0",
"1929-04": "16.9",
"1929-05": "17.0",
"1929-06": "17.1",
"1929-07": "17.3",
"1929-08": "17.3",
"1929-09": "17.3",
"1929-10": "17.3",
"1929-11": "17.3",
"1929-12": "17.2",
"1930-01": "17.1",
"1930-02": "17.0",
"1930-03": "16.9",
"1930-04": "17.0",
"1930-05": "16.9",
"1930-06": "16.8",
"1930-07": "16.6",
"1930-08": "16.5",
"1930-09": "16.6",
"1930-10": "16.5",
"1930-11": "16.4",
"1930-12": "16.1",
"1931-01": "15.9",
"1931-02": "15.7",
"1931-03": "15.6",
"1931-04": "15.5",
"1931-05": "15.3",
"1931-06": "15.1",
"1931-07": "15.1",
"1931-08": "15.1",
"1931-09": "15.0",
"1931-10": "14.9",
"1931-11": "14.7",
"1931-12": "14.6",
"1932-01": "14.3",
"1932-02": "14.1",
"1932-03": "14.0",
"1932-04": "13.9",
"1932-05": "13.7",
"1932-06": "13.6",
"1932-07": "13.6",
"1932-08": "13.5",
"1932-09": "13.4",
"1932-10": "13.3",
"1932-11": "13.2",
"1932-12": "13.1",
"1933-01": "12.9",
"1933-02": "12.7",
"1933-03": "12.6",
"1933-04": "12.6",
"1933-05": "12.6",
"1933-06": "12.7",
"1933-07": "13.1",
"1933-08": "13.2",
"1933-09": "13.2",
"1933-10": "13.2",
"1933-11": "13.2",
"1933-12": "13.2",
"1934-01": "13.2",
"1934-02": "13.3",
"1934-03": "13.3",
"1934-04": "13.3",
"1934-05": "13.3",
"1934-06": "13.4",
"1934-07": "13.4",
"1934-08": "13.4",
"1934-09": "13.6",
"1934-10": "13.5",
"1934-11": "13.5",
"1934-12": "13.4",
"1935-01": "13.6",
"1935-02": "13.7",
"1935-03": "13.7",
"1935-04": "13.8",
"1935-05": "13.8",
"1935-06": "13.7",
"1935-07": "13.7",
"1935-08": "13.7",
"1935-09": "13.7",
"1935-10": "13.7",
"1935-11": "13.8",
"1935-12": "13.8",
"1936-01": "13.8",
"1936-02": "13.8",
"1936-03": "13.7",
"1936-04": "13.7",
"1936-05": "13.7",
"1936-06": "13.8",
"1936-07": "13.9",
"1936-08": "14.0",
"1936-09": "14.0",
"1936-10": "14.0",
"1936-11": "14.0",
"1936-12": "14.0",
"1937-01": "14.1",
"1937-02": "14.1",
"1937-03": "14.2",
"1937-04": "14.3",
"1937-05": "14.4",
"1937-06": "14.4",
"1937-07": "14.5",
"1937-08": "14.5",
"1937-09": "14.6",
"1937-10": "14.6",
"1937-11": "14.5",
"1937-12": "14.4",
"1938-01": "14.2",
"1938-02": "14.1",
"1938-03": "14.1",
"1938-04": "14.2",
"1938-05": "14.1",
"1938-06": "14.1",
"1938-07": "14.1",
"1938-08": "14.1",
"1938-09": "14.1",
"1938-10": "14.0",
"1938-11": "14.0",
"1938-12": "14.0",
"1939-01": "14.0",
"1939-02": "13.9",
"1939-03": "13.9",
"1939-04": "13.8",
"1939-05": "13.8",
"1939-06": "13.8",
"1939-07": "13.8",
"1939-08": "13.8",
"1939-09": "14.1",
"1939-10": "14.0",
"1939-11": "14.0",
"1939-12": "14.0",
"1940-01": "13.9",
"1940-02": "14.0",
"1940-03": "14.0",
"1940-04": "14.0",
"1940-05": "14.0",
"1940-06": "14.1",
"1940-07": "14.0",
"1940-08": "14.0",
"1940-09": "14.0",
"1940-10": "14.0",
"1940-11": "14.0",
"1940-12": "14.1",
"1941-01": "14.1",
"1941-02": "14.1",
"1941-03": "14.2",
"1941-04": "14.3",
"1941-05": "14.4",
"1941-06": "14.7",
"1941-07": "14.7",
"1941-08": "14.9",
"1941-09": "15.1",
"1941-10": "15.3",
"1941-11": "15.4",
"1941-12": "15.5",
"1942-01": "15.7",
"1942-02": "15.8",
"1942-03": "16.0",
"1942-04": "16.1",
"1942-05": "16.3",
"1942-06": "16.3",
"1942-07": "16.4",
"1942-08": "16.5",
"1942-09": "16.5",
"1942-10": "16.7",
"1942-11": "16.8",
"1942-12": "16.9",
"1943-01": "16.9",
"1943-02": "16.9",
"1943-03": "17.2",
"1943-04": "17.4",
"1943-05": "17.5",
"1943-06": "17.5",
"1943-07": "17.4",
"1943-08": "17.3",
"1943-09": "17.4",
"1943-10": "17.4",
"1943-11": "17.4",
"1943-12": "17.4",
"1944-01": "17.4",
"1944-02": "17.4",
"1944-03": "17.4",
"1944-04": "17.5",
"1944-05": "17.5",
"1944-06": "17.6",
"1944-07": "17.7",
"1944-08": "17.7",
"1944-09": "17.7",
"1944-10": "17.7",
"1944-11": "17.7",
"1944-12": "17.8",
"1945-01": "17.8",
"1945-02": "17.8",
"1945-03": "17.8",
"1945-04": "17.8",
"1945-05": "17.9",
"1945-06": "18.1",
"1945-07": "18.1",
"1945-08": "18.1",
"1945-09": "18.1",
"1945-10": "18.1",
"1945-11": "18.1",
"1945-12": "18.2",
"1946-01": "18.2",
"1946-02": "18.1",
"1946-03": "18.3",
"1946-04": "18.4",
"1946-05": "18.5",
"1946-06": "18.7",
"1946-07": "19.8",
"1946-08": "20.2",
"1946-09": "20.4",
"1946-10": "20.8",
"1946-11": "21.3",
"1946-12": "21.5",
"1947-01": "21.5",
"1947-02": "21.5",
"1947-03": "21.9",
"1947-04": "21.9",
"1947-05": "21.9",
"1947-06": "22.0",
"1947-07": "22.2",
"1947-08": "22.5",
"1947-09": "23.0",
"1947-10": "23.0",
"1947-11": "23.1",
"1947-12": "23.4",
"1948-01": "23.7",
"1948-02": "23.5",
"1948-03": "23.4",
"1948-04": "23.8",
"1948-05": "23.9",
"1948-06": "24.1",
"1948-07": "24.4",
"1948-08": "24.5",
"1948-09": "24.5",
"1948-10": "24.4",
"1948-11": "24.2",
"1948-12": "24.1",
"1949-01": "24.0",
"1949-02": "23.8",
"1949-03": "23.8",
"1949-04": "23.9",
"1949-05": "23.8",
"1949-06": "23.9",
"1949-07": "23.7",
"1949-08": "23.8",
"1949-09": "23.9",
"1949-10": "23.7",
"1949-11": "23.8",
"1949-12": "23.6",
"1950-01": "23.5",
"1950-02": "23.5",
"1950-03": "23.6",
"1950-04": "23.6",
"1950-05": "23.7",
"1950-06": "23.8",
"1950-07": "24.1",
"1950-08": "24.3",
"1950-09": "24.4",
"1950-10": "24.6",
"1950-11": "24.7",
"1950-12": "25.0",
"1951-01": "25.4",
"1951-02": "25.7",
"1951-03": "25.8",
"1951-04": "25.8",
"1951-05": "25.9",
"1951-06": "25.9",
"1951-07": "25.9",
"1951-08": "25.9",
"1951-09": "26.1",
"1951-10": "26.2",
"1951-11": "26.4",
"1951-12": "26.5",
"1952-01": "26.5",
"1952-02": "26.3",
"1952-03": "26.3",
"1952-04": "26.4",
"1952-05": "26.4",
"1952-06": "26.5",
"1952-07": "26.7",
"1952-08": "26.7",
"1952-09": "26.7",
"1952-10": "26.7",
"1952-11": "26.7",
"1952-12": "26.7",
"1953-01": "26.6",
"1953-02": "26.5",
"1953-03": "26.6",
"1953-04": "26.6",
"1953-05": "26.7",
"1953-06": "26.8",
"1953-07": "26.8",
"1953-08": "26.9",
"1953-09": "26.9",
"1953-10": "27.0",
"1953-11": "26.9",
"1953-12": "26.9",
"1954-01": "26.9",
"1954-02": "26.9",
"1954-03": "26.9",
"1954-04": "26.8",
"1954-05": "26.9",
"1954-06": "26.9",
"1954-07": "26.9",
"1954-08": "26.9",
"1954-09": "26.8",
"1954-10": "26.8",
"1954-11": "26.8",
"1954-12": "26.7",
"1955-01": "26.7",
"1955-02": "26.7",
"1955-03": "26.7",
"1955-04": "26.7",
"1955-05": "26.7",
"1955-06": "26.7",
"1955-07": "26.8",
"1955-08": "26.8",
"1955-09": "26.9",
"1955-10": "26.9",
"1955-11": "26.9",
"1955-12": "26.8",
"1956-01": "26.8",
"1956-02": "26.8",
"1956-03": "26.8",
"1956-04": "26.9",
"1956-05": "27.0",
"1956-06": "27.2",
"1956-07": "27.4",
"1956-08": "27.3",
"1956-09": "27.4",
"1956-10": "27.5",
"1956-11": "27.5",
"1956-12": "27.6",
"1957-01": "27.6",
"1957-02": "27.7",
"1957-03": "27.8",
"1957-04": "27.9",
"1957-05": "28.0",
"1957-06": "28.1",
"1957-07": "28.3",
"1957-08": "28.3",
"1957-09": "28.3",
"1957-10": "28.3",
"1957-11": "28.4",
"1957-12": "28.4",
"1958-01": "28.6",
"1958-02": "28.6",
"1958-03": "28.8",
"1958-04": "28.9",
"1958-05": "28.9",
"1958-06": "28.9",
"1958-07": "29.0",
"1958-08": "28.9",
"1958-09": "28.9",
"1958-10": "28.9",
"1958-11": "29.0",
"1958-12": "28.9",
"1959-01": "29.0",
"1959-02": "28.9",
"1959-03": "28.9",
"1959-04": "29.0",
"1959-05": "29.0",
"1959-06": "29.1",
"1959-07": "29.2",
"1959-08": "29.2",
"1959-09": "29.3",
"1959-10": "29.4",
"1959-11": "29.4",
"1959-12": "29.4",
"1960-01": "29.3",
"1960-02": "29.4",
"1960-03": "29.4",
"1960-04": "29.5",
"1960-05": "29.5",
"1960-06": "29.6",
"1960-07": "29.6",
"1960-08": "29.6",
"1960-09": "29.6",
"1960-10": "29.8",
"1960-11": "29.8",
"1960-12": "29.8",
"1961-01": "29.8",
"1961-02": "29.8",
"1961-03": "29.8",
"1961-04": "29.8",
"1961-05": "29.8",
"1961-06": "29.8",
"1961-07": "30.0",
"1961-08": "29.9",
"1961-09": "30.0",
"1961-10": "30.0",
"1961-11": "30.0",
"1961-12": "30.0",
"1962-01": "30.0",
"1962-02": "30.1",
"1962-03": "30.1",
"1962-04": "30.2",
"1962-05": "30.2",
"1962-06": "30.2",
"1962-07": "30.3",
"1962-08": "30.3",
"1962-09": "30.4",
"1962-10": "30.4",
"1962-11": "30.4",
"1962-12": "30.4",
"1963-01": "30.4",
"1963-02": "30.4",
"1963-03": "30.5",
"1963-04": "30.5",
"1963-05": "30.5",
"1963-06": "30.6",
"1963-07": "30.7",
"1963-08": "30.7",
"1963-09": "30.7",
"1963-10": "30.8",
"1963-11": "30.8",
"1963-12": "30.9",
"1964-01": "30.9",
"1964-02": "30.9",
"1964-03": "30.9",
"1964-04": "30.9",
"1964-05": "30.9",
"1964-06": "31.0",
"1964-07": "31.1",
"1964-08": "31.0",
"1964-09": "31.1",
"1964-10": "31.1",
"1964-11": "31.2",
"1964-12": "31.2",
"1965-01": "31.2",
"1965-02": "31.2",
"1965-03": "31.3",
"1965-04": "31.4",
"1965-05": "31.4",
"1965-06": "31.6",
"1965-07": "31.6",
"1965-08": "31.6",
"1965-09": "31.6",
"1965-10": "31.7",
"1965-11": "31.7",
"1965-12": "31.8",
"1966-01": "31.8",
"1966-02": "32.0",
"1966-03": "32.1",
"1966-04": "32.3",
"1966-05": "32.3",
"1966-06": "32.4",
"1966-07": "32.5",
"1966-08": "32.7",
"1966-09": "32.7",
"1966-10": "32.9",
"1966-11": "32.9",
"1966-12": "32.9",
"1967-01": "32.9",
"1967-02": "32.9",
"1967-03": "33.0",
"1967-04": "33.1",
"1967-05": "33.2",
"1967-06": "33.3",
"1967-07": "33.4",
"1967-08": "33.5",
"1967-09": "33.6",
"1967-10": "33.7",
"1967-11": "33.8",
"1967-12": "33.9",
"1968-01": "34.1",
"1968-02": "34.2",
"1968-03": "34.3",
"1968-04": "34.4",
"1968-05": "34.5",
"1968-06": "34.7",
"1968-07": "34.9",
"1968-08": "35.0",
"1968-09": "35.1",
"1968-10": "35.3",
"1968-11": "35.4",
"1968-12": "35.5",
"1969-01": "35.6",
"1969-02": "35.8",
"1969-03": "36.1",
"1969-04": "36.3",
"1969-05": "36.4",
"1969-06": "36.6",
"1969-07": "36.8",
"1969-08": "37.0",
"1969-09": "37.1",
"1969-10": "37.3",
"1969-11": "37.5",
"1969-12": "37.7",
"1970-01": "37.8",
"1970-02": "38.0",
"1970-03": "38.2",
"1970-04": "38.5",
"1970-05": "38.6",
"1970-06": "38.8",
"1970-07": "39.0",
"1970-08": "39.0",
"1970-09": "39.2",
"1970-10": "39.4",
"1970-11": "39.6",
"1970-12": "39.8",
"1971-01": "39.8",
"1971-02": "39.9",
"1971-03": "40.0",
"1971-04": "40.1",
"1971-05": "40.3",
"1971-06": "40.6",
"1971-07": "40.7",
"1971-08": "40.8",
"1971-09": "40.8",
"1971-10": "40.9",
"1971-11": "40.9",
"1971-12": "41.1",
"1972-01": "41.1",
"1972-02": "41.3",
"1972-03": "41.4",
"1972-04": "41.5",
"1972-05": "41.6",
"1972-06": "41.7",
"1972-07": "41.9",
"1972-08": "42.0",
"1972-09": "42.1",
"1972-10": "42.3",
"1972-11": "42.4",
"1972-12": "42.5",
"1973-01": "42.6",
"1973-02": "42.9",
"1973-03": "43.3",
"1973-04": "43.6",
"1973-05": "43.9",
"1973-06": "44.2",
"1973-07": "44.3",
"1973-08": "45.1",
"1973-09": "45.2",
"1973-10": "45.6",
"1973-11": "45.9",
"1973-12": "46.2",
"1974-01": "46.6",
"1974-02": "47.2",
"1974-03": "47.8",
"1974-04": "48.0",
"1974-05": "48.6",
"1974-06": "49.0",
"1974-07": "49.4",
"1974-08": "50.0",
"1974-09": "50.6",
"1974-10": "51.1",
"1974-11": "51.5",
"1974-12": "51.9",
"1975-01": "52.1",
"1975-02": "52.5",
"1975-03": "52.7",
"1975-04": "52.9",
"1975-05": "53.2",
"1975-06": "53.6",
"1975-07": "54.2",
"1975-08": "54.3",
"1975-09": "54.6",
"1975-10": "54.9",
"1975-11": "55.3",
"1975-12": "55.5",
"1976-01": "55.6",
"1976-02": "55.8",
"1976-03": "55.9",
"1976-04": "56.1",
"1976-05": "56.5",
"1976-06": "56.8",
"1976-07": "57.1",
"1976-08": "57.4",
"1976-09": "57.6",
"1976-10": "57.9",
"1976-11": "58.0",
"1976-12": "58.2",
"1977-01": "58.5",
"1977-02": "59.1",
"1977-03": "59.5",
"1977-04": "60.0",
"1977-05": "60.3",
"1977-06": "60.7",
"1977-07": "61.0",
"1977-08": "61.2",
"1977-09": "61.4",
"1977-10": "61.6",
"1977-11": "61.9",
"1977-12": "62.1",
"1978-01": "62.5",
"1978-02": "62.9",
"1978-03": "63.4",
"1978-04": "63.9",
"1978-05": "64.5",
"1978-06": "65.2",
"1978-07": "65.7",
"1978-08": "66.0",
"1978-09": "66.5",
"1978-10": "67.1",
"1978-11": "67.4",
"1978-12": "67.7",
"1979-01": "68.3",
"1979-02": "69.1",
"1979-03": "69.8",
"1979-04": "70.6",
"1979-05": "71.5",
"1979-06": "72.3",
"1979-07": "73.1",
"1979-08": "73.8",
"1979-09": "74.6",
"1979-10": "75.2",
"1979-11": "75.9",
"1979-12": "76.7",
"1980-01": "77.8",
"1980-02": "78.9",
"1980-03": "80.1",
"1980-04": "81.0",
"1980-05": "81.8",
"1980-06": "82.7",
"1980-07": "82.7",
"1980-08": "83.3",
"1980-09": "84.0",
"1980-10": "84.8",
"1980-11": "85.5",
"1980-12": "86.3",
"1981-01": "87.0",
"1981-02": "87.9",
"1981-03": "88.5",
"1981-04": "89.1",
"1981-05": "89.8",
"1981-06": "90.6",
"1981-07": "91.6",
"1981-08": "92.3",
"1981-09": "93.2",
"1981-10": "93.4",
"1981-11": "93.7",
"1981-12": "94.0",
"1982-01": "94.3",
"1982-02": "94.6",
"1982-03": "94.5",
"1982-04": "94.9",
"1982-05": "95.8",
"1982-06": "97.0",
"1982-07": "97.5",
"1982-08": "97.7",
"1982-09": "97.9",
"1982-10": "98.2",
"1982-11": "98.0",
"1982-12": "97.6",
"1983-01": "97.8",
"1983-02": "97.9",
"1983-03": "97.9",
"1983-04": "98.6",
"1983-05": "99.2",
"1983-06": "99.5",
"1983-07": "99.9",
"1983-08": "100.2",
"1983-09": "100.7",
"1983-10": "101.0",
"1983-11": "101.2",
"1983-12": "101.3",
"1984-01": "101.9",
"1984-02": "102.4",
"1984-03": "102.6",
"1984-04": "103.1",
"1984-05": "103.4",
"1984-06": "103.7",
"1984-07": "104.1",
"1984-08": "104.5",
"1984-09": "105.0",
"1984-10": "105.3",
"1984-11": "105.3",
"1984-12": "105.3",
"1985-01": "105.5",
"1985-02": "106.0",
"1985-03": "106.4",
"1985-04": "106.9",
"1985-05": "107.3",
"1985-06": "107.6",
"1985-07": "107.8",
"1985-08": "108.0",
"1985-09": "108.3",
"1985-10": "108.7",
"1985-11": "109.0",
"1985-12": "109.3",
"1986-01": "109.6",
"1986-02": "109.3",
"1986-03": "108.8",
"1986-04": "108.6",
"1986-05": "108.9",
"1986-06": "109.5",
"1986-07": "109.5",
"1986-08": "109.7",
"1986-09": "110.2",
"1986-10": "110.3",
"1986-11": "110.4",
"1986-12": "110.5",
"1987-01": "111.2",
"1987-02": "111.6",
"1987-03": "112.1",
"1987-04": "112.7",
"1987-05": "113.1",
"1987-06": "113.5",
"1987-07": "113.8",
"1987-08": "114.4",
"1987-09": "115.0",
"1987-10": "115.3",
"1987-11": "115.4",
"1987-12": "115.4",
"1988-01": "115.7",
"1988-02": "116.0",
"1988-03": "116.5",
"1988-04": "117.1",
"1988-05": "117.5",
"1988-06": "118.0",
"1988-07": "118.5",
"1988-08": "119.0",
"1988-09": "119.8",
"1988-10": "120.2",
"1988-11": "120.3",
"1988-12": "120.5",
"1989-01": "121.1",
"1989-02": "121.6",
"1989-03": "122.3",
"1989-04": "123.1",
"1989-05": "123.8",
"1989-06": "124.1",
"1989-07": "124.4",
"1989-08": "124.6",
"1989-09": "125.0",
"1989-10": "125.6",
"1989-11": "125.9",
"1989-12": "126.1",
"1990-01": "127.4",
"1990-02": "128.0",
"1990-03": "128.7",
"1990-04": "128.9",
"1990-05": "129.2",
"1990-06": "129.9",
"1990-07": "130.4",
"1990-08": "131.6",
"1990-09": "132.7",
"1990-10": "133.5",
"1990-11": "133.8",
"1990-12": "133.8",
"1991-01": "134.6",
"1991-02": "134.8",
"1991-03": "135.0",
"1991-04": "135.2",
"1991-05": "135.6",
"1991-06": "136.0",
"1991-07": "136.2",
"1991-08": "136.6",
"1991-09": "137.2",
"1991-10": "137.4",
"1991-11": "137.8",
"1991-12": "137.9",
"1992-01": "138.1",
"1992-02": "138.6",
"1992-03": "139.3",
"1992-04": "139.5",
"1992-05": "139.7",
"1992-06": "140.2",
"1992-07": "140.5",
"1992-08": "140.9",
"1992-09": "141.3",
"1992-10": "141.8",
"1992-11": "142.0",
"1992-12": "141.9",
"1993-01": "142.6",
"1993-02": "143.1",
"1993-03": "143.6",
"1993-04": "144.0",
"1993-05": "144.2",
"1993-06": "144.4",
"1993-07": "144.4",
"1993-08": "144.8",
"1993-09": "145.1",
"1993-10": "145.7",
"1993-11": "145.8",
"1993-12": "145.8",
"1994-01": "146.2",
"1994-02": "146.7",
"1994-03": "147.2",
"1994-04": "147.4",
"1994-05": "147.5",
"1994-06": "148.0",
"1994-07": "148.4",
"1994-08": "149.0",
"1994-09": "149.4",
"1994-10": "149.5",
"1994-11": "149.7",
"1994-12": "149.7",
"1995-01": "150.3",
"1995-02": "150.9",
"1995-03": "151.4",
"1995-04": "151.9",
"1995-05": "152.2",
"1995-06": "152.5",
"1995-07": "152.5",
"1995-08": "152.9",
"1995-09": "153.2",
"1995-10": "153.7",
"1995-11": "153.6",
"1995-12": "153.5",
"1996-01": "154.4",
"1996-02": "154.9",
"1996-03": "155.7",
"1996-04": "156.3",
"1996-05": "156.6",
"1996-06": "156.7",
"1996-07": "157.0",
"1996-08": "157.3",
"1996-09": "157.8",
"1996-10": "158.3",
"1996-11": "158.6",
"1996-12": "158.6",
"1997-01": "159.1",
"1997-02": "159.6",
"1997-03": "160.0",
"1997-04": "160.2",
"1997-05": "160.1",
"1997-06": "160.3",
"1997-07": "160.5",
"1997-08": "160.8",
"1997-09": "161.2",
"1997-10": "161.6",
"1997-11": "161.5",
"1997-12": "161.3",
"1998-01": "161.6",
"1998-02": "161.9",
"1998-03": "162.2",
"1998-04": "162.5",
"1998-05": "162.8",
"1998-06": "163.0",
"1998-07": "163.2",
"1998-08": "163.4",
"1998-09": "163.6",
"1998-10": "164.0",
"1998-11": "164.0",
"1998-12": "163.9",
"1999-01": "164.3",
"1999-02": "164.5",
"1999-03": "165.0",
"1999-04": "166.2",
"1999-05": "166.2",
"1999-06": "166.2",
"1999-07": "166.7",
"1999-08": "167.1",
"1999-09": "167.9",
"1999-10": "168.2",
"1999-11": "168.3",
"1999-12": "168.3",
"2000-01": "168.8",
"2000-02": "169.8",
"2000-03": "171.2",
"2000-04": "171.3",
"2000-05": "171.5",
"2000-06": "172.4",
"2000-07": "172.8",
"2000-08": "172.8",
"2000-09": "173.7",
"2000-10": "174.0",
"2000-11": "174.1",
"2000-12": "174.0",
"2001-01": "175.1",
"2001-02": "175.8",
"2001-03": "176.2",
"2001-04": "176.9",
"2001-05": "177.7",
"2001-06": "178.0",
"2001-07": "177.5",
"2001-08": "177.5",
"2001-09": "178.3",
"2001-10": "177.7",
"2001-11": "177.4",
"2001-12": "176.7",
"2002-01": "177.1",
"2002-02": "177.8",
"2002-03": "178.8",
"2002-04": "179.8",
"2002-05": "179.8",
"2002-06": "179.9",
"2002-07": "180.1",
"2002-08": "180.7",
"2002-09": "181.0",
"2002-10": "181.3",
"2002-11": "181.3",
"2002-12": "180.9",
"2003-01": "181.7",
"2003-02": "183.1",
"2003-03": "184.2",
"2003-04": "183.8",
"2003-05": "183.5",
"2003-06": "183.7",
"2003-07": "183.9",
"2003-08": "184.6",
"2003-09": "185.2",
"2003-10": "185.0",
"2003-11": "184.5",
"2003-12": "184.3",
"2004-01": "185.2",
"2004-02": "186.2",
"2004-03": "187.4",
"2004-04": "188.0",
"2004-05": "189.1",
"2004-06": "189.7",
"2004-07": "189.4",
"2004-08": "189.5",
"2004-09": "189.9",
"2004-10": "190.9",
"2004-11": "191.0",
"2004-12": "190.3",
"2005-01": "190.7",
"2005-02": "191.8",
"2005-03": "193.3",
"2005-04": "194.6",
"2005-05": "194.4",
"2005-06": "194.5",
"2005-07": "195.4",
"2005-08": "196.4",
"2005-09": "198.8",
"2005-10": "199.2",
"2005-11": "197.6",
"2005-12": "196.8",
"2006-01": "198.3",
"2006-02": "198.7",
"2006-03": "199.8",
"2006-04": "201.5",
"2006-05": "202.5",
"2006-06": "202.9",
"2006-07": "203.5",
"2006-08": "203.9",
"2006-09": "202.9",
"2006-10": "201.8",
"2006-11": "201.5",
"2006-12": "201.8",
"2007-01": "202.416",
"2007-02": "203.499",
"2007-03": "205.352",
"2007-04": "206.686",
"2007-05": "207.949",
"2007-06": "208.352",
"2007-07": "208.299",
"2007-08": "207.917",
"2007-09": "208.490",
"2007-10": "208.936",
"2007-11": "210.177",
"2007-12": "210.036",
"2008-01": "211.080",
"2008-02": "211.693",
"2008-03": "213.528",
"2008-04": "214.823",
"2008-05": "216.632",
"2008-06": "218.815",
"2008-07": "219.964",
"2008-08": "219.086",
"2008-09": "218.783",
"2008-10": "216.573",
"2008-11": "212.425",
"2008-12": "210.228",
"2009-01": "211.143",
"2009-02": "212.193",
"2009-03": "212.709",
"2009-04": "213.240",
"2009-05": "213.856",
"2009-06": "215.693",
"2009-07": "215.351",
"2009-08": "215.834",
"2009-09": "215.969",
"2009-10": "216.177",
"2009-11": "216.330",
"2009-12": "215.949",
"2010-01": "216.687",
"2010-02": "216.741",
"2010-03": "217.631",
"2010-04": "218.009",
"2010-05": "218.178",
"2010-06": "217.965",
"2010-07": "218.011",
"2010-08": "218.312",
"2010-09": "218.439",
"2010-10": "218.711",
"2010-11": "218.803",
"2010-12": "219.179",
"2011-01": "220.223",
"2011-02": "221.309",
"2011-03": "223.467",
"2011-04": "224.906",
"2011-05": "225.964",
"2011-06": "225.722",
"2011-07": "225.922",
"2011-08": "226.545",
"2011-09": "226.889",
"2011-10": "226.421",
"2011-11": "226.230",
"2011-12": "225.672",
"2012-01": "226.665",
"2012-02": "227.663",
"2012-03": "229.392",
"2012-04": "230.085",
"2012-05": "229.815",
"2012-06": "229.478",
"2012-07": "229.104",
"2012-08": "230.379",
"2012-09": "231.407",
"2012-10": "231.317",
"2012-11": "230.221",
"2012-12": "229.601",
"2013-01": "230.280",
"2013-02": "232.166",
"2013-03": "232.773",
"2013-04": "232.531",
"2013-05": "232.945",
"2013-06": "233.504",
"2013-07": "233.596",
"2013-08": "233.877",
"2013-09": "234.149",
"2013-10": "233.546",
"2013-11": "233.069",
"2013-12": "233.049",
"2014-01": "233.916",
"2014-02": "234.781",
"2014-03": "236.293",
"2014-04": "237.072",
"2014-05": "237.900",
"2014-06": "238.343",
"2014-07": "238.250",
"2014-08": "237.852",
"2014-09": "238.031",
"2014-10": "237.433",
"2014-11": "236.151",
"2014-12": "234.812",
"2015-01": "233.707",
"2015-02": "234.722",
"2015-03": "236.119",
"2015-04": "236.599",
"2015-05": "237.805",
"2015-06": "238.638",
"2015-07": "238.654",
"2015-08": "238.316",
"2015-09": "237.945",
"2015-10": "237.838",
"2015-11": "237.336",
"2015-12": "236.525",
"2016-01": "236.916",
"2016-02": "237.111",
"2016-03": "238.132",
"2016-04": "239.261",
"2016-05": "240.229",
"2016-06": "241.018",
"2016-07": "240.628",
"2016-08": "240.849",
"2016-09": "241.428",
"2016-10": "241.729",
"2016-11": "241.353",
"2016-12": "241.432",
"2017-01": "242.839",
"2017-02": "243.603",
"2017-03": "243.801",
"2017-04": "244.524",
"2017-05": "244.733",
"2017-06": "244.955",
"2017-07": "244.786",
"2017-08": "245.519",
"2017-09": "246.819",
"2017-10": "246.663",
"2017-11": "246.669",
"2017-12": "246.524",
"2018-01": "247.867",
"2018-02": "248.991",
"2018-03": "249.554",
"2018-04": "250.546",
"2018-05": "251.588",
"2018-06": "251.989",
"2018-07": "252.006",
"2018-08": "252.146",
"2018-09": "252.439",
"2018-10": "252.885",
"2018-11": "252.038",
"2018-12": "251.233",
"2019-01": "251.712",
"2019-02": "252.776",
"2019-03": "254.202",
"2019-04": "255.548",
"2019-05": "256.092",
"2019-06": "256.143",
"2019-07": "256.571",
"2019-08": "256.558",
"2019-09": "256.759",
"2019-10": "257.346",
"2019-11": "257.208",
"2019-12": "256.974",
"2020-01": "257.971",
"2020-02": "258.678",
"2020-03": "258.115",
"2020-04": "256.389",
"2020-05": "256.394",
"2020-06": "257.797",
"2020-07": "259.101",
"2020-08": "259.918",
"2020-09": "260.280",
"2020-10": "260.388",
"2020-11": "260.229",
"2020-12": "260.474",
"2021-01": "261.582",
"2021-02": "263.014",
"2021-03": "264.877",
"2021-04": "267.054",
"2021-05": "269.195",
"2021-06": "271.696",
"2021-07": "273.003",
"2021-08": "273.567",
"2021-09": "274.310",
"2021-10": "276.589",
"2021-11": "277.948",
"2021-12": "278.802",
"2022-01": "281.148",
"2022-02": "283.716",
"2022-03": "287.504",
"2022-04": "289.109",
"2022-05": "292.296",
"2022-06": "296.311",
"2022-07": "296.276",
"2022-08": "296.171",
"2022-09": "296.808",
"2022-10": "298.012",
"2022-11": "297.711",
"2022-12": "296.797",
"2023-01": "299.170",
"2023-02": "300.840",
"2023-03": "301.836",
"2023-04": "303.363",
"2023-05": "304.127",
"2023-06": "305.109",
"2023-07": "305.691",
"2023-08": "307.026",
"2023-09": "307.789",
"2023-10": "307.671",
"2023-11": "307.051",
"2023-12": "306.746",
"2024-01": "308.417",
"2024-02": "310.326",
"2024-03": "312.332",
"2024-04": "313.548",
"2024-05": "314.069",
"2024-06": "314.175",
"2024-07": "314.540",
"2024-08": "314.796",
"2024-09": "315.301",
"2024-10": "315.664",
"2024-11": "315.493",
"2024-12": "315.605",
"2025-01": "317.671",
"2025-02": "319.082",
"2025-03": "319.799",
"2025-04": "320.795",
"2025-05": "321.465",
"2025-06": "322.561",
"2025-07": "323.048",
"2025-08": "323.976",
"2025-09": "324.800",
"2025-11": "324.122",
"2025-12": "324.054",
"2026-01": "325.252",
"2026-02": "326.785",
"2026-03": "330.213",
"2026-04": "333.020",
"2026-05": "335.123",
"2026-06": "333.952",
"2026-07": "333.918",
"2026-08": "334.980",
"2026-09": "336.940"
}
},
"ea_hicp": {
"title": "Euro area (changing composition), HICP, all items",
"agency": "Eurostat",
"series_id": "prc_hicp_aind INX_A_AVG CP00 EA; prc_hicp_midx I15 CP00 EA",
"base": "2015=100",
"currency": "EUR",
"source_url": "https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/prc_hicp_aind?format=JSON&unit=INX_A_AVG&coicop=CP00&geo=EA",
"source_url_monthly": "https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/prc_hicp_midx?format=JSON&unit=I15&coicop=CP00&geo=EA",
"annual_method": "Eurostat annual average index (INX_A_AVG)",
"dataset_updated": "2026-02-06T23:00:00+0100",
"fetched": "2026-10-18",
"annual": {
"1996": "71.74",
"1997": "72.87",
"1998": "73.67",
"1999": "74.48",
"2000": "76.05",
"2001": "77.83",
"2002": "79.58",
"2003": "81.24",
"2004": "82.98",
"2005": "84.79",
"2006": "86.64",
"2007": "88.49",
"2008": "91.38",
"2009": "91.65",
"2010": "93.14",
"2011": "95.66",
"2012": "98.05",
"2013": "99.38",
"2014": "99.81",
"2015": "100.00",
"2016": "100.23",
"2017": "101.78",
"2018": "103.56",
"2019": "104.80",
"2020": "105.06",
"2021": "107.78",
"2022": "116.82",
"2023": "123.15",
"2024": "126.07",
"2025": "128.75"
},
"monthly": {
"1996-01": "70.97",
"1996-02": "71.29",
"1996-03": "71.54",
"1996-04": "71.66",
"1996-05": "71.83",
"1996-06": "71.84",
"1996-07": "71.84",
"1996-08": "71.80",
"1996-09": "71.93",
"1996-10": "72.00",
"1996-11": "72.01",
"1996-12": "72.19",
"1997-01": "72.42",
"1997-02": "72.59",
"1997-03": "72.65",
"1997-04": "72.60",
"1997-05": "72.80",
"1997-06": "72.83",
"1997-07": "72.90",
"1997-08": "73.02",
"1997-09": "73.07",
"1997-10": "73.09",
"1997-11": "73.18",
"1997-12": "73.26",
"1998-01": "73.20",
"1998-02": "73.40",
"1998-03": "73.46",
"1998-04": "73.61",
"1998-05": "73.76",
"1998-06": "73.80",
"1998-07": "73.83",
"1998-08": "73.85",
"1998-09": "73.79",
"1998-10": "73.77",
"1998-11": "73.77",
"1998-12": "73.81",
"1999-01": "73.76",
"1999-02": "73.94",
"1999-03": "74.15",
"1999-04": "74.40",
"1999-05": "74.45",
"1999-06": "74.45",
"1999-07": "74.58",
"1999-08": "74.67",
"1999-09": "74.71",
"1999-10": "74.74",
"1999-11": "74.84",
"1999-12": "75.09",
"2000-01": "75.13",
"2000-02": "75.37",
"2000-03": "75.60",
"2000-04": "75.67",
"2000-05": "75.76",
"2000-06": "76.04",
"2000-07": "76.14",
"2000-08": "76.20",
"2000-09": "76.50",
"2000-10": "76.52",
"2000-11": "76.68",
"2000-12": "76.96",
"2001-01": "76.63",
"2001-02": "76.86",
"2001-03": "77.27",
"2001-04": "77.73",
"2001-05": "78.10",
"2001-06": "78.21",
"2001-07": "78.03",
"2001-08": "77.97",
"2001-09": "78.18",
"2001-10": "78.24",
"2001-11": "78.19",
"2001-12": "78.54",
"2002-01": "78.63",
"2002-02": "78.76",
"2002-03": "79.21",
"2002-04": "79.56",
"2002-05": "79.71",
"2002-06": "79.67",
"2002-07": "79.59",
"2002-08": "79.64",
"2002-09": "79.84",
"2002-10": "80.03",
"2002-11": "79.97",
"2002-12": "80.36",
"2003-01": "80.30",
"2003-02": "80.62",
"2003-03": "81.08",
"2003-04": "81.21",
"2003-05": "81.15",
"2003-06": "81.25",
"2003-07": "81.13",
"2003-08": "81.25",
"2003-09": "81.54",
"2003-10": "81.66",
"2003-11": "81.70",
"2003-12": "81.95",
"2004-01": "81.75",
"2004-02": "81.94",
"2004-03": "82.46",
"2004-04": "82.88",
"2004-05": "83.14",
"2004-06": "83.18",
"2004-07": "83.00",
"2004-08": "83.17",
"2004-09": "83.26",
"2004-10": "83.59",
"2004-11": "83.53",
"2004-12": "83.85",
"2005-01": "83.32",
"2005-02": "83.62",
"2005-03": "84.25",
"2005-04": "84.60",
"2005-05": "84.78",
"2005-06": "84.87",
"2005-07": "84.78",
"2005-08": "84.98",
"2005-09": "85.42",
"2005-10": "85.64",
"2005-11": "85.45",
"2005-12": "85.74",
"2006-01": "85.35",
"2006-02": "85.59",
"2006-03": "86.09",
"2006-04": "86.66",
"2006-05": "86.89",
"2006-06": "86.96",
"2006-07": "86.85",
"2006-08": "86.93",
"2006-09": "86.93",
"2006-10": "87.00",
"2006-11": "87.03",
"2006-12": "87.37",
"2007-01": "86.92",
"2007-02": "87.17",
"2007-03": "87.75",
"2007-04": "88.31",
"2007-05": "88.52",
"2007-06": "88.61",
"2007-07": "88.39",
"2007-08": "88.45",
"2007-09": "88.78",
"2007-10": "89.21",
"2007-11": "89.69",
"2007-12": "90.05",
"2008-01": "89.70",
"2008-02": "90.02",
"2008-03": "90.90",
"2008-04": "91.19",
"2008-05": "91.76",
"2008-06": "92.11",
"2008-07": "91.97",
"2008-08": "91.84",
"2008-09": "92.01",
"2008-10": "92.04",
"2008-11": "91.59",
"2008-12": "91.47",
"2009-01": "90.71",
"2009-02": "91.08",
"2009-03": "91.42",
"2009-04": "91.75",
"2009-05": "91.80",
"2009-06": "91.98",
"2009-07": "91.38",
"2009-08": "91.69",
"2009-09": "91.71",
"2009-10": "91.92",
"2009-11": "92.03",
"2009-12": "92.32",
"2010-01": "91.57",
"2010-02": "91.85",
"2010-03": "92.87",
"2010-04": "93.25",
"2010-05": "93.35",
"2010-06": "93.35",
"2010-07": "92.95",
"2010-08": "93.14",
"2010-09": "93.43",
"2010-10": "93.71",
"2010-11": "93.79",
"2010-12": "94.36",
"2011-01": "93.68",
"2011-02": "94.08",
"2011-03": "95.35",
"2011-04": "95.88",
"2011-05": "95.89",
"2011-06": "95.88",
"2011-07": "95.33",
"2011-08": "95.51",
"2011-09": "96.21",
"2011-10": "96.55",
"2011-11": "96.63",
"2011-12": "96.96",
"2012-01": "96.17",
"2012-02": "96.65",
"2012-03": "97.90",
"2012-04": "98.36",
"2012-05": "98.22",
"2012-06": "98.15",
"2012-07": "97.63",
"2012-08": "98.01",
"2012-09": "98.72",
"2012-10": "98.95",
"2012-11": "98.76",
"2012-12": "99.11",
"2013-01": "98.08",
"2013-02": "98.44",
"2013-03": "99.60",
"2013-04": "99.51",
"2013-05": "99.62",
"2013-06": "99.73",
"2013-07": "99.20",
"2013-08": "99.32",
"2013-09": "99.80",
"2013-10": "99.68",
"2013-11": "99.60",
"2013-12": "99.95",
"2014-01": "98.83",
"2014-02": "99.14",
"2014-03": "100.07",
"2014-04": "100.22",
"2014-05": "100.11",
"2014-06": "100.22",
"2014-07": "99.57",
"2014-08": "99.68",
"2014-09": "100.12",
"2014-10": "100.06",
"2014-11": "99.88",
"2014-12": "99.78",
"2015-01": "98.24",
"2015-02": "98.85",
"2015-03": "100.00",
"2015-04": "100.43",
"2015-05": "100.71",
"2015-06": "100.72",
"2015-07": "100.11",
"2015-08": "100.12",
"2015-09": "100.32",
"2015-10": "100.45",
"2015-11": "100.01",
"2015-12": "100.03",
"2016-01": "98.56",
"2016-02": "98.73",
"2016-03": "99.96",
"2016-04": "100.17",
"2016-05": "100.59",
"2016-06": "100.77",
"2016-07": "100.28",
"2016-08": "100.34",
"2016-09": "100.72",
"2016-10": "100.96",
"2016-11": "100.60",
"2016-12": "101.13",
"2017-01": "100.26",
"2017-02": "100.66",
"2017-03": "101.49",
"2017-04": "102.07",
"2017-05": "101.98",
"2017-06": "102.08",
"2017-07": "101.62",
"2017-08": "101.89",
"2017-09": "102.29",
"2017-10": "102.34",
"2017-11": "102.14",
"2017-12": "102.49",
"2018-01": "101.56",
"2018-02": "101.78",
"2018-03": "102.91",
"2018-04": "103.32",
"2018-05": "103.97",
"2018-06": "104.09",
"2018-07": "103.85",
"2018-08": "104.01",
"2018-09": "104.42",
"2018-10": "104.68",
"2018-11": "104.10",
"2018-12": "104.05",
"2019-01": "102.97",
"2019-02": "103.30",
"2019-03": "104.35",
"2019-04": "105.10",
"2019-05": "105.24",
"2019-06": "105.41",
"2019-07": "104.91",
"2019-08": "105.06",
"2019-09": "105.29",
"2019-10": "105.44",
"2019-11": "105.10",
"2019-12": "105.43",
"2020-01": "104.37",
"2020-02": "104.56",
"2020-03": "105.13",
"2020-04": "105.43",
"2020-05": "105.33",
"2020-06": "105.69",
"2020-07": "105.32",
"2020-08": "104.88",
"2020-09": "104.96",
"2020-10": "105.15",
"2020-11": "104.80",
"2020-12": "105.15",
"2021-01": "105.32",
"2021-02": "105.54",
"2021-03": "106.53",
"2021-04": "107.14",
"2021-05": "107.42",
"2021-06": "107.70",
"2021-07": "107.60",
"2021-08": "107.98",
"2021-09": "108.49",
"2021-10": "109.41",
"2021-11": "109.90",
"2021-12": "110.37",
"2022-01": "110.70",
"2022-02": "111.74",
"2022-03": "114.46",
"2022-04": "115.11",
"2022-05": "116.07",
"2022-06": "117.01",
"2022-07": "117.14",
"2022-08": "117.85",
"2022-09": "119.26",
"2022-10": "121.03",
"2022-11": "120.95",
"2022-12": "120.52",
"2023-01": "120.27",
"2023-02": "121.24",
"2023-03": "122.34",
"2023-04": "123.12",
"2023-05": "123.15",
"2023-06": "123.47",
"2023-07": "123.36",
"2023-08": "124.03",
"2023-09": "124.43",
"2023-10": "124.54",
"2023-11": "123.85",
"2023-12": "124.05",
"2024-01": "123.60",
"2024-02": "124.37",
"2024-03": "125.31",
"2024-04": "126.04",
"2024-05": "126.31",
"2024-06": "126.58",
"2024-07": "126.54",
"2024-08": "126.72",
"2024-09": "126.60",
"2024-10": "127.03",
"2024-11": "126.62",
"2024-12": "127.07",
"2025-01": "126.72",
"2025-02": "127.26",
"2025-03": "128.04",
"2025-04": "128.77",
"2025-05": "128.70",
"2025-06": "129.09",
"2025-07": "129.12",
"2025-08": "129.31",
"2025-09": "129.42",
"2025-10": "129.70",
"2025-11": "129.33",
"2025-12": "129.56"
}
},
"es_ipc": {
"title": "Spain, IPC (índice de precios de consumo), national general index",
"agency": "Instituto Nacional de Estadística (INE)",
"series_id": "IPC290751",
"base": "2025=100",
"currency": "EUR",
"source_url": "https://servicios.ine.es/wstempus/js/ES/DATOS_SERIE/IPC290751?nult=5000",
"annual_method": "mean of the twelve monthly indexes, rounded to 3 decimals (complete years only)",
"fetched": "2026-10-18",
"annual": {
"2002": "60.036",
"2003": "61.861",
"2004": "63.741",
"2005": "65.888",
"2006": "68.205",
"2007": "70.105",
"2008": "72.962",
"2009": "72.752",
"2010": "74.062",
"2011": "76.429",
"2012": "78.298",
"2013": "79.401",
"2014": "79.281",
"2015": "78.885",
"2016": "78.725",
"2017": "80.265",
"2018": "81.609",
"2019": "82.180",
"2020": "81.915",
"2021": "84.449",
"2022": "91.534",
"2023": "94.768",
"2024": "97.396",
"2025": "100.000"
},
"monthly": {
"2002-01": "58.717",
"2002-02": "58.768",
"2002-03": "59.253",
"2002-04": "60.058",
"2002-05": "60.274",
"2002-06": "60.277",
"2002-07": "59.858",
"2002-08": "60.03",
"2002-09": "60.255",
"2002-10": "60.851",
"2002-11": "60.946",
"2002-12": "61.148",
"2003-01": "60.896",
"2003-02": "61.026",
"2003-03": "61.449",
"2003-04": "61.949",
"2003-05": "61.892",
"2003-06": "61.933",
"2003-07": "61.545",
"2003-08": "61.827",
"2003-09": "62.011",
"2003-10": "62.429",
"2003-11": "62.633",
"2003-12": "62.74",
"2004-01": "62.3",
"2004-02": "62.329",
"2004-03": "62.764",
"2004-04": "63.623",
"2004-05": "63.999",
"2004-06": "64.1",
"2004-07": "63.614",
"2004-08": "63.895",
"2004-09": "64.009",
"2004-10": "64.667",
"2004-11": "64.828",
"2004-12": "64.765",
"2005-01": "64.219",
"2005-02": "64.386",
"2005-03": "64.895",
"2005-04": "65.83",
"2005-05": "65.956",
"2005-06": "66.11",
"2005-07": "65.705",
"2005-08": "65.994",
"2005-09": "66.399",
"2005-10": "66.939",
"2005-11": "67.04",
"2005-12": "67.184",
"2006-01": "66.912",
"2006-02": "66.944",
"2006-03": "67.418",
"2006-04": "68.369",
"2006-05": "68.615",
"2006-06": "68.719",
"2006-07": "68.31",
"2006-08": "68.45",
"2006-09": "68.337",
"2006-10": "68.618",
"2006-11": "68.787",
"2006-12": "68.976",
"2007-01": "68.512",
"2007-02": "68.559",
"2007-03": "69.079",
"2007-04": "70.033",
"2007-05": "70.225",
"2007-06": "70.354",
"2007-07": "69.843",
"2007-08": "69.938",
"2007-09": "70.168",
"2007-10": "71.077",
"2007-11": "71.587",
"2007-12": "71.887",
"2008-01": "71.442",
"2008-02": "71.553",
"2008-03": "72.188",
"2008-04": "72.965",
"2008-05": "73.458",
"2008-06": "73.881",
"2008-07": "73.526",
"2008-08": "73.368",
"2008-09": "73.353",
"2008-10": "73.605",
"2008-11": "73.293",
"2008-12": "72.917",
"2009-01": "72.018",
"2009-02": "72.026",
"2009-03": "72.144",
"2009-04": "72.849",
"2009-05": "72.823",
"2009-06": "73.144",
"2009-07": "72.52",
"2009-08": "72.773",
"2009-09": "72.601",
"2009-10": "73.119",
"2009-11": "73.515",
"2009-12": "73.496",
"2010-01": "72.759",
"2010-02": "72.627",
"2010-03": "73.165",
"2010-04": "73.944",
"2010-05": "74.109",
"2010-06": "74.241",
"2010-07": "73.909",
"2010-08": "74.095",
"2010-09": "74.146",
"2010-10": "74.824",
"2010-11": "75.23",
"2010-12": "75.692",
"2011-01": "75.138",
"2011-02": "75.234",
"2011-03": "75.796",
"2011-04": "76.739",
"2011-05": "76.714",
"2011-06": "76.606",
"2011-07": "76.194",
"2011-08": "76.289",
"2011-09": "76.475",
"2011-10": "77.078",
"2011-11": "77.391",
"2011-12": "77.492",
"2012-01": "76.639",
"2012-02": "76.719",
"2012-03": "77.235",
"2012-04": "78.32",
"2012-05": "78.204",
"2012-06": "78.058",
"2012-07": "77.876",
"2012-08": "78.314",
"2012-09": "79.085",
"2012-10": "79.757",
"2012-11": "79.658",
"2012-12": "79.714",
"2013-01": "78.695",
"2013-02": "78.832",
"2013-03": "79.109",
"2013-04": "79.405",
"2013-05": "79.551",
"2013-06": "79.669",
"2013-07": "79.258",
"2013-08": "79.504",
"2013-09": "79.355",
"2013-10": "79.678",
"2013-11": "79.844",
"2013-12": "79.915",
"2014-01": "78.852",
"2014-02": "78.818",
"2014-03": "78.994",
"2014-04": "79.697",
"2014-05": "79.715",
"2014-06": "79.737",
"2014-07": "78.987",
"2014-08": "79.112",
"2014-09": "79.233",
"2014-10": "79.602",
"2014-11": "79.547",
"2014-12": "79.083",
"2015-01": "77.812",
"2015-02": "77.972",
"2015-03": "78.47",
"2015-04": "79.191",
"2015-05": "79.569",
"2015-06": "79.782",
"2015-07": "79.041",
"2015-08": "78.779",
"2015-09": "78.536",
"2015-10": "79.039",
"2015-11": "79.329",
"2015-12": "79.097",
"2016-01": "77.588",
"2016-02": "77.314",
"2016-03": "77.81",
"2016-04": "78.355",
"2016-05": "78.783",
"2016-06": "79.148",
"2016-07": "78.572",
"2016-08": "78.673",
"2016-09": "78.677",
"2016-10": "79.576",
"2016-11": "79.864",
"2016-12": "80.338",
"2017-01": "79.896",
"2017-02": "79.608",
"2017-03": "79.592",
"2017-04": "80.356",
"2017-05": "80.308",
"2017-06": "80.343",
"2017-07": "79.788",
"2017-08": "79.947",
"2017-09": "80.086",
"2017-10": "80.825",
"2017-11": "81.194",
"2017-12": "81.231",
"2018-01": "80.355",
"2018-02": "80.463",
"2018-03": "80.558",
"2018-04": "81.224",
"2018-05": "81.956",
"2018-06": "82.17",
"2018-07": "81.581",
"2018-08": "81.697",
"2018-09": "81.897",
"2018-10": "82.654",
"2018-11": "82.563",
"2018-12": "82.193",
"2019-01": "81.142",
"2019-02": "81.34",
"2019-03": "81.636",
"2019-04": "82.459",
"2019-05": "82.619",
"2019-06": "82.522",
"2019-07": "82.011",
"2019-08": "81.965",
"2019-09": "81.965",
"2019-10": "82.76",
"2019-11": "82.9",
"2019-12": "82.84",
"2020-01": "82.032",
"2020-02": "81.935",
"2020-03": "81.621",
"2020-04": "81.868",
"2020-05": "81.863",
"2020-06": "82.24",
"2020-07": "81.502",
"2020-08": "81.54",
"2020-09": "81.662",
"2020-10": "82.09",
"2020-11": "82.225",
"2020-12": "82.4",
"2021-01": "82.407",
"2021-02": "81.922",
"2021-03": "82.716",
"2021-04": "83.693",
"2021-05": "84.087",
"2021-06": "84.487",
"2021-07": "83.85",
"2021-08": "84.232",
"2021-09": "84.934",
"2021-10": "86.496",
"2021-11": "86.761",
"2021-12": "87.797",
"2022-01": "87.46",
"2022-02": "88.167",
"2022-03": "90.837",
"2022-04": "90.676",
"2022-05": "91.426",
"2022-06": "93.118",
"2022-07": "92.881",
"2022-08": "93.117",
"2022-09": "92.47",
"2022-10": "92.78",
"2022-11": "92.669",
"2022-12": "92.808",
"2023-01": "92.613",
"2023-02": "93.487",
"2023-03": "93.831",
"2023-04": "94.39",
"2023-05": "94.345",
"2023-06": "94.881",
"2023-07": "95.042",
"2023-08": "95.552",
"2023-09": "95.721",
"2023-10": "95.998",
"2023-11": "95.663",
"2023-12": "95.687",
"2024-01": "95.768",
"2024-02": "96.108",
"2024-03": "96.84",
"2024-04": "97.514",
"2024-05": "97.771",
"2024-06": "98.139",
"2024-07": "97.673",
"2024-08": "97.713",
"2024-09": "97.123",
"2024-10": "97.729",
"2024-11": "97.968",
"2024-12": "98.411",
"2025-01": "98.579",
"2025-02": "98.966",
"2025-03": "99.024",
"2025-04": "99.647",
"2025-05": "99.714",
"2025-06": "100.382",
"2025-07": "100.305",
"2025-08": "100.345",
"2025-09": "100.059",
"2025-10": "100.748",
"2025-11": "100.943",
"2025-12": "101.289",
"2026-01": "100.836",
"2026-02": "101.261",
"2026-03": "102.44",
"2026-04": "102.883",
"2026-05": "102.951",
"2026-06": "103.598",
"2026-07": "103.899",
"2026-08": "104.638",
"2026-09": "104.978"
}
}
},
"not_fetched": {}
}
inflation_adjust.py · sha256 dc807553fad24879b8c4c81ed8cd5c6733814b8ea7dbd8846a9d430a1f074d10
#!/usr/bin/env python3
"""Adjust an amount for inflation between two years or two months with a consumer price index:
amount x index(to) / index(from). Bundled series (cpi.json, fetched from BLS, Eurostat and INE
by tools/catalog/data/inflation_adjust.py; each answer names the source and the fetch date)
or any index given in the input. Decimal arithmetic, cents rounded half up.
Input (JSON on stdin):
amount number or decimal string
from, to a year (2020 or "2020") or a month ("2020-06"); both of the same kind
series "us_cpi_u" | "ea_hicp" | "es_ipc" or
index {"2020": 100, "2021": 103.2, ...} your own index, keyed by year or "YYYY-MM"
list_series true: only list the bundled series and the periods they cover
"""
import json
import pathlib
import re
import sys
from decimal import ROUND_HALF_UP, Decimal, InvalidOperation, getcontext
getcontext().prec = 40
META = ("title", "agency", "series_id", "base", "currency", "source_url", "annual_method", "fetched", "dataset_updated")
def fail(message):
print(json.dumps({"error": message}))
sys.exit(2)
def dec(value, field, positive=False):
if isinstance(value, bool) or not isinstance(value, (int, float, str)):
fail(f"{field} must be a number or a decimal string")
try:
number = Decimal(str(value).strip())
except InvalidOperation:
fail(f"{field} must be a number or a decimal string")
if not number.is_finite() or (positive and number <= 0):
fail(f"{field} must be a {'positive' if positive else 'finite'} number")
return number
def period(value, field):
if isinstance(value, int) and not isinstance(value, bool):
value = str(value)
if not isinstance(value, str):
fail(f"{field} must be a year (2020) or a month (\"2020-06\")")
value = value.strip()
if re.fullmatch(r"\d{4}", value):
return value, "annual"
match = re.fullmatch(r"(\d{4})-(\d{1,2})", value)
if match and 1 <= int(match.group(2)) <= 12:
return f"{match.group(1)}-{int(match.group(2)):02d}", "monthly"
fail(f"{field} must be a year (2020) or a month (\"2020-06\")")
def years_between(a, b, kind):
if kind == "annual":
return Decimal(int(b) - int(a))
months = (int(b[:4]) * 12 + int(b[5:])) - (int(a[:4]) * 12 + int(a[5:]))
return Decimal(months) / 12
def main():
try:
request = json.load(sys.stdin)
except ValueError as error:
fail(f"stdin is not JSON: {error}")
if not isinstance(request, dict):
fail("input must be a JSON object")
known = {"amount", "from", "to", "series", "index", "list_series"}
extra = sorted(set(request) - known)
if extra:
fail(f"unknown field: {extra[0]}")
data = json.loads((pathlib.Path(__file__).parent / "cpi.json").read_text())
bundled = data["series"]
if request.get("list_series"):
listing = {}
for name, s in bundled.items():
item = {k: s[k] for k in META if k in s}
annual, monthly = list(s["annual"]), list(s["monthly"])
item["years"] = f"{annual[0]}-{annual[-1]}" if annual else None
item["months"] = f"{monthly[0]} to {monthly[-1]}" if monthly else None
listing[name] = item
print(json.dumps({"series": listing, "not_fetched": data.get("not_fetched", {}), "generated": data["generated"]}))
return
if "amount" not in request:
fail("amount is required")
amount = dec(request["amount"], "amount")
start, kind = period(request.get("from"), "from")
end, kind_to = period(request.get("to"), "to")
if kind != kind_to:
fail("from and to must both be years or both be months")
if ("series" in request) == ("index" in request):
fail("give either series (a bundled one) or index (your own values)")
if "series" in request:
name = request["series"]
if name not in bundled:
missing = data.get("not_fetched", {})
why = f" (not bundled: {missing[name]})" if name in missing else ""
fail(f"unknown series {name!r}{why}; bundled: {', '.join(bundled)}")
chosen = bundled[name]
table = chosen[kind]
meta = {k: chosen[k] for k in META if k in chosen}
meta["generated_by"] = data["generator"]
else:
raw = request["index"]
if not isinstance(raw, dict) or not raw:
fail("index must be an object of period: value")
table = {}
for key, value in raw.items():
norm, key_kind = period(key, f"index key {key!r}")
if key_kind != kind:
fail(f"index key {key!r} is not of the same kind as from and to")
table[norm] = dec(value, f"index[{key!r}]", positive=True)
name, meta = "given in the input", {"title": "index given in the input"}
for label, key in (("from", start), ("to", end)):
if key not in table:
have = list(table)
if have and min(have) <= key <= max(have):
fail(f"{label} {key} is not in the {kind} series {name}: the agency published no value for it")
span = f"{min(have)} to {max(have)}" if have else "none"
fail(f"{label} {key} is not in the {kind} series {name} (available: {span})")
first, last = Decimal(str(table[start])), Decimal(str(table[end]))
if first <= 0 or last <= 0:
fail("index values must be positive")
factor = last / first
result = {
"amount": format(amount, "f"), "from": start, "to": end, "frequency": kind, "series": name,
"from_index": format(first, "f"), "to_index": format(last, "f"),
"factor": format(factor.quantize(Decimal("0.000001"), ROUND_HALF_UP), "f"),
"adjusted_amount": format((amount * factor).quantize(Decimal("0.01"), ROUND_HALF_UP), "f"),
"cumulative_inflation_pct": format(((factor - 1) * 100).quantize(Decimal("0.01"), ROUND_HALF_UP), "f"),
}
span = years_between(start, end, kind)
if span != 0:
rate = (factor.ln() / span).exp() - 1
result["annualised_inflation_pct"] = format((rate * 100).quantize(Decimal("0.01"), ROUND_HALF_UP), "f")
result["years"] = format(span.quantize(Decimal("0.01")) if kind == "monthly" else span, "f")
result["source"] = meta
print(json.dumps(result, ensure_ascii=False))
if __name__ == "__main__":
try:
main()
except ArithmeticError:
fail("the numbers are out of the range this tool can compute")
Where it is served
The registry serves only AXLR clients, so a browser gets 403; fetch with a User-Agent that starts with axlr:
curl -A axlr-docs/1.0 -O https://registry.underpassai.com/tools/inflation_adjust/1.0.0/manifest.json
curl -A axlr-docs/1.0 -O https://registry.underpassai.com/tools/inflation_adjust/1.0.0/cpi.json
curl -A axlr-docs/1.0 -O https://registry.underpassai.com/tools/inflation_adjust/1.0.0/inflation_adjust.py