timeprice 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +18 -0
- data/DATA_LICENSES.md +31 -0
- data/LICENSE.txt +21 -0
- data/NOTICE +12 -0
- data/README.md +187 -0
- data/data/cpi/eu.json +401 -0
- data/data/cpi/jp.json +75 -0
- data/data/cpi/uk.json +508 -0
- data/data/cpi/us.json +480 -0
- data/data/cpi/vn.json +40 -0
- data/data/fx/usd/1983.json +12 -0
- data/data/fx/usd/1986.json +12 -0
- data/data/fx/usd/1987.json +12 -0
- data/data/fx/usd/1988.json +12 -0
- data/data/fx/usd/1989.json +12 -0
- data/data/fx/usd/1990.json +12 -0
- data/data/fx/usd/1991.json +12 -0
- data/data/fx/usd/1992.json +12 -0
- data/data/fx/usd/1993.json +12 -0
- data/data/fx/usd/1994.json +12 -0
- data/data/fx/usd/1995.json +12 -0
- data/data/fx/usd/1996.json +12 -0
- data/data/fx/usd/1997.json +12 -0
- data/data/fx/usd/1998.json +12 -0
- data/data/fx/usd/1999.json +1566 -0
- data/data/fx/usd/2000.json +1542 -0
- data/data/fx/usd/2001.json +1533 -0
- data/data/fx/usd/2002.json +1539 -0
- data/data/fx/usd/2003.json +1539 -0
- data/data/fx/usd/2004.json +1563 -0
- data/data/fx/usd/2005.json +1554 -0
- data/data/fx/usd/2006.json +1539 -0
- data/data/fx/usd/2007.json +1539 -0
- data/data/fx/usd/2008.json +1545 -0
- data/data/fx/usd/2009.json +1545 -0
- data/data/fx/usd/2010.json +1560 -0
- data/data/fx/usd/2011.json +1554 -0
- data/data/fx/usd/2012.json +1545 -0
- data/data/fx/usd/2013.json +1539 -0
- data/data/fx/usd/2014.json +1539 -0
- data/data/fx/usd/2015.json +1545 -0
- data/data/fx/usd/2016.json +1554 -0
- data/data/fx/usd/2017.json +1539 -0
- data/data/fx/usd/2018.json +1539 -0
- data/data/fx/usd/2019.json +1539 -0
- data/data/fx/usd/2020.json +1551 -0
- data/data/fx/usd/2021.json +1560 -0
- data/data/fx/usd/2022.json +1554 -0
- data/data/fx/usd/2023.json +1539 -0
- data/data/fx/usd/2024.json +1545 -0
- data/data/fx/usd/2025.json +1284 -0
- data/data/fx/usd/2026.json +449 -0
- data/exe/timeprice +7 -0
- data/lib/timeprice/cli.rb +179 -0
- data/lib/timeprice/compare.rb +99 -0
- data/lib/timeprice/data_loader.rb +59 -0
- data/lib/timeprice/errors.rb +49 -0
- data/lib/timeprice/exchange.rb +98 -0
- data/lib/timeprice/inflation.rb +89 -0
- data/lib/timeprice/sources.rb +128 -0
- data/lib/timeprice/version.rb +5 -0
- data/lib/timeprice.rb +25 -0
- metadata +150 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 8b1b427948a0943958a53ce1820f72eb27b7dc41de61c9e216194aae9c03183d
|
|
4
|
+
data.tar.gz: 5daac2f9428564420379cc33db7893a8b9dbf0f0344355c1439636e8abf647a7
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 14ec61a1a5cc71b33fb0de18bbbfc19ec152697d4f8ddcd2f14cf2d739e80571512ccb067d939f60207c0b2abc2971a03f32272cd2468d273782a1022d9d0dbb
|
|
7
|
+
data.tar.gz: 5d7fae9eb6583d38f2245830aa66a0ce61fec10aa02cdec600005aea185635d0312c80a7d3bec62f0067a42651839a2af4de4d3c67335b1eb2a649dfe35b2419
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
5
|
+
|
|
6
|
+
## [Unreleased]
|
|
7
|
+
|
|
8
|
+
## [0.1.0] - 2026-05-11
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Initial gem release.
|
|
12
|
+
- Library API: `Timeprice.inflation`, `Timeprice.exchange`, `Timeprice.compare`, returning `Data.define` value objects.
|
|
13
|
+
- CLI (`timeprice`): `inflation`, `fx`, `compare`, `sources`, `version`, all with `--json`.
|
|
14
|
+
- Bundled offline data for US, UK, Eurozone, Japan, Vietnam CPI and USD-base FX (EUR/GBP/JPY/VND).
|
|
15
|
+
- ECB reference rates via Frankfurter; VND via World Bank annual broadcast.
|
|
16
|
+
- Monthly GitHub Actions workflow that refreshes bundled data and opens a PR.
|
|
17
|
+
- Golden snapshot tests against real bundled data; property-style round-trip tests for inflation and FX.
|
|
18
|
+
- Attribution surfaces: `DATA_LICENSES.md`, `NOTICE`, `timeprice sources` CLI command.
|
data/DATA_LICENSES.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Data Licenses & Attribution
|
|
2
|
+
|
|
3
|
+
`timeprice` redistributes data from several public statistical agencies. The
|
|
4
|
+
gem's own **code** is MIT-licensed (see `LICENSE.txt`); the **data** under
|
|
5
|
+
`data/` is governed by the licenses below. If you redistribute results derived
|
|
6
|
+
from this gem in a product or publication, reproduce the relevant attribution
|
|
7
|
+
string.
|
|
8
|
+
|
|
9
|
+
| Source | Series | License / Terms | License URL | Attribution string |
|
|
10
|
+
|--------|--------|----------------|-------------|--------------------|
|
|
11
|
+
| U.S. Bureau of Labor Statistics | CPI-U `CUUR0000SA0` (US CPI) | U.S. Government work — public domain. BLS asks (does not require) that BLS be cited as the source. | https://www.bls.gov/bls/linksite.htm | Data: U.S. Bureau of Labor Statistics |
|
|
12
|
+
| UK Office for National Statistics | `D7BT` (UK CPI all-items) | Open Government Licence v3.0 | https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/ | Contains public sector information licensed under the Open Government Licence v3.0 |
|
|
13
|
+
| Eurostat | `prc_hicp_midx` (Euro area HICP) | Eurostat reuse policy — free reuse with source attribution | https://ec.europa.eu/eurostat/about-us/policies/copyright | Source: Eurostat |
|
|
14
|
+
| World Bank | `FP.CPI.TOTL` (JP CPI fallback) | Creative Commons Attribution 4.0 International (CC BY 4.0) | https://datacatalog.worldbank.org/public-licenses#cc-by | Source: World Bank, FP.CPI.TOTL |
|
|
15
|
+
| World Bank | `FP.CPI.TOTL` (VN CPI) | Creative Commons Attribution 4.0 International (CC BY 4.0) | https://datacatalog.worldbank.org/public-licenses#cc-by | Source: World Bank, FP.CPI.TOTL |
|
|
16
|
+
| European Central Bank (via Frankfurter) | Daily reference rates, USD base, EUR/GBP/JPY | ECB reference rates — free reuse; Frankfurter is a non-commercial republisher with no separate license | https://www.ecb.europa.eu/services/disclaimer/html/index.en.html | FX data: European Central Bank reference rates via Frankfurter |
|
|
17
|
+
| World Bank | `PA.NUS.FCRF` (VND annual average FX, broadcast daily) | Creative Commons Attribution 4.0 International (CC BY 4.0) | https://datacatalog.worldbank.org/public-licenses#cc-by | VND FX: World Bank, PA.NUS.FCRF |
|
|
18
|
+
|
|
19
|
+
## Notes
|
|
20
|
+
|
|
21
|
+
- License URLs were last reviewed against published text at the time of v0.1.0.
|
|
22
|
+
Terms drift; if you have a stricter compliance requirement, re-check directly
|
|
23
|
+
with the publisher.
|
|
24
|
+
- The Vietnam VND FX series is the **annual average** broadcast to every day in
|
|
25
|
+
the year — it is intentionally not a daily market rate. Do not use it for
|
|
26
|
+
intraday or trade-execution purposes.
|
|
27
|
+
- Eurostat HICP is harmonized across the Eurozone and is **not** the same as
|
|
28
|
+
any national CPI. We use it for the `EU` country code; national CPIs are out
|
|
29
|
+
of scope for v0.1.
|
|
30
|
+
- `timeprice sources` (CLI) prints these attribution strings plus the current
|
|
31
|
+
bundled coverage at runtime — useful for downstream-product compliance.
|
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 patrick204nqh
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/NOTICE
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
timeprice
|
|
2
|
+
Copyright (c) 2026 patrick204nqh
|
|
3
|
+
|
|
4
|
+
This product redistributes public statistical data from the following sources.
|
|
5
|
+
Each source retains its own license; see DATA_LICENSES.md for details and URLs.
|
|
6
|
+
|
|
7
|
+
Data: U.S. Bureau of Labor Statistics
|
|
8
|
+
Contains public sector information licensed under the Open Government Licence v3.0
|
|
9
|
+
Source: Eurostat
|
|
10
|
+
Source: World Bank, FP.CPI.TOTL
|
|
11
|
+
FX data: European Central Bank reference rates via Frankfurter
|
|
12
|
+
VND FX: World Bank, PA.NUS.FCRF
|
data/README.md
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# timeprice
|
|
2
|
+
|
|
3
|
+
Offline historical inflation & FX for Ruby — bundled data, no API keys, monthly auto-refresh.
|
|
4
|
+
|
|
5
|
+
[](https://github.com/patrick204nqh/timeprice/actions/workflows/ci.yml)
|
|
6
|
+
[](https://rubygems.org/gems/timeprice)
|
|
7
|
+
[](https://www.ruby-lang.org/)
|
|
8
|
+
|
|
9
|
+
## Why this exists
|
|
10
|
+
|
|
11
|
+
Every other "historical inflation / FX" library wants you to wire up an API key, eat a rate
|
|
12
|
+
limit, and trust that someone else's server stays up forever. `timeprice` ships the data
|
|
13
|
+
in the gem. Once you `gem install timeprice`, you can answer "what was 100 USD in 1990
|
|
14
|
+
worth in 2024?" with zero network calls, deterministic results, and no surprise outages.
|
|
15
|
+
A monthly GitHub Action keeps the bundled data fresh; users just pin a gem version.
|
|
16
|
+
|
|
17
|
+
## Install
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
gem install timeprice
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Or in a `Gemfile`:
|
|
24
|
+
|
|
25
|
+
```ruby
|
|
26
|
+
gem "timeprice", "~> 0.1"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Requires Ruby >= 3.2.
|
|
30
|
+
|
|
31
|
+
## CLI examples
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
$ timeprice inflation 100 --from 1990-01 --to 2024-01 --country US
|
|
35
|
+
100.00 USD in 1990-01 is 242.09 USD in 2024-01 (US, granularity: monthly)
|
|
36
|
+
|
|
37
|
+
$ timeprice fx 100 USD JPY --date 2010-06-15
|
|
38
|
+
100.00 USD on 2010-06-15 = 9118.00 JPY (rate: 91.1800)
|
|
39
|
+
|
|
40
|
+
$ timeprice compare 100 --from "2010 USD" --to "2024 VND"
|
|
41
|
+
100.00 USD in 2010 -> 3530920.58 VND in 2024
|
|
42
|
+
steps: convert at 2010 (fx rate 18612.920000) -> 1861292.0000 VND, then inflate in VN (cpi ratio 1.897027, granularity: annual)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Every command supports `--json` for machine-readable output:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
$ timeprice inflation 100 --from 1990-01 --to 2024-01 --country US --json
|
|
49
|
+
{"amount":242.08555729984302,"original_amount":100.0,"from":"1990-01","to":"2024-01","country":"US","from_index":127.4,"to_index":308.417,"granularity":"monthly"}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
`timeprice sources` lists every bundled data source with its license, attribution string,
|
|
53
|
+
and current coverage range — derived dynamically from the bundled files.
|
|
54
|
+
|
|
55
|
+
## Library examples
|
|
56
|
+
|
|
57
|
+
```ruby
|
|
58
|
+
require "timeprice"
|
|
59
|
+
|
|
60
|
+
# Inflation adjustment
|
|
61
|
+
r = Timeprice.inflation(amount: 100, from: "1990-01", to: "2024-01", country: "US")
|
|
62
|
+
r.amount # => 242.0855572998...
|
|
63
|
+
r.granularity # => :monthly
|
|
64
|
+
r.to_h # => { amount: ..., original_amount: ..., from: ..., country: ..., ... }
|
|
65
|
+
|
|
66
|
+
# Historical FX
|
|
67
|
+
r = Timeprice.exchange(amount: 100, from: "USD", to: "JPY", date: "2010-06-15")
|
|
68
|
+
r.amount # => 9118.0
|
|
69
|
+
r.rate # => 91.18
|
|
70
|
+
r.effective_date # => "2010-06-15" (or the nearest prior trading day on weekends/holidays)
|
|
71
|
+
|
|
72
|
+
# Combined: convert at source date, then inflate in destination currency
|
|
73
|
+
r = Timeprice.compare(amount: 100, from: ["USD", "2010"], to: ["VND", "2024"])
|
|
74
|
+
r.amount # => 3530920.5840411717
|
|
75
|
+
r.fx_rate # => 18612.92
|
|
76
|
+
r.cpi_ratio # => 1.897026680414...
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
All result objects are `Data.define` value objects — they support `.to_h`, `==`, and
|
|
80
|
+
pattern matching, so you can hand them to JSON, RSpec, or `case/in` without ceremony.
|
|
81
|
+
|
|
82
|
+
## Supported countries, currencies, and data ranges
|
|
83
|
+
|
|
84
|
+
Coverage is derived from the bundled `data/` files. Re-check with `timeprice sources`.
|
|
85
|
+
|
|
86
|
+
| Country / Region | Currency | CPI source | Granularity | Coverage |
|
|
87
|
+
|------------------|----------|------------|-------------|----------|
|
|
88
|
+
| United States | USD | BLS CPI-U (`CUUR0000SA0`) | Monthly + annual | 1990-01 → present |
|
|
89
|
+
| United Kingdom | GBP | ONS CPI all-items (`D7BT`) | Monthly + annual | 1988-01 → present |
|
|
90
|
+
| Eurozone (EA) | EUR | Eurostat HICP (`prc_hicp_midx`) | Monthly + annual | 1996-01 → present |
|
|
91
|
+
| Japan | JPY | World Bank `FP.CPI.TOTL` (fallback) | Annual | 1960 → 2024 |
|
|
92
|
+
| Vietnam | VND | World Bank `FP.CPI.TOTL` | Annual | 1995 → 2024 |
|
|
93
|
+
|
|
94
|
+
**FX (USD base):** ECB reference rates via Frankfurter for **EUR / GBP / JPY**, daily
|
|
95
|
+
1999 → present. **VND** uses the World Bank annual average (`PA.NUS.FCRF`) broadcast to
|
|
96
|
+
every day in the year, from 1983 → present.
|
|
97
|
+
|
|
98
|
+
Triangulated cross-rates (e.g. GBP → JPY) go through USD on the same effective date.
|
|
99
|
+
Weekend/holiday dates fall back up to 7 days to the nearest prior trading day.
|
|
100
|
+
|
|
101
|
+
## Compare semantics — important
|
|
102
|
+
|
|
103
|
+
This is the most important conceptual piece of the library, so it's worth reading.
|
|
104
|
+
|
|
105
|
+
`Timeprice.compare(amount:, from:, to:)` follows one specific convention:
|
|
106
|
+
|
|
107
|
+
> **Convert at the source date first, then inflate in the destination currency.**
|
|
108
|
+
|
|
109
|
+
Concretely, for `compare(amount: 100, from: ["USD", "2010"], to: ["VND", "2024"])`:
|
|
110
|
+
|
|
111
|
+
1. Convert 100 USD → VND at the **2010** FX rate (18,612.92), giving 1,861,292 VND.
|
|
112
|
+
2. Inflate that VND amount from 2010 → 2024 using **Vietnam's** CPI ratio
|
|
113
|
+
(189.70 / 100.0 ≈ 1.897), giving **3,530,920.58 VND**.
|
|
114
|
+
|
|
115
|
+
### Why not the other direction?
|
|
116
|
+
|
|
117
|
+
The naive alternative ("inflate the 100 USD in US CPI to 2024, then convert at the 2024
|
|
118
|
+
FX rate") looks reasonable but is **wrong for any high-inflation pair**. Here's why:
|
|
119
|
+
|
|
120
|
+
Nominal FX rates already absorb relative inflation between the two currencies. If
|
|
121
|
+
Vietnam's CPI rises 90% over a period while US CPI rises 40%, the VND will tend to
|
|
122
|
+
weaken against the USD by roughly the inflation differential — that's already priced
|
|
123
|
+
into the 2024 USD→VND rate. So if you inflate the USD amount in US CPI **and then**
|
|
124
|
+
convert at a depreciated future VND rate, you double-count US inflation and produce a
|
|
125
|
+
number that overstates the equivalent purchasing power in Vietnam.
|
|
126
|
+
|
|
127
|
+
The convention used here — convert first, then inflate in the destination currency —
|
|
128
|
+
preserves **purchasing-power equivalence in the destination economy**. "100 USD in 2010
|
|
129
|
+
buys what 3,530,920 VND buys in 2024 in Vietnam."
|
|
130
|
+
|
|
131
|
+
### Worked example with numbers
|
|
132
|
+
|
|
133
|
+
Bundled data:
|
|
134
|
+
- USD→VND on 2010-06-30: `18612.92`
|
|
135
|
+
- VN CPI: 2010 = `100.0`, 2024 ≈ `189.70`
|
|
136
|
+
- US CPI: 2010-06 ≈ `217.97`, 2024 ≈ `308.42` (US ratio ≈ 1.415)
|
|
137
|
+
- USD→VND on 2024-06-30 (approx, broadcast annual): `~25,000`
|
|
138
|
+
|
|
139
|
+
| Approach | Calculation | Result |
|
|
140
|
+
|----------|-------------|--------|
|
|
141
|
+
| **timeprice (convert → inflate)** | 100 × 18,612.92 × 1.897 | **3,530,921 VND** |
|
|
142
|
+
| Naive (inflate → convert) | 100 × 1.415 × ~25,000 | ~3,537,500 VND |
|
|
143
|
+
|
|
144
|
+
These happen to land near each other for the USD/VND pair, but only because the FX
|
|
145
|
+
movement and inflation differential are roughly consistent here. For pairs where the
|
|
146
|
+
nominal rate has moved **out of step** with inflation (currency crises, pegs, controls),
|
|
147
|
+
the two approaches diverge by tens of percent. The "convert then inflate" answer is the
|
|
148
|
+
one that meaningfully tracks purchasing power.
|
|
149
|
+
|
|
150
|
+
If you specifically want the mechanical "inflate then convert" answer for some reason,
|
|
151
|
+
do it yourself — it's two library calls:
|
|
152
|
+
|
|
153
|
+
```ruby
|
|
154
|
+
inflated = Timeprice.inflation(amount: 100, from: "2010", to: "2024", country: "US").amount
|
|
155
|
+
converted = Timeprice.exchange(amount: inflated, from: "USD", to: "VND", date: "2024-06-30").amount
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Data sources & attribution
|
|
159
|
+
|
|
160
|
+
`timeprice` redistributes data from several public sources. Each is governed by its own
|
|
161
|
+
license — see `DATA_LICENSES.md` and `NOTICE` for the full table and license URLs.
|
|
162
|
+
|
|
163
|
+
- **U.S. CPI:** Data: U.S. Bureau of Labor Statistics (public domain).
|
|
164
|
+
- **UK CPI:** Contains public sector information licensed under the Open Government Licence v3.0.
|
|
165
|
+
- **Eurozone HICP:** Source: Eurostat (reuse permitted with attribution).
|
|
166
|
+
- **Japan CPI (fallback):** Source: World Bank, FP.CPI.TOTL (CC BY 4.0).
|
|
167
|
+
- **Vietnam CPI:** Source: World Bank, FP.CPI.TOTL (CC BY 4.0).
|
|
168
|
+
- **FX rates:** European Central Bank reference rates via Frankfurter.
|
|
169
|
+
- **VND FX (annual broadcast):** World Bank, PA.NUS.FCRF (CC BY 4.0).
|
|
170
|
+
|
|
171
|
+
If you redistribute results derived from this gem, reproduce the relevant attribution
|
|
172
|
+
strings. `timeprice sources` prints them in plain text and as JSON.
|
|
173
|
+
|
|
174
|
+
## Author
|
|
175
|
+
|
|
176
|
+
Built by [Patrick](https://github.com/patrick204nqh).
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
This is a maintained-on-best-effort open source project. Bug reports and
|
|
181
|
+
data-correctness issues are welcome; new-country requests will be evaluated
|
|
182
|
+
case-by-case based on source availability and maintainer bandwidth. No SLA.
|
|
183
|
+
|
|
184
|
+
## License
|
|
185
|
+
|
|
186
|
+
Code: MIT (see `LICENSE.txt`). Data: see `DATA_LICENSES.md` — each upstream source
|
|
187
|
+
retains its own license.
|
data/data/cpi/eu.json
ADDED
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
{
|
|
2
|
+
"annual": {
|
|
3
|
+
"1996": 71.742,
|
|
4
|
+
"1997": 72.867,
|
|
5
|
+
"1998": 73.671,
|
|
6
|
+
"1999": 74.482,
|
|
7
|
+
"2000": 76.048,
|
|
8
|
+
"2001": 77.829,
|
|
9
|
+
"2002": 79.581,
|
|
10
|
+
"2003": 81.237,
|
|
11
|
+
"2004": 82.979,
|
|
12
|
+
"2005": 84.788,
|
|
13
|
+
"2006": 86.638,
|
|
14
|
+
"2007": 88.488,
|
|
15
|
+
"2008": 91.383,
|
|
16
|
+
"2009": 91.649,
|
|
17
|
+
"2010": 93.135,
|
|
18
|
+
"2011": 95.663,
|
|
19
|
+
"2012": 98.053,
|
|
20
|
+
"2013": 99.378,
|
|
21
|
+
"2014": 99.807,
|
|
22
|
+
"2015": 99.999,
|
|
23
|
+
"2016": 100.234,
|
|
24
|
+
"2017": 101.776,
|
|
25
|
+
"2018": 103.562,
|
|
26
|
+
"2019": 104.8,
|
|
27
|
+
"2020": 105.064,
|
|
28
|
+
"2021": 107.783,
|
|
29
|
+
"2022": 116.82,
|
|
30
|
+
"2023": 123.154,
|
|
31
|
+
"2024": 126.066,
|
|
32
|
+
"2025": 128.752
|
|
33
|
+
},
|
|
34
|
+
"base_year": "2015=100",
|
|
35
|
+
"country": "EU",
|
|
36
|
+
"monthly": {
|
|
37
|
+
"1996-01": 70.97,
|
|
38
|
+
"1996-02": 71.29,
|
|
39
|
+
"1996-03": 71.54,
|
|
40
|
+
"1996-04": 71.66,
|
|
41
|
+
"1996-05": 71.83,
|
|
42
|
+
"1996-06": 71.84,
|
|
43
|
+
"1996-07": 71.84,
|
|
44
|
+
"1996-08": 71.8,
|
|
45
|
+
"1996-09": 71.93,
|
|
46
|
+
"1996-10": 72.0,
|
|
47
|
+
"1996-11": 72.01,
|
|
48
|
+
"1996-12": 72.19,
|
|
49
|
+
"1997-01": 72.42,
|
|
50
|
+
"1997-02": 72.59,
|
|
51
|
+
"1997-03": 72.65,
|
|
52
|
+
"1997-04": 72.6,
|
|
53
|
+
"1997-05": 72.8,
|
|
54
|
+
"1997-06": 72.83,
|
|
55
|
+
"1997-07": 72.9,
|
|
56
|
+
"1997-08": 73.02,
|
|
57
|
+
"1997-09": 73.07,
|
|
58
|
+
"1997-10": 73.09,
|
|
59
|
+
"1997-11": 73.18,
|
|
60
|
+
"1997-12": 73.26,
|
|
61
|
+
"1998-01": 73.2,
|
|
62
|
+
"1998-02": 73.4,
|
|
63
|
+
"1998-03": 73.46,
|
|
64
|
+
"1998-04": 73.61,
|
|
65
|
+
"1998-05": 73.76,
|
|
66
|
+
"1998-06": 73.8,
|
|
67
|
+
"1998-07": 73.83,
|
|
68
|
+
"1998-08": 73.85,
|
|
69
|
+
"1998-09": 73.79,
|
|
70
|
+
"1998-10": 73.77,
|
|
71
|
+
"1998-11": 73.77,
|
|
72
|
+
"1998-12": 73.81,
|
|
73
|
+
"1999-01": 73.76,
|
|
74
|
+
"1999-02": 73.94,
|
|
75
|
+
"1999-03": 74.15,
|
|
76
|
+
"1999-04": 74.4,
|
|
77
|
+
"1999-05": 74.45,
|
|
78
|
+
"1999-06": 74.45,
|
|
79
|
+
"1999-07": 74.58,
|
|
80
|
+
"1999-08": 74.67,
|
|
81
|
+
"1999-09": 74.71,
|
|
82
|
+
"1999-10": 74.74,
|
|
83
|
+
"1999-11": 74.84,
|
|
84
|
+
"1999-12": 75.09,
|
|
85
|
+
"2000-01": 75.13,
|
|
86
|
+
"2000-02": 75.37,
|
|
87
|
+
"2000-03": 75.6,
|
|
88
|
+
"2000-04": 75.67,
|
|
89
|
+
"2000-05": 75.76,
|
|
90
|
+
"2000-06": 76.04,
|
|
91
|
+
"2000-07": 76.14,
|
|
92
|
+
"2000-08": 76.2,
|
|
93
|
+
"2000-09": 76.5,
|
|
94
|
+
"2000-10": 76.52,
|
|
95
|
+
"2000-11": 76.68,
|
|
96
|
+
"2000-12": 76.96,
|
|
97
|
+
"2001-01": 76.63,
|
|
98
|
+
"2001-02": 76.86,
|
|
99
|
+
"2001-03": 77.27,
|
|
100
|
+
"2001-04": 77.73,
|
|
101
|
+
"2001-05": 78.1,
|
|
102
|
+
"2001-06": 78.21,
|
|
103
|
+
"2001-07": 78.03,
|
|
104
|
+
"2001-08": 77.97,
|
|
105
|
+
"2001-09": 78.18,
|
|
106
|
+
"2001-10": 78.24,
|
|
107
|
+
"2001-11": 78.19,
|
|
108
|
+
"2001-12": 78.54,
|
|
109
|
+
"2002-01": 78.63,
|
|
110
|
+
"2002-02": 78.76,
|
|
111
|
+
"2002-03": 79.21,
|
|
112
|
+
"2002-04": 79.56,
|
|
113
|
+
"2002-05": 79.71,
|
|
114
|
+
"2002-06": 79.67,
|
|
115
|
+
"2002-07": 79.59,
|
|
116
|
+
"2002-08": 79.64,
|
|
117
|
+
"2002-09": 79.84,
|
|
118
|
+
"2002-10": 80.03,
|
|
119
|
+
"2002-11": 79.97,
|
|
120
|
+
"2002-12": 80.36,
|
|
121
|
+
"2003-01": 80.3,
|
|
122
|
+
"2003-02": 80.62,
|
|
123
|
+
"2003-03": 81.08,
|
|
124
|
+
"2003-04": 81.21,
|
|
125
|
+
"2003-05": 81.15,
|
|
126
|
+
"2003-06": 81.25,
|
|
127
|
+
"2003-07": 81.13,
|
|
128
|
+
"2003-08": 81.25,
|
|
129
|
+
"2003-09": 81.54,
|
|
130
|
+
"2003-10": 81.66,
|
|
131
|
+
"2003-11": 81.7,
|
|
132
|
+
"2003-12": 81.95,
|
|
133
|
+
"2004-01": 81.75,
|
|
134
|
+
"2004-02": 81.94,
|
|
135
|
+
"2004-03": 82.46,
|
|
136
|
+
"2004-04": 82.88,
|
|
137
|
+
"2004-05": 83.14,
|
|
138
|
+
"2004-06": 83.18,
|
|
139
|
+
"2004-07": 83.0,
|
|
140
|
+
"2004-08": 83.17,
|
|
141
|
+
"2004-09": 83.26,
|
|
142
|
+
"2004-10": 83.59,
|
|
143
|
+
"2004-11": 83.53,
|
|
144
|
+
"2004-12": 83.85,
|
|
145
|
+
"2005-01": 83.32,
|
|
146
|
+
"2005-02": 83.62,
|
|
147
|
+
"2005-03": 84.25,
|
|
148
|
+
"2005-04": 84.6,
|
|
149
|
+
"2005-05": 84.78,
|
|
150
|
+
"2005-06": 84.87,
|
|
151
|
+
"2005-07": 84.78,
|
|
152
|
+
"2005-08": 84.98,
|
|
153
|
+
"2005-09": 85.42,
|
|
154
|
+
"2005-10": 85.64,
|
|
155
|
+
"2005-11": 85.45,
|
|
156
|
+
"2005-12": 85.74,
|
|
157
|
+
"2006-01": 85.35,
|
|
158
|
+
"2006-02": 85.59,
|
|
159
|
+
"2006-03": 86.09,
|
|
160
|
+
"2006-04": 86.66,
|
|
161
|
+
"2006-05": 86.89,
|
|
162
|
+
"2006-06": 86.96,
|
|
163
|
+
"2006-07": 86.85,
|
|
164
|
+
"2006-08": 86.93,
|
|
165
|
+
"2006-09": 86.93,
|
|
166
|
+
"2006-10": 87.0,
|
|
167
|
+
"2006-11": 87.03,
|
|
168
|
+
"2006-12": 87.37,
|
|
169
|
+
"2007-01": 86.92,
|
|
170
|
+
"2007-02": 87.17,
|
|
171
|
+
"2007-03": 87.75,
|
|
172
|
+
"2007-04": 88.31,
|
|
173
|
+
"2007-05": 88.52,
|
|
174
|
+
"2007-06": 88.61,
|
|
175
|
+
"2007-07": 88.39,
|
|
176
|
+
"2007-08": 88.45,
|
|
177
|
+
"2007-09": 88.78,
|
|
178
|
+
"2007-10": 89.21,
|
|
179
|
+
"2007-11": 89.69,
|
|
180
|
+
"2007-12": 90.05,
|
|
181
|
+
"2008-01": 89.7,
|
|
182
|
+
"2008-02": 90.02,
|
|
183
|
+
"2008-03": 90.9,
|
|
184
|
+
"2008-04": 91.19,
|
|
185
|
+
"2008-05": 91.76,
|
|
186
|
+
"2008-06": 92.11,
|
|
187
|
+
"2008-07": 91.97,
|
|
188
|
+
"2008-08": 91.84,
|
|
189
|
+
"2008-09": 92.01,
|
|
190
|
+
"2008-10": 92.04,
|
|
191
|
+
"2008-11": 91.59,
|
|
192
|
+
"2008-12": 91.47,
|
|
193
|
+
"2009-01": 90.71,
|
|
194
|
+
"2009-02": 91.08,
|
|
195
|
+
"2009-03": 91.42,
|
|
196
|
+
"2009-04": 91.75,
|
|
197
|
+
"2009-05": 91.8,
|
|
198
|
+
"2009-06": 91.98,
|
|
199
|
+
"2009-07": 91.38,
|
|
200
|
+
"2009-08": 91.69,
|
|
201
|
+
"2009-09": 91.71,
|
|
202
|
+
"2009-10": 91.92,
|
|
203
|
+
"2009-11": 92.03,
|
|
204
|
+
"2009-12": 92.32,
|
|
205
|
+
"2010-01": 91.57,
|
|
206
|
+
"2010-02": 91.85,
|
|
207
|
+
"2010-03": 92.87,
|
|
208
|
+
"2010-04": 93.25,
|
|
209
|
+
"2010-05": 93.35,
|
|
210
|
+
"2010-06": 93.35,
|
|
211
|
+
"2010-07": 92.95,
|
|
212
|
+
"2010-08": 93.14,
|
|
213
|
+
"2010-09": 93.43,
|
|
214
|
+
"2010-10": 93.71,
|
|
215
|
+
"2010-11": 93.79,
|
|
216
|
+
"2010-12": 94.36,
|
|
217
|
+
"2011-01": 93.68,
|
|
218
|
+
"2011-02": 94.08,
|
|
219
|
+
"2011-03": 95.35,
|
|
220
|
+
"2011-04": 95.88,
|
|
221
|
+
"2011-05": 95.89,
|
|
222
|
+
"2011-06": 95.88,
|
|
223
|
+
"2011-07": 95.33,
|
|
224
|
+
"2011-08": 95.51,
|
|
225
|
+
"2011-09": 96.21,
|
|
226
|
+
"2011-10": 96.55,
|
|
227
|
+
"2011-11": 96.63,
|
|
228
|
+
"2011-12": 96.96,
|
|
229
|
+
"2012-01": 96.17,
|
|
230
|
+
"2012-02": 96.65,
|
|
231
|
+
"2012-03": 97.9,
|
|
232
|
+
"2012-04": 98.36,
|
|
233
|
+
"2012-05": 98.22,
|
|
234
|
+
"2012-06": 98.15,
|
|
235
|
+
"2012-07": 97.63,
|
|
236
|
+
"2012-08": 98.01,
|
|
237
|
+
"2012-09": 98.72,
|
|
238
|
+
"2012-10": 98.95,
|
|
239
|
+
"2012-11": 98.76,
|
|
240
|
+
"2012-12": 99.11,
|
|
241
|
+
"2013-01": 98.08,
|
|
242
|
+
"2013-02": 98.44,
|
|
243
|
+
"2013-03": 99.6,
|
|
244
|
+
"2013-04": 99.51,
|
|
245
|
+
"2013-05": 99.62,
|
|
246
|
+
"2013-06": 99.73,
|
|
247
|
+
"2013-07": 99.2,
|
|
248
|
+
"2013-08": 99.32,
|
|
249
|
+
"2013-09": 99.8,
|
|
250
|
+
"2013-10": 99.68,
|
|
251
|
+
"2013-11": 99.6,
|
|
252
|
+
"2013-12": 99.95,
|
|
253
|
+
"2014-01": 98.83,
|
|
254
|
+
"2014-02": 99.14,
|
|
255
|
+
"2014-03": 100.07,
|
|
256
|
+
"2014-04": 100.22,
|
|
257
|
+
"2014-05": 100.11,
|
|
258
|
+
"2014-06": 100.22,
|
|
259
|
+
"2014-07": 99.57,
|
|
260
|
+
"2014-08": 99.68,
|
|
261
|
+
"2014-09": 100.12,
|
|
262
|
+
"2014-10": 100.06,
|
|
263
|
+
"2014-11": 99.88,
|
|
264
|
+
"2014-12": 99.78,
|
|
265
|
+
"2015-01": 98.24,
|
|
266
|
+
"2015-02": 98.85,
|
|
267
|
+
"2015-03": 100.0,
|
|
268
|
+
"2015-04": 100.43,
|
|
269
|
+
"2015-05": 100.71,
|
|
270
|
+
"2015-06": 100.72,
|
|
271
|
+
"2015-07": 100.11,
|
|
272
|
+
"2015-08": 100.12,
|
|
273
|
+
"2015-09": 100.32,
|
|
274
|
+
"2015-10": 100.45,
|
|
275
|
+
"2015-11": 100.01,
|
|
276
|
+
"2015-12": 100.03,
|
|
277
|
+
"2016-01": 98.56,
|
|
278
|
+
"2016-02": 98.73,
|
|
279
|
+
"2016-03": 99.96,
|
|
280
|
+
"2016-04": 100.17,
|
|
281
|
+
"2016-05": 100.59,
|
|
282
|
+
"2016-06": 100.77,
|
|
283
|
+
"2016-07": 100.28,
|
|
284
|
+
"2016-08": 100.34,
|
|
285
|
+
"2016-09": 100.72,
|
|
286
|
+
"2016-10": 100.96,
|
|
287
|
+
"2016-11": 100.6,
|
|
288
|
+
"2016-12": 101.13,
|
|
289
|
+
"2017-01": 100.26,
|
|
290
|
+
"2017-02": 100.66,
|
|
291
|
+
"2017-03": 101.49,
|
|
292
|
+
"2017-04": 102.07,
|
|
293
|
+
"2017-05": 101.98,
|
|
294
|
+
"2017-06": 102.08,
|
|
295
|
+
"2017-07": 101.62,
|
|
296
|
+
"2017-08": 101.89,
|
|
297
|
+
"2017-09": 102.29,
|
|
298
|
+
"2017-10": 102.34,
|
|
299
|
+
"2017-11": 102.14,
|
|
300
|
+
"2017-12": 102.49,
|
|
301
|
+
"2018-01": 101.56,
|
|
302
|
+
"2018-02": 101.78,
|
|
303
|
+
"2018-03": 102.91,
|
|
304
|
+
"2018-04": 103.32,
|
|
305
|
+
"2018-05": 103.97,
|
|
306
|
+
"2018-06": 104.09,
|
|
307
|
+
"2018-07": 103.85,
|
|
308
|
+
"2018-08": 104.01,
|
|
309
|
+
"2018-09": 104.42,
|
|
310
|
+
"2018-10": 104.68,
|
|
311
|
+
"2018-11": 104.1,
|
|
312
|
+
"2018-12": 104.05,
|
|
313
|
+
"2019-01": 102.97,
|
|
314
|
+
"2019-02": 103.3,
|
|
315
|
+
"2019-03": 104.35,
|
|
316
|
+
"2019-04": 105.1,
|
|
317
|
+
"2019-05": 105.24,
|
|
318
|
+
"2019-06": 105.41,
|
|
319
|
+
"2019-07": 104.91,
|
|
320
|
+
"2019-08": 105.06,
|
|
321
|
+
"2019-09": 105.29,
|
|
322
|
+
"2019-10": 105.44,
|
|
323
|
+
"2019-11": 105.1,
|
|
324
|
+
"2019-12": 105.43,
|
|
325
|
+
"2020-01": 104.37,
|
|
326
|
+
"2020-02": 104.56,
|
|
327
|
+
"2020-03": 105.13,
|
|
328
|
+
"2020-04": 105.43,
|
|
329
|
+
"2020-05": 105.33,
|
|
330
|
+
"2020-06": 105.69,
|
|
331
|
+
"2020-07": 105.32,
|
|
332
|
+
"2020-08": 104.88,
|
|
333
|
+
"2020-09": 104.96,
|
|
334
|
+
"2020-10": 105.15,
|
|
335
|
+
"2020-11": 104.8,
|
|
336
|
+
"2020-12": 105.15,
|
|
337
|
+
"2021-01": 105.32,
|
|
338
|
+
"2021-02": 105.54,
|
|
339
|
+
"2021-03": 106.53,
|
|
340
|
+
"2021-04": 107.14,
|
|
341
|
+
"2021-05": 107.42,
|
|
342
|
+
"2021-06": 107.7,
|
|
343
|
+
"2021-07": 107.6,
|
|
344
|
+
"2021-08": 107.98,
|
|
345
|
+
"2021-09": 108.49,
|
|
346
|
+
"2021-10": 109.41,
|
|
347
|
+
"2021-11": 109.9,
|
|
348
|
+
"2021-12": 110.37,
|
|
349
|
+
"2022-01": 110.7,
|
|
350
|
+
"2022-02": 111.74,
|
|
351
|
+
"2022-03": 114.46,
|
|
352
|
+
"2022-04": 115.11,
|
|
353
|
+
"2022-05": 116.07,
|
|
354
|
+
"2022-06": 117.01,
|
|
355
|
+
"2022-07": 117.14,
|
|
356
|
+
"2022-08": 117.85,
|
|
357
|
+
"2022-09": 119.26,
|
|
358
|
+
"2022-10": 121.03,
|
|
359
|
+
"2022-11": 120.95,
|
|
360
|
+
"2022-12": 120.52,
|
|
361
|
+
"2023-01": 120.27,
|
|
362
|
+
"2023-02": 121.24,
|
|
363
|
+
"2023-03": 122.34,
|
|
364
|
+
"2023-04": 123.12,
|
|
365
|
+
"2023-05": 123.15,
|
|
366
|
+
"2023-06": 123.47,
|
|
367
|
+
"2023-07": 123.36,
|
|
368
|
+
"2023-08": 124.03,
|
|
369
|
+
"2023-09": 124.43,
|
|
370
|
+
"2023-10": 124.54,
|
|
371
|
+
"2023-11": 123.85,
|
|
372
|
+
"2023-12": 124.05,
|
|
373
|
+
"2024-01": 123.6,
|
|
374
|
+
"2024-02": 124.37,
|
|
375
|
+
"2024-03": 125.31,
|
|
376
|
+
"2024-04": 126.04,
|
|
377
|
+
"2024-05": 126.31,
|
|
378
|
+
"2024-06": 126.58,
|
|
379
|
+
"2024-07": 126.54,
|
|
380
|
+
"2024-08": 126.72,
|
|
381
|
+
"2024-09": 126.6,
|
|
382
|
+
"2024-10": 127.03,
|
|
383
|
+
"2024-11": 126.62,
|
|
384
|
+
"2024-12": 127.07,
|
|
385
|
+
"2025-01": 126.72,
|
|
386
|
+
"2025-02": 127.26,
|
|
387
|
+
"2025-03": 128.04,
|
|
388
|
+
"2025-04": 128.77,
|
|
389
|
+
"2025-05": 128.7,
|
|
390
|
+
"2025-06": 129.09,
|
|
391
|
+
"2025-07": 129.12,
|
|
392
|
+
"2025-08": 129.31,
|
|
393
|
+
"2025-09": 129.42,
|
|
394
|
+
"2025-10": 129.7,
|
|
395
|
+
"2025-11": 129.33,
|
|
396
|
+
"2025-12": 129.56
|
|
397
|
+
},
|
|
398
|
+
"schema_version": 1,
|
|
399
|
+
"source": "Eurostat prc_hicp_midx (HICP, EA all current members, CP00, 2015=100)",
|
|
400
|
+
"updated_at": "2026-05-11"
|
|
401
|
+
}
|