timeprice 0.4.0 → 0.6.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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +52 -0
  3. data/DATA_LICENSES.md +16 -1
  4. data/README.md +29 -5
  5. data/data/cpi/eu.json +406 -403
  6. data/data/cpi/jp.json +78 -75
  7. data/data/cpi/uk.json +513 -510
  8. data/data/cpi/us.json +488 -485
  9. data/data/cpi/vn.json +342 -339
  10. data/data/fx/usd/1999.json +23 -7
  11. data/data/fx/usd/2000.json +23 -7
  12. data/data/fx/usd/2001.json +23 -7
  13. data/data/fx/usd/2002.json +23 -7
  14. data/data/fx/usd/2003.json +23 -7
  15. data/data/fx/usd/2004.json +23 -7
  16. data/data/fx/usd/2005.json +23 -7
  17. data/data/fx/usd/2006.json +23 -7
  18. data/data/fx/usd/2007.json +23 -7
  19. data/data/fx/usd/2008.json +23 -7
  20. data/data/fx/usd/2009.json +23 -7
  21. data/data/fx/usd/2010.json +23 -7
  22. data/data/fx/usd/2011.json +23 -7
  23. data/data/fx/usd/2012.json +23 -7
  24. data/data/fx/usd/2013.json +23 -7
  25. data/data/fx/usd/2014.json +23 -7
  26. data/data/fx/usd/2015.json +23 -7
  27. data/data/fx/usd/2016.json +23 -7
  28. data/data/fx/usd/2017.json +23 -7
  29. data/data/fx/usd/2018.json +23 -7
  30. data/data/fx/usd/2019.json +23 -7
  31. data/data/fx/usd/2020.json +23 -7
  32. data/data/fx/usd/2021.json +23 -7
  33. data/data/fx/usd/2022.json +23 -7
  34. data/data/fx/usd/2023.json +23 -7
  35. data/data/fx/usd/2024.json +23 -7
  36. data/data/fx/usd/2025.json +24 -5
  37. data/data/fx/usd/2026.json +24 -5
  38. data/data/fx/usd/_annual.json +145 -0
  39. data/data/manifest.json +90 -0
  40. data/lib/timeprice/cli.rb +3 -3
  41. data/lib/timeprice/compare.rb +1 -1
  42. data/lib/timeprice/cpi_lookup.rb +64 -18
  43. data/lib/timeprice/data_loader.rb +47 -8
  44. data/lib/timeprice/errors.rb +4 -4
  45. data/lib/timeprice/exchange.rb +8 -8
  46. data/lib/timeprice/granularity.rb +41 -10
  47. data/lib/timeprice/inflation.rb +5 -5
  48. data/lib/timeprice/sources/coverage.rb +27 -32
  49. data/lib/timeprice/supported.rb +39 -22
  50. data/lib/timeprice/version.rb +1 -1
  51. data/lib/timeprice.rb +2 -2
  52. metadata +3 -15
  53. data/data/fx/usd/1983.json +0 -11
  54. data/data/fx/usd/1986.json +0 -11
  55. data/data/fx/usd/1987.json +0 -11
  56. data/data/fx/usd/1988.json +0 -11
  57. data/data/fx/usd/1989.json +0 -11
  58. data/data/fx/usd/1990.json +0 -11
  59. data/data/fx/usd/1991.json +0 -11
  60. data/data/fx/usd/1992.json +0 -11
  61. data/data/fx/usd/1993.json +0 -11
  62. data/data/fx/usd/1994.json +0 -11
  63. data/data/fx/usd/1995.json +0 -11
  64. data/data/fx/usd/1996.json +0 -11
  65. data/data/fx/usd/1997.json +0 -11
  66. data/data/fx/usd/1998.json +0 -11
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 1999,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "1999-01-04",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "1999-12-30"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "1999-01-04": {
9
26
  "EUR": 0.84825,
@@ -1301,7 +1318,6 @@
1301
1318
  "JPY": 102.26
1302
1319
  }
1303
1320
  },
1304
- "annual": {
1305
- "VND": 13943.17
1306
- }
1321
+ "schema_version": 4,
1322
+ "year": 1999
1307
1323
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2000,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2000-01-03",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2000-12-29"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2000-01-03": {
9
26
  "EUR": 0.99108,
@@ -1281,7 +1298,6 @@
1281
1298
  "JPY": 114.91
1282
1299
  }
1283
1300
  },
1284
- "annual": {
1285
- "VND": 14167.75
1286
- }
1301
+ "schema_version": 4,
1302
+ "year": 2000
1287
1303
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2001,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2001-01-02",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2001-12-28"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2001-01-02": {
9
26
  "EUR": 1.0612,
@@ -1276,7 +1293,6 @@
1276
1293
  "JPY": 130.86
1277
1294
  }
1278
1295
  },
1279
- "annual": {
1280
- "VND": 14725.17
1281
- }
1296
+ "schema_version": 4,
1297
+ "year": 2001
1282
1298
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2002,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2002-01-02",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2002-12-31"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2002-01-02": {
9
26
  "EUR": 1.1064,
@@ -1281,7 +1298,6 @@
1281
1298
  "JPY": 118.61
1282
1299
  }
1283
1300
  },
1284
- "annual": {
1285
- "VND": 15279.5
1286
- }
1301
+ "schema_version": 4,
1302
+ "year": 2002
1287
1303
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2003,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2003-01-02",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2003-12-31"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2003-01-02": {
9
26
  "EUR": 0.9573,
@@ -1281,7 +1298,6 @@
1281
1298
  "JPY": 106.93
1282
1299
  }
1283
1300
  },
1284
- "annual": {
1285
- "VND": 15509.58
1286
- }
1301
+ "schema_version": 4,
1302
+ "year": 2003
1287
1303
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2004,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2004-01-02",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2004-12-31"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2004-01-02": {
9
26
  "EUR": 0.79416,
@@ -1301,7 +1318,6 @@
1301
1318
  "JPY": 102.53
1302
1319
  }
1303
1320
  },
1304
- "annual": {
1305
- "VND": 15746.0
1306
- }
1321
+ "schema_version": 4,
1322
+ "year": 2004
1307
1323
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2005,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2005-01-03",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2005-12-30"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2005-01-03": {
9
26
  "EUR": 0.74036,
@@ -1291,7 +1308,6 @@
1291
1308
  "JPY": 117.74
1292
1309
  }
1293
1310
  },
1294
- "annual": {
1295
- "VND": 15858.92
1296
- }
1311
+ "schema_version": 4,
1312
+ "year": 2005
1297
1313
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2006,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2006-01-02",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2006-12-29"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2006-01-02": {
9
26
  "EUR": 0.84559,
@@ -1281,7 +1298,6 @@
1281
1298
  "JPY": 119.16
1282
1299
  }
1283
1300
  },
1284
- "annual": {
1285
- "VND": 15994.25
1286
- }
1301
+ "schema_version": 4,
1302
+ "year": 2006
1287
1303
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2007,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2007-01-02",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2007-12-31"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2007-01-02": {
9
26
  "EUR": 0.75358,
@@ -1281,7 +1298,6 @@
1281
1298
  "JPY": 112.04
1282
1299
  }
1283
1300
  },
1284
- "annual": {
1285
- "VND": 16105.13
1286
- }
1301
+ "schema_version": 4,
1302
+ "year": 2007
1287
1303
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2008,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2008-01-02",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2008-12-31"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2008-01-02": {
9
26
  "EUR": 0.68083,
@@ -1286,7 +1303,6 @@
1286
1303
  "JPY": 90.64
1287
1304
  }
1288
1305
  },
1289
- "annual": {
1290
- "VND": 16302.25
1291
- }
1306
+ "schema_version": 4,
1307
+ "year": 2008
1292
1308
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2009,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2009-01-02",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2009-12-31"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2009-01-02": {
9
26
  "EUR": 0.72119,
@@ -1286,7 +1303,6 @@
1286
1303
  "JPY": 92.43
1287
1304
  }
1288
1305
  },
1289
- "annual": {
1290
- "VND": 17065.08
1291
- }
1306
+ "schema_version": 4,
1307
+ "year": 2009
1292
1308
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2010,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2010-01-04",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2010-12-31"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2010-01-04": {
9
26
  "EUR": 0.69498,
@@ -1296,7 +1313,6 @@
1296
1313
  "JPY": 81.31
1297
1314
  }
1298
1315
  },
1299
- "annual": {
1300
- "VND": 18612.92
1301
- }
1316
+ "schema_version": 4,
1317
+ "year": 2010
1302
1318
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2011,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2011-01-03",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2011-12-30"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2011-01-03": {
9
26
  "EUR": 0.74918,
@@ -1291,7 +1308,6 @@
1291
1308
  "JPY": 77.44
1292
1309
  }
1293
1310
  },
1294
- "annual": {
1295
- "VND": 20509.75
1296
- }
1311
+ "schema_version": 4,
1312
+ "year": 2011
1297
1313
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2012,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2012-01-02",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2012-12-31"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2012-01-02": {
9
26
  "EUR": 0.7731,
@@ -1286,7 +1303,6 @@
1286
1303
  "JPY": 86.11
1287
1304
  }
1288
1305
  },
1289
- "annual": {
1290
- "VND": 20828.0
1291
- }
1306
+ "schema_version": 4,
1307
+ "year": 2012
1292
1308
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2013,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2013-01-02",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2013-12-31"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2013-01-02": {
9
26
  "EUR": 0.75403,
@@ -1281,7 +1298,6 @@
1281
1298
  "JPY": 104.94
1282
1299
  }
1283
1300
  },
1284
- "annual": {
1285
- "VND": 20933.42
1286
- }
1301
+ "schema_version": 4,
1302
+ "year": 2013
1287
1303
  }
@@ -1,9 +1,26 @@
1
1
  {
2
- "schema_version": 2,
3
2
  "base": "USD",
4
- "year": 2014,
5
- "source": "Frankfurter (ECB) for EUR/GBP/JPY (daily); World Bank PA.NUS.FCRF for VND (annual)",
6
- "updated_at": "2026-05-11",
3
+ "provenance": [
4
+ {
5
+ "currencies": [
6
+ "EUR",
7
+ "GBP",
8
+ "JPY"
9
+ ],
10
+ "from": "2014-01-02",
11
+ "provider": "frankfurter",
12
+ "series": "daily",
13
+ "to": "2014-12-31"
14
+ }
15
+ ],
16
+ "providers": [
17
+ {
18
+ "fetched_at": "2026-05-11",
19
+ "id": "frankfurter",
20
+ "label": "Frankfurter (ECB) daily reference rates",
21
+ "status": "ok"
22
+ }
23
+ ],
7
24
  "rates": {
8
25
  "2014-01-02": {
9
26
  "EUR": 0.73217,
@@ -1281,7 +1298,6 @@
1281
1298
  "JPY": 119.62
1282
1299
  }
1283
1300
  },
1284
- "annual": {
1285
- "VND": 21148.0
1286
- }
1301
+ "schema_version": 4,
1302
+ "year": 2014
1287
1303
  }