timeprice 0.7.0 → 0.8.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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +53 -0
  3. data/README.md +41 -1
  4. data/data/cpi/au.json +2 -2
  5. data/data/cpi/br.json +529 -0
  6. data/data/cpi/ca.json +3 -3
  7. data/data/cpi/ch.json +549 -0
  8. data/data/cpi/cn.json +10 -10
  9. data/data/cpi/cz.json +500 -0
  10. data/data/cpi/eu.json +1 -1
  11. data/data/cpi/hk.json +351 -0
  12. data/data/cpi/hu.json +537 -0
  13. data/data/cpi/id.json +550 -0
  14. data/data/cpi/il.json +549 -0
  15. data/data/cpi/in.json +549 -0
  16. data/data/cpi/jp.json +2 -2
  17. data/data/cpi/kr.json +36 -35
  18. data/data/cpi/mx.json +550 -0
  19. data/data/cpi/my.json +429 -0
  20. data/data/cpi/no.json +549 -0
  21. data/data/cpi/nz.json +94 -0
  22. data/data/cpi/ph.json +309 -0
  23. data/data/cpi/pl.json +539 -0
  24. data/data/cpi/ru.json +2 -2
  25. data/data/cpi/se.json +549 -0
  26. data/data/cpi/sg.json +369 -0
  27. data/data/cpi/th.json +309 -0
  28. data/data/cpi/tr.json +549 -0
  29. data/data/cpi/uk.json +1 -1
  30. data/data/cpi/us.json +1007 -5
  31. data/data/cpi/vn.json +10 -10
  32. data/data/cpi/za.json +549 -0
  33. data/data/fx/usd/1999.json +5201 -261
  34. data/data/fx/usd/2000.json +5982 -257
  35. data/data/fx/usd/2001.json +6121 -256
  36. data/data/fx/usd/2002.json +6145 -257
  37. data/data/fx/usd/2003.json +6145 -257
  38. data/data/fx/usd/2004.json +6241 -261
  39. data/data/fx/usd/2005.json +6193 -259
  40. data/data/fx/usd/2006.json +6145 -257
  41. data/data/fx/usd/2007.json +6144 -257
  42. data/data/fx/usd/2008.json +6155 -258
  43. data/data/fx/usd/2009.json +5912 -258
  44. data/data/fx/usd/2010.json +5958 -260
  45. data/data/fx/usd/2011.json +5935 -259
  46. data/data/fx/usd/2012.json +5912 -258
  47. data/data/fx/usd/2013.json +5889 -257
  48. data/data/fx/usd/2014.json +5889 -257
  49. data/data/fx/usd/2015.json +5912 -258
  50. data/data/fx/usd/2016.json +5935 -259
  51. data/data/fx/usd/2017.json +5889 -257
  52. data/data/fx/usd/2018.json +6123 -257
  53. data/data/fx/usd/2019.json +6145 -257
  54. data/data/fx/usd/2020.json +6193 -259
  55. data/data/fx/usd/2021.json +6217 -260
  56. data/data/fx/usd/2022.json +6193 -259
  57. data/data/fx/usd/2023.json +6145 -257
  58. data/data/fx/usd/2024.json +6169 -258
  59. data/data/fx/usd/2025.json +6145 -257
  60. data/data/fx/usd/2026.json +2196 -92
  61. data/data/fx/usd/_annual.json +2 -2
  62. data/data/manifest.json +488 -73
  63. data/lib/timeprice/cli/presenters/compare.rb +44 -8
  64. data/lib/timeprice/cli.rb +21 -4
  65. data/lib/timeprice/compare/series.rb +120 -0
  66. data/lib/timeprice/compare.rb +77 -17
  67. data/lib/timeprice/cpi_lookup.rb +11 -5
  68. data/lib/timeprice/forecast/cagr.rb +96 -0
  69. data/lib/timeprice/forecast/cpi_forecaster.rb +90 -0
  70. data/lib/timeprice/forecast/fx_forecaster.rb +173 -0
  71. data/lib/timeprice/forecast.rb +21 -0
  72. data/lib/timeprice/sources.rb +1 -1
  73. data/lib/timeprice/supported.rb +16 -0
  74. data/lib/timeprice/version.rb +1 -1
  75. data/lib/timeprice.rb +34 -2
  76. metadata +26 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a991e47e7ddcc1b8a88a2be8e8a3850406f1a17bb9f6e0c69164bb25dcdb3fb8
4
- data.tar.gz: b5d95ebc9b318b9165e32712142906539e230939e8a0e4bdbd2157ad89c247b9
3
+ metadata.gz: 7bfb62351a8c29d487a50658a34b03b7c0e9843df0aaca6aa8ad677507379334
4
+ data.tar.gz: 70d41f26d096c44f5b72ff64327f80a58be49dab0705a4204e134e5b19c2eec0
5
5
  SHA512:
6
- metadata.gz: f740a51b83681979a0b1a4b505bae66a4e266df69ba7064df53f50b783e5fd5d3ebfe3b4aea30452c4e216987f0248eb39c4f1e357c5df9ac7b439dc630593b5
7
- data.tar.gz: 3f5e18ad1ef50e16636f63a7bc96e9bb2fda2ca8b7b7235b2c6534365d82ab0ca53bc24fc5e0d8188a86b5a1d36b5c80522c6f62a37d79d06c4b42f3da71f449
6
+ metadata.gz: d59d8b5bb6f74cb0b3dafca722df096647b149720a0bbde8c31679511f6e8ec0cd62940627f1c8b87ebca147f5a453610e75092b7ec9182dee43364f91f442bf
7
+ data.tar.gz: 1d8b22a4e8b31e5ac92c0c476cc53ac20f696cb446c2ae4a93e4ae3c6a0e152a24d645be831940c0b2bdf30581d0f025124ff9d0eebb06d1cac8a1bcd427cf48
data/CHANGELOG.md CHANGED
@@ -5,6 +5,59 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.8.0] - 2026-05-17
9
+
10
+ ### Added
11
+ - **Offline forecasting past the bundled data.** New `Timeprice::Forecast`
12
+ module: `CpiForecaster.project` and `FxForecaster.project` use a
13
+ trailing-window CAGR for the point estimate and ±1σ of year-over-year
14
+ changes for the band. Pure-Ruby, deterministic, no network calls or
15
+ stats dependencies. Defaults: 10-year window for CPI, 5-year for FX;
16
+ horizon caps 5y CPI / 2y FX (caps raise `horizon_exceeds_cap`
17
+ warnings, they don't block). `Forecast::Result` is a frozen value
18
+ object with `value`, `low`, `high`, `projection_method`, `sigma_pct`,
19
+ `last_known_date`, `target_date`, `horizon_months`, `basis_kind`,
20
+ `warnings`. `Timeprice.forecast(...)` is the public dispatcher.
21
+ - `Timeprice.compare` accepts `forecast: true`; when the target date
22
+ is past the bundled CPI window the result carries a populated
23
+ `forecast: { basis_kind:, projection_method:, window_years:,
24
+ sigma_pct:, last_known_date:, horizon_months:, low:, high:,
25
+ warnings: }` block and `granularity: :forecast`.
26
+ - CLI: `timeprice compare --forecast` prints the range, basis, and
27
+ caveats; `--json` exposes the same fields machine-readably.
28
+ - `Timeprice::Compare.series_for(from:, to:, forecast:, amount:)` returns
29
+ annual sample points for the chart strip; forecast points carry
30
+ `:low` / `:high` for the ±1σ band.
31
+ - `rake forecast:backtest` reports per-country MAPE for the bundled
32
+ data with assertions, so accuracy regressions are caught in CI.
33
+
34
+ ### Web calculator
35
+ - Inline **📈 Forecast this date** affordance replaces the old form-level
36
+ checkbox. It only appears when the entered target year is past the
37
+ destination country's bundled CPI window. Clicking toggles
38
+ `state.form.forecast` and re-computes; the toggle round-trips through
39
+ the existing `&forecast=1` URL param.
40
+ - New SVG strip beneath the result paints the measured polyline, the
41
+ dashed forecast line, a striped ±1σ fan, and tick labels — answers
42
+ "how did we get this number?" visually.
43
+ - Amount input now carries locale thousands separators with a
44
+ caret-preserving live formatter; `parseAmount` strips them before
45
+ parsing.
46
+ - From/To rows reflow to `label + currency (60%) + 'in' + date (40%)`
47
+ on a single line, all three form rows ending at the same right edge.
48
+ - Footer meta line ("refreshed …, gem v…") now hydrates from
49
+ `Timeprice.metadata` at boot; the HTML carries placeholders only, so
50
+ releases no longer hand-edit the index.
51
+
52
+ ### Changed
53
+ - `thor` is now a development dependency, not a runtime dependency. The
54
+ CLI (`exe/timeprice`) still works exactly as before, but users who only
55
+ `require "timeprice"` as a library no longer pull in thor and its
56
+ transitive stdlib (`set`, `digest`, `erb`, etc.). The ruby.wasm site
57
+ bundle drops ~200 KB raw / ~55 KB gzipped. CLI users need to run
58
+ `gem install thor` once; `bin/timeprice` prints a clear hint if it's
59
+ missing.
60
+
8
61
  ### Breaking changes (planned for 1.0.0)
9
62
  - Public API methods (`inflation`, `exchange`, `compare`) now accept
10
63
  `Timeprice::Date` in addition to strings. The accepted string formats
data/README.md CHANGED
@@ -32,6 +32,14 @@ gem "timeprice", "~> 0.1"
32
32
 
33
33
  Requires Ruby >= 3.2.
34
34
 
35
+ The CLI also needs the `thor` gem, kept out of timeprice's runtime
36
+ dependencies so library users (`require "timeprice"`) and the ruby.wasm
37
+ site bundle don't carry it:
38
+
39
+ ```bash
40
+ gem install thor
41
+ ```
42
+
35
43
  ## CLI examples
36
44
 
37
45
  ```bash
@@ -52,6 +60,38 @@ $ timeprice compare 100 --from "2010 USD" --to "2024 VND"
52
60
  -> inflate x1.8970 VN -> 3,530,921 VND (2024, annual)
53
61
  ```
54
62
 
63
+ ### Forecasting (target dates past the bundled data)
64
+
65
+ `compare` accepts target dates beyond the last bundled CPI / FX point when
66
+ you pass `--forecast` (CLI) or `forecast: true` (Ruby). The forecast uses a
67
+ trailing-window CAGR with a ±1σ band derived from historical year-over-year
68
+ volatility — no network calls, no stats dependencies, fully deterministic.
69
+
70
+ ```bash
71
+ $ timeprice compare 100 --from "2010 USD" --to "2030 VND" --forecast
72
+ 4,297,876 VND in 2030 (forecast)
73
+ 100.00 USD (2010)
74
+ -> fx @ 18,612.92 -> 1,861,292 VND (2010)
75
+ -> inflate x2.3091 VN -> 4,297,876 VND (2030, forecast)
76
+
77
+ range 4,133,277 VND — 4,297,876 VND — 4,467,270 VND
78
+ (low -1σ) (most likely) (high +1σ)
79
+
80
+ basis trailing 10y CAGR · last data 2026-03
81
+ sigma ±1.0%/yr · horizon +46mo
82
+ ```
83
+
84
+ Defaults: 10-year window for CPI, 5-year for FX. Horizon caps (5y CPI, 2y
85
+ FX) don't block the forecast — they raise a `horizon_exceeds_cap` warning
86
+ in the result. Run `bundle exec rake forecast:backtest` to see per-country
87
+ MAPE for the bundled data.
88
+
89
+ On the web calculator the forecast is opt-in per query: when you enter a
90
+ target date past the bundled CPI window, an inline **📈 Forecast this
91
+ date** button appears under the result. A small SVG strip below the result
92
+ visualises the measured series and, when forecast is on, a striped fan band
93
+ for the projected tail.
94
+
55
95
  The first line of each result is the answer — pipe through `head -1` if a
56
96
  script only needs the headline figure.
57
97
 
@@ -102,7 +142,7 @@ without hardcoding what the gem already knows.
102
142
  ```ruby
103
143
  Timeprice.metadata
104
144
  # => {
105
- # version: "0.7.0",
145
+ # version: "0.8.0",
106
146
  # generated_at: "2026-05-12",
107
147
  # countries: [
108
148
  # { code: "US", name: "United States", currency: "USD",
data/data/cpi/au.json CHANGED
@@ -20,13 +20,13 @@
20
20
  ],
21
21
  "providers": [
22
22
  {
23
- "fetched_at": "2026-05-12",
23
+ "fetched_at": "2026-05-16",
24
24
  "id": "world_bank",
25
25
  "label": "World Bank FP.CPI.TOTL (annual, AU baseline)",
26
26
  "status": "ok"
27
27
  },
28
28
  {
29
- "fetched_at": "2026-05-12",
29
+ "fetched_at": "2026-05-16",
30
30
  "id": "abs",
31
31
  "label": "ABS 6401.0 Consumer Price Index (quarterly) + World Bank (annual baseline)",
32
32
  "status": "ok"
data/data/cpi/br.json ADDED
@@ -0,0 +1,529 @@
1
+ {
2
+ "country": "BR",
3
+ "index": {
4
+ "base_period": "2010",
5
+ "rebased_at": null
6
+ },
7
+ "provenance": [
8
+ {
9
+ "from": "1990-01",
10
+ "provider": "imf",
11
+ "series": "monthly",
12
+ "to": "2026-03"
13
+ },
14
+ {
15
+ "from": "1980",
16
+ "provider": "world_bank",
17
+ "series": "annual",
18
+ "to": "1989"
19
+ },
20
+ {
21
+ "from": "1990",
22
+ "provider": "imf",
23
+ "series": "annual",
24
+ "to": "2025"
25
+ }
26
+ ],
27
+ "providers": [
28
+ {
29
+ "fetched_at": "2026-05-16",
30
+ "id": "world_bank",
31
+ "label": "World Bank FP.CPI.TOTL (annual)",
32
+ "status": "ok"
33
+ },
34
+ {
35
+ "fetched_at": "2026-05-16",
36
+ "id": "imf",
37
+ "label": "IMF Data Portal CPI dataflow (monthly) + World Bank FP.CPI.TOTL (annual)",
38
+ "status": "ok"
39
+ }
40
+ ],
41
+ "schema_version": 4,
42
+ "series": {
43
+ "annual": {
44
+ "1980": 3.57203995820629e-10,
45
+ "1981": 7.20570021177795e-10,
46
+ "1982": 0.00000000144505532582099,
47
+ "1983": 0.00000000339628003922507,
48
+ "1984": 0.00000000992127211260218,
49
+ "1985": 0.0000000323423217446329,
50
+ "1986": 0.0000000799317280305452,
51
+ "1987": 0.000000262444768495787,
52
+ "1988": 0.00000191352288553153,
53
+ "1989": 0.0000292907487949526,
54
+ "1990": 0.0278,
55
+ "1991": 0.1481,
56
+ "1992": 1.5583,
57
+ "1993": 31.5926,
58
+ "1994": 687.4192,
59
+ "1995": 1141.1642,
60
+ "1996": 1320.985,
61
+ "1997": 1412.4858,
62
+ "1998": 1457.6158,
63
+ "1999": 1528.4333,
64
+ "2000": 1636.0983,
65
+ "2001": 1748.0133,
66
+ "2002": 1895.7233,
67
+ "2003": 2174.6775,
68
+ "2004": 2318.145,
69
+ "2005": 2477.3908,
70
+ "2006": 2581.0342,
71
+ "2007": 2675.0167,
72
+ "2008": 2826.92,
73
+ "2009": 2965.1008,
74
+ "2010": 3114.5042,
75
+ "2011": 3321.1967,
76
+ "2012": 3500.6575,
77
+ "2013": 3717.8492,
78
+ "2014": 3953.1533,
79
+ "2015": 4310.1192,
80
+ "2016": 4686.7867,
81
+ "2017": 4848.3108,
82
+ "2018": 5025.9942,
83
+ "2019": 5213.6133,
84
+ "2020": 5381.0625,
85
+ "2021": 5827.78,
86
+ "2022": 6368.6042,
87
+ "2023": 6661.15,
88
+ "2024": 6952.0733,
89
+ "2025": 7300.8417
90
+ },
91
+ "monthly": {
92
+ "1990-01": 0.005410857,
93
+ "1990-02": 0.009508499,
94
+ "1990-03": 0.01734255,
95
+ "1990-04": 0.02003411,
96
+ "1990-05": 0.0215547,
97
+ "1990-06": 0.02408738,
98
+ "1990-07": 0.02719947,
99
+ "1990-08": 0.03070276,
100
+ "1990-09": 0.03512703,
101
+ "1990-10": 0.04017127,
102
+ "1990-11": 0.04692406,
103
+ "1990-12": 0.05557686,
104
+ "1991-01": 0.06710906,
105
+ "1991-02": 0.08101439,
106
+ "1991-03": 0.09067365,
107
+ "1991-04": 0.0951976,
108
+ "1991-05": 0.1022725,
109
+ "1991-06": 0.1137158,
110
+ "1991-07": 0.1278268,
111
+ "1991-08": 0.1478067,
112
+ "1991-09": 0.17091,
113
+ "1991-10": 0.2054843,
114
+ "1991-11": 0.2572875,
115
+ "1991-12": 0.3182887,
116
+ "1992-01": 0.4008537,
117
+ "1992-02": 0.498341,
118
+ "1992-03": 0.6049874,
119
+ "1992-04": 0.7255614,
120
+ "1992-05": 0.9059362,
121
+ "1992-06": 1.089029,
122
+ "1992-07": 1.326764,
123
+ "1992-08": 1.62051,
124
+ "1992-09": 2.019641,
125
+ "1992-10": 2.529397,
126
+ "1992-11": 3.09826,
127
+ "1992-12": 3.88026,
128
+ "1993-01": 5.057917,
129
+ "1993-02": 6.321384,
130
+ "1993-03": 8.044595,
131
+ "1993-04": 10.27697,
132
+ "1993-05": 13.12266,
133
+ "1993-06": 17.06864,
134
+ "1993-07": 22.31213,
135
+ "1993-08": 29.66621,
136
+ "1993-09": 40.25408,
137
+ "1993-10": 53.90826,
138
+ "1993-11": 73.07805,
139
+ "1993-12": 100.0,
140
+ "1994-01": 141.31,
141
+ "1994-02": 198.22,
142
+ "1994-03": 282.96,
143
+ "1994-04": 403.73,
144
+ "1994-05": 581.49,
145
+ "1994-06": 857.29,
146
+ "1994-07": 915.93,
147
+ "1994-08": 932.97,
148
+ "1994-09": 947.24,
149
+ "1994-10": 972.06,
150
+ "1994-11": 999.37,
151
+ "1994-12": 1016.46,
152
+ "1995-01": 1033.74,
153
+ "1995-02": 1044.28,
154
+ "1995-03": 1060.47,
155
+ "1995-04": 1086.24,
156
+ "1995-05": 1115.24,
157
+ "1995-06": 1140.44,
158
+ "1995-07": 1167.35,
159
+ "1995-08": 1178.91,
160
+ "1995-09": 1190.58,
161
+ "1995-10": 1207.37,
162
+ "1995-11": 1225.12,
163
+ "1995-12": 1244.23,
164
+ "1996-01": 1260.9,
165
+ "1996-02": 1273.89,
166
+ "1996-03": 1278.35,
167
+ "1996-04": 1294.46,
168
+ "1996-05": 1310.25,
169
+ "1996-06": 1325.84,
170
+ "1996-07": 1340.56,
171
+ "1996-08": 1346.46,
172
+ "1996-09": 1348.48,
173
+ "1996-10": 1352.53,
174
+ "1996-11": 1356.86,
175
+ "1996-12": 1363.24,
176
+ "1997-01": 1379.33,
177
+ "1997-02": 1386.23,
178
+ "1997-03": 1393.3,
179
+ "1997-04": 1405.56,
180
+ "1997-05": 1411.32,
181
+ "1997-06": 1418.94,
182
+ "1997-07": 1422.06,
183
+ "1997-08": 1421.78,
184
+ "1997-09": 1422.63,
185
+ "1997-10": 1425.9,
186
+ "1997-11": 1428.32,
187
+ "1997-12": 1434.46,
188
+ "1998-01": 1444.64,
189
+ "1998-02": 1451.29,
190
+ "1998-03": 1456.22,
191
+ "1998-04": 1459.71,
192
+ "1998-05": 1467.01,
193
+ "1998-06": 1467.3,
194
+ "1998-07": 1465.54,
195
+ "1998-08": 1458.07,
196
+ "1998-09": 1454.86,
197
+ "1998-10": 1455.15,
198
+ "1998-11": 1453.4,
199
+ "1998-12": 1458.2,
200
+ "1999-01": 1468.41,
201
+ "1999-02": 1483.83,
202
+ "1999-03": 1500.15,
203
+ "1999-04": 1508.55,
204
+ "1999-05": 1513.08,
205
+ "1999-06": 1515.95,
206
+ "1999-07": 1532.47,
207
+ "1999-08": 1541.05,
208
+ "1999-09": 1545.83,
209
+ "1999-10": 1564.23,
210
+ "1999-11": 1579.09,
211
+ "1999-12": 1588.56,
212
+ "2000-01": 1598.41,
213
+ "2000-02": 1600.49,
214
+ "2000-03": 1604.01,
215
+ "2000-04": 1610.75,
216
+ "2000-05": 1610.91,
217
+ "2000-06": 1614.62,
218
+ "2000-07": 1640.62,
219
+ "2000-08": 1662.11,
220
+ "2000-09": 1665.93,
221
+ "2000-10": 1668.26,
222
+ "2000-11": 1673.6,
223
+ "2000-12": 1683.47,
224
+ "2001-01": 1693.07,
225
+ "2001-02": 1700.86,
226
+ "2001-03": 1707.32,
227
+ "2001-04": 1717.22,
228
+ "2001-05": 1724.26,
229
+ "2001-06": 1733.23,
230
+ "2001-07": 1756.28,
231
+ "2001-08": 1768.57,
232
+ "2001-09": 1773.52,
233
+ "2001-10": 1788.24,
234
+ "2001-11": 1800.94,
235
+ "2001-12": 1812.65,
236
+ "2002-01": 1822.08,
237
+ "2002-02": 1828.64,
238
+ "2002-03": 1839.61,
239
+ "2002-04": 1854.33,
240
+ "2002-05": 1858.22,
241
+ "2002-06": 1866.02,
242
+ "2002-07": 1888.23,
243
+ "2002-08": 1900.5,
244
+ "2002-09": 1914.18,
245
+ "2002-10": 1939.26,
246
+ "2002-11": 1997.83,
247
+ "2002-12": 2039.78,
248
+ "2003-01": 2085.68,
249
+ "2003-02": 2118.43,
250
+ "2003-03": 2144.49,
251
+ "2003-04": 2165.29,
252
+ "2003-05": 2178.5,
253
+ "2003-06": 2175.23,
254
+ "2003-07": 2179.58,
255
+ "2003-08": 2186.99,
256
+ "2003-09": 2204.05,
257
+ "2003-10": 2210.44,
258
+ "2003-11": 2217.96,
259
+ "2003-12": 2229.49,
260
+ "2004-01": 2246.43,
261
+ "2004-02": 2260.13,
262
+ "2004-03": 2270.75,
263
+ "2004-04": 2279.15,
264
+ "2004-05": 2290.77,
265
+ "2004-06": 2307.03,
266
+ "2004-07": 2328.02,
267
+ "2004-08": 2344.08,
268
+ "2004-09": 2351.82,
269
+ "2004-10": 2362.17,
270
+ "2004-11": 2378.47,
271
+ "2004-12": 2398.92,
272
+ "2005-01": 2412.83,
273
+ "2005-02": 2427.07,
274
+ "2005-03": 2441.87,
275
+ "2005-04": 2463.11,
276
+ "2005-05": 2475.18,
277
+ "2005-06": 2474.68,
278
+ "2005-07": 2480.87,
279
+ "2005-08": 2485.09,
280
+ "2005-09": 2493.79,
281
+ "2005-10": 2512.49,
282
+ "2005-11": 2526.31,
283
+ "2005-12": 2535.4,
284
+ "2006-01": 2550.36,
285
+ "2006-02": 2560.82,
286
+ "2006-03": 2571.83,
287
+ "2006-04": 2577.23,
288
+ "2006-05": 2579.81,
289
+ "2006-06": 2574.39,
290
+ "2006-07": 2579.28,
291
+ "2006-08": 2580.57,
292
+ "2006-09": 2585.99,
293
+ "2006-10": 2594.52,
294
+ "2006-11": 2602.56,
295
+ "2006-12": 2615.05,
296
+ "2007-01": 2626.56,
297
+ "2007-02": 2638.12,
298
+ "2007-03": 2647.88,
299
+ "2007-04": 2654.5,
300
+ "2007-05": 2661.93,
301
+ "2007-06": 2669.38,
302
+ "2007-07": 2675.79,
303
+ "2007-08": 2688.37,
304
+ "2007-09": 2693.21,
305
+ "2007-10": 2701.29,
306
+ "2007-11": 2711.55,
307
+ "2007-12": 2731.62,
308
+ "2008-01": 2746.37,
309
+ "2008-02": 2759.83,
310
+ "2008-03": 2773.08,
311
+ "2008-04": 2788.33,
312
+ "2008-05": 2810.36,
313
+ "2008-06": 2831.16,
314
+ "2008-07": 2846.16,
315
+ "2008-08": 2854.13,
316
+ "2008-09": 2861.55,
317
+ "2008-10": 2874.43,
318
+ "2008-11": 2884.78,
319
+ "2008-12": 2892.86,
320
+ "2009-01": 2906.74,
321
+ "2009-02": 2922.73,
322
+ "2009-03": 2928.57,
323
+ "2009-04": 2942.63,
324
+ "2009-05": 2956.46,
325
+ "2009-06": 2967.1,
326
+ "2009-07": 2974.22,
327
+ "2009-08": 2978.68,
328
+ "2009-09": 2985.83,
329
+ "2009-10": 2994.19,
330
+ "2009-11": 3006.47,
331
+ "2009-12": 3017.59,
332
+ "2010-01": 3040.22,
333
+ "2010-02": 3063.93,
334
+ "2010-03": 3079.86,
335
+ "2010-04": 3097.42,
336
+ "2010-05": 3110.74,
337
+ "2010-06": 3110.74,
338
+ "2010-07": 3111.05,
339
+ "2010-08": 3112.29,
340
+ "2010-09": 3126.29,
341
+ "2010-10": 3149.74,
342
+ "2010-11": 3175.88,
343
+ "2010-12": 3195.89,
344
+ "2011-01": 3222.42,
345
+ "2011-02": 3248.2,
346
+ "2011-03": 3273.86,
347
+ "2011-04": 3299.07,
348
+ "2011-05": 3314.58,
349
+ "2011-06": 3319.55,
350
+ "2011-07": 3324.86,
351
+ "2011-08": 3337.16,
352
+ "2011-09": 3354.85,
353
+ "2011-10": 3369.28,
354
+ "2011-11": 3386.8,
355
+ "2011-12": 3403.73,
356
+ "2012-01": 3422.79,
357
+ "2012-02": 3438.19,
358
+ "2012-03": 3445.41,
359
+ "2012-04": 3467.46,
360
+ "2012-05": 3479.94,
361
+ "2012-06": 3482.72,
362
+ "2012-07": 3497.7,
363
+ "2012-08": 3512.04,
364
+ "2012-09": 3532.06,
365
+ "2012-10": 3552.9,
366
+ "2012-11": 3574.22,
367
+ "2012-12": 3602.46,
368
+ "2013-01": 3633.44,
369
+ "2013-02": 3655.24,
370
+ "2013-03": 3672.42,
371
+ "2013-04": 3692.62,
372
+ "2013-05": 3706.28,
373
+ "2013-06": 3715.92,
374
+ "2013-07": 3717.03,
375
+ "2013-08": 3725.95,
376
+ "2013-09": 3738.99,
377
+ "2013-10": 3760.3,
378
+ "2013-11": 3780.61,
379
+ "2013-12": 3815.39,
380
+ "2014-01": 3836.37,
381
+ "2014-02": 3862.84,
382
+ "2014-03": 3898.38,
383
+ "2014-04": 3924.5,
384
+ "2014-05": 3942.55,
385
+ "2014-06": 3958.32,
386
+ "2014-07": 3958.72,
387
+ "2014-08": 3968.62,
388
+ "2014-09": 3991.24,
389
+ "2014-10": 4008.0,
390
+ "2014-11": 4028.44,
391
+ "2014-12": 4059.86,
392
+ "2015-01": 4110.2,
393
+ "2015-02": 4160.34,
394
+ "2015-03": 4215.26,
395
+ "2015-04": 4245.19,
396
+ "2015-05": 4276.6,
397
+ "2015-06": 4310.39,
398
+ "2015-07": 4337.11,
399
+ "2015-08": 4346.65,
400
+ "2015-09": 4370.12,
401
+ "2015-10": 4405.95,
402
+ "2015-11": 4450.45,
403
+ "2015-12": 4493.17,
404
+ "2016-01": 4550.23,
405
+ "2016-02": 4591.18,
406
+ "2016-03": 4610.92,
407
+ "2016-04": 4639.05,
408
+ "2016-05": 4675.23,
409
+ "2016-06": 4691.59,
410
+ "2016-07": 4715.99,
411
+ "2016-08": 4736.74,
412
+ "2016-09": 4740.53,
413
+ "2016-10": 4752.86,
414
+ "2016-11": 4761.42,
415
+ "2016-12": 4775.7,
416
+ "2017-01": 4793.85,
417
+ "2017-02": 4809.67,
418
+ "2017-03": 4821.69,
419
+ "2017-04": 4828.44,
420
+ "2017-05": 4843.41,
421
+ "2017-06": 4832.27,
422
+ "2017-07": 4843.87,
423
+ "2017-08": 4853.07,
424
+ "2017-09": 4860.83,
425
+ "2017-10": 4881.25,
426
+ "2017-11": 4894.92,
427
+ "2017-12": 4916.46,
428
+ "2018-01": 4930.72,
429
+ "2018-02": 4946.5,
430
+ "2018-03": 4950.95,
431
+ "2018-04": 4961.84,
432
+ "2018-05": 4981.69,
433
+ "2018-06": 5044.46,
434
+ "2018-07": 5061.11,
435
+ "2018-08": 5056.56,
436
+ "2018-09": 5080.83,
437
+ "2018-10": 5103.69,
438
+ "2018-11": 5092.97,
439
+ "2018-12": 5100.61,
440
+ "2019-01": 5116.93,
441
+ "2019-02": 5138.93,
442
+ "2019-03": 5177.47,
443
+ "2019-04": 5206.98,
444
+ "2019-05": 5213.75,
445
+ "2019-06": 5214.27,
446
+ "2019-07": 5224.18,
447
+ "2019-08": 5229.93,
448
+ "2019-09": 5227.84,
449
+ "2019-10": 5233.07,
450
+ "2019-11": 5259.76,
451
+ "2019-12": 5320.25,
452
+ "2020-01": 5331.42,
453
+ "2020-02": 5344.75,
454
+ "2020-03": 5348.49,
455
+ "2020-04": 5331.91,
456
+ "2020-05": 5311.65,
457
+ "2020-06": 5325.46,
458
+ "2020-07": 5344.63,
459
+ "2020-08": 5357.46,
460
+ "2020-09": 5391.75,
461
+ "2020-10": 5438.12,
462
+ "2020-11": 5486.52,
463
+ "2020-12": 5560.59,
464
+ "2021-01": 5574.49,
465
+ "2021-02": 5622.43,
466
+ "2021-03": 5674.72,
467
+ "2021-04": 5692.31,
468
+ "2021-05": 5739.56,
469
+ "2021-06": 5769.98,
470
+ "2021-07": 5825.37,
471
+ "2021-08": 5876.05,
472
+ "2021-09": 5944.21,
473
+ "2021-10": 6018.51,
474
+ "2021-11": 6075.69,
475
+ "2021-12": 6120.04,
476
+ "2022-01": 6153.09,
477
+ "2022-02": 6215.24,
478
+ "2022-03": 6315.93,
479
+ "2022-04": 6382.88,
480
+ "2022-05": 6412.88,
481
+ "2022-06": 6455.85,
482
+ "2022-07": 6411.95,
483
+ "2022-08": 6388.87,
484
+ "2022-09": 6370.34,
485
+ "2022-10": 6407.93,
486
+ "2022-11": 6434.2,
487
+ "2022-12": 6474.09,
488
+ "2023-01": 6508.4,
489
+ "2023-02": 6563.07,
490
+ "2023-03": 6609.67,
491
+ "2023-04": 6649.99,
492
+ "2023-05": 6665.28,
493
+ "2023-06": 6659.95,
494
+ "2023-07": 6667.94,
495
+ "2023-08": 6683.28,
496
+ "2023-09": 6700.66,
497
+ "2023-10": 6716.74,
498
+ "2023-11": 6735.55,
499
+ "2023-12": 6773.27,
500
+ "2024-01": 6801.72,
501
+ "2024-02": 6858.17,
502
+ "2024-03": 6869.14,
503
+ "2024-04": 6895.24,
504
+ "2024-05": 6926.96,
505
+ "2024-06": 6941.51,
506
+ "2024-07": 6967.89,
507
+ "2024-08": 6966.5,
508
+ "2024-09": 6997.15,
509
+ "2024-10": 7036.33,
510
+ "2024-11": 7063.77,
511
+ "2024-12": 7100.5,
512
+ "2025-01": 7111.86,
513
+ "2025-02": 7205.03,
514
+ "2025-03": 7245.38,
515
+ "2025-04": 7276.54,
516
+ "2025-05": 7295.46,
517
+ "2025-06": 7312.97,
518
+ "2025-07": 7331.98,
519
+ "2025-08": 7323.91,
520
+ "2025-09": 7359.06,
521
+ "2025-10": 7365.68,
522
+ "2025-11": 7378.94,
523
+ "2025-12": 7403.29,
524
+ "2026-01": 7427.72,
525
+ "2026-02": 7479.71,
526
+ "2026-03": 7545.53
527
+ }
528
+ }
529
+ }