diff --git a/CATALOG.md b/CATALOG.md index af812cc..a6cf2e3 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -6,7 +6,7 @@ The dataset registry, **auto-generated** from the sidecar manifests (`lectures/*.yml`). Do not edit by hand — run `python scripts/build_catalog.py`. A dataset appears here once it has a manifest, which may be before its consuming lectures are repointed — an empty **Used by** column means the file is here and documented but no lecture reads it from this repo yet. Files still to migrate are tracked in [PLAN.md](PLAN.md). -**33 datasets** · 33 read by lectures today · 113.0 MB total · 28 permitted / 5 restricted redistribution +**36 datasets** · 36 read by lectures today · 113.1 MB total · 30 permitted / 6 restricted redistribution | Dataset | Class | Source | Licence | Redist. | Integrity | Builder | Size | Used by | | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -15,6 +15,8 @@ The dataset registry, **auto-generated** from the sidecar manifests (`lectures/* | [**SCF_plus_mini_no_weights.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/SCF_plus_mini_no_weights.csv)
SCF+ mini, weight-expanded — net wealth and income, 1950-2016 | constructed | [SCF+ (Kuhn, Schularick and Steins) — an extension of the Survey of Consumer Finances](https://www.journals.uchicago.edu/doi/10.1086/708815) | | ✅ permitted | ⚠️ unverifiable | committed-frozen | 72.4 MB | [lecture-python-intro · mle.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/mle.md)
[lecture-wasm · mle.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/mle.md)
[lecture-intro.zh-cn · mle.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/mle.md)
[test-actions-lecture-intro · mle.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/mle.md) | | [**ames_house_prices.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/ames_house_prices.csv)
Ames, Iowa — residential house sales, 2006-2010 | constructed | [Ames Housing data (De Cock 2011), Journal of Statistics Education](http://jse.amstat.org/v19n3/decock.pdf) | | ✅ permitted | ✅ verified | ✅ committed | 75.2 KB | [lecture-python-intro · observed_distributions.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/observed_distributions.md)
[lecture-python-intro · fitting_distributions.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/fitting_distributions.md)
[lecture-intro.zh-cn · fitting_distributions.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/fitting_distributions.md)
[lecture-intro.zh-cn · observed_distributions.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/observed_distributions.md) | | [**assignat.xlsx**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/assignat.xlsx)
French Revolution — assignat issues, budgets and seigniorage (Sargent-Velde) | verbatim | [Sargent and Velde, "Macroeconomic Features of the French Revolution" — supporting spreadsheets](https://www.journals.uchicago.edu/doi/10.1086/261992) | | ✅ permitted | ⚠️ unverifiable | n/a (verbatim) | 204.6 KB | [lecture-python-intro · french_rev.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/french_rev.md)
[lecture-wasm · french_rev.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/french_rev.md)
[lecture-intro.zh-cn · french_rev.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/french_rev.md)
[test-actions-lecture-intro · french_rev.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/french_rev.md) | +| [**bbh_macro_quarterly.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/bbh_macro_quarterly.csv)
Bhandari-Borovička-Ho replication — quarterly US macro series for the belief-wedge VAR, 1955Q1-2019Q4 | constructed | [Replication package for "Survey data and subjective beliefs in business cycle models" (Bhandari, Borovička and Ho), file `data input/FRED/data_FRED.xlsx`](https://doi.org/10.5281/zenodo.10194324) | CC-BY-4.0 | ✅ permitted | ✅ verified | ✅ committed | 31.5 KB | [lecture-python-advanced.myst · subjective_beliefs_business_cycles.md](https://github.com/QuantEcon/lecture-python-advanced.myst/blob/main/lectures/subjective_beliefs_business_cycles.md)
⚠️ Reads its own copy at `lectures/_static/lecture_specific/subjective_beliefs_business_cycles/`, not this file — the repoint PR in lecture-python-advanced.myst follows this one, and migration.yml records the dataset as `landed` until it merges | +| [**bbh_michigan_monthly.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/bbh_michigan_monthly.csv)
Michigan Surveys of Consumers monthly aggregates and the US unemployment rate, 1978-01 to 2020-03 (BBH replication extract) | constructed | [Bhandari, Borovička and Ho replication package (Zenodo), carrying University of Michigan Surveys of Consumers published aggregates and a US Bureau of Labor Statistics series retrieved via FRED](https://doi.org/10.5281/zenodo.10194324) | CC-BY-4.0 | ⚠️ restricted | ✅ verified | ✅ committed | 11.9 KB | [lecture-python-advanced.myst · subjective_beliefs_business_cycles.md](https://github.com/QuantEcon/lecture-python-advanced.myst/blob/main/lectures/subjective_beliefs_business_cycles.md)
⚠️ Reads its own copy at `lectures/_static/lecture_specific/subjective_beliefs_business_cycles/`, not this file — the repoint PR in lecture-python-advanced.myst follows this one, and migration.yml records the dataset as `landed` until it merges | | [**caron.npy**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/caron.npy)
French Revolution — monthly specie value of the assignat, 1791-1796 | constructed | unrecorded | | ✅ permitted | ⚠️ unverifiable | ⚠️ unrecovered | 1.1 KB | [lecture-python-intro · french_rev.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/french_rev.md)
[lecture-wasm · french_rev.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/french_rev.md)
[lecture-intro.zh-cn · french_rev.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/french_rev.md)
[test-actions-lecture-intro · french_rev.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/french_rev.md)
⚠️ Reads a local `datasets/` copy, not this file | | [**chapter_3.xlsx**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/chapter_3.xlsx)
The Ends of Four Big Inflations — appendix tables, transcribed | constructed | [Sargent, "Rational Expectations and Inflation", chapter 3 appendix tables](https://press.princeton.edu/books/paperback/9780691158709/rational-expectations-and-inflation) | | ✅ permitted | ⚠️ unverifiable | ⚠️ unrecovered | 71.6 KB | [lecture-python-intro · inflation_history.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/inflation_history.md)
[lecture-wasm · inflation_history.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/inflation_history.md)
[lecture-intro.zh-cn · inflation_history.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/inflation_history.md)
[test-actions-lecture-intro · inflation_history.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/inflation_history.md) | | [**cities_brazil.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/cities_brazil.csv)
World Population Review — Brazilian city populations, 2023 | verbatim | [World Population Review — cities in Brazil](https://worldpopulationreview.com/countries/cities/brazil) | | ⚠️ restricted | ⚠️ unverifiable | n/a (verbatim) | 17.5 KB | [lecture-python-intro · heavy_tails.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/heavy_tails.md)
[lecture-wasm · heavy_tails.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/heavy_tails.md)
[lecture-intro.zh-cn · heavy_tails.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/heavy_tails.md)
[test-actions-lecture-intro · heavy_tails.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/heavy_tails.md) | @@ -27,6 +29,7 @@ The dataset registry, **auto-generated** from the sidecar manifests (`lectures/* | [**forbes-billionaires.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/forbes-billionaires.csv)
Forbes Billionaires — individual net worth | constructed | [Forbes Billionaires](https://www.forbes.com/billionaires/) | | ⚠️ restricted | ⚠️ unverifiable | committed-frozen | 775.7 KB | [lecture-python-intro · heavy_tails.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/heavy_tails.md)
[lecture-wasm · heavy_tails.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/heavy_tails.md)
[lecture-intro.zh-cn · heavy_tails.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/heavy_tails.md)
[test-actions-lecture-intro · heavy_tails.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/heavy_tails.md) | | [**forbes-global2000.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/forbes-global2000.csv)
Forbes Global 2000 — firm size measures | constructed | [Forbes Global 2000](https://www.forbes.com/lists/global2000/) | | ⚠️ restricted | ⚠️ unverifiable | committed-frozen | 115.6 KB | [lecture-python-intro · heavy_tails.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/heavy_tails.md)
[lecture-wasm · heavy_tails.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/heavy_tails.md)
[lecture-intro.zh-cn · heavy_tails.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/heavy_tails.md)
[test-actions-lecture-intro · heavy_tails.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/heavy_tails.md) | | [**fp.dta**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/fp.dta)
Treisman (2016) Russia's Billionaires — country-year panel of billionaire counts and covariates | verbatim | [Replication package for Treisman (2016), "Russia's Billionaires" (AER Papers & Proceedings)](https://www.aeaweb.org/articles?id=10.1257/aer.p20161068) | | ✅ permitted | ✅ verified | n/a (verbatim) | 1000.1 KB | [lecture-python.myst · mle.md](https://github.com/QuantEcon/lecture-python.myst/blob/main/lectures/mle.md)
[lecture-python.zh-cn · mle.md](https://github.com/QuantEcon/lecture-python.zh-cn/blob/main/lectures/mle.md)
[lecture-stats · mle.md](https://github.com/QuantEcon/lecture-stats/blob/main/lectures/mle.md) | +| [**hansen_jagannathan_1991_data.json**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/hansen_jagannathan_1991_data.json)
Hansen-Jagannathan (1991) replication — US asset returns 1891-1986, with annual consumption (three-table bundle) | constructed | [Robert J. Shiller's public data workbooks (chapt26.xlsx, ie_data.xls) and FRED](http://www.econ.yale.edu/~shiller/data.htm) | | ✅ permitted | ✅ verified | ⚠️ unrecovered | 62.0 KB | [lecture-python-advanced.myst · hansen_jagannathan_1991.md](https://github.com/QuantEcon/lecture-python-advanced.myst/blob/main/lectures/hansen_jagannathan_1991.md)
⚠️ Reads its own copy over an own-repo raw URL (`lecture-python-advanced.myst/.../hansen_jagannathan_1991/`), not this file — the repoint PR follows this one, and migration.yml records the dataset as `landed` until it merges | | [**hansen_singleton_1982_data.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/hansen_singleton_1982_data.csv)
Hansen-Singleton (1982) replication — monthly US gross real market return and consumption growth, 1959-1978 | constructed | [FRED (BEA and BLS monthly series) and the Ken French data library (F-F_Research_Data_Factors)](https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data_library.html) | | ✅ permitted | ✅ verified | ✅ committed | 11.4 KB | [lecture-python.myst · hansen_singleton_1982.md](https://github.com/QuantEcon/lecture-python.myst/blob/main/lectures/hansen_singleton_1982.md)
[lecture-python.zh-cn · hansen_singleton_1982.md](https://github.com/QuantEcon/lecture-python.zh-cn/blob/main/lectures/hansen_singleton_1982.md) | | [**hansen_singleton_1983_data.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/hansen_singleton_1983_data.csv)
Hansen-Singleton (1983) replication — monthly US returns, consumption and inflation, 1959-1978 | constructed | [FRED (BEA and BLS monthly series) and the Ken French data library (F-F_Research_Data_Factors)](https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data_library.html) | | ✅ permitted | ✅ verified | ✅ committed | 25.5 KB | [lecture-python.myst · hansen_singleton_1983.md](https://github.com/QuantEcon/lecture-python.myst/blob/main/lectures/hansen_singleton_1983.md)
[lecture-python.zh-cn · hansen_singleton_1983.md](https://github.com/QuantEcon/lecture-python.zh-cn/blob/main/lectures/hansen_singleton_1983.md) | | [**japan_deaths_by_age.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/japan_deaths_by_age.csv)
Japan — deaths by single year of age, 2023 | constructed | [United Nations, Department of Economic and Social Affairs, Population Division — World Population Prospects 2024](https://population.un.org/wpp/downloads) | CC BY 3.0 IGO | ✅ permitted | ✅ verified | ✅ committed | 1.7 KB | [lecture-python-intro · observed_distributions.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/observed_distributions.md)
[lecture-python-intro · fitting_distributions.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/fitting_distributions.md)
[lecture-intro.zh-cn · fitting_distributions.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/fitting_distributions.md)
[lecture-intro.zh-cn · observed_distributions.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/observed_distributions.md) | diff --git a/builders/bbh_macro_quarterly.py b/builders/bbh_macro_quarterly.py new file mode 100644 index 0000000..f78a1fb --- /dev/null +++ b/builders/bbh_macro_quarterly.py @@ -0,0 +1,250 @@ +#!/usr/bin/env python3 +""" +Builder for lectures/bbh_macro_quarterly.csv. + +Extracts the fourteen FRED series the `subjective_beliefs_business_cycles` +lecture's forecasting VAR is built from, over 1955Q1-2019Q4, out of the +Bhandari-Borovicka-Ho replication package on Zenodo. + +The input is `data input/FRED/data_FRED.xlsx` inside the package: a snapshot +the authors took of FRED through 2022, in two sheets -- `FRED_Q` for the series +FRED publishes quarterly and `FRED_M` for the monthly ones. This builder takes +the quarterly sheet as it stands, averages each monthly series over the three +months of its quarter, keeps the fourteen columns the lecture reads, cuts the +window to 1955Q1-2019Q4 and rounds to four decimals. + +It deliberately does NOT read live FRED. These are the authors' 2022-vintage +values; every national-accounts series here has been revised and rebased since, +so a live fetch would change the lecture's figures. The Zenodo record is a +versioned, immutable DOI, which is what makes this reproducible -- the builder +pins the extracted workbook by sha256. + +The package is a 198.8 MB zip and the workbook inside it is 169 KB, so the +fetch stage reads the zip's central directory and then the single member it +needs over HTTP range requests -- four requests and 296 KB, measured. If the +host stops honouring ranges it falls back to downloading the whole archive. + +Migrated from QuantEcon/lecture-python-advanced.myst, where the CSV sat at +lectures/_static/lecture_specific/subjective_beliefs_business_cycles/ with no +build script of any kind. This builder is a RECONSTRUCTION of the extraction, +not a recovered original: it was written from the committed bytes and the +replication package, and it reproduces the committed file exactly (see +validate() and the manifest's integrity block). + +Stages: fetch -> pre-process -> validate -> write. + +Requires pandas and openpyxl. +""" +import hashlib +import io +import os +import urllib.request +import zipfile + +import pandas as pd + +CURRENT_FILE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.dirname(CURRENT_FILE_DIR) +PUBLISHED_DIR = os.path.join(REPO_ROOT, 'lectures') + +OUT_FILE = 'bbh_macro_quarterly.csv' + +# Zenodo versioned record 10.5281/zenodo.10194324 (concept DOI +# 10.5281/zenodo.10194323), CC-BY-4.0, published 2023-11-22. +ZIP_URL = ('https://zenodo.org/api/records/10194324/files/' + 'replication%20package.zip/content') +ZIP_SIZE = 198817944 +MEMBER = 'replication package/data input/FRED/data_FRED.xlsx' +MEMBER_SHA256 = ('f2d330ea4737963f56bc68af8c7b6833' + 'a4ac7c6aa9c16014927a9e9b0165ba5d') + +# Sheet FRED_Q carries these at quarterly frequency already. +QUARTERLY = ['GDP', 'GDPC1', 'GDPPOT', 'PCESV', 'GPDI', 'PIRIC', + 'PRS85006023'] +# Sheet FRED_M carries these monthly; each quarter is the mean of its 3 months. +MONTHLY = ['CPIAUCSL', 'PCEND', 'UNRATE', 'CUMFNS', 'FEDFUNDS', 'CE16OV', + 'CNP16OV'] +# Column order of the published file. +COLUMNS = ['GDP', 'GDPC1', 'GDPPOT', 'PCESV', 'GPDI', 'PIRIC', 'PRS85006023', + 'CPIAUCSL', 'PCEND', 'UNRATE', 'CUMFNS', 'FEDFUNDS', 'CE16OV', + 'CNP16OV'] + +FIRST_QUARTER = 19551 +LAST_QUARTER = 20194 +N_QUARTERS = 260 # 1955Q1..2019Q4 inclusive, no gaps +DECIMALS = 4 + +# PCEND is the one gap: FRED publishes it from 1959-01, so the first sixteen +# quarters of the window (1955Q1-1958Q4) are empty and every other column is +# complete. Declared here so a NEW hole fails validation instead of shipping. +KNOWN_NULLS = {'PCEND': 16} + + +class _HttpRangeReader(io.RawIOBase): + """Seekable read-only file over HTTP Range requests.""" + + def __init__(self, url, size): + self.url, self.size, self.pos = url, size, 0 + + def seekable(self): + return True + + def readable(self): + return True + + def seek(self, offset, whence=os.SEEK_SET): + if whence == os.SEEK_SET: + self.pos = offset + elif whence == os.SEEK_CUR: + self.pos += offset + else: + self.pos = self.size + offset + return self.pos + + def tell(self): + return self.pos + + def read(self, n=-1): + if n is None or n < 0: + n = self.size - self.pos + end = min(self.pos + n, self.size) - 1 + if end < self.pos: + return b'' + request = urllib.request.Request( + self.url, headers={'Range': f'bytes={self.pos}-{end}'}) + with urllib.request.urlopen(request) as response: + if response.status != 206: + raise OSError('server ignored the Range request') + payload = response.read() + self.pos += len(payload) + return payload + + def readinto(self, buffer): + payload = self.read(len(buffer)) + buffer[:len(payload)] = payload + return len(payload) + + +def _open_archive(): + """The replication package, read over ranges where the host allows it.""" + try: + reader = io.BufferedReader(_HttpRangeReader(ZIP_URL, ZIP_SIZE), + buffer_size=1 << 18) + return zipfile.ZipFile(reader) + except (OSError, zipfile.BadZipFile): + with urllib.request.urlopen(ZIP_URL) as response: + return zipfile.ZipFile(io.BytesIO(response.read())) + + +def fetch(): + """Pull data_FRED.xlsx out of the Zenodo package, pinned by hash.""" + # ZipFile owns the BufferedReader wrapping the HTTP range reader, so closing + # it closes the connection too. Without this the socket is left to the + # garbage collector, which matters because this builder is meant to be + # re-run -- the byte-identity check reruns it on every verification pass. + with _open_archive() as archive: + payload = archive.read(MEMBER) + digest = hashlib.sha256(payload).hexdigest() + if digest != MEMBER_SHA256: + raise ValueError( + f'{MEMBER} hashed {digest}, expected {MEMBER_SHA256}; the Zenodo ' + 'record is versioned and immutable, so this means the fetch is ' + 'wrong, not that the source moved') + return payload + + +def pre_process(payload): + workbook = pd.ExcelFile(io.BytesIO(payload)) + quarterly = workbook.parse('FRED_Q').set_index('YYYYQ') + monthly = workbook.parse('FRED_M') + + # YYYYMM -> YYYYQ, then the mean of the quarter's three months. Every + # quarter in the window has all three or none (checked in validate()), so + # a skipna mean and a strict 3-month mean agree here. + monthly['YYYYQ'] = monthly['YYYY'] * 10 + (monthly['MM'] - 1) // 3 + 1 + averaged = monthly.groupby('YYYYQ')[MONTHLY].mean() + + window = range(FIRST_QUARTER, LAST_QUARTER + 1) + index = [q for q in window if q % 10 in (1, 2, 3, 4)] + frame = pd.concat([quarterly[QUARTERLY].reindex(index), + averaged.reindex(index)], axis=1)[COLUMNS] + frame.index.name = 'YYYYQ' + return frame.round(DECIMALS) + + +def validate(frame): + """Refuse to write anything that is not the shape we expect.""" + assert list(frame.columns) == COLUMNS, list(frame.columns) + assert frame.index.name == 'YYYYQ' + assert (frame.dtypes == 'float64').all() + + # 1955Q1..2019Q4 on an unbroken quarterly grid. A short fetch, or a + # truncated sheet, fails here rather than publishing a shorter panel. + assert len(frame) == N_QUARTERS, f'expected {N_QUARTERS}, got {len(frame)}' + assert frame.index[0] == FIRST_QUARTER + assert frame.index[-1] == LAST_QUARTER + assert frame.index.is_monotonic_increasing + assert set(frame.index % 10) == {1, 2, 3, 4} + quarters = (frame.index // 10) * 4 + (frame.index % 10) + assert (pd.Series(quarters).diff().dropna() == 1).all(), 'gap in the grid' + + # Exactly the declared holes, and nowhere else. + nulls = frame.isnull().sum() + assert dict(nulls[nulls > 0]) == KNOWN_NULLS, dict(nulls[nulls > 0]) + assert frame['PCEND'].loc[:19584].isnull().all() + assert frame['PCEND'].loc[19591:].notnull().all() + + # Units. Every column is a level in the units this VINTAGE of FRED + # published it in, and the lecture takes logs and ratios of them, so a + # rebasing or a units change would pass every structural check above and + # quietly rescale the figures. Bands are wide relative to the observed + # 1955-2019 spread; the measured min/max are in the manifest. + bands = { + 'GDP': (100, 50000), # billions $, SAAR obs 413-21694 + 'GDPC1': (1000, 40000), # billions chained 2012 obs 2815-19202 + 'GDPPOT': (1000, 40000), # billions chained 2012 obs 2758-19226 + 'PCESV': (50, 30000), # billions $, SAAR obs 108-10113 + 'GPDI': (10, 10000), # billions $, SAAR obs 65-3858 + 'PIRIC': (0.1, 10), # index 2012=1 obs 0.84-3.86 + 'PRS85006023': (50, 200), # index 2012=100 obs 98-117 + 'CPIAUCSL': (10, 500), # index 1982-84=100 obs 26.8-257.8 + 'PCEND': (50, 10000), # billions $, SAAR obs 126-3002 + 'UNRATE': (0, 30), # percent obs 3.4-10.7 + 'CUMFNS': (0, 100), # percent obs 63.8-91.6 + 'FEDFUNDS': (0, 30), # percent obs 0.07-17.78 + 'CE16OV': (10000, 400000), # thousands of persons obs 60815-158544 + 'CNP16OV': (50000, 600000), # thousands of persons obs 109130-260015 + } + for column, (low, high) in bands.items(): + series = frame[column].dropna() + assert series.between(low, high).all(), f'{column} out of band' + + # The 2012 base is the fingerprint of this vintage: FRED rebased all three + # to 2017 years ago, so if a future edit ever points this builder at live + # FRED, THIS is the assertion that catches it rather than a silent rescale. + base = [20121, 20122, 20123, 20124] + assert abs((frame.loc[base, 'GDP'] / frame.loc[base, 'GDPC1']).mean() + - 1.0) < 5e-4, 'real GDP is not on the 2012 base' + assert abs(frame.loc[base, 'PIRIC'].mean() - 1.0) < 5e-3 + assert abs(frame.loc[base, 'PRS85006023'].mean() - 100.0) < 5e-1 + + # Employment and population are both in thousands of persons and the + # lecture divides one by the other, so a rescaling of just one of them + # would sit inside the bands above and still wreck `hours_pc`. The ratio is + # the employment-population ratio: observed 0.552-0.646 here. NOT a + # monotonicity check on the population -- CNP16OV steps DOWN in 2008Q1, + # 2017Q1 and 2019Q1 on the BLS January population controls. + ratio = frame['CE16OV'] / frame['CNP16OV'] + assert ratio.between(0.4, 0.8).all(), 'employment-population ratio is off' + + +def run(): + frame = pre_process(fetch()) + validate(frame) + frame.to_csv(os.path.join(PUBLISHED_DIR, OUT_FILE)) + print(f'wrote {OUT_FILE}: {frame.shape[0]} rows x {frame.shape[1]} cols ' + f'({frame.index.min()} .. {frame.index.max()})') + + +if __name__ == '__main__': + run() diff --git a/builders/bbh_michigan_monthly.py b/builders/bbh_michigan_monthly.py new file mode 100644 index 0000000..4203bcc --- /dev/null +++ b/builders/bbh_michigan_monthly.py @@ -0,0 +1,267 @@ +#!/usr/bin/env python3 +""" +Builder for lectures/bbh_michigan_monthly.csv. + +Rebuilds the monthly Michigan Survey of Consumers aggregates that the +`subjective_beliefs_business_cycles` lecture reads, by extracting three members +from the Bhandari-Borovicka-Ho replication package deposited on Zenodo +(doi:10.5281/zenodo.10194324, CC BY 4.0): + + data input/Michigan/PX1_M.csv -> px1_mean (column px1_mean_all) + data input/Michigan/UMEX_M.csv -> share_more (column umex_u_all) + share_same (column umex_s_all) + share_less (column umex_f_all) + data input/FRED/data_FRED.xlsx -> unrate (sheet FRED_M, column UNRATE) + +QuantEcon's contribution is the extraction: pick five columns out of the 375 +those three members carry (273 + 81 + 21), rename them, restrict to the "all +households" demographic cell, window to 1978-01..2020-03, and write a tidy CSV. +No arithmetic is performed -- every value is copied verbatim. It was written +during the wave-C1 migration (2026-08-17) by reverse-engineering the committed +bytes; it did not accompany them into lecture-python-advanced.myst. It +reproduces the committed file byte for byte (sha256 567efe5a...). + +Why the deposit and not the live sources: the four Michigan columns are the +*vintage the paper used* (the package's Michigan CSVs were cut 2021-12-17, and +the Surveys of Consumers revise), and the unemployment column matches a 2023 +FRED vintage rather than today's -- three months of UNRATE have since been +revised by 0.1pp. A Zenodo DOI deposit is immutable, so it pins both. Refetching +from data.sca.isr.umich.edu and FRED today would silently adopt a new vintage, +which AGENTS.md ("A migration moves bytes; it does not update them") forbids. + +Network cost: the deposit is a single 189 MiB zip. This builder HTTP-range-reads +the zip's central directory and then only the three compressed members it needs +(~310 KiB), falling back to a full download if the host stops honouring Range. + +Stages: fetch -> pre-process -> validate -> write. + +Requires pandas and openpyxl (for the .xlsx member) plus the standard library. +""" +import io +import json +import os +import urllib.request +import zipfile + +import pandas as pd + +CURRENT_FILE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.dirname(CURRENT_FILE_DIR) +PUBLISHED_DIR = os.path.join(REPO_ROOT, 'lectures') + +OUT_FILE = 'bbh_michigan_monthly.csv' + +ZENODO_RECORD = '10194324' +ZENODO_API = f'https://zenodo.org/api/records/{ZENODO_RECORD}' +# Declared by the Zenodo record on 2026-08-17. Asserted, not trusted: a changed +# deposit is a changed vintage and must fail loudly rather than rebuild quietly. +ZIP_KEY = 'replication package.zip' +ZIP_MD5 = '6e33f9b9e70135cbf3304275d1c5d604' +ZIP_SIZE = 198817944 + +MEMBER_PX1 = 'replication package/data input/Michigan/PX1_M.csv' +MEMBER_UMEX = 'replication package/data input/Michigan/UMEX_M.csv' +MEMBER_FRED = 'replication package/data input/FRED/data_FRED.xlsx' +FRED_SHEET = 'FRED_M' + +# CRC32 of each member as recorded in the deposit's central directory +# (read 2026-08-17). zipfile verifies these on read; asserting them as well +# names the vintage in the source rather than leaving it implicit. +MEMBER_CRC = { + MEMBER_PX1: 0x9cc4bf83, + MEMBER_UMEX: 0x8e5b8eb5, + MEMBER_FRED: 0x615ce461, +} + +# source column -> published column. The `_all` suffix is the survey's +# all-households cell; the package also ships the same statistics broken out by +# age, income, education, region and gender, none of which is published here. +COLUMN_MAP = { + 'px1_mean_all': 'px1_mean', # mean expected price change, next 12 months + 'umex_u_all': 'share_more', # "more unemployment" (Michigan table 30) + 'umex_s_all': 'share_same', # "about the same" + 'umex_f_all': 'share_less', # "less unemployment" +} +COLUMNS = ['px1_mean', 'share_more', 'share_same', 'share_less', 'unrate'] +INDEX_NAME = 'yyyymm' + +# The committed window. Exact by design, not a floor with headroom: 197801 is +# where the package's Michigan monthly files begin, and 202003 is where the +# committed extract was cut (the package itself runs to 202110). The lecture +# only reads the first month of each quarter from 198204 to 202001, so this is +# already wider than the lecture needs. +FIRST_MONTH = 197801 +LAST_MONTH = 202003 +N_MONTHS = 507 + + +def _range_get(url, start, end): + request = urllib.request.Request( + url, headers={'Range': f'bytes={start}-{end}'}) + with urllib.request.urlopen(request) as response: + return response.read(), response.status + + +class _RemoteZipFile(io.IOBase): + """Seekable read-only file over HTTP Range requests.""" + + def __init__(self, url, size): + self.url, self.size, self.pos = url, size, 0 + + def readable(self): + return True + + def seekable(self): + return True + + def tell(self): + return self.pos + + def seek(self, offset, whence=0): + if whence == 0: + self.pos = offset + elif whence == 1: + self.pos += offset + else: + self.pos = self.size + offset + return self.pos + + def read(self, n=-1): + if n is None or n < 0: + n = self.size - self.pos + if n <= 0 or self.pos >= self.size: + return b'' + end = min(self.pos + n, self.size) - 1 + payload, status = _range_get(self.url, self.pos, end) + if status != 206: + raise OSError('server ignored Range request') + self.pos += len(payload) + return payload + + def readinto(self, buffer): + payload = self.read(len(buffer)) + buffer[:len(payload)] = payload + return len(payload) + + +def open_deposit(): + """Return an open ZipFile over the Zenodo deposit, without downloading it + whole if the host honours Range requests.""" + with urllib.request.urlopen(ZENODO_API) as response: + record = json.load(response) + files = {f['key']: f for f in record['files']} + if ZIP_KEY not in files: + raise KeyError(f'{ZENODO_API}: no file named {ZIP_KEY!r}') + entry = files[ZIP_KEY] + if entry['checksum'] != f'md5:{ZIP_MD5}' or entry['size'] != ZIP_SIZE: + raise ValueError( + 'Zenodo deposit has changed: expected ' + f'md5:{ZIP_MD5} / {ZIP_SIZE} B, got ' + f"{entry['checksum']} / {entry['size']} B") + url = entry['links']['self'] + try: + return zipfile.ZipFile( + io.BufferedReader(_RemoteZipFile(url, ZIP_SIZE), buffer_size=1 << 18)) + except OSError: + # Range unsupported: fall back to fetching the whole 189 MiB deposit. + with urllib.request.urlopen(url) as response: + payload = response.read() + return zipfile.ZipFile(io.BytesIO(payload)) + + +def fetch(): + with open_deposit() as deposit: + for member, crc in MEMBER_CRC.items(): + found = deposit.getinfo(member).CRC + if found != crc: + raise ValueError( + f'{member}: expected CRC32 0x{crc:08x}, got 0x{found:08x}') + # ZipFile.read() verifies each member's CRC32 as it decompresses. + px1 = pd.read_csv(io.BytesIO(deposit.read(MEMBER_PX1))) + umex = pd.read_csv(io.BytesIO(deposit.read(MEMBER_UMEX))) + fred = pd.read_excel(io.BytesIO(deposit.read(MEMBER_FRED)), + sheet_name=FRED_SHEET) + return px1, umex, fred + + +def pre_process(raw): + px1, umex, fred = raw + + survey = (px1.set_index('yyyymm')[['px1_mean_all']] + .join(umex.set_index('yyyymm')[ + ['umex_u_all', 'umex_s_all', 'umex_f_all']], how='inner') + .rename(columns=COLUMN_MAP)) + unrate = (fred.set_index('YYYYMM')['UNRATE'] + .rename('unrate').rename_axis(INDEX_NAME)) + + frame = survey.join(unrate, how='inner') + frame = frame.loc[FIRST_MONTH:LAST_MONTH, COLUMNS].copy() + + # The three response shares are whole percents in the source and are + # published as integers; a float column here would change the bytes. + for column in ['share_more', 'share_same', 'share_less']: + frame[column] = frame[column].astype('int64') + frame.index = frame.index.astype('int64') + frame.index.name = INDEX_NAME + return frame + + +def validate(frame): + """Refuse to write anything that is not the shape we expect.""" + assert list(frame.columns) == COLUMNS, list(frame.columns) + assert frame.index.name == INDEX_NAME + assert not frame.isnull().values.any(), 'unexpected nulls' + + # The window is frozen -- a short fetch, a truncated member or an upstream + # re-cut fails here rather than silently publishing a different series. + assert len(frame) == N_MONTHS, f'expected {N_MONTHS} rows, got {len(frame)}' + assert frame.index[0] == FIRST_MONTH + assert frame.index[-1] == LAST_MONTH + assert frame.index.is_monotonic_increasing + assert frame.index.is_unique + + # yyyymm on an unbroken monthly grid: month field always in 1..12, and + # consecutive stamps always one calendar month apart. + months = frame.index % 100 + assert months.min() >= 1 and months.max() <= 12, 'bad month field' + ordinal = (frame.index // 100) * 12 + months + assert (pd.Series(ordinal).diff().dropna() == 1).all(), \ + 'index is not an unbroken monthly grid' + + assert frame['px1_mean'].dtype == 'float64' + assert frame['unrate'].dtype == 'float64' + for column in ['share_more', 'share_same', 'share_less']: + assert frame[column].dtype == 'int64' + + # Units guard. All five columns are percentages or percentage points; a + # source switching to fractions would pass every structural check above and + # quietly rescale every figure in the lecture. Bands are wide relative to + # the observed 1978-2020 spread (px1_mean 1.0-13.8, unrate 3.5-10.8), and + # the max() floors are what actually catch a divide-by-100 -- a band alone + # does not, since fractions sit inside it. + assert frame['px1_mean'].between(-5, 30).all(), \ + 'px1_mean is not a percent-per-year inflation expectation' + assert frame['px1_mean'].max() > 1.0, 'px1_mean looks rescaled to fractions' + assert frame['unrate'].between(0, 30).all(), \ + 'unrate is not a percent unemployment rate' + assert frame['unrate'].max() > 1.0, 'unrate looks rescaled to fractions' + for column in ['share_more', 'share_same', 'share_less']: + assert frame[column].between(0, 100).all(), f'{column} is not a percent' + + # The three shares are the answer distribution net of "don't know", so they + # sum to at most 100 and never to much less. + total = frame['share_more'] + frame['share_same'] + frame['share_less'] + assert total.between(85, 100).all(), \ + 'response shares do not look like a percent distribution' + + +def run(): + frame = pre_process(fetch()) + validate(frame) + frame.to_csv(os.path.join(PUBLISHED_DIR, OUT_FILE)) + print(f'wrote {OUT_FILE}: {frame.shape[0]} rows x {frame.shape[1]} cols ' + f'({frame.index[0]} .. {frame.index[-1]})') + + +if __name__ == '__main__': + run() diff --git a/lectures/bbh_macro_quarterly.csv b/lectures/bbh_macro_quarterly.csv new file mode 100644 index 0000000..ef77944 --- /dev/null +++ b/lectures/bbh_macro_quarterly.csv @@ -0,0 +1,261 @@ +YYYYQ,GDP,GDPC1,GDPPOT,PCESV,GPDI,PIRIC,PRS85006023,CPIAUCSL,PCEND,UNRATE,CUMFNS,FEDFUNDS,CE16OV,CNP16OV +19551,413.073,2815.134,2757.5375,108.459,68.702,3.7812,116.228,26.7933,,4.7333,84.4645,1.3433,60814.6667,109130.3333 +19552,421.532,2860.942,2775.4869,109.634,72.688,3.8033,116.416,26.7567,,4.4,87.4043,1.5,61643.3333,109533.6667 +19553,430.221,2899.578,2793.0734,111.288,74.747,3.8236,116.436,26.7767,,4.1,87.483,1.94,62753.3333,109883.6667 +19554,437.092,2916.985,2811.3068,114.179,78.882,3.828,116.693,26.8567,,4.2333,88.5527,2.3567,63310.6667,110186.0 +19561,439.746,2905.656,2829.9084,115.94,78.303,3.8365,116.288,26.86,,4.0333,87.5453,2.4833,63560.6667,110483.3333 +19562,446.01,2929.666,2848.3139,117.723,77.02,3.8171,115.838,27.0367,,4.2,86.4917,2.6933,63765.0,110787.6667 +19563,451.191,2927.034,2867.5765,119.958,78.267,3.8304,115.873,27.3167,,4.1333,84.154,2.81,63950.3333,111113.3333 +19564,460.463,2975.209,2887.9829,122.272,77.145,3.8457,116.08,27.55,,4.1333,86.3631,2.9267,63893.6667,111431.0 +19571,469.779,2994.259,2909.9969,123.876,77.728,3.8527,115.685,27.7767,,3.9333,86.521,2.9333,64097.6667,111720.3333 +19572,472.025,2987.699,2933.4487,125.528,77.907,3.8553,114.913,28.0133,,4.1,84.5961,3.0,64076.0,112045.3333 +19573,479.49,3016.979,2957.9832,127.521,79.339,3.8151,114.636,28.2633,,4.2333,83.8886,3.2333,64206.6667,112430.6667 +19574,474.864,2985.775,2983.7255,129.85,71.045,3.7711,113.608,28.4,,4.9333,79.4514,3.2533,63879.0,112865.6667 +19581,467.54,2908.281,3009.6601,130.63,66.73,3.6815,113.415,28.7367,,6.3,74.0657,1.8633,62949.6667,113236.3333 +19582,471.978,2927.395,3036.5506,133.0,65.065,3.6384,113.546,28.93,,7.3667,72.406,0.94,62745.0,113532.0 +19583,485.841,2995.112,3063.9644,135.471,71.999,3.6083,114.08,28.9133,,7.3333,75.4322,1.3233,62979.3333,113846.3333 +19584,499.555,3065.141,3092.7924,137.049,80.001,3.5888,114.641,28.9433,,6.3667,78.1743,2.1633,63498.0,114283.3333 +19591,510.33,3123.978,3122.0075,139.726,83.166,3.5845,115.042,28.9933,126.0667,5.8333,81.3723,2.57,63939.6667,114714.3333 +19592,522.653,3194.429,3152.2324,142.888,89.381,3.5742,115.397,29.0433,127.1667,5.1,84.5589,3.0833,64772.0,115139.0 +19593,525.034,3196.683,3184.1616,146.201,83.606,3.5454,115.039,29.1933,128.2,5.2667,80.4988,3.5767,64875.0,115550.6667 +19594,528.6,3205.79,3216.3037,149.277,86.524,3.5154,114.763,29.37,129.5,5.6,80.0757,3.99,64927.3333,115918.0 +19601,542.648,3277.847,3249.2975,151.304,96.476,3.4992,114.518,29.3967,129.6,5.1333,84.4715,3.9333,65213.3333,116707.6667 +19602,541.08,3260.177,3282.0234,153.813,87.096,3.4719,114.572,29.5733,131.9667,5.2333,81.318,3.6967,66061.3333,117036.6667 +19603,545.604,3276.133,3314.9506,154.623,86.377,3.4464,114.685,29.59,131.5667,5.5333,78.8989,2.9367,66023.6667,117411.0 +19604,540.197,3234.087,3347.584,156.921,75.963,3.4216,114.205,29.78,132.4,6.2667,75.8523,2.2967,65839.6667,117824.3333 +19611,545.018,3255.914,3380.7233,158.878,78.378,3.4126,113.975,29.84,133.4,6.8,73.8284,2.0033,65738.0,118254.3333 +19612,555.545,3311.181,3413.0685,161.891,84.108,3.4219,113.933,29.83,134.2333,7.0,76.3543,1.7333,65605.3333,118636.0 +19613,567.664,3374.742,3446.7717,163.156,90.917,3.4115,114.099,29.9467,134.6,6.7667,78.4144,1.6833,65667.0,119000.6667 +19614,580.612,3440.924,3480.8275,166.742,92.931,3.3997,114.538,29.99,136.1667,6.2,80.6409,2.4,65966.6667,119189.6667 +19621,594.013,3502.298,3515.977,169.287,98.074,3.3763,114.248,30.1067,137.8333,5.6333,81.1862,2.4567,66379.6667,119378.6667 +19622,600.366,3533.947,3552.0383,172.666,96.706,3.3598,114.784,30.22,138.7667,5.5333,81.3356,2.6067,66576.6667,119819.3333 +19623,609.027,3577.362,3589.0123,174.806,98.16,3.349,114.733,30.3067,139.9667,5.5667,81.5601,2.8467,66881.0,120368.0 +19624,612.28,3589.128,3626.7058,177.594,94.968,3.3247,114.29,30.38,141.5,5.5333,81.6345,2.9233,66969.3333,121045.6667 +19631,621.672,3628.306,3664.8477,179.236,99.689,3.3128,114.418,30.4767,142.4667,5.7667,82.3156,2.9667,67149.0,121640.0 +19632,629.752,3669.02,3703.8465,181.728,101.65,3.3031,114.65,30.5333,142.8,5.7333,83.7831,2.9633,67635.3333,122166.6667 +19633,644.444,3749.681,3743.5307,185.526,104.612,3.274,114.343,30.72,145.1667,5.5,83.5563,3.33,67995.6667,122669.6667 +19634,653.938,3774.264,3784.049,189.031,107.189,3.2583,114.636,30.8033,145.3,5.5667,84.2037,3.4533,68258.0,123188.6667 +19641,669.822,3853.835,3824.6709,192.935,110.474,3.2211,115.857,30.93,148.6333,5.4667,84.4956,3.4633,68613.6667,123708.0 +19642,678.674,3895.793,3866.1988,196.604,110.518,3.2183,116.111,30.98,151.4667,5.2,85.5447,3.49,69401.6667,124203.0 +19643,692.031,3956.657,3908.2547,200.168,112.631,3.2,115.867,31.05,154.8667,5.0,86.057,3.4567,69480.0,124739.3333 +19644,697.319,3968.878,3950.3756,203.811,114.984,3.2021,116.019,31.1933,155.7667,4.9667,86.492,3.5767,69710.3333,125289.0 +19651,717.79,4064.915,3993.8515,207.035,126.542,3.1933,116.672,31.29,157.7667,4.9,88.866,3.9767,70187.6667,125814.0 +19652,730.191,4116.267,4036.6403,211.056,127.052,3.1683,116.44,31.49,160.7667,4.6667,89.3981,4.08,70897.3333,126324.6667 +19653,749.323,4207.782,4081.0984,215.035,131.237,3.139,116.14,31.5833,164.0667,4.3667,89.9023,4.0767,71369.3333,126745.0 +19654,771.857,4304.731,4126.1029,220.065,133.752,3.123,116.194,31.75,170.5333,4.1,89.9839,4.1667,71827.0,127169.3333 +19661,795.734,4409.518,4171.8648,223.73,144.2,3.0595,116.444,32.0467,174.0667,3.8667,91.1195,4.56,72173.3333,127511.3333 +19662,804.981,4424.581,4218.3113,228.23,143.501,3.0507,116.104,32.3367,177.2667,3.8333,91.5667,4.9133,72594.0,127868.6667 +19663,819.638,4462.053,4265.4766,232.198,143.194,3.0176,115.668,32.6167,179.7667,3.7667,91.2437,5.41,73088.0,128233.6667 +19664,833.302,4498.66,4312.4901,237.04,145.855,3.0124,115.136,32.8833,180.4,3.7,90.5906,5.5633,73656.6667,128617.0 +19671,844.17,4538.498,4360.2718,240.841,142.811,3.0039,114.527,32.9667,182.3667,3.8333,88.5845,4.8233,73572.0,129043.6667 +19672,848.983,4541.28,4408.3508,244.953,137.495,2.9987,113.789,33.1667,184.0333,3.8333,86.7784,3.99,74001.3333,129527.0 +19673,865.233,4584.246,4456.8385,250.241,142.835,2.9892,113.68,33.5,185.7667,3.8,85.9545,3.8933,74713.6667,130165.6667 +19674,881.439,4618.812,4506.4596,254.743,147.653,2.9885,113.627,33.8667,187.8667,3.9,87.3031,4.1733,75216.3333,130757.3333 +19681,909.387,4713.013,4556.6781,261.903,152.288,2.9699,113.24,34.2,193.5667,3.7333,87.3264,4.79,75102.6667,131267.0 +19682,934.344,4791.758,4606.9936,269.161,158.943,2.9503,113.448,34.5333,197.8,3.5667,87.2785,5.9833,75950.0,131712.3333 +19683,950.825,4828.892,4658.5699,275.736,155.683,2.9281,113.436,35.0,202.8333,3.5333,86.6724,5.9467,76100.6667,132250.0 +19684,968.03,4847.885,4710.9814,282.144,160.76,2.9333,112.889,35.4333,205.0,3.4,87.0991,5.9167,76498.6667,132880.0 +19691,993.337,4923.76,4761.7534,288.161,172.388,2.9202,112.809,35.8667,208.8333,3.4,87.6714,6.5667,77166.3333,133476.0 +19692,1009.02,4938.728,4810.6972,295.673,172.721,2.9033,112.65,36.4333,212.2333,3.4333,86.924,8.3267,77605.0,134020.3333 +19693,1029.956,4971.349,4857.3564,302.01,177.564,2.8861,112.416,36.9333,215.9667,3.5667,86.843,8.9833,78153.0,134595.0 +19694,1038.147,4947.104,4902.0822,309.998,171.573,2.8856,111.973,37.5,219.7333,3.5667,85.1773,8.94,78575.3333,135246.6667 +19701,1051.2,4939.759,4945.1206,317.59,168.113,2.8735,111.487,38.1,224.5,4.1667,81.8428,8.5733,78780.3333,135949.6667 +19702,1067.375,4946.77,4986.3386,324.016,171.455,2.8871,110.699,38.6333,226.5667,4.7667,80.446,7.8867,78635.6667,136676.6667 +19703,1086.059,4992.357,5026.2052,331.755,173.904,2.8627,110.177,39.0333,229.7,5.1667,79.1387,6.7067,78616.0,137456.0 +19704,1088.608,4938.857,5065.0472,338.361,166.754,2.8629,110.078,39.6,234.4667,5.8333,76.4018,5.5667,78643.0,138260.3333 +19711,1135.156,5072.996,5103.9317,345.307,189.495,2.8778,110.102,39.9333,235.8,5.9333,77.5462,3.8567,78717.3333,139033.6667 +19712,1156.271,5100.447,5143.6084,353.404,197.329,2.8727,110.062,40.3,238.8333,5.9,77.6773,4.5667,78961.0,139827.3333 +19713,1177.675,5142.422,5183.8731,361.732,202.058,2.8571,109.872,40.7,240.4,6.0333,77.4289,5.4767,79511.0,140602.6667 +19714,1190.297,5154.547,5224.7492,370.843,198.411,2.8476,110.266,41.0,243.6,5.9333,79.1621,4.75,80228.6667,141401.6667 +19721,1230.609,5249.337,5266.3945,381.204,212.968,2.8542,110.289,41.3333,247.0333,5.7667,81.8018,3.5467,81213.3333,143005.3333 +19722,1266.369,5368.485,5308.6412,388.996,226.798,2.8588,110.266,41.6,254.3,5.7,82.8565,4.3,81875.0,143758.6667 +19723,1290.566,5419.184,5351.5746,398.123,233.09,2.8571,110.179,41.9333,260.1,5.5667,83.3599,4.7433,82450.3333,144522.6667 +19724,1328.904,5509.926,5395.2241,409.029,239.715,2.8505,110.034,42.3667,268.0667,5.3667,85.7091,5.1467,83002.0,145215.0 +19731,1377.49,5646.286,5439.8896,417.739,254.313,2.8328,109.922,43.0333,275.4333,4.9333,87.6636,6.5367,83841.6667,145964.3333 +19732,1413.887,5707.755,5486.6967,427.847,268.196,2.8075,109.874,43.9333,281.4,4.9333,87.6192,7.8167,84797.3333,146719.6667 +19733,1433.838,5677.738,5534.0687,438.16,264.335,2.7838,109.878,44.8,289.9,4.8,87.3638,10.56,85330.3333,147478.3333 +19734,1476.289,5731.632,5582.5199,448.011,280.858,2.7333,109.557,45.9333,297.7,4.7667,88.1166,9.9967,86236.0,148226.0 +19741,1491.209,5682.353,5631.5986,456.362,268.361,2.6739,108.769,47.3,308.8667,5.1333,86.5609,9.3233,86709.3333,148986.6667 +19742,1530.056,5695.859,5680.9704,471.822,277.391,2.6617,108.454,48.5667,318.0,5.2,85.7211,11.25,86833.6667,149746.6667 +19743,1560.026,5642.025,5729.7526,485.284,271.013,2.6938,108.142,49.9333,327.6667,5.6333,84.7454,12.09,87079.0,150498.0 +19744,1599.679,5620.126,5777.8023,501.022,281.339,2.7302,107.415,51.4667,330.9,6.6,80.4802,9.3467,86588.3333,151253.0 +19751,1616.116,5551.713,5824.5431,517.197,244.306,2.7645,106.529,52.5667,336.2,8.2667,73.5116,6.3033,85356.6667,151987.3333 +19752,1651.853,5591.382,5870.2553,532.041,243.281,2.7969,106.394,53.2,344.8333,8.8667,71.9256,5.42,85331.6667,152707.6667 +19753,1709.82,5687.087,5915.5758,544.44,265.192,2.7711,106.594,54.2667,355.9333,8.4667,73.8461,6.16,86135.6667,153579.0 +19754,1761.831,5763.665,5960.948,563.172,276.236,2.7563,107.153,55.2667,359.6667,8.3,75.3242,5.4133,86497.0,154336.3333 +19761,1820.487,5893.276,6006.2049,579.174,304.638,2.7416,107.512,55.9,367.4333,7.7333,77.3502,4.8267,87685.6667,155075.0 +19762,1852.332,5936.515,6052.324,590.571,322.303,2.7448,106.766,56.4,373.1,7.5667,78.0969,5.1967,88591.0,155773.6667 +19763,1886.558,5969.089,6099.8266,608.353,328.307,2.7215,106.57,57.3,380.6,7.7333,78.6868,5.2833,89163.0,156526.6667 +19764,1934.273,6012.356,6148.0796,627.345,337.65,2.7058,106.34,58.1333,389.5667,7.7667,79.3082,4.8733,89570.3333,157222.0 +19771,1988.648,6083.391,6197.9564,647.814,360.313,2.6821,106.198,59.2,396.4333,7.5,80.6792,4.66,90359.3333,157910.6667 +19772,2055.909,6201.659,6249.0099,663.054,389.703,2.6556,106.383,60.2333,403.7,7.1333,82.8604,5.1567,91661.3333,158652.3333 +19773,2118.473,6313.559,6300.8389,683.003,414.134,2.6552,106.152,61.0667,409.9,6.9,83.1817,5.82,92409.0,159429.6667 +19774,2164.27,6313.697,6354.0847,700.494,422.299,2.6657,105.993,61.9667,423.6333,6.6667,83.2387,6.5133,93639.3333,160140.3333 +19781,2202.76,6333.848,6408.7339,724.811,434.799,2.6718,105.219,63.0333,431.0667,6.3333,82.637,6.7567,94552.6667,160828.6667 +19782,2331.633,6578.605,6464.4701,750.386,470.584,2.6608,106.187,64.4667,444.8,6.0,84.7155,7.2833,95835.3333,161525.3333 +19783,2395.053,6644.754,6521.7113,769.856,492.368,2.65,106.015,65.9667,455.6,6.0333,84.797,8.1,96397.0,162265.0 +19784,2476.949,6734.069,6580.0271,789.689,515.755,2.6302,105.889,67.5,469.4,5.9,85.7337,9.5833,97399.6667,163024.0 +19791,2526.61,6746.176,6639.9792,809.273,525.809,2.6027,105.409,69.2,484.5667,5.8667,85.3371,10.0733,98252.3333,163756.3333 +19792,2591.247,6753.389,6697.9387,835.468,539.293,2.5661,104.811,71.4,500.0667,5.7,84.3488,10.18,98371.0,164447.3333 +19793,2667.565,6803.558,6757.0171,858.589,545.621,2.5323,105.139,73.7,522.3333,5.8667,83.5143,10.9467,99040.6667,165199.6667 +19794,2723.883,6820.572,6807.4314,886.599,547.875,2.5076,105.098,76.0333,539.4,5.9667,82.9414,13.5767,99637.0,166054.6667 +19801,2789.842,6842.024,6853.9741,910.301,554.562,2.4907,104.531,79.0333,559.9333,6.3,82.551,15.0467,99862.3333,166762.3333 +19802,2797.352,6701.046,6896.0535,926.892,519.294,2.4827,103.661,81.7,565.9,7.3333,77.8801,12.6867,98953.3333,167415.6667 +19803,2856.483,6693.082,6933.63,961.909,495.071,2.4702,103.47,83.2333,576.5,7.6667,75.7289,9.8367,98899.0,168110.6667 +19804,2985.557,6817.903,6973.2988,1004.394,551.472,2.4535,103.969,85.5667,591.2333,7.4,78.5143,15.8533,99498.6667,168693.6667 +19811,3124.206,6951.495,7017.0829,1025.643,619.381,2.4378,104.088,87.9333,614.0667,7.4333,78.0007,16.57,100239.0,169279.0 +19812,3162.532,6899.98,7064.0682,1053.74,609.843,2.4493,103.669,89.7667,622.8667,7.4,77.9005,17.78,100800.6667,169837.3333 +19813,3260.609,6982.609,7113.6671,1077.047,652.297,2.4495,103.244,92.2667,629.1333,7.4,77.2097,17.5767,100482.0,170412.6667 +19814,3280.818,6906.529,7165.8463,1101.901,643.395,2.4584,103.309,93.7667,635.7,8.2333,74.6717,13.5867,100076.6667,170990.3333 +19821,3274.302,6799.233,7219.8608,1127.862,588.318,2.4599,102.341,94.6,639.8667,8.8333,72.4271,14.2267,99708.6667,171497.0 +19822,3331.972,6830.251,7275.1977,1151.697,593.621,2.4655,103.04,95.9667,638.7,9.4333,71.6318,14.5133,99745.0,172020.0 +19823,3366.322,6804.139,7331.6461,1183.846,592.954,2.4384,103.032,97.6333,649.7333,9.9,70.6419,11.0067,99543.3333,172521.6667 +19824,3402.561,6806.857,7389.1969,1224.459,549.242,2.4175,102.93,97.9333,656.7667,10.6667,68.9264,9.2867,99119.6667,173046.0 +19831,3473.413,6896.561,7446.7071,1258.678,565.52,2.3998,103.308,98.0,657.0333,10.3667,70.2942,8.6533,99143.0,173505.0 +19832,3578.848,7053.5,7505.6008,1286.806,613.783,2.3729,103.546,99.1333,673.0333,10.1333,72.2148,8.8033,99945.0,173957.3333 +19833,3689.179,7194.504,7566.2177,1329.097,652.269,2.3397,104.3,100.1,688.4333,9.3667,74.6901,9.46,101610.6667,174449.3333 +19834,3794.706,7344.597,7629.3462,1356.704,718.496,2.3249,104.359,101.1,696.5,8.5333,76.7528,9.43,102588.0,174950.3333 +19841,3908.054,7488.167,7701.1611,1380.27,790.872,2.2808,104.713,102.5333,706.4667,7.8667,78.805,9.6867,103664.0,175678.6667 +19842,4009.601,7617.547,7768.8625,1412.233,818.894,2.2612,104.869,103.5,722.4,7.4333,79.5818,10.5567,105040.0,176125.3333 +19843,4084.25,7690.985,7838.097,1446.882,838.852,2.2434,104.475,104.4,724.6,7.4333,79.686,11.39,105362.6667,176595.3333 +19844,4148.551,7754.117,7908.4099,1475.175,831.741,2.2305,104.354,105.3,732.7667,7.3,79.5398,9.2667,105944.3333,177132.3333 +19851,4230.168,7829.26,7978.9846,1525.616,809.865,2.2096,104.402,106.2667,742.3667,7.2333,78.8659,8.4767,106615.3333,177522.3333 +19852,4294.887,7898.194,8049.7445,1555.754,827.04,2.1916,104.515,107.2333,752.7667,7.3,78.3372,7.9233,106791.0,177946.3333 +19853,4386.773,8018.809,8120.3593,1597.213,822.157,2.1729,104.308,107.9,760.4667,7.2,77.775,7.9,107186.3333,178413.3333 +19854,4444.094,8078.415,8190.5228,1622.303,859.545,2.1624,104.14,109.0,773.3667,7.0333,77.7767,8.1033,108023.3333,178940.6667 +19861,4507.894,8153.829,8260.076,1652.771,863.457,2.1462,103.889,109.5667,779.2667,7.0333,78.387,7.8267,108734.6667,179825.3333 +19862,4545.34,8190.552,8329.2905,1676.713,855.237,2.159,103.282,109.0333,767.4333,7.1667,78.1791,6.92,109205.6667,180320.6667 +19863,4607.669,8268.935,8398.3217,1700.452,835.832,2.1617,102.993,109.7,771.0667,6.9667,78.3772,6.2067,109970.0,180835.6667 +19864,4657.627,8313.338,8467.2809,1732.668,842.063,2.1573,103.12,110.4667,779.0,6.8333,78.9446,6.2667,110492.0,181365.3333 +19871,4722.156,8375.274,8535.8303,1767.634,871.196,2.1443,103.675,111.8,797.4,6.6,79.5409,6.22,111206.0,182001.3333 +19872,4806.16,8465.63,8604.0969,1801.948,874.588,2.1283,103.509,113.0667,812.2667,6.2667,80.2908,6.65,112158.0,182526.6667 +19873,4884.555,8539.075,8672.098,1836.16,876.466,2.1134,103.456,114.2667,820.6667,6.0,81.1952,6.8433,112866.6667,183016.0 +19874,5007.994,8685.694,8740.3552,1874.186,946.459,2.1067,103.663,115.3333,826.8,5.8333,82.9278,6.9167,113526.6667,183467.0 +19881,5073.372,8730.569,8808.2422,1923.07,908.569,2.0948,103.05,116.2333,838.4,5.7,83.2343,6.6633,114093.3333,183967.3333 +19882,5190.036,8845.28,8876.3763,1964.954,934.525,2.0799,103.315,117.5667,853.5667,5.4667,83.9856,7.1567,114623.0,184389.3333 +19883,5282.835,8897.107,8944.3285,2020.733,942.009,2.0619,103.127,119.0,870.7667,5.4667,84.0521,7.9833,115232.6667,184840.3333 +19884,5399.509,9015.661,9012.2245,2062.056,962.748,2.0556,103.529,120.3,886.3333,5.3333,84.7809,8.47,115947.3333,185253.3333 +19891,5511.253,9107.314,9079.7836,2101.195,1005.487,2.0385,103.707,121.6667,902.5333,5.2,84.905,9.4433,116835.3333,185772.6667 +19892,5612.463,9176.827,9146.9441,2132.674,1001.047,2.0136,103.788,123.6333,927.7667,5.2333,83.8181,9.7267,117204.6667,186178.0 +19893,5695.365,9244.816,9213.6664,2167.474,996.46,2.0056,103.951,124.6,936.2667,5.2333,82.5197,9.0833,117493.6667,186602.3333 +19894,5747.237,9263.033,9280.1172,2210.469,995.809,1.9947,103.546,125.8667,951.3333,5.3667,81.9263,8.6133,117774.3333,187017.6667 +19901,5872.701,9364.259,9345.7291,2248.382,1010.838,1.9713,103.269,128.0333,974.1667,5.3,82.1761,8.25,119114.3333,188519.6667 +19902,5960.028,9398.243,9410.6983,2304.16,1014.72,1.9527,102.795,129.3,980.8333,5.3333,82.1695,8.2433,118995.3333,188916.3333 +19903,6015.116,9404.494,9474.2945,2350.024,1000.785,1.9298,102.522,131.5333,1003.1333,5.7,81.8775,8.16,118712.0,189352.6667 +19904,6004.733,9318.876,9536.6607,2368.207,947.453,1.9068,102.515,133.7667,1018.7667,6.1333,80.1083,7.7433,118361.0,189866.3333 +19911,6035.178,9275.276,9598.1338,2387.721,924.569,1.9109,102.235,134.7667,1014.1667,6.6,77.9846,6.4267,117782.3333,190271.6667 +19912,6126.862,9347.597,9658.7723,2429.918,926.541,1.9006,102.078,135.5667,1021.7333,6.8333,78.0903,5.8633,117729.3333,190655.6667 +19913,6205.937,9394.834,9719.0523,2464.541,947.476,1.8871,102.219,136.6,1024.4,6.8667,79.2156,5.6433,117660.0,191121.3333 +19914,6264.54,9427.581,9779.6871,2501.877,978.788,1.8657,102.177,137.7333,1020.6667,7.1,79.1974,4.8167,117678.6667,191650.6667 +19921,6363.102,9540.444,9840.9574,2566.552,956.817,1.8464,102.098,138.6667,1037.6667,7.3667,78.8379,4.0233,117958.3333,192074.6667 +19922,6470.763,9643.893,9903.2242,2607.453,1013.084,1.8336,102.341,139.7333,1047.2,7.6,79.862,3.77,118406.6667,192506.6667 +19923,6566.641,9739.185,9967.1893,2653.829,1024.162,1.821,102.285,140.8,1061.0333,7.6333,80.0819,3.2567,118753.0,193024.3333 +19924,6680.803,9840.753,10032.2124,2709.331,1057.962,1.8097,102.448,142.0333,1074.8,7.3667,80.1231,3.0367,118833.6667,193615.6667 +19931,6729.459,9857.185,10098.2893,2742.534,1083.829,1.7992,102.54,143.0667,1079.1333,7.1333,80.5712,3.04,119297.3333,194106.0 +19932,6808.939,9914.565,10165.978,2784.412,1094.479,1.7921,102.872,144.1,1086.3333,7.0667,80.4369,3.0,119959.6667,194555.3333 +19933,6882.098,9961.873,10234.6817,2838.023,1095.852,1.7874,102.974,144.7667,1092.5333,6.8,80.1822,3.06,120625.6667,195068.0 +19934,7013.738,10097.362,10304.222,2873.579,1153.142,1.7828,103.161,145.9667,1105.3,6.6333,81.127,2.99,121152.0,195621.0 +19941,7115.652,10195.338,10374.3207,2915.554,1201.675,1.7815,103.025,146.7,1116.8333,6.5667,81.5218,3.2133,121994.0,196085.3333 +19942,7246.931,10333.495,10444.8719,2956.348,1264.948,1.7764,103.688,147.5333,1128.1,6.2,82.6904,3.94,122596.0,196522.0 +19943,7331.075,10393.898,10516.4034,2993.87,1251.749,1.77,103.701,148.9,1149.6,6.0,83.0831,4.4867,123245.0,197050.0 +19944,7455.288,10512.962,10588.5101,3031.873,1307.566,1.7635,103.545,149.7667,1163.0,5.6333,84.1697,5.1667,124449.6667,197600.6667 +19951,7522.289,10550.251,10660.8512,3074.329,1327.586,1.7608,103.114,150.8667,1166.8667,5.4667,84.1047,5.81,124848.6667,197882.0 +19952,7580.997,10581.723,10733.9241,3129.711,1303.988,1.749,102.535,152.1,1177.0,5.6667,83.2542,6.02,124629.3333,198295.6667 +19953,7683.125,10671.738,10807.2352,3172.427,1303.248,1.7383,103.097,152.8667,1183.6667,5.6667,82.8261,5.7967,124933.6667,198807.0 +19954,7772.586,10744.203,10882.1475,3211.762,1335.135,1.7241,103.06,153.7,1191.6333,5.5667,82.4916,5.72,125221.3333,199351.6667 +19961,7868.468,10824.674,10958.2375,3259.617,1355.353,1.7089,102.529,155.0667,1211.1667,5.5333,81.6066,5.3633,125542.0,199776.0 +19962,8032.84,11005.217,11038.9935,3304.626,1418.388,1.6858,102.847,156.4,1239.5333,5.5,82.2476,5.2433,126280.0,200279.3333 +19963,8131.408,11103.935,11125.4637,3348.618,1474.35,1.6763,103.043,157.3,1246.5,5.2667,82.452,5.3067,127218.3333,200849.6667 +19964,8259.771,11219.238,11217.5508,3394.838,1480.128,1.6576,103.233,158.6667,1268.3,5.3333,82.2956,5.28,127840.3333,201457.3333 +19971,8362.655,11291.665,11315.1161,3446.497,1522.404,1.6452,103.317,159.6333,1281.0,5.2333,82.7629,5.2767,128495.6667,202395.6667 +19972,8518.825,11479.33,11417.5148,3496.96,1590.218,1.632,103.219,160.0,1277.7333,5.0,82.6928,5.5233,129339.6667,202835.3333 +19973,8662.823,11622.911,11525.0735,3559.055,1625.251,1.6211,103.326,160.8,1297.3333,4.8667,83.1887,5.5333,129950.3333,203366.6667 +19974,8765.907,11722.722,11636.5249,3618.627,1644.529,1.6067,103.169,161.6667,1307.8,4.6667,83.7156,5.5067,130503.6667,203935.3333 +19981,8866.48,11839.876,11751.2764,3676.961,1712.324,1.5935,103.258,162.0,1306.6667,4.6333,83.1161,5.52,130782.3333,204395.0 +19982,8969.699,11949.492,11869.7764,3743.404,1695.773,1.5788,103.081,162.5333,1319.9,4.4,81.765,5.5,131259.3333,204905.0 +19983,9121.097,12099.191,11990.4282,3806.982,1741.623,1.5633,102.764,163.3667,1334.8333,4.5333,80.8646,5.5333,131568.3333,205482.6667 +19984,9293.991,12294.737,12113.2492,3847.889,1796.964,1.5499,103.522,164.1333,1355.1333,4.4333,81.0535,4.86,132293.6667,206097.6667 +19991,9411.682,12410.778,12238.5118,3897.147,1853.063,1.5377,103.168,164.7333,1384.9667,4.3,80.8521,4.7333,132943.3333,206876.0 +19992,9526.21,12514.408,12365.285,3957.569,1848.341,1.5213,103.071,165.9667,1418.2667,4.2667,80.6023,4.7467,133214.6667,207431.6667 +19993,9686.626,12679.977,12493.7035,4024.047,1893.735,1.5037,103.152,167.2,1440.0667,4.2333,80.2136,5.0933,133570.6667,208043.6667 +19994,9900.169,12888.281,12624.3398,4108.02,1953.097,1.4891,103.137,168.4333,1482.6667,4.0667,80.8811,5.3067,134275.0,208660.3333 +20001,10002.179,12935.252,12756.1978,4205.131,1950.65,1.4752,103.015,170.1,1492.2,4.0333,80.7776,5.6767,136619.3333,211586.0 +20002,10247.72,13170.749,12885.5495,4274.861,2075.786,1.4667,102.828,171.4333,1535.1,3.9333,80.772,6.2733,136946.6667,212242.0 +20003,10318.165,13183.89,13010.0471,4350.834,2059.969,1.4528,102.666,173.0,1557.4667,4.0,79.7339,6.52,136695.3333,212918.6667 +20004,10435.744,13262.25,13129.1448,4425.204,2067.227,1.4404,102.399,174.2333,1577.6,3.9,78.2838,6.4733,137341.3333,213560.3333 +20011,10470.231,13219.251,13242.6261,4496.052,1971.333,1.4222,101.933,175.9,1572.4333,4.2333,76.2684,5.5933,137724.3333,214101.0 +20012,10599.0,13301.394,13350.3998,4532.144,1973.033,1.4095,101.56,177.1333,1590.6333,4.4,74.5433,4.3267,137088.0,214735.6667 +20013,10598.02,13248.142,13452.5044,4555.089,1944.909,1.4034,101.097,177.6333,1591.3667,4.8333,72.8865,3.4967,136719.3333,215421.6667 +20014,10660.465,13284.881,13549.5783,4609.546,1850.091,1.3966,100.918,177.5,1581.9,5.5,71.7826,2.1333,136225.6667,216111.6667 +20021,10783.5,13394.91,13642.0267,4655.831,1912.659,1.3831,100.951,178.0667,1585.6333,5.7,72.1619,1.7333,136105.3333,216664.0 +20022,10887.46,13477.356,13731.5275,4721.022,1933.282,1.3657,101.335,179.4667,1609.5333,5.8333,73.0831,1.75,136360.0,217203.6667 +20023,10984.04,13531.741,13819.4217,4778.693,1933.197,1.3504,101.12,180.4333,1616.7333,5.7333,73.6318,1.74,136806.6667,217867.6667 +20024,11061.433,13549.421,13906.0731,4844.998,1942.531,1.3403,101.111,181.5,1641.8667,5.8667,73.5331,1.4433,136651.6667,218543.0 +20031,11174.129,13619.434,13992.4845,4909.826,1960.221,1.3208,100.663,183.3667,1682.8,5.8667,73.9181,1.25,137444.3333,220109.3333 +20032,11312.766,13741.107,14079.7166,4983.56,1972.386,1.3091,100.642,183.0667,1670.0667,6.1333,73.5049,1.2467,137655.6667,220774.0 +20033,11566.669,13970.157,14166.9684,5054.68,2044.304,1.2912,100.548,184.4333,1724.5,6.1333,74.0054,1.0167,137544.0,221512.6667 +20034,11772.234,14131.379,14255.2957,5124.541,2131.311,1.2823,100.712,185.1333,1741.8667,5.8333,74.8627,0.9967,138273.0,222275.6667 +20041,11923.447,14212.34,14345.4715,5205.543,2154.052,1.2769,100.907,186.7,1779.0,5.7,75.4283,1.0033,138489.0,222356.0 +20042,12112.815,14323.017,14436.9677,5278.129,2262.607,1.2741,100.404,188.1667,1803.0,5.6,76.1141,1.01,138902.0,222973.3333 +20043,12305.307,14457.832,14530.6572,5371.996,2318.272,1.2678,100.51,189.3667,1826.3,5.4333,76.8515,1.4333,139538.6667,223680.0 +20044,12527.214,14605.595,14625.5401,5464.088,2390.082,1.2626,100.516,191.4,1877.4667,5.4333,77.734,1.95,140029.3333,224418.0 +20051,12767.286,14767.846,14718.9072,5549.788,2486.068,1.2596,100.284,192.3667,1892.0,5.3,78.6482,2.47,140428.0,225038.0 +20052,12922.656,14839.707,14809.9664,5643.732,2476.474,1.2558,100.453,193.6667,1919.4667,5.1,78.6991,2.9433,141525.6667,225674.0 +20053,13142.642,14956.291,14899.7647,5730.245,2531.076,1.2438,100.385,196.6,1986.0333,4.9667,78.1064,3.46,142287.0,226422.3333 +20054,13324.204,15041.232,14987.7347,5820.809,2645.263,1.239,100.561,198.4333,2019.7333,4.9667,78.8068,3.98,142599.6667,227196.0 +20061,13599.16,15244.088,15073.6648,5903.311,2709.74,1.2356,100.672,199.4667,2042.7,4.7333,79.1551,4.4567,143449.3333,227763.6667 +20062,13753.424,15281.525,15158.0237,6001.556,2709.252,1.2243,100.662,201.2667,2076.8333,4.6333,78.9365,4.9067,144067.6667,228432.6667 +20063,13870.188,15304.517,15239.1033,6080.335,2709.42,1.2144,100.883,203.1667,2112.9,4.6333,78.7101,5.2467,144547.3333,229166.3333 +20064,14039.56,15433.643,15316.9142,6165.119,2675.406,1.2177,100.816,202.3333,2092.8333,4.4333,78.482,5.2467,145606.0,229896.0 +20071,14215.651,15478.956,15394.5913,6264.013,2664.295,1.2045,100.578,204.317,2129.1,4.5,78.7188,5.2567,146135.0,230839.3333 +20072,14402.082,15577.779,15472.7721,6326.913,2699.217,1.1889,100.714,206.631,2166.1,4.5,79.1876,5.25,145850.6667,231482.0 +20073,14564.117,15671.605,15551.6854,6418.373,2685.969,1.1752,100.556,207.939,2188.1667,4.6667,78.697,5.0733,145943.6667,232210.0 +20074,14715.058,15767.146,15630.1644,6508.952,2642.56,1.1572,100.263,210.4897,2232.6,4.8,78.5673,4.4967,146271.3333,232936.6667 +20081,14706.538,15702.906,15707.8964,6598.077,2563.701,1.1446,100.231,212.7697,2252.8667,5.0,77.977,3.1767,146206.6667,232806.6667 +20082,14865.701,15792.773,15782.9451,6686.336,2540.595,1.1276,100.055,215.5377,2305.8,5.3333,76.461,2.0867,145925.6667,233410.0 +20083,14898.999,15709.562,15854.4792,6731.171,2498.242,1.1151,99.733,218.861,2332.0667,6.0,73.9482,1.94,145270.3333,234110.3333 +20084,14608.208,15366.607,15921.6471,6731.865,2307.915,1.1368,99.202,213.8487,2167.0667,6.8667,69.7976,0.5067,144090.3333,234825.0 +20091,14430.901,15187.475,15983.2985,6694.942,2014.878,1.1346,98.628,212.3777,2115.5667,8.2667,65.2926,0.1833,141499.6667,234912.6667 +20092,14381.236,15161.772,16040.7026,6671.028,1863.65,1.1159,98.087,213.507,2139.8,9.3,63.7623,0.18,140304.3333,235459.3333 +20093,14448.882,15216.647,16094.7417,6710.929,1841.416,1.0937,97.982,215.344,2193.3667,9.6333,65.3514,0.1567,139403.6667,236093.0 +20094,14651.248,15379.155,16147.0634,6767.885,1998.71,1.0825,98.327,217.03,2222.9,9.9333,66.7467,0.12,138368.0,236739.0 +20101,14764.611,15456.059,16199.7102,6835.669,2038.161,1.07,98.612,217.374,2245.1,9.8333,68.1434,0.1333,138590.0,236996.3333 +20102,14980.193,15605.628,16253.7162,6916.911,2148.795,1.0618,99.246,217.2973,2247.3333,9.6333,70.2245,0.1933,139226.3333,237506.0 +20103,15141.605,15726.282,16310.4477,6985.635,2236.495,1.0545,99.702,217.9343,2262.7,9.4667,71.3347,0.1867,139337.6667,238103.6667 +20104,15309.471,15807.995,16369.3052,7031.511,2238.44,1.0464,99.697,219.699,2320.3667,9.5,71.942,0.1867,139154.6667,238711.3333 +20111,15351.444,15769.911,16430.4648,7089.16,2205.962,1.0374,99.364,222.0437,2381.1,9.0333,72.7261,0.1567,139427.6667,238851.6667 +20112,15557.535,15876.839,16494.1242,7158.561,2297.352,1.0291,99.808,224.5683,2431.5667,9.0667,72.8293,0.0933,139531.3333,239316.0 +20113,15647.681,15870.684,16560.1095,7227.254,2322.84,1.0225,99.776,226.0327,2437.0,9.0,73.5921,0.0833,139883.0,239871.0 +20114,15842.267,16048.702,16627.8917,7247.97,2504.095,1.0162,100.008,227.0473,2448.8,8.6333,74.1353,0.0733,140698.6667,240431.3333 +20121,16068.824,16179.968,16697.3907,7330.585,2567.75,1.009,100.136,228.326,2490.6,8.2667,74.8661,0.1033,141826.0,242436.0 +20122,16207.13,16253.726,16768.9712,7388.679,2636.863,1.0034,99.984,228.808,2482.8333,8.2,74.717,0.1533,142165.3333,242968.3333 +20123,16319.54,16282.151,16842.1603,7427.587,2644.119,0.9982,99.903,229.841,2490.1333,8.0333,74.228,0.1433,142542.3333,243564.0 +20124,16420.386,16300.035,16916.6539,7491.645,2638.282,0.9896,99.976,231.3693,2510.5,7.8,74.2101,0.16,143364.6667,244169.0 +20131,16629.05,16441.485,16992.5715,7533.987,2738.236,0.9826,99.972,232.2993,2542.8333,7.7333,74.5227,0.1433,143323.3333,244828.6667 +20132,16699.551,16464.402,17069.5661,7591.64,2775.276,0.9794,99.857,232.045,2513.8667,7.5333,74.4512,0.1167,143838.6667,245363.3333 +20133,16911.068,16594.743,17147.1508,7648.836,2879.995,0.9734,99.814,233.3,2541.4,7.2333,74.456,0.0833,144336.0,245961.0 +20134,17133.114,16712.76,17225.8024,7759.758,2910.546,0.9689,99.818,234.1627,2564.1333,6.9333,74.7773,0.0867,144264.6667,246564.3333 +20141,17144.281,16654.247,17305.4195,7828.587,2899.216,0.9635,99.868,235.621,2586.0,6.6667,74.6624,0.0733,145310.6667,247086.0 +20142,17462.703,16868.109,17385.7105,7921.739,3030.425,0.9556,100.047,236.8723,2623.5333,6.2,75.6349,0.0933,145913.0,247625.0 +20143,17743.227,17064.616,17467.5492,8036.39,3107.62,0.9523,100.093,237.4783,2642.2333,6.0667,76.1195,0.09,146569.0,248232.6667 +20144,17852.54,17141.235,17550.0148,8152.359,3139.452,0.9498,100.377,236.8883,2631.7333,5.7,76.3817,0.1,147482.0,248842.6667 +20151,17991.348,17280.647,17632.7606,8215.995,3245.05,0.9506,100.192,235.355,2584.1,5.5333,75.989,0.11,148106.0,249900.6667 +20152,18193.707,17380.875,17715.6013,8297.35,3245.825,0.9424,99.922,236.96,2617.7333,5.4333,76.0501,0.1233,148714.6667,250461.3333 +20153,18306.96,17437.08,17797.9113,8387.315,3251.67,0.9353,99.95,237.855,2641.9333,5.1,76.2634,0.1367,148945.6667,251099.0 +20154,18332.079,17462.579,17879.075,8461.274,3206.098,0.9306,99.928,237.837,2617.8,5.0333,75.6876,0.16,149612.3333,251741.3333 +20161,18425.306,17565.465,17959.5247,8560.649,3174.386,0.9237,99.821,237.6893,2605.7333,4.9,75.5328,0.36,150936.6667,252580.6667 +20162,18611.617,17618.581,18039.0586,8652.684,3178.537,0.9158,99.648,239.5903,2648.7667,4.9333,75.158,0.3733,151143.0,253180.0 +20163,18775.459,17724.489,18117.6492,8750.7,3185.73,0.9071,99.656,240.6073,2653.6333,4.9,75.0849,0.3967,151698.0,253855.0 +20164,18968.041,17812.56,18195.8769,8841.634,3281.493,0.9008,99.394,242.1347,2678.4667,4.7667,75.128,0.45,151968.0,254534.3333 +20171,19153.912,17896.623,18274.5328,8951.04,3283.481,0.8961,99.37,243.8387,2724.7333,4.5667,75.3508,0.7,152565.6667,254247.3333 +20172,19322.92,17996.802,18352.9509,9028.583,3357.362,0.8928,99.789,244.12,2738.8333,4.3667,76.2176,0.95,153214.0,254770.6667 +20173,19558.693,18126.226,18433.5035,9108.266,3413.3,0.8872,99.541,245.287,2762.1667,4.3333,76.1702,1.1533,153786.0,255356.6667 +20174,19882.965,18296.685,18516.0761,9234.339,3471.425,0.8788,99.649,247.2383,2821.9667,4.1667,77.0926,1.2033,153772.6667,255941.3333 +20181,20143.716,18436.262,18600.5425,9369.007,3550.839,0.8733,99.659,249.2543,2849.0667,4.0333,77.3251,1.4467,155018.3333,256937.0 +20182,20492.492,18590.004,18687.3221,9510.327,3603.22,0.8692,99.795,250.681,2883.2,3.9333,77.837,1.7367,155596.6667,257456.0 +20183,20659.102,18679.599,18776.0991,9629.389,3679.569,0.8655,99.775,251.7703,2894.9667,3.7667,78.1066,1.9233,155865.6667,258066.3333 +20184,20813.325,18721.281,18865.3729,9730.536,3717.518,0.8608,99.581,252.69,2911.0,3.8333,77.4994,2.22,156555.6667,258703.3333 +20191,21001.591,18833.195,18954.7646,9772.746,3801.932,0.8611,99.34,253.2927,2909.5,3.8667,76.523,2.4033,156825.0,258389.3333 +20192,21289.268,18982.528,19044.8815,9896.347,3842.963,0.855,99.188,255.283,2970.1667,3.6,75.7752,2.3967,156911.6667,258863.6667 +20193,21505.012,19112.653,19135.4193,10016.772,3858.192,0.8499,99.112,256.225,2981.2667,3.6333,75.6762,2.19,157839.0,259431.6667 +20194,21694.458,19202.31,19225.5991,10113.165,3801.943,0.8418,99.076,257.7853,3001.6,3.6,75.3778,1.6433,158544.0,260015.3333 diff --git a/lectures/bbh_macro_quarterly.csv.yml b/lectures/bbh_macro_quarterly.csv.yml new file mode 100644 index 0000000..e478b4c --- /dev/null +++ b/lectures/bbh_macro_quarterly.csv.yml @@ -0,0 +1,244 @@ +# Manifest for bbh_macro_quarterly.csv — migrated out of +# QuantEcon/lecture-python-advanced.myst, where it sat at +# lectures/_static/lecture_specific/subjective_beliefs_business_cycles/ and was +# read by relative path (PLAN Phase 8, wave C1). +# +# "BBH" is Bhandari, Borovička and Ho. These bytes are NOT FRED as FRED +# publishes it today: they are the authors' 2022-vintage FRED snapshot, archived +# inside their replication package, subset to fourteen series and 1955Q1-2019Q4 +# and averaged to quarterly. The builder must read the immutable Zenodo record +# and must NOT read live FRED — but note carefully WHY, because the obvious +# reason is wrong. These columns are on a 2012 base and FRED has since rebased +# to 2017, yet the lecture takes log first differences and ratios, which are +# rebasing-invariant: under a pure rebasing 8 of the 9 VAR inputs are bit-identical +# and `output_gap` is invariant to 2.3e-14. The operative risk is upstream +# REVISIONS to the national accounts, not the rebasing. +# +# The builder below is a RECONSTRUCTION, not a recovered original: no build +# script for this file has ever existed in the lecture repo. It was written from +# the committed bytes plus the replication package, and it reproduces the +# committed file byte for byte (sha256 below; three end-to-end runs, 2026-08-17). It therefore +# takes `committed`, not `unrecovered`. This supersedes the previous entry in +# scripts/audit_annotations.yml, which said "extraction not scripted" +# (provenance: constructed-lost) — right when it was written, wrong now; delete +# that entry in the same PR that lands this manifest. + +filename: bbh_macro_quarterly.csv +title: Bhandari-Borovička-Ho replication — quarterly US macro series for the belief-wedge VAR, 1955Q1-2019Q4 +description: > + Fourteen quarterly US macro series, 1955Q1-2019Q4, indexed by an integer + YYYYQ key (19551 = 1955Q1). Thirteen of them are the inputs to the nine-variable VAR(2) + that the `subjective_beliefs_business_cycles` lecture uses as the + data-generating benchmark forecast against which household survey + expectations are differenced. Extracted from the FRED snapshot archived in + Bhandari, Borovička and Ho's replication package; column names are the FRED + series IDs. Levels only — every transformation (year-over-year inflation, log + growth rates, ratios to GDP) is done in the lecture. + +# Constructed: fourteen of the thirty series in the source workbook (17 monthly in +# FRED_M, 13 quarterly in FRED_Q), taken +# from its two sheets, with the monthly block averaged to quarterly, the window +# cut to 1955Q1-2019Q4 and values rounded to four decimals. Nothing here is +# republished as distributed, so it is not verbatim. +class: constructed + +source: + name: > + Replication package for "Survey data and subjective beliefs in business + cycle models" (Bhandari, Borovička and Ho), file + `data input/FRED/data_FRED.xlsx` + url: https://doi.org/10.5281/zenodo.10194324 + doi: 10.5281/zenodo.10194324 # versioned record; concept DOI is + # 10.5281/zenodo.10194323 + version: > + Zenodo record 10194324, published 2023-11-22; Zenodo declares no + version string (`metadata.version` is null) and the record has exactly one + version (`/versions` returns 1 hit), one 198,817,944-byte + member `replication package.zip` (md5 6e33f9b9e70135cbf3304275d1c5d604). + The workbook this builder extracts is 169,348 B, sha256 f2d330ea…65ba5d, + zip-entry mtime 2023-11-20 23:18 — recorded as an artifact fact, NOT as a + retrieval date. Its FRED_M/FRED_Q sheets run 1945M1-2022M12 / 1945Q1-2022Q4 + because the package's `load_replication_parameters.m` sets + `M_macro_end = 202212; Q_macro_end = 20224`, not because FRED stopped there. + The identical values also appear in the package's + `data output/data_processed.xlsx` (sheets macro_M / macro_Q), verified max + abs diff 0.0 on all fourteen columns, so either workbook is a valid input; + the builder reads the `data input` one because it is the raw snapshot. + series: > + FRED IDs, quarterly at source — GDP (Gross Domestic Product, $bn SAAR, BEA); + GDPC1 (Real GDP, $bn chained, SAAR, BEA); GDPPOT (Real Potential GDP, $bn + chained, CBO); PCESV (PCE: Services, $bn SAAR, BEA); GPDI (Gross Private + Domestic Investment, $bn SAAR, BEA); PIRIC (Relative Price of Investment + Goods, index, SA — contributed to FRED by Riccardo DiCecio, not a federal + statistical release); PRS85006023 (Nonfarm Business Sector: Average Weekly + Hours for All Workers, index, SA, BLS). + FRED IDs, monthly at source and averaged over each quarter's three months — + CPIAUCSL (CPI-U All Items, 1982-84=100, SA, BLS); PCEND (PCE: Nondurable + Goods, $bn SAAR, BEA); UNRATE (Unemployment Rate, %, SA, BLS); CUMFNS + (Capacity Utilization: Manufacturing (SIC), %, SA, Federal Reserve Board + G.17); FEDFUNDS (Federal Funds Effective Rate, %, NSA, Federal Reserve Board + H.15); CE16OV (Employment Level, thousands, SA, BLS); CNP16OV (Population + Level, thousands, NSA, BLS). + citation: > + Bhandari, Anmol, Jaroslav Borovička, and Paul Ho. 2023. "Replication package + for: Survey data and subjective beliefs in business cycle models." Zenodo. + doi:10.5281/zenodo.10194324. Underlying series retrieved by the authors from + FRED (Federal Reserve Bank of St. Louis). Accompanies Bhandari, Anmol, + Jaroslav Borovička, and Paul Ho. 2025. "Survey Data and Subjective Beliefs in + Business Cycle Models." Review of Economic Studies 92 (3): 1375-1437. + doi:10.1093/restud/rdae054 (Crossref records first online 2024-05-27; the + lecture cites this as `bhandari2025survey`). + note: > + A FRED SNAPSHOT, NOT LIVE FRED, and the distinction is load-bearing. The + package pulled these series when its authors ran `read_data_FRED.m` (and + ships with `import_FRED = 0` so a replicator reads the archived copy rather + than re-pulling). The real-quantity columns are in chained 2012 dollars — + GDP/GDPC1 = 1.0000 across 2012 in these bytes — and PIRIC and PRS85006023 + are based at 2012 (2012 annual means 1.00005 and 99.99975). FRED has since rebased + all three to 2017 and revised the national accounts repeatedly. CPIAUCSL is + unaffected (1982-84=100 in both; the 1982-84 mean here is 100.017). + Consequently the builder must read the immutable Zenodo record and must not + read FRED; a live re-fetch is a different dataset, not a refresh. + +license: + name: CC-BY-4.0 + url: https://doi.org/10.5281/zenodo.10194324 + redistribution: permitted + verified: 2026-08-17 + note: > + Stated by the Zenodo record itself (`metadata.license.id = cc-by-4.0`, read + from the Zenodo API 2026-08-17), and repeated in the consuming lecture's + prose. Attribution is carried by `source.citation` above, which is the whole + of the CC-BY obligation for a cache like this one. The underlying layer is + consistent: thirteen of the fourteen series are US federal statistics (BEA, + BLS, CBO, Federal Reserve Board) delivered through FRED and are US + Government works; the fourteenth, PIRIC, is a series contributed to FRED by + Riccardo DiCecio; the FRED page states only "Source: DiCecio, Riccardo", + names no affiliation, tags the series "public domain: citation requested", + and defines it as INVDEF/CONSDEF. None of the fourteen + FRED series pages carries a copyright or no-redistribution block — checked + 2026-08-17 against a positive control (FRED's SP500 page, which does carry + S&P Dow Jones Indices' "Reproduction … is prohibited" notice), so the zero is + a real zero and not a broken check. Nothing to register on + QuantEcon/data-lectures#35. + +retrieved: null # inherited-undated: the bytes arrived in + # lecture-python-advanced.myst with no recorded + # retrieval date, and none was reconstructed + # from git history (AGENTS.md). It costs + # nothing — the source is an immutable versioned + # DOI and the builder reproduces these bytes + # from it exactly, so the vintage is pinned by + # content rather than by a date. For context and + # NOT as a retrieval date: the CSV first landed + # in the lecture repo in a192fbf (#343), + # 2026-06-12, with no build script. +maintainer: QuantEcon + +# --------------------------------------------------------------------------- +# Integrity (PLAN Phase 7) +# --------------------------------------------------------------------------- +# Migration check (repoint gate, not a manifest field): the bytes landing here +# are byte-identical to the copy the lecture reads today — sha256 f14f4256… +# against lecture-python-advanced.myst @ 00057ba, +# lectures/_static/lecture_specific/subjective_beliefs_business_cycles/. An +# org-wide tree sweep of all 278 QuantEcon repos on 2026-08-17 found that path +# and no other copy anywhere, so there is no sibling to keep in step. A repoint +# to this file therefore cannot change a figure. + +integrity: + sha256: f14f4256434371877f28da520f1e8b7950187dc23fff78dcc27912e89c0a8d5c + upstream: + # `verified` in the sense AGENTS.md defines for a constructed dataset — + # "re-run the builder and compare". Run three times on the date below + # against the live Zenodo record, each run reproducing this file byte for + # byte. That + # is also what licenses `builder_status: committed` below. + status: verified + date: 2026-08-17 + against: builders/bbh_macro_quarterly.py + note: > + Reproduced exactly from Zenodo record 10194324, whose versioned DOI is + immutable, so there is no vintage drift to accept. The FRED-vintage gap is + a property of the source, not a divergence from it, and is deliberately + NOT recorded as `diverged`: the declared upstream matched. Measured + A quantified comparison against a live FRED pull was attempted and is + deliberately NOT recorded here: FRED's bulk endpoints (fredgraph.csv, + fredgraph.xls, /data/.txt, /series//downloaddata/) did not answer + from the authoring environment on this date, so any delta table would be a + number no future validator could re-derive. What IS checkable from primary + sources and worth stating: FRED today publishes GDPC1 and GDPPOT in chained + 2017 dollars, PIRIC as Index 2017=1 and PRS85006023 as Index 2017=100, + while these bytes are on the 2012 base; CPIAUCSL is unaffected (1982-84=100 + in both). Adopting a live vintage is an author's call and would be a NEW + filename, per "Corrections vs vintages". + +# --------------------------------------------------------------------------- +# Shape +# --------------------------------------------------------------------------- +# Measured from the committed bytes 2026-08-17 (pandas 2.3.3), and asserted by +# the builder's validate() stage on every run. All fourteen data columns are +# float64 levels in the units FRED publishes them in; the lecture does every +# transformation itself. + +schema: + format: csv + columns: + - {name: YYYYQ, dtype: int64, description: "integer quarter key, year*10 + quarter — 19551 (1955Q1) to 20194 (2019Q4), 260 rows on an unbroken quarterly grid. The CSV index column"} + - {name: GDP, dtype: float64, description: "FRED GDP — nominal GDP, billions of dollars, SAAR. Observed 413.073-21694.458. Lecture denominator for the consumption and investment rates"} + - {name: GDPC1, dtype: float64, description: "FRED GDPC1 — real GDP, billions of CHAINED 2012 dollars (not 2017; see source.note), SAAR. Observed 2815.134-19202.31. Lecture: annualized log growth, and the numerator of the output gap"} + - {name: GDPPOT, dtype: float64, description: "FRED GDPPOT — CBO real potential GDP, billions of chained 2012 dollars. Observed 2757.5375-19225.5991. Lecture: denominator of `output_gap` only"} + - {name: PCESV, dtype: float64, description: "FRED PCESV — PCE on services, billions of dollars, SAAR. Observed 108.459-10113.165. Lecture: added to PCEND for the consumption rate"} + - {name: GPDI, dtype: float64, description: "FRED GPDI — gross private domestic investment, billions of dollars, SAAR. Observed 65.065-3858.192. Lecture: the investment rate"} + - {name: PIRIC, dtype: float64, description: "FRED PIRIC — relative price of investment goods, index based 2012=1 in this vintage (FRED now publishes 2017=1), SA. Observed 0.8418-3.8553. Lecture: 100*log first difference"} + - {name: PRS85006023, dtype: float64, description: "FRED PRS85006023 — nonfarm business sector average weekly hours, all workers, index based 2012=100 in this vintage (FRED now publishes 2017=100), SA. Observed 97.982-116.693. Lecture: combined with CE16OV/CNP16OV into log hours per capita"} + - {name: CPIAUCSL, dtype: float64, description: "FRED CPIAUCSL — CPI-U all items, 1982-84=100, SA, quarterly average of the three monthly values. Observed 26.7567-257.7853. Lecture: year-over-year inflation"} + - {name: PCEND, dtype: float64, description: "FRED PCEND — PCE on nondurable goods, billions of dollars, SAAR, quarterly average of the three monthly values. Observed 126.0667-3001.6, and EMPTY before 1959Q1 — see known_nulls"} + - {name: UNRATE, dtype: float64, description: "FRED UNRATE — civilian unemployment rate, percent, SA, quarterly average. Observed 3.4-10.6667. Enters the VAR in levels and is the variable the unemployment belief wedge is measured against"} + - {name: CUMFNS, dtype: float64, description: "FRED CUMFNS — capacity utilization, manufacturing (SIC), percent, SA, quarterly average. Observed 63.7623-91.5667"} + - {name: FEDFUNDS, dtype: float64, description: "FRED FEDFUNDS — effective federal funds rate, percent, NSA, quarterly average of monthly averages of daily figures. Observed 0.0733-17.78"} + - {name: CE16OV, dtype: float64, description: "FRED CE16OV — civilian employment level, thousands of persons, SA, quarterly average. Observed 60814.6667-158544.0"} + - {name: CNP16OV, dtype: float64, description: "FRED CNP16OV — civilian noninstitutional population 16+, thousands of persons, NSA, quarterly average. Observed 109130.3333-260015.3333. Steps DOWN in 2008Q1, 2017Q1 and 2019Q1 on the BLS January population controls, so it is not monotonic"} + row_count_floor: 260 # exact by design, not a floor with headroom: + # the window is fixed at 1955Q1-2019Q4 and does + # not grow. validate() asserts equality. + date_range: {start: 19551, end: 20194} # in the file's own YYYYQ key, i.e. + # 1955Q1 to 2019Q4 inclusive + + # The only nulls in the file, and they are structural: FRED publishes PCEND + # from 1959-01, so 1955Q1-1958Q4 is empty in that column and complete in every + # other. The lecture's `cons_r` is therefore NaN for those 16 quarters, which + # is harmless — its VAR is estimated from 1960Q1. validate() asserts these + # exact 16 and no others, so a new hole fails instead of shipping. + known_nulls: {PCEND: 16} + +# --------------------------------------------------------------------------- +# Consumers — how a correction knows what to rebuild +# --------------------------------------------------------------------------- +# One consumer, established by a tree sweep of all 278 QuantEcon repos on +# 2026-08-17 (two returned no default branch: numfocus, quantecon-book-dp). +# lecture-python-advanced.myst has no translation repo, and the generated +# lecture-python-advanced.notebooks mirror holds the lecture's .ipynb but not the +# CSV; it self-heals after a publish tag and is not a repo anyone repoints, so it +# is deliberately not listed (wave A4 precedent). +# +# Note for whoever repoints: the read is SPLIT ACROSS LINES and shares a +# `data_path` variable with bbh_michigan_monthly.csv (lectures/ +# subjective_beliefs_business_cycles.md:149-153), so a filename-only grep finds +# it but a whole-path grep does not, and editing one file's line alone leaves the +# other appended to a path that no longer exists in the flat published tree. The +# two C1 files in this lecture repoint together. +consumers: + - repo: QuantEcon/lecture-python-advanced.myst + file: lectures/subjective_beliefs_business_cycles.md + note: > + Reads its own copy at + `lectures/_static/lecture_specific/subjective_beliefs_business_cycles/`, + not this file — the repoint PR in lecture-python-advanced.myst follows + this one, and migration.yml records the dataset as `landed` until it + merges. Listed now because a correction to these bytes must reach the + lecture regardless of where it currently reads them from + (QuantEcon/data-lectures#91). + +builder: builders/bbh_macro_quarterly.py +builder_status: committed diff --git a/lectures/bbh_michigan_monthly.csv b/lectures/bbh_michigan_monthly.csv new file mode 100644 index 0000000..b926586 --- /dev/null +++ b/lectures/bbh_michigan_monthly.csv @@ -0,0 +1,508 @@ +yyyymm,px1_mean,share_more,share_same,share_less,unrate +197801,6.1,30,48,20,6.4 +197802,8.5,24,41,30,6.3 +197803,7.5,31,52,14,6.3 +197804,8.0,25,56,17,6.1 +197805,8.9,26,45,23,6.0 +197806,8.0,39,51,8,5.9 +197807,7.6,32,53,12,6.2 +197808,10.5,33,48,16,5.9 +197809,8.5,31,52,15,6.0 +197810,7.9,30,55,12,5.8 +197811,9.6,35,44,16,5.9 +197812,8.3,46,42,7,6.0 +197901,9.7,41,45,10,5.9 +197902,11.4,34,50,14,5.9 +197903,10.0,41,46,9,5.8 +197904,11.1,45,40,11,5.8 +197905,12.0,40,46,9,5.6 +197906,12.0,52,39,6,5.7 +197907,11.5,62,30,6,5.7 +197908,11.2,62,30,7,6.0 +197909,10.4,55,36,7,5.9 +197910,9.5,55,36,7,6.0 +197911,11.9,54,36,8,5.9 +197912,11.7,61,30,8,6.0 +198001,13.8,54,34,9,6.3 +198002,11.2,46,38,13,6.3 +198003,12.7,57,35,7,6.3 +198004,12.0,62,29,7,6.9 +198005,9.5,72,23,5,7.5 +198006,9.0,63,25,11,7.6 +198007,10.0,59,30,11,7.8 +198008,8.8,40,38,19,7.7 +198009,9.3,40,36,22,7.5 +198010,10.0,30,46,21,7.5 +198011,9.8,24,47,26,7.5 +198012,10.9,39,41,16,7.2 +198101,8.6,38,41,19,7.5 +198102,9.1,40,42,16,7.4 +198103,7.9,41,43,13,7.4 +198104,9.3,40,41,17,7.2 +198105,8.6,36,46,17,7.5 +198106,7.8,36,44,18,7.5 +198107,7.7,36,44,18,7.2 +198108,7.7,36,47,14,7.4 +198109,8.7,39,45,15,7.6 +198110,8.3,50,38,11,7.9 +198111,8.8,54,33,11,8.3 +198112,6.5,59,28,11,8.5 +198201,6.4,49,34,16,8.6 +198202,6.4,52,33,13,8.9 +198203,5.8,54,32,13,9.0 +198204,5.1,50,34,14,9.3 +198205,4.8,47,35,17,9.4 +198206,5.8,48,35,16,9.6 +198207,5.9,48,35,16,9.8 +198208,6.3,46,35,17,9.8 +198209,5.3,43,38,18,10.1 +198210,5.9,41,36,21,10.4 +198211,5.2,37,42,19,10.8 +198212,4.8,37,40,22,10.8 +198301,4.7,30,45,23,10.4 +198302,4.5,29,41,29,10.4 +198303,3.1,21,43,36,10.3 +198304,4.5,15,41,42,10.2 +198305,4.5,13,44,42,10.1 +198306,4.6,15,47,37,10.1 +198307,4.5,16,44,39,9.4 +198308,5.0,15,40,42,9.5 +198309,5.0,17,46,36,9.2 +198310,5.2,20,44,35,8.8 +198311,5.1,16,47,35,8.5 +198312,4.9,17,45,36,8.3 +198401,4.6,14,48,36,8.0 +198402,5.1,16,50,31,7.8 +198403,5.0,16,45,38,7.8 +198404,5.8,18,52,28,7.7 +198405,5.3,20,51,29,7.4 +198406,4.8,23,52,24,7.2 +198407,4.5,19,53,26,7.5 +198408,4.5,21,54,24,7.5 +198409,4.2,22,50,26,7.3 +198410,5.3,24,54,20,7.4 +198411,5.1,24,52,22,7.2 +198412,4.7,28,50,21,7.3 +198501,4.0,25,54,20,7.3 +198502,4.8,28,50,20,7.2 +198503,4.3,29,47,23,7.2 +198504,5.0,28,50,20,7.3 +198505,4.6,28,52,19,7.2 +198506,4.9,25,58,16,7.4 +198507,4.2,27,58,14,7.4 +198508,3.6,29,52,17,7.1 +198509,4.4,31,53,14,7.1 +198510,4.8,32,51,16,7.1 +198511,4.4,29,54,15,7.0 +198512,5.0,30,54,15,7.0 +198601,4.2,30,54,15,6.7 +198602,3.7,29,51,19,7.2 +198603,3.0,33,48,17,7.2 +198604,3.4,32,51,15,7.1 +198605,3.3,31,54,14,7.2 +198606,3.7,26,53,20,7.2 +198607,3.6,27,56,15,7.0 +198608,4.2,32,54,13,6.9 +198609,3.4,32,54,11,7.0 +198610,3.7,33,55,10,7.0 +198611,3.6,34,54,11,6.9 +198612,4.0,42,46,11,6.6 +198701,3.9,38,49,12,6.6 +198702,4.1,33,52,14,6.6 +198703,3.6,35,48,15,6.6 +198704,3.7,33,52,13,6.3 +198705,4.7,32,53,13,6.3 +198706,4.4,30,52,16,6.2 +198707,4.2,30,55,14,6.1 +198708,4.4,27,56,15,6.0 +198709,4.2,29,57,13,5.9 +198710,4.3,29,52,17,6.0 +198711,3.8,36,53,10,5.8 +198712,3.9,34,51,12,5.7 +198801,4.3,33,54,12,5.7 +198802,4.4,33,53,12,5.7 +198803,4.0,28,58,12,5.7 +198804,4.5,28,56,14,5.4 +198805,4.8,21,67,11,5.6 +198806,5.6,31,53,15,5.4 +198807,5.6,29,54,15,5.4 +198808,5.3,27,53,15,5.6 +198809,5.5,27,52,17,5.4 +198810,5.1,22,60,16,5.4 +198811,5.4,27,57,14,5.3 +198812,5.0,28,55,15,5.3 +198901,5.1,34,50,15,5.4 +198902,4.8,30,55,13,5.2 +198903,5.6,33,53,12,5.0 +198904,5.0,29,55,14,5.2 +198905,5.8,35,52,12,5.2 +198906,5.0,29,59,10,5.3 +198907,5.1,31,57,11,5.2 +198908,4.7,35,54,10,5.2 +198909,4.4,26,61,11,5.3 +198910,4.6,30,55,14,5.3 +198911,4.7,35,54,10,5.4 +198912,4.4,37,51,11,5.4 +199001,5.3,36,52,10,5.4 +199002,5.1,44,48,7,5.3 +199003,4.9,34,55,10,5.2 +199004,4.4,36,52,11,5.4 +199005,4.6,37,52,10,5.4 +199006,4.9,39,52,8,5.2 +199007,4.6,37,54,7,5.5 +199008,6.1,46,44,9,5.7 +199009,5.8,44,45,9,5.9 +199010,6.0,62,30,6,5.9 +199011,5.5,64,30,5,6.2 +199012,5.3,60,34,6,6.3 +199101,4.8,62,29,8,6.4 +199102,4.6,56,31,12,6.6 +199103,4.4,36,46,17,6.8 +199104,4.1,45,39,15,6.7 +199105,4.4,43,44,12,6.9 +199106,4.7,36,48,14,6.9 +199107,3.7,39,48,13,6.8 +199108,4.2,40,45,13,6.9 +199109,3.6,38,50,12,6.9 +199110,4.6,48,39,11,7.0 +199111,4.5,46,44,9,7.0 +199112,3.6,52,37,9,7.3 +199201,3.1,57,33,9,7.3 +199202,3.3,56,30,12,7.4 +199203,3.0,43,42,14,7.4 +199204,3.5,42,40,16,7.4 +199205,3.2,36,45,18,7.6 +199206,4.0,37,48,14,7.8 +199207,3.8,45,40,13,7.7 +199208,3.9,38,46,15,7.6 +199209,4.0,42,43,15,7.6 +199210,3.5,41,41,16,7.3 +199211,4.4,28,52,19,7.4 +199212,3.2,26,46,27,7.4 +199301,3.4,25,46,27,7.3 +199302,4.5,32,44,22,7.1 +199303,4.9,37,43,20,7.0 +199304,4.0,33,48,18,7.1 +199305,4.3,38,48,13,7.1 +199306,4.8,40,46,13,7.0 +199307,4.4,42,44,12,6.9 +199308,4.7,42,43,13,6.8 +199309,4.7,45,42,12,6.7 +199310,3.9,46,44,9,6.8 +199311,3.5,42,45,11,6.6 +199312,3.7,33,47,18,6.5 +199401,3.4,25,51,21,6.6 +199402,3.7,32,51,17,6.6 +199403,4.4,32,47,20,6.5 +199404,4.5,32,51,16,6.4 +199405,3.9,32,51,16,6.1 +199406,4.0,30,51,16,6.1 +199407,4.2,29,52,18,6.1 +199408,4.6,34,51,13,6.0 +199409,4.7,34,46,17,5.9 +199410,3.8,30,56,14,5.8 +199411,4.5,31,50,18,5.6 +199412,4.0,30,47,22,5.5 +199501,3.7,28,54,16,5.6 +199502,4.0,32,53,13,5.4 +199503,4.6,35,49,15,5.4 +199504,4.3,34,51,14,5.8 +199505,3.9,30,57,12,5.6 +199506,3.9,32,55,12,5.6 +199507,3.8,38,52,9,5.7 +199508,3.9,34,55,11,5.7 +199509,4.0,37,52,11,5.6 +199510,3.5,43,46,10,5.5 +199511,3.7,35,53,11,5.6 +199512,3.2,35,51,13,5.6 +199601,4.0,46,43,11,5.6 +199602,3.6,40,50,9,5.5 +199603,4.1,35,52,12,5.5 +199604,4.5,35,53,11,5.6 +199605,4.8,33,54,12,5.6 +199606,4.1,35,52,12,5.3 +199607,4.2,30,54,15,5.5 +199608,4.1,30,53,16,5.1 +199609,4.3,29,53,17,5.2 +199610,4.1,28,57,14,5.2 +199611,3.9,26,57,16,5.4 +199612,3.9,24,60,14,5.4 +199701,4.1,31,51,17,5.3 +199702,3.8,25,56,18,5.2 +199703,3.5,27,57,15,5.2 +199704,3.7,28,55,15,5.1 +199705,3.7,25,57,16,4.9 +199706,3.5,22,62,14,5.0 +199707,3.4,23,57,19,4.9 +199708,3.3,23,59,16,4.8 +199709,3.5,22,57,19,4.9 +199710,3.2,20,57,20,4.7 +199711,3.4,23,61,15,4.6 +199712,3.4,32,49,18,4.7 +199801,2.8,24,55,18,4.6 +199802,2.6,19,59,20,4.6 +199803,2.9,20,58,20,4.7 +199804,2.7,16,63,19,4.3 +199805,3.1,21,60,19,4.4 +199806,3.2,26,51,21,4.5 +199807,3.1,26,58,15,4.5 +199808,2.7,26,56,17,4.5 +199809,2.7,26,59,14,4.6 +199810,2.6,33,53,12,4.5 +199811,2.7,34,50,15,4.4 +199812,2.8,36,50,12,4.4 +199901,3.0,28,58,13,4.3 +199902,2.8,23,59,15,4.4 +199903,3.1,26,60,13,4.2 +199904,3.0,23,62,14,4.3 +199905,3.2,24,61,14,4.2 +199906,3.1,19,62,17,4.3 +199907,3.0,22,64,13,4.3 +199908,3.2,27,57,14,4.2 +199909,3.2,24,61,14,4.2 +199910,3.5,25,61,13,4.1 +199911,3.3,26,56,15,4.1 +199912,3.6,21,61,16,4.0 +200001,3.5,21,61,17,4.0 +200002,3.5,21,62,15,4.1 +200003,3.8,22,62,13,4.0 +200004,3.5,22,62,13,3.8 +200005,3.5,20,64,16,4.0 +200006,3.4,25,59,13,4.0 +200007,3.7,24,60,13,4.0 +200008,3.5,23,59,15,4.1 +200009,3.7,23,61,12,3.9 +200010,4.1,29,57,12,3.9 +200011,3.8,27,57,13,3.9 +200012,3.4,39,47,12,3.9 +200101,3.8,47,42,8,4.2 +200102,3.2,53,36,10,4.2 +200103,3.3,50,42,7,4.3 +200104,3.7,53,39,7,4.4 +200105,3.9,47,42,9,4.3 +200106,4.0,45,44,10,4.5 +200107,3.0,49,41,9,4.6 +200108,3.1,52,37,10,4.9 +200109,3.2,60,29,9,5.0 +200110,1.6,59,30,9,5.3 +200111,1.0,56,30,13,5.5 +200112,1.9,48,36,13,5.7 +200201,2.2,40,40,17,5.7 +200202,2.4,42,40,18,5.7 +200203,3.1,34,42,22,5.7 +200204,3.1,32,44,23,5.9 +200205,3.1,30,49,19,5.8 +200206,3.0,31,51,16,5.8 +200207,2.7,44,43,12,5.8 +200208,2.6,42,44,13,5.7 +200209,3.1,36,47,16,5.7 +200210,2.9,44,40,13,5.7 +200211,2.5,37,47,14,5.9 +200212,2.7,43,40,16,6.0 +200301,2.7,43,44,12,5.8 +200302,3.2,44,41,14,5.9 +200303,3.8,44,41,14,5.9 +200304,2.7,37,45,17,6.0 +200305,2.5,29,47,22,6.1 +200306,2.5,35,44,20,6.3 +200307,2.3,34,46,18,6.2 +200308,2.8,32,47,21,6.1 +200309,3.4,33,48,19,6.1 +200310,3.1,37,43,20,6.0 +200311,3.1,31,42,26,5.8 +200312,2.8,26,45,28,5.7 +200401,2.9,24,47,29,5.7 +200402,2.9,28,49,23,5.6 +200403,3.4,31,45,23,5.8 +200404,4.0,29,48,22,5.6 +200405,3.9,30,47,23,5.6 +200406,4.0,23,48,27,5.6 +200407,3.5,22,47,29,5.5 +200408,3.1,28,49,22,5.4 +200409,3.2,28,48,23,5.4 +200410,3.6,26,52,21,5.5 +200411,3.3,28,49,22,5.4 +200412,3.4,26,51,23,5.4 +200501,3.5,31,49,20,5.3 +200502,3.3,29,53,18,5.4 +200503,4.0,29,54,17,5.2 +200504,4.0,35,48,17,5.2 +200505,3.8,37,45,18,5.1 +200506,4.0,32,52,16,5.0 +200507,3.6,30,56,13,5.0 +200508,3.7,36,51,13,4.9 +200509,5.5,48,41,11,5.0 +200510,5.5,48,37,14,5.0 +200511,4.1,36,50,14,5.0 +200512,4.1,41,44,15,4.9 +200601,3.8,38,50,11,4.7 +200602,3.6,40,47,12,4.8 +200603,3.8,42,44,13,4.7 +200604,4.4,41,46,12,4.7 +200605,4.7,40,46,13,4.6 +200606,4.4,38,50,11,4.6 +200607,3.8,39,51,10,4.7 +200608,4.6,41,47,11,4.7 +200609,3.6,39,47,14,4.5 +200610,3.7,31,59,9,4.4 +200611,3.3,31,59,10,4.5 +200612,3.5,34,53,13,4.4 +200701,3.6,27,60,12,4.6 +200702,3.6,33,58,8,4.5 +200703,3.6,33,57,10,4.4 +200704,4.0,38,53,9,4.5 +200705,4.3,30,59,10,4.4 +200706,4.2,37,51,12,4.6 +200707,4.2,33,56,10,4.7 +200708,4.0,39,52,8,4.6 +200709,4.0,36,54,9,4.7 +200710,3.7,38,54,8,4.7 +200711,4.3,39,50,11,4.7 +200712,4.4,47,45,8,5.0 +200801,4.0,47,46,6,5.0 +200802,3.9,50,41,9,4.9 +200803,4.6,55,38,7,5.1 +200804,5.7,59,36,5,5.0 +200805,7.0,56,41,3,5.4 +200806,6.5,64,31,5,5.6 +200807,6.3,61,32,7,5.8 +200808,5.3,55,40,5,6.1 +200809,4.6,50,41,9,6.1 +200810,4.3,62,31,6,6.5 +200811,2.9,69,24,7,6.8 +200812,1.7,69,24,7,7.3 +200901,2.5,66,21,12,7.8 +200902,2.3,69,20,10,8.3 +200903,2.4,64,27,9,8.7 +200904,3.1,56,31,12,9.0 +200905,3.2,46,40,14,9.4 +200906,3.9,48,37,15,9.5 +200907,3.6,50,36,14,9.5 +200908,3.0,39,45,15,9.6 +200909,2.8,30,49,20,9.8 +200910,3.2,36,48,16,10.0 +200911,3.1,40,43,16,9.9 +200912,3.0,34,44,22,9.9 +201001,3.4,30,50,19,9.8 +201002,3.6,27,51,21,9.8 +201003,3.4,29,53,17,9.9 +201004,3.8,29,46,24,9.9 +201005,4.1,26,53,21,9.6 +201006,3.3,26,51,22,9.4 +201007,3.3,31,48,20,9.4 +201008,3.2,31,50,19,9.5 +201009,3.0,30,53,16,9.5 +201010,3.3,30,51,17,9.4 +201011,3.7,28,51,20,9.8 +201012,3.9,25,54,20,9.3 +201101,4.2,22,56,21,9.1 +201102,4.4,22,48,28,9.0 +201103,5.2,27,50,22,9.0 +201104,5.3,29,49,21,9.1 +201105,4.8,22,52,25,9.0 +201106,4.5,26,53,21,9.1 +201107,4.4,31,55,14,9.0 +201108,4.4,43,45,12,9.0 +201109,4.3,35,54,10,9.0 +201110,4.0,34,53,12,8.8 +201111,4.0,26,58,16,8.6 +201112,3.7,29,52,18,8.5 +201201,4.0,25,52,23,8.3 +201202,4.1,25,46,29,8.3 +201203,4.7,19,51,29,8.2 +201204,3.8,22,53,24,8.2 +201205,3.6,22,50,27,8.2 +201206,3.7,27,49,23,8.2 +201207,3.9,26,52,21,8.2 +201208,4.3,25,53,21,8.1 +201209,4.3,20,53,27,7.8 +201210,4.2,19,49,30,7.8 +201211,4.0,24,42,30,7.7 +201212,4.0,35,40,25,7.9 +201301,4.5,31,47,22,8.0 +201302,4.4,27,48,23,7.7 +201303,4.0,31,43,25,7.5 +201304,4.0,29,47,23,7.6 +201305,4.2,26,48,25,7.5 +201306,3.8,23,52,24,7.5 +201307,4.1,23,56,21,7.3 +201308,4.2,28,45,26,7.2 +201309,4.1,32,45,22,7.2 +201310,3.6,30,50,19,7.2 +201311,3.7,35,44,21,6.9 +201312,3.8,26,52,22,6.7 +201401,4.0,29,46,23,6.6 +201402,4.3,34,47,18,6.7 +201403,4.2,30,54,15,6.7 +201404,4.0,26,53,21,6.2 +201405,4.4,23,48,28,6.3 +201406,3.7,24,53,22,6.1 +201407,4.0,28,48,22,6.2 +201408,4.0,26,52,21,6.1 +201409,3.8,29,49,21,5.9 +201410,3.5,22,52,25,5.7 +201411,3.0,19,53,28,5.8 +201412,3.0,21,52,27,5.6 +201501,2.7,19,52,29,5.7 +201502,3.1,24,45,30,5.5 +201503,3.5,21,51,27,5.4 +201504,3.2,20,51,28,5.4 +201505,3.4,22,53,24,5.6 +201506,3.5,20,54,25,5.3 +201507,3.7,25,53,21,5.2 +201508,3.5,25,51,24,5.1 +201509,3.1,27,52,19,5.0 +201510,3.5,27,52,20,5.0 +201511,3.2,21,55,22,5.1 +201512,3.0,25,53,21,5.0 +201601,3.1,29,52,18,4.8 +201602,2.9,26,54,19,4.9 +201603,3.3,26,54,20,5.0 +201604,3.3,31,52,16,5.1 +201605,3.0,24,54,21,4.8 +201606,3.1,28,54,18,4.9 +201607,3.2,31,51,17,4.8 +201608,3.0,27,51,20,4.9 +201609,3.0,26,52,20,5.0 +201610,3.0,27,51,20,4.9 +201611,3.0,26,50,23,4.7 +201612,2.8,22,48,28,4.7 +201701,3.1,22,43,33,4.7 +201702,3.3,26,38,35,4.6 +201703,3.2,25,37,36,4.4 +201704,2.9,23,41,36,4.4 +201705,3.0,25,44,30,4.4 +201706,3.3,27,43,30,4.3 +201707,3.0,27,48,24,4.3 +201708,3.1,25,46,29,4.4 +201709,3.3,25,47,28,4.3 +201710,3.0,23,47,29,4.2 +201711,2.9,22,49,29,4.2 +201712,3.2,25,46,29,4.1 +201801,3.0,26,43,31,4.0 +201802,3.1,23,42,35,4.1 +201803,3.3,22,45,32,4.0 +201804,3.3,25,46,28,4.0 +201805,3.3,24,51,24,3.8 +201806,3.7,22,47,30,4.0 +201807,3.7,26,44,29,3.8 +201808,3.7,25,45,30,3.8 +201809,3.3,20,50,29,3.7 +201810,3.7,23,46,29,3.8 +201811,3.3,22,50,27,3.8 +201812,3.3,30,47,22,3.9 +201901,2.9,33,47,19,4.0 +201902,3.1,31,46,23,3.8 +201903,2.9,22,52,25,3.8 +201904,3.1,24,49,27,3.6 +201905,3.4,22,53,25,3.6 +201906,3.5,27,49,24,3.6 +201907,3.2,25,51,23,3.7 +201908,3.4,30,51,19,3.7 +201909,3.3,31,48,20,3.5 +201910,3.0,32,48,20,3.6 +201911,3.1,23,53,23,3.6 +201912,2.8,31,46,23,3.6 +202001,2.9,21,53,26,3.5 +202002,2.8,23,56,21,3.5 +202003,2.5,39,39,21,4.4 diff --git a/lectures/bbh_michigan_monthly.csv.yml b/lectures/bbh_michigan_monthly.csv.yml new file mode 100644 index 0000000..639774b --- /dev/null +++ b/lectures/bbh_michigan_monthly.csv.yml @@ -0,0 +1,256 @@ +# Manifest for bbh_michigan_monthly.csv — migrated out of +# QuantEcon/lecture-python-advanced.myst, where it sat at +# lectures/_static/lecture_specific/subjective_beliefs_business_cycles/ and was +# read by RELATIVE PATH, not by URL (PLAN Phase 8, wave C1). +# +# "BBH" is Bhandari, Borovička and Ho. Established from the lecture's own +# citation key `bhandari2025survey` (quant-econ.bib:3135-3144 in +# lecture-python-advanced.myst) and confirmed by the Zenodo deposit's creator +# list, not inferred from the filename. +# +# THE EXTRACTION WAS RECOVERABLE. scripts/audit_annotations.yml carried this +# file as `provenance: constructed-lost`, note "same Zenodo replication package; +# extraction not scripted". That was right about the source and wrong about the +# loss: all five columns are copied unchanged from three members of the deposit, +# and builders/bbh_michigan_monthly.py — written during this migration, not +# inherited — reproduces the committed bytes exactly. Delete the stale +# annotation when this manifest lands (AGENTS.md, "The audit dashboard stays +# truthful"). +# +# READ THE LICENCE NOTE. Four of the five columns are University of Michigan +# Surveys of Consumers aggregates, and Michigan's usage agreement forbids +# redistribution without its express written consent. The CC BY 4.0 grant on the +# manifest below is the depositors', not Michigan's. `redistribution: restricted`. +# +# bbh_macro_quarterly.csv is the sibling extract from the same deposit, read by +# the same lecture and migrating in the same wave; it carries its own manifest. + +filename: bbh_michigan_monthly.csv +title: Michigan Surveys of Consumers monthly aggregates and the US unemployment rate, 1978-01 to 2020-03 (BBH replication extract) +description: > + Five monthly series the `subjective_beliefs_business_cycles` lecture uses to + build household belief wedges: the mean one-year-ahead inflation expectation + from the University of Michigan Surveys of Consumers, the three response + shares to Michigan's one-year-ahead unemployment question ("more", "about the + same", "less"), and the US civilian unemployment rate. All five are + percentages or percentage points. Extracted unchanged from the Bhandari, + Borovička and Ho (2025) replication package on Zenodo — the extraction picks + five columns out of the 375 those three members carry (273 + 81 + 21) + and performs no arithmetic. + +# Constructed, not verbatim: no member of the upstream deposit looks like this +# file. It is a five-column selection out of three separate members (two CSVs +# and one sheet of an .xlsx), renamed, restricted to the all-households +# demographic cell and windowed. Every value is copied bit for bit; the +# construction is entirely selection and join. +class: constructed + +source: + name: > + Bhandari, Borovička and Ho replication package (Zenodo), carrying University + of Michigan Surveys of Consumers published aggregates and a US Bureau of + Labor Statistics series retrieved via FRED + url: https://doi.org/10.5281/zenodo.10194324 + doi: 10.5281/zenodo.10194324 + version: > + Zenodo record 10194324, published 2023-11-22, a single 198,817,944-byte + archive "replication package.zip", md5 6e33f9b9e70135cbf3304275d1c5d604 + (read from the Zenodo API 2026-08-17; the builder asserts both). Within it + the two Michigan members are stamped 2021-12-17 and the FRED workbook + 2023-11-20 — so this file is a 2021 vintage of the survey aggregates and a + 2023 vintage of the unemployment rate, not today's. + series: > + px1_mean <- "data input/Michigan/PX1_M.csv", column px1_mean_all; + share_more <- "data input/Michigan/UMEX_M.csv", column umex_u_all; + share_same <- "data input/Michigan/UMEX_M.csv", column umex_s_all; + share_less <- "data input/Michigan/UMEX_M.csv", column umex_f_all; + unrate <- "data input/FRED/data_FRED.xlsx", sheet FRED_M, column UNRATE + (FRED series UNRATE, BLS Current Population Survey). + The Michigan members are downloads from data.sca.isr.umich.edu (named as the + source by the deposit's own "data input/Michigan/data source.txt"): PX1_M is + Michigan table 32, "Expected Change in Prices During the Next Year", and + UMEX_M is table 30, "Expected Change in Unemployment During the Next Year", + both in Michigan's time-series-demographics export format. + citation: > + Extracted by QuantEcon from Bhandari, Anmol, Jaroslav Borovička, and Paul + Ho. 2023. "Replication package for: Survey data and subjective beliefs in + business cycle models." Zenodo. doi:10.5281/zenodo.10194324. Underlying + data: University of Michigan, Surveys of Consumers (Ann Arbor, MI), and + U.S. Bureau of Labor Statistics, Unemployment Rate [UNRATE], retrieved from + FRED, Federal Reserve Bank of St. Louis. Accompanies Bhandari, Anmol, + Jaroslav Borovička, and Paul Ho. 2025. "Survey Data and Subjective Beliefs + in Business Cycle Models." Review of Economic Studies 92 (3): 1375-1437. + doi:10.1093/restud/rdae054. + note: > + Two hops, and the second one matters. QuantEcon's bytes come from the Zenodo + deposit, not from Michigan or FRED directly, and that is deliberate: the + deposit is DOI-pinned and immutable, so it fixes the vintage the paper used. + Refetching live would silently adopt a newer one — measurably so for the + unemployment column, where today's FRED UNRATE differs from these bytes on 3 + of 507 months (2019-04, 2019-08, 2020-01, each by 0.1pp, seasonal-factor + revisions). That is a new-vintage question, not a correction, and per + AGENTS.md it would need a new filename; the builder therefore reads the + deposit and not the live sources. + Corroboration that the Michigan members really are Michigan's published + tables rather than the authors' own aggregation of the microdata (the + deposit also ships a 105 MB cross-section extract): PX1_M.csv's px1_med_all + column matches FRED series MICH — "University of Michigan: Inflation + Expectation", the published MEDIAN — on all 507 months of this window with + max abs diff 0. The column published here is the MEAN, which FRED does not + mirror, and which differs from MICH on 504 of those 507 months. + +license: + name: CC-BY-4.0 + url: https://zenodo.org/records/10194324 + # Recorded as found on the immediate source, per the record-and-track policy + # (AGENTS.md, "Licensing and attribution"). The gate answer is `restricted` + # because the layer beneath the deposit says so — see the note. + redistribution: restricted + verified: 2026-08-17 + note: > + Split answer, and the halves disagree. The Zenodo record declares + "cc-by-4.0" (Zenodo API, metadata.license.id, read 2026-08-17), and the + lecture repeats that claim at subjective_beliefs_business_cycles.md:133-136. + But four of the five columns are University of Michigan Surveys of Consumers + aggregates, and Michigan's usage agreement + (https://data.sca.isr.umich.edu/agreement.php, read 2026-08-17) states: "The + data and other materials available through the Surveys of Consumers website + are the property of the University of Michigan and are protected by + copyright and other intellectual property laws. The data and materials + obtained from the website may be displayed, reformatted, and printed for + your organization's use. You agree not to reproduce, retransmit, distribute, + sell, publish, or broadcast the data and materials from the Surveys of + Consumers website without the express written consent of the University of + Michigan." The CC BY 4.0 grant is the depositors', who are not the rights + holder for that material; whether they obtained Michigan's written consent + is not stated anywhere in the deposit and was not established. The fifth + column is different and clean: UNRATE is a U.S. Bureau of Labor Statistics + series, a U.S. Government work in the public domain, with FRED as the + delivery channel and not the rights holder. + Two facts that bear on how much is at stake, recorded so the review does not + have to re-derive them: what is published here is four aggregate columns for + the all-households cell only — not the demographic breakdowns the deposit + ships, and not the microdata — and these are the same published aggregates + Michigan puts on its own tables pages. Michigan's terms bind someone who + obtains the data from its website; QuantEcon obtained them from a CC BY 4.0 + deposit. That argument is not obviously wrong and is not obviously enough. + Inherited exposure: served publicly from lecture-python-advanced.myst since + 2026-06-12, and reachable today at + https://python-advanced.quantecon.org/_static/lecture_specific/subjective_beliefs_business_cycles/bbh_michigan_monthly.csv + (HTTP 200, byte-identical). No permission has been sought from the + University of Michigan. Licensing does not gate migration for an inherited + file (AGENTS.md); registered for licence review on + QuantEcon/data-lectures#35, where it is the strongest candidate in the + corpus for a genuine redistribution restriction. + +retrieved: null # no upstream-retrieval date was recorded when + # these bytes entered the lecture repo, and + # AGENTS.md forbids reconstructing one from git + # history. It costs nothing here: the upstream + # is an immutable DOI deposit and a builder + # re-run on 2026-08-17 reproduced this file byte + # for byte, so the vintage is pinned by content + # rather than by a date. For context and NOT as + # a retrieval date, the bytes landed in + # lecture-python-advanced.myst in a192fbf (#343), + # 2026-06-12. +maintainer: QuantEcon + +# --------------------------------------------------------------------------- +# Integrity (PLAN Phase 7) +# --------------------------------------------------------------------------- +# Migration check (repoint gate, not a manifest field): the bytes landing here +# are byte-identical to the copy the lecture reads today — sha256 567efe5a… +# against lecture-python-advanced.myst @ 00057ba, +# lectures/_static/lecture_specific/subjective_beliefs_business_cycles/, and +# against the live published copy at python-advanced.quantecon.org. Verified +# 2026-08-17; a repoint to this file therefore cannot change a figure. + +integrity: + sha256: 567efe5a009a30bcfa32c30746bdaa97ce82ba611a98c03d127a662792319426 + upstream: + # `verified` in the sense AGENTS.md defines for a constructed dataset — + # "re-run the builder and compare". Run twice on the date below against the + # live Zenodo deposit, both runs reproducing this file byte for byte + # (sha256 unchanged, cmp exit 0). That run is what licenses `committed` + # rather than `committed-frozen` on the builder below. + status: verified + date: 2026-08-17 + against: builders/bbh_michigan_monthly.py + note: > + The deposit is DOI-pinned and immutable, so `verified` here is a stronger + claim than for a live-API source. Deliberately NOT `diverged`: the 3-month + 0.1pp gap against today's FRED UNRATE (documented in source.note) is a + difference from a source this builder does not read, not from the upstream + it does. If a future decision adopts a live-FRED vintage, that is a new + filename, not an edit here. + +# --------------------------------------------------------------------------- +# Shape +# --------------------------------------------------------------------------- +# Measured from the committed bytes 2026-08-17 with pandas 2.3.3, and asserted +# by the builder's validate() stage on every run. + +schema: + format: csv + columns: + - {name: yyyymm, dtype: int64, description: "month stamp as the integer YYYYMM, 197801 to 202003 on an unbroken monthly grid — the CSV index column"} + - {name: px1_mean, dtype: float64, description: "mean expected change in prices over the next 12 months, percent per year, all households (Michigan table 32 / PX1). Observed 1.0-13.8. This is the MEAN; FRED's MICH series is the median and is a different series"} + - {name: share_more, dtype: int64, description: "percent of households expecting MORE unemployment over the next year, all households (Michigan table 30 / UMEX). Whole percents, observed 13-72"} + - {name: share_same, dtype: int64, description: "percent expecting ABOUT THE SAME unemployment. Whole percents, observed 20-67"} + - {name: share_less, dtype: int64, description: "percent expecting LESS unemployment. Whole percents, observed 3-42"} + - {name: unrate, dtype: float64, description: "US civilian unemployment rate, percent, seasonally adjusted, monthly (FRED UNRATE / BLS). Observed 3.5-10.8"} + row_count_floor: 507 # exact by design, not a floor with headroom: the + # window is frozen at 1978-01..2020-03 and does + # not grow. validate() asserts equality. + date_range: {start: 197801, end: 202003} # in the file's own YYYYMM integers + known_nulls: {} # genuinely none — 507 complete rows, 0 nulls in + # every column + # The three shares are the answer distribution NET of "don't know", so they sum + # to at most 100 and not to exactly 100: observed totals run 94-100, equal to + # 100 on only 99 of 507 months. The lecture depends on this — it renormalises + # by their sum before applying Carlson-Parkin — so it is a property of the data, + # not a defect. The deposit's umex_dk_all column carries the residual and is + # not published here. + +# --------------------------------------------------------------------------- +# Consumers — how a correction knows what to rebuild +# --------------------------------------------------------------------------- +# One consuming repo, one lecture file, established by an authenticated Trees-API +# sweep of all 278 QuantEcon repos on 2026-08-17 (276 scanned, 2 empty, 0 errors) +# plus a content grep of every local clone. `gh repo list` shows no translation +# of lecture-python-advanced.myst. +# +# The read is a RELATIVE PATH, not a URL — `data_path + 'bbh_michigan_monthly.csv'` +# joined at subjective_beliefs_business_cycles.md:152 (`data_path` is assigned +# at md:149; the call wraps onto md:153). The full path string never appears in +# the source, so a literal-path grep returns a confident ZERO — sweep by basename. +# It must be COLLAPSED at the repoint, not patched on the stem line: the flat +# published tree has no _static/lecture_specific// segment, so editing +# the filename alone would leave it appended to a path that no longer exists. +# The same lecture reads bbh_macro_quarterly.csv from the same `data_path` two +# lines earlier; both go together. A line-based grep for the whole read returns a +# confident ZERO against the wrapped form — sweep by basename. +# +# There are no {download} roles and no prose references to this filename anywhere +# in lecture-python-advanced.myst; md:152 is the only reference in the repo. +# +# QuantEcon/lecture-python-advanced.notebooks/subjective_beliefs_business_cycles.ipynb +# carries the same two-line read. It is a generated mirror that self-heals after a +# publish tag and is not a repo anyone repoints, so it is deliberately not listed +# (wave A4 precedent) — but note the caveat recorded on workspace-lectures#45: +# a mirror entry orphaned by a lecture's removal never self-heals. +consumers: + - repo: QuantEcon/lecture-python-advanced.myst + file: lectures/subjective_beliefs_business_cycles.md + note: > + Reads its own copy at + `lectures/_static/lecture_specific/subjective_beliefs_business_cycles/`, + not this file — the repoint PR in lecture-python-advanced.myst follows + this one, and migration.yml records the dataset as `landed` until it + merges. Listed now because a correction to these bytes must reach the + lecture regardless of where it currently reads them from + (QuantEcon/data-lectures#91). + +builder: builders/bbh_michigan_monthly.py +builder_status: committed diff --git a/lectures/hansen_jagannathan_1991_data.json b/lectures/hansen_jagannathan_1991_data.json new file mode 100644 index 0000000..001d1f6 --- /dev/null +++ b/lectures/hansen_jagannathan_1991_data.json @@ -0,0 +1 @@ +{"annual": {"columns": ["year", "stock", "bond", "consumption"], "index": ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94"], "data": [[1891.0, 1.26076009559031, 1.1285118622613837, 2505.2209983139105], [1892.0, 0.9849555744758888, 0.9641693077480137, 2571.527148332612], [1893.0, 0.9390728015162085, 1.2509953876569442, 2533.8398938566115], [1894.0, 1.0772937485955516, 1.078120801015998, 2412.1565708898397], [1895.0, 1.0344208960164112, 1.0161735722509198, 2663.096135547202], [1896.0, 1.0607519828153165, 1.0887056905224535, 2606.622799336879], [1897.0, 1.164793705575722, 1.0048458913400324, 2761.2276374940006], [1898.0, 1.268759447994158, 1.0209149670353503, 2757.6784199906374], [1899.0, 0.8877813244282009, 0.8841637913990887, 3029.8799481466567], [1900.0, 1.2380298392237883, 1.0722379898180472, 3005.068496408957], [1901.0, 1.1650097860017037, 1.0178665654116614, 3309.620984406744], [1902.0, 0.9873460561636554, 0.9551381313900328, 3271.12086504941], [1903.0, 0.8691744739879494, 1.1035053958299639, 3403.7330976587305], [1904.0, 1.278987688321596, 1.0199578531676148, 3383.722322259444], [1905.0, 1.2099644128113878, 1.0417, 3506.9625604068206], [1906.0, 0.9657156884364688, 1.0093366588536368, 3820.044250418694], [1907.0, 0.7793080095234896, 1.085642122060444, 3822.601089962035], [1908.0, 1.3369500533721754, 1.0195897678699035, 3512.700444319252], [1909.0, 1.0494952291004105, 0.9368331133993284, 3820.57858858141], [1910.0, 1.0360068575530894, 1.1285675819368224, 3810.672527432815], [1911.0, 1.0452892312190867, 1.0508263212030209, 3932.740294652187], [1912.0, 0.999491685687433, 0.9725851242346939, 3972.8075025232697], [1913.0, 0.9325806451612901, 1.03537, 4023.963275450602], [1914.0, 0.9345020523557734, 1.036039603960396, 3898.6198131594797], [1915.0, 1.26717400246812, 1.0066009615384615, 3776.1570546663875], [1916.0, 0.965106585685364, 0.9212444444444445, 4059.4665602138475], [1917.0, 0.6898790864308105, 0.8712321428571428, 3921.6120477265004], [1918.0, 0.9908796704913209, 0.8992242424242425, 3905.9534372023554], [1919.0, 1.0193722979439623, 0.9024559585492228, 4027.3943939117557], [1920.0, 0.8765929546402813, 1.089942105263158, 4144.830211686945], [1921.0, 1.227040837556904, 1.207905325443787, 4328.600034403758], [1922.0, 1.2967139595564252, 1.052025, 4426.514896913006], [1923.0, 1.0212898616613626, 1.0192647398843933, 4746.434487569654], [1924.0, 1.260475651189128, 1.0434, 5001.556115493811], [1925.0, 1.210384302626438, 1.0038832402234636, 4783.358865822076], [1926.0, 1.1392930547713152, 1.0666354285714286, 5105.5940360554205], [1927.0, 1.3814597532568373, 1.0546531791907514, 5148.574384702256], [1928.0, 1.4837821879284636, 1.0586385964912282, 5200.718746046329], [1929.0, 0.9123089300080449, 1.0601, 5426.7972623848045], [1930.0, 0.8401658222017504, 1.1201037735849058, 5082.415562313239], [1931.0, 0.6345694355706872, 1.138906993006993, 4888.3619380667305], [1932.0, 1.013701316895489, 1.145773643410853, 4426.103756580036], [1933.0, 1.5134632645210924, 0.9915409090909092, 4304.567278914536], [1934.0, 0.8941567139189643, 0.9803911764705882, 4579.622900824867], [1935.0, 1.5144458008576702, 0.9928985507246376, 4827.48204391129], [1936.0, 1.3023565066798615, 0.9860638297872342, 5281.926833064161], [1937.0, 0.6836110466093892, 1.0016957746478874, 5443.862339536304], [1938.0, 1.1667424529493495, 1.0232114285714284, 5314.526515573341], [1939.0, 1.0410359712230215, 1.0128345323741008, 5564.752730599151], [1940.0, 0.8992561840512022, 0.991336170212766, 5805.856595403538], [1941.0, 0.8206236604582365, 0.9028490445859874, 6160.873994429618], [1942.0, 1.1110477944830601, 0.9348467455621302, 5955.341171089541], [1943.0, 1.1994007951425676, 0.9779660919540228, 6041.573731925754], [1944.0, 1.165609443891338, 0.9845662921348314, 6143.04138652481], [1945.0, 1.3542958153780988, 0.985357142857143, 6451.503744327477], [1946.0, 0.7478615491830782, 0.8529451162790698, 7164.175566877387], [1947.0, 0.9346088654754672, 0.9163354430379748, 7157.652521017822], [1948.0, 1.0847184760620365, 1.00083125, 7191.183848813162], [1949.0, 1.1981382978723403, 1.0374127659574468, 7262.631055325057], [1950.0, 1.243096242116655, 0.9374094488188978, 7599.870083434612], [1951.0, 1.1568768736711947, 0.978810566037736, 7590.90088434916], [1952.0, 1.1362661511156973, 1.0200507518796993, 7698.078187051303], [1953.0, 1.0164204918195734, 1.0143598513011154, 7931.965450667205], [1954.0, 1.4696858698818152, 1.025625468164794, 7952.464555894071], [1955.0, 1.281436567164179, 1.014301119402985, 8382.943872767635], [1956.0, 1.0374349631526254, 1.0021840579710144, 8473.709230523631], [1957.0, 0.9115045201331795, 1.0022853146853146, 8528.457528111863], [1958.0, 1.375940896283376, 1.011256551724138, 8454.613480727261], [1959.0, 1.0652121354927944, 1.026778156996587, 8776.510070496133], [1960.0, 1.0448952000064766, 1.025303355704698, 8837.013605332057], [1961.0, 1.1824525563741908, 1.0222393333333333, 8872.954299546916], [1962.0, 0.9599814833159344, 1.0202960526315792, 9170.22714900666], [1963.0, 1.1905326126642373, 1.018252427184466, 9411.698184837614], [1964.0, 1.1480429642300145, 1.030891346153846, 9839.089668400744], [1965.0, 1.0941468245274255, 1.0248905660377357, 10330.708395054593], [1966.0, 0.9044201277559842, 1.0191465045592707, 10792.733708735357], [1967.0, 1.119156036385166, 1.0183563049853372, 10993.88415466346], [1968.0, 1.0593561433624636, 1.0169654494382023, 11509.848624756905], [1969.0, 0.8627003830845462, 1.0176137566137566, 11820.322193461518], [1970.0, 1.0162132776605872, 1.0362708542713568, 11955.15269101887], [1971.0, 1.1017809261253073, 1.0231795620437956, 12256.037436947081], [1972.0, 1.1354246485690525, 1.0093619718309859, 12867.973360705895], [1973.0, 0.7680297739985633, 0.9866562231759657, 13370.797921716601], [1974.0, 0.7087719984958055, 0.9930898272552784, 13147.831088159355], [1975.0, 1.2983881362385283, 1.0048928057553959, 13320.272905984406], [1976.0, 1.0583635558238078, 1.0046017094017095, 13918.84182978114], [1977.0, 0.8558435603506407, 0.9854208, 14363.677568282039], [1978.0, 1.0624059570981859, 0.9862737920937045, 14836.913057434838], [1979.0, 1.025894889524093, 0.9734066838046272, 15030.523692717241], [1980.0, 1.1221917768454097, 0.9959294252873562, 14816.460418384046], [1981.0, 0.8597263704783233, 1.0852396606574761, 14878.66840161682], [1982.0, 1.242591271269428, 1.1049877300613495, 14944.286223295518], [1983.0, 1.1540856804515411, 1.049694406280667, 15655.812643210249], [1984.0, 1.039889211351507, 1.0731856872037915, 16342.950922576823], [1985.0, 1.2120875312678512, 1.042967609489051, 17039.720699516736]]}, "monthly": {"columns": ["stock", "bill", "cons_ratio"], "index": ["1959-03-31 00:00:00", "1959-04-30 00:00:00", "1959-05-31 00:00:00", "1959-06-30 00:00:00", "1959-07-31 00:00:00", "1959-08-31 00:00:00", "1959-09-30 00:00:00", "1959-10-31 00:00:00", "1959-11-30 00:00:00", "1959-12-31 00:00:00", "1960-01-31 00:00:00", "1960-02-29 00:00:00", "1960-03-31 00:00:00", "1960-04-30 00:00:00", "1960-05-31 00:00:00", "1960-06-30 00:00:00", "1960-07-31 00:00:00", "1960-08-31 00:00:00", "1960-09-30 00:00:00", "1960-10-31 00:00:00", "1960-11-30 00:00:00", "1960-12-31 00:00:00", "1961-01-31 00:00:00", "1961-02-28 00:00:00", "1961-03-31 00:00:00", "1961-04-30 00:00:00", "1961-05-31 00:00:00", "1961-06-30 00:00:00", "1961-07-31 00:00:00", "1961-08-31 00:00:00", "1961-09-30 00:00:00", "1961-10-31 00:00:00", "1961-11-30 00:00:00", "1961-12-31 00:00:00", "1962-01-31 00:00:00", "1962-02-28 00:00:00", "1962-03-31 00:00:00", "1962-04-30 00:00:00", "1962-05-31 00:00:00", "1962-06-30 00:00:00", "1962-07-31 00:00:00", "1962-08-31 00:00:00", "1962-09-30 00:00:00", "1962-10-31 00:00:00", "1962-11-30 00:00:00", "1962-12-31 00:00:00", "1963-01-31 00:00:00", "1963-02-28 00:00:00", "1963-03-31 00:00:00", "1963-04-30 00:00:00", "1963-05-31 00:00:00", "1963-06-30 00:00:00", "1963-07-31 00:00:00", "1963-08-31 00:00:00", "1963-09-30 00:00:00", "1963-10-31 00:00:00", "1963-11-30 00:00:00", "1963-12-31 00:00:00", "1964-01-31 00:00:00", "1964-02-29 00:00:00", "1964-03-31 00:00:00", "1964-04-30 00:00:00", "1964-05-31 00:00:00", "1964-06-30 00:00:00", "1964-07-31 00:00:00", "1964-08-31 00:00:00", "1964-09-30 00:00:00", "1964-10-31 00:00:00", "1964-11-30 00:00:00", "1964-12-31 00:00:00", "1965-01-31 00:00:00", "1965-02-28 00:00:00", "1965-03-31 00:00:00", "1965-04-30 00:00:00", "1965-05-31 00:00:00", "1965-06-30 00:00:00", "1965-07-31 00:00:00", "1965-08-31 00:00:00", "1965-09-30 00:00:00", "1965-10-31 00:00:00", "1965-11-30 00:00:00", "1965-12-31 00:00:00", "1966-01-31 00:00:00", "1966-02-28 00:00:00", "1966-03-31 00:00:00", "1966-04-30 00:00:00", "1966-05-31 00:00:00", "1966-06-30 00:00:00", "1966-07-31 00:00:00", "1966-08-31 00:00:00", "1966-09-30 00:00:00", "1966-10-31 00:00:00", "1966-11-30 00:00:00", "1966-12-31 00:00:00", "1967-01-31 00:00:00", "1967-02-28 00:00:00", "1967-03-31 00:00:00", "1967-04-30 00:00:00", "1967-05-31 00:00:00", "1967-06-30 00:00:00", "1967-07-31 00:00:00", "1967-08-31 00:00:00", "1967-09-30 00:00:00", "1967-10-31 00:00:00", "1967-11-30 00:00:00", "1967-12-31 00:00:00", "1968-01-31 00:00:00", "1968-02-29 00:00:00", "1968-03-31 00:00:00", "1968-04-30 00:00:00", "1968-05-31 00:00:00", "1968-06-30 00:00:00", "1968-07-31 00:00:00", "1968-08-31 00:00:00", "1968-09-30 00:00:00", "1968-10-31 00:00:00", "1968-11-30 00:00:00", "1968-12-31 00:00:00", "1969-01-31 00:00:00", "1969-02-28 00:00:00", "1969-03-31 00:00:00", "1969-04-30 00:00:00", "1969-05-31 00:00:00", "1969-06-30 00:00:00", "1969-07-31 00:00:00", "1969-08-31 00:00:00", "1969-09-30 00:00:00", "1969-10-31 00:00:00", "1969-11-30 00:00:00", "1969-12-31 00:00:00", "1970-01-31 00:00:00", "1970-02-28 00:00:00", "1970-03-31 00:00:00", "1970-04-30 00:00:00", "1970-05-31 00:00:00", "1970-06-30 00:00:00", "1970-07-31 00:00:00", "1970-08-31 00:00:00", "1970-09-30 00:00:00", "1970-10-31 00:00:00", "1970-11-30 00:00:00", "1970-12-31 00:00:00", "1971-01-31 00:00:00", "1971-02-28 00:00:00", "1971-03-31 00:00:00", "1971-04-30 00:00:00", "1971-05-31 00:00:00", "1971-06-30 00:00:00", "1971-07-31 00:00:00", "1971-08-31 00:00:00", "1971-09-30 00:00:00", "1971-10-31 00:00:00", "1971-11-30 00:00:00", "1971-12-31 00:00:00", "1972-01-31 00:00:00", "1972-02-29 00:00:00", "1972-03-31 00:00:00", "1972-04-30 00:00:00", "1972-05-31 00:00:00", "1972-06-30 00:00:00", "1972-07-31 00:00:00", "1972-08-31 00:00:00", "1972-09-30 00:00:00", "1972-10-31 00:00:00", "1972-11-30 00:00:00", "1972-12-31 00:00:00", "1973-01-31 00:00:00", "1973-02-28 00:00:00", "1973-03-31 00:00:00", "1973-04-30 00:00:00", "1973-05-31 00:00:00", "1973-06-30 00:00:00", "1973-07-31 00:00:00", "1973-08-31 00:00:00", "1973-09-30 00:00:00", "1973-10-31 00:00:00", "1973-11-30 00:00:00", "1973-12-31 00:00:00", "1974-01-31 00:00:00", "1974-02-28 00:00:00", "1974-03-31 00:00:00", "1974-04-30 00:00:00", "1974-05-31 00:00:00", "1974-06-30 00:00:00", "1974-07-31 00:00:00", "1974-08-31 00:00:00", "1974-09-30 00:00:00", "1974-10-31 00:00:00", "1974-11-30 00:00:00", "1974-12-31 00:00:00", "1975-01-31 00:00:00", "1975-02-28 00:00:00", "1975-03-31 00:00:00", "1975-04-30 00:00:00", "1975-05-31 00:00:00", "1975-06-30 00:00:00", "1975-07-31 00:00:00", "1975-08-31 00:00:00", "1975-09-30 00:00:00", "1975-10-31 00:00:00", "1975-11-30 00:00:00", "1975-12-31 00:00:00", "1976-01-31 00:00:00", "1976-02-29 00:00:00", "1976-03-31 00:00:00", "1976-04-30 00:00:00", "1976-05-31 00:00:00", "1976-06-30 00:00:00", "1976-07-31 00:00:00", "1976-08-31 00:00:00", "1976-09-30 00:00:00", "1976-10-31 00:00:00", "1976-11-30 00:00:00", "1976-12-31 00:00:00", "1977-01-31 00:00:00", "1977-02-28 00:00:00", "1977-03-31 00:00:00", "1977-04-30 00:00:00", "1977-05-31 00:00:00", "1977-06-30 00:00:00", "1977-07-31 00:00:00", "1977-08-31 00:00:00", "1977-09-30 00:00:00", "1977-10-31 00:00:00", "1977-11-30 00:00:00", "1977-12-31 00:00:00", "1978-01-31 00:00:00", "1978-02-28 00:00:00", "1978-03-31 00:00:00", "1978-04-30 00:00:00", "1978-05-31 00:00:00", "1978-06-30 00:00:00", "1978-07-31 00:00:00", "1978-08-31 00:00:00", "1978-09-30 00:00:00", "1978-10-31 00:00:00", "1978-11-30 00:00:00", "1978-12-31 00:00:00", "1979-01-31 00:00:00", "1979-02-28 00:00:00", "1979-03-31 00:00:00", "1979-04-30 00:00:00", "1979-05-31 00:00:00", "1979-06-30 00:00:00", "1979-07-31 00:00:00", "1979-08-31 00:00:00", "1979-09-30 00:00:00", "1979-10-31 00:00:00", "1979-11-30 00:00:00", "1979-12-31 00:00:00", "1980-01-31 00:00:00", "1980-02-29 00:00:00", "1980-03-31 00:00:00", "1980-04-30 00:00:00", "1980-05-31 00:00:00", "1980-06-30 00:00:00", "1980-07-31 00:00:00", "1980-08-31 00:00:00", "1980-09-30 00:00:00", "1980-10-31 00:00:00", "1980-11-30 00:00:00", "1980-12-31 00:00:00", "1981-01-31 00:00:00", "1981-02-28 00:00:00", "1981-03-31 00:00:00", "1981-04-30 00:00:00", "1981-05-31 00:00:00", "1981-06-30 00:00:00", "1981-07-31 00:00:00", "1981-08-31 00:00:00", "1981-09-30 00:00:00", "1981-10-31 00:00:00", "1981-11-30 00:00:00", "1981-12-31 00:00:00", "1982-01-31 00:00:00", "1982-02-28 00:00:00", "1982-03-31 00:00:00", "1982-04-30 00:00:00", "1982-05-31 00:00:00", "1982-06-30 00:00:00", "1982-07-31 00:00:00", "1982-08-31 00:00:00", "1982-09-30 00:00:00", "1982-10-31 00:00:00", "1982-11-30 00:00:00", "1982-12-31 00:00:00", "1983-01-31 00:00:00", "1983-02-28 00:00:00", "1983-03-31 00:00:00", "1983-04-30 00:00:00", "1983-05-31 00:00:00", "1983-06-30 00:00:00", "1983-07-31 00:00:00", "1983-08-31 00:00:00", "1983-09-30 00:00:00", "1983-10-31 00:00:00", "1983-11-30 00:00:00", "1983-12-31 00:00:00", "1984-01-31 00:00:00", "1984-02-29 00:00:00", "1984-03-31 00:00:00", "1984-04-30 00:00:00", "1984-05-31 00:00:00", "1984-06-30 00:00:00", "1984-07-31 00:00:00", "1984-08-31 00:00:00", "1984-09-30 00:00:00", "1984-10-31 00:00:00", "1984-11-30 00:00:00", "1984-12-31 00:00:00", "1985-01-31 00:00:00", "1985-02-28 00:00:00", "1985-03-31 00:00:00", "1985-04-30 00:00:00", "1985-05-31 00:00:00", "1985-06-30 00:00:00", "1985-07-31 00:00:00", "1985-08-31 00:00:00", "1985-09-30 00:00:00", "1985-10-31 00:00:00", "1985-11-30 00:00:00", "1985-12-31 00:00:00", "1986-01-31 00:00:00", "1986-02-28 00:00:00", "1986-03-31 00:00:00", "1986-04-30 00:00:00", "1986-05-31 00:00:00", "1986-06-30 00:00:00", "1986-07-31 00:00:00", "1986-08-31 00:00:00", "1986-09-30 00:00:00", "1986-10-31 00:00:00", "1986-11-30 00:00:00", "1986-12-31 00:00:00"], "data": [[1.0280719371918932, 1.0033713036474514, 0.9988706136070924], [1.0158591300614828, 1.002112419484702, 1.000351058698918], [1.0176639375364858, 1.0002956611570246, 0.998650059226844], [0.9905313495818503, 1.0002638955685332, 1.0014261201715742], [1.0387159886985111, 1.0012907947398513, 1.0005221650412652], [0.9968241965182455, 1.0017856694082705, 1.0007381973025329], [0.9596903812489704, 1.0009654472934473, 1.0011940133487716], [0.998369792927396, 0.999956345826235, 1.0012170108342249], [1.006700774853801, 1.0034583333333333, 0.9984761483208922], [1.0346409225930457, 1.001693910801315, 0.9996053036036991], [0.9885564061653042, 1.0049918709567587, 0.996922049714096], [0.9606814311484831, 1.0019354301258077, 0.9984203635942394], [0.9892733357236764, 1.0027583333333334, 0.9992612698731316], [1.012404215724328, 0.9982790086887837, 1.0027605196191545], [0.993759599856451, 1.0017243433660241, 0.9987964631357693], [1.0363727828244758, 1.0006963356973997, 0.9987783700852044], [0.9780387705204332, 1.0039510152284261, 1.0002291165968225], [1.0149086676217767, 0.9998864403917596, 1.0004755844556936], [0.9727924261192709, 1.0020666666666667, 0.999701166002841], [0.9766612911718211, 0.9972017647058823, 1.0001818984577422], [1.0354085241019915, 1.000965622901276, 1.0018989405519048], [1.0269064359113032, 1.0008667393492117, 1.0002674180686617], [1.0542644806338028, 1.0008594280607686, 0.9988149952623906], [1.0437365064746598, 1.0020166666666666, 0.999605618223917], [1.0339660071846015, 1.0019916666666666, 0.9975225233275804], [1.0291900603035975, 1.0029166275299117, 0.9965272667280022], [1.0126335510658768, 1.0009010528373548, 0.9986093553624658], [0.9891979949874687, 1.0019416666666667, 0.9984026740682473], [0.9930642235598901, 0.9991878787878788, 1.00124466122684], [1.041871092823675, 1.0013223335560009, 0.9991457835037952], [0.9912758355050727, 1.000563242161441, 0.9988043813694619], [1.0134552482902173, 1.0019166666666666, 0.9981308484428043], [1.0477450980392158, 1.0020666666666667, 0.9992124538274398], [1.0116535359219658, 1.001164833944241, 0.9984916954366303], [0.9651364533965244, 1.0012657345761207, 1.000859474127377], [1.0157172751222099, 0.9999449020259051, 1.0022866754437012], [1.0034178296781546, 1.0002734283504586, 0.9998090094648865], [0.9673447140857948, 1.0009479228732208, 1.0006766265300344], [0.928157396522165, 1.0012473792989418, 0.9988184811037534], [0.8858813568291264, 1.0032703078450844, 0.9983556542597287], [1.023793534188939, 1.0021016214427532, 0.9971765709609803], [1.0302400824995614, 1.0003638375165125, 1.0006653374624586], [0.9908061121703784, 0.9977037694499232, 1.006142423876752], [0.9714607327586207, 1.0036029953917052, 0.9974550590298172], [1.0720333066286865, 1.0023583333333332, 0.9992106039864934], [1.0462608261159227, 1.0023916666666666, 0.9977598211098885], [1.0414759871221797, 1.0004491294349538, 1.0021729646710849], [1.0159638923045395, 1.001117804024497, 0.9998406602646049], [0.9956502997506499, 1.001422681088168, 0.9972243473677314], [1.0498028907162074, 1.0034032972440947, 0.9984006498962644], [1.0227158837502424, 1.001455981645362, 1.0004770298062273], [0.9989109859956403, 0.9992166203854949, 1.0015388580717515], [0.9845675230222214, 1.0000363799283154, 1.0017632841409216], [1.0303154649872113, 1.0008100487804876, 1.0005511264518878], [1.0289400770169999, 1.0037959798177083, 0.9962176709272776], [1.0017624734079693, 1.0018965853658537, 1.0007968684555888], [0.9969609178876261, 1.0019558154645873, 1.0008525590218411], [1.0206465539907612, 0.9996854922279792, 1.0009601377362716], [1.0333206035683788, 1.0009884076707605, 1.0016255180572833], [1.0148172334859384, 1.003915081419174, 1.000024249403329], [1.0207283456088212, 1.0019775210084034, 0.9994829803550476], [1.0169486780879864, 1.0025676305869684, 0.9996113321962515], [1.0122209678091902, 1.0019288250484182, 0.9985376501524158], [0.9932960212922407, 1.001929764592067, 1.0006196214262137], [1.0362882413851693, 1.0025600311626908, 1.0002984498139085], [0.9909496915805496, 1.0019476650563608, 0.9992541009496088], [1.016396099652315, 1.0019735762548263, 1.000956615867475], [1.019721855892579, 1.001685829048843, 0.999759163971496], [1.0061538965192474, 1.0001408950122825, 1.0004091384465639], [0.985116260923845, 1.001915904, 1.0005560716344668], [1.0282244223439736, 1.002212875639386, 1.0003516590170527], [1.0097667305310418, 1.003275, 0.9993404376938423], [1.0001660973566213, 1.00231370169275, 1.0010661810121293], [1.0123612273586307, 1.0010369741873804, 1.0012721523349608], [1.017344928195218, 1.000054749047014, 1.0017725085185702], [0.9489011600539903, 0.9990410207740168, 1.005378797002348], [1.0010452630134836, 1.004153008233059, 0.9995996037903918], [1.021202184666117, 1.004153914421553, 0.9980557393989961], [1.0359771842602228, 1.0010456462154753, 0.9985751581632717], [1.0217535498076598, 1.0024072827804107, 1.0007451099918447], [1.010777984462195, 1.0002479921259841, 1.000731666782737], [0.9947639149094939, 1.0004988226059652, 1.0026947898198315], [1.0198226679748537, 1.002880371706399, 1.0023092960536062], [0.9894904629232748, 0.9976164276807981, 1.0044227996227477], [0.9583996140732846, 1.000705593536358, 1.0027102984958496], [1.0268275213841043, 1.000740179677819, 1.0026015427824753], [0.9499393467976711, 1.0016944667697063, 0.9996474341827011], [0.9913515576022618, 1.002820027794935, 1.0012814796319274], [0.9971257977439711, 1.0018342064714945, 1.000382554969286], [0.9365614131214416, 0.9979824400204187, 1.0041621076121736], [0.9677722669973133, 1.0014079007633587, 1.002435848631442], [0.9883040928745066, 1.0014006215119227, 1.001238337174596], [1.0531534098275637, 1.0035168795620437, 1.0001888408671744], [1.007151088611763, 1.0029132442284325, 1.0003466806702261], [1.0413131685724824, 1.0045436271529888, 0.9995297117438152], [1.0373100453917505, 1.0007581818181817, 1.0004679782073898], [1.0232367747992748, 1.00355, 0.999330477856776], [1.016843356413706, 1.0001691842900302, 0.999966715533551], [1.0175027837824473, 1.003, 1.000949176033177], [0.9871085039029746, 0.9969262762762763, 1.0027962388740181], [1.0168765638088364, 1.0005038173652694, 1.002397261829141], [1.0154821319164846, 1.0005626368159204, 1.0022811032677532], [1.013519529235478, 1.0006961805555554, 1.0016951321158216], [0.9980039005239413, 1.0008213649851632, 1.000998123823461], [0.9683093393309063, 0.9980187069813177, 1.0026050040369892], [1.0280757024815137, 1.0011883088235294, 1.0009389825389794], [0.9939697297929366, 1.0012218963831867, 1.004181013047089], [0.9546394439029672, 1.001213888888889, 1.0036551612744964], [0.9815468761294366, 1.0013803206997087, 1.0022570930239154], [1.0735000094354112, 1.0015633236434107, 1.0025301756466845], [1.0226158217988668, 1.0018044444444445, 1.0032043555675563], [1.0234850293970503, 0.9988097982708932, 1.0021473365885287], [0.9947667477084493, 0.998668982808023, 1.0020941483206136], [0.9778699563927264, 1.0013724047619048, 1.0033922841181462], [1.0321391972090168, 1.0014636752136752, 1.002115791953096], [1.0213630006096386, 0.9987673512747876, 1.0037894535414413], [1.0149928981880625, 1.0017039783427495, 1.002300683093753], [1.0100105566988267, 0.9993207865168537, 1.0014631156904303], [0.9574594257178526, 1.0023012138188607, 1.0035290814620998], [0.9920492386898895, 1.002292458100559, 1.0010423293037605], [0.9727190025881399, 0.9966647276084949, 1.003827833283473], [1.0171159318165637, 0.9995539715335171, 1.004393522647467], [1.0322993393575821, 1.0022722527472525, 1.0035367489108808], [0.9451019061251642, 0.999872859744991, 1.0052389370340384], [0.952746018887432, 1.0003668478260872, 1.0037975683474671], [0.9917796132527842, 1.0030908762420956, 1.0016586707307285], [1.0035787695638163, 1.0004856469002696, 1.0037704520562558], [1.0080329798285101, 1.000440125111707, 1.0014291101349522], [1.004591005746324, 1.0006678222222223, 1.0041373908543318], [0.9446896805369114, 1.0011770557029178, 1.0047541461169873], [0.9914828021760622, 1.001246679859279, 1.0033638204799875], [0.9629472199558246, 1.000661132983377, 1.0036336945846291], [1.0147848493512965, 1.0002742167101828, 1.0008233880924504], [0.964948035003162, 1.000202012987013, 1.0048515350775364], [0.8857125079498563, 1.003094559585492, 1.00193460929362], [0.992164013217997, 1.0003833333333336, 1.0010347008659388], [1.0000742083642862, 1.0027904884318766, 1.0024490440708314], [1.0325614874977989, 1.0027638675213673, 1.0007845875950103], [1.05779197266689, 0.9999719387755103, 1.0034325230172905], [1.0196758016325451, 0.9998238578680204, 1.0032997037785942], [0.9969902892362444, 0.9993272727272725, 1.0013866188266827], [1.0661822401041756, 0.9990128140703518, 1.0025582321701185], [1.04109753840459, 1.0011844611528822, 0.9993260352513255], [1.0388914847821231, 1.0030833333333333, 1.0012050580670957], [1.025739045927299, 1.000309625, 1.0023892963612429], [1.0341504588595445, 1.0007148794679968, 1.003110382539153], [0.9840107674038563, 0.9984700992555832, 1.0032745375250745], [0.9767674918867899, 0.9990005144032921, 1.0037857091283202], [0.9929219669702521, 1.0020258620689655, 1.0012826427115236], [0.9824122460511984, 1.0016495495495497, 1.0035005601237021], [1.0248611682435214, 1.0014477736928107, 1.0013116911223408], [0.9789581798861627, 1.0012625916870415, 1.0007023544437332], [0.9562790540309042, 1.0010690650406502, 1.0008567617283595], [1.066415276210876, 1.0009004460665043, 1.0033478359113095], [1.0442254041880945, 1.0003826456310678, 1.0030271461607747], [1.015925956744619, 0.9978228663446054, 1.004380863792072], [1.0237173997232474, 1.0031083333333333, 1.0000530163089165], [1.010149008289425, 1.0006745783132531, 0.999828738691669], [0.9898559202076262, 1.0006637620192307, 1.001245826554288], [1.0027504829933638, 1.0008524380495603, 1.0002599248983455], [0.990214757745514, 1.0009163875598088, 1.0031328448152108], [1.0353684048692549, 1.0009553699284008, 1.0019483439699182], [0.985551347071537, 0.9991142913697544, 1.004786988726828], [0.9994441021698699, 1.001570971563981, 1.001565637274597], [1.0500773636013463, 0.9992475628930817, 1.00253058409742], [1.0207246895282873, 1.0018621176470586, 1.002577870112022], [1.0075276941198017, 0.9998033762685401, 1.0041717194325706], [0.9599929561007685, 0.9976573643410852, 1.0062167838160556], [0.9774377333230869, 0.9958116359447005, 1.0094964280501515], [0.9769108866563003, 0.9983158657513348, 1.0082378686760565], [0.967656807932532, 1.0007200455580867, 1.0050052524110837], [0.9734626851601718, 0.9991636689291099, 1.006323348075636], [1.0098309872184792, 1.006675, 1.0022215676192543], [0.9662103977962575, 0.9893187777777779, 1.0162718859980886], [1.0177097187409414, 1.0024529867256637, 1.0022379663335117], [1.0332384543765505, 0.9971919590643273, 1.0065145839826732], [0.9254109579310373, 0.9999464052287581, 1.0102869332743705], [0.9259253246753245, 0.9975153887688987, 1.009747447447289], [1.0082920737157746, 0.995722061965812, 1.0123704791828265], [0.9628909935472947, 0.9952997885835095, 1.0153757586277352], [1.0326374757196064, 0.9961036959553696, 1.0140740630948053], [0.9478846669175333, 1.000661365211365, 1.0064086377834776], [0.9609494128925956, 0.9964997085048012, 1.0096557149820482], [0.9963901652999776, 0.9983663265306123, 1.0059256737775295], [0.8793807608366141, 1.0001681879648412, 1.0055742743427207], [0.9508352876896563, 0.9953528390113562, 1.011175995282007], [0.889226255428956, 0.9927897562582344, 1.00997224527573], [1.0137560500559426, 0.9983247712418302, 1.0054205315073055], [1.0293806260765739, 0.9964558252427184, 1.0073102955680358], [0.931847932992883, 0.9982052825947335, 1.0076444097699606], [1.0821864291811891, 0.997528585086042, 1.0053483161594616], [1.0996594281470395, 0.9988537705956906, 1.0032126056852246], [1.0457768041371436, 1.0007697916666667, 1.0005981399947186], [1.0110465652871874, 1.0008837735849054, 1.000669116696247], [1.061121765458115, 1.0024668863779032, 1.0027086665370033], [1.0212797693000037, 0.9969400934579439, 1.0059281288557496], [0.9932020521503915, 0.9958017746913581, 1.0095326408858396], [0.9283247053204566, 1.0016568265682657, 1.003767351580983], [0.9860255299089741, 0.9979847985347986, 1.0026554682873243], [1.0439666869102653, 0.9994750455373406, 1.0052806339607159], [1.0130267005123192, 0.9973003616636528, 1.0048535488033354], [0.9846333065606965, 0.9991131894484411, 1.0035255689678007], [1.09348572125952, 1.0004595579450417, 1.0021657437895635], [1.0380502567353243, 1.0022704830053666, 0.9982861108644397], [1.0062235709179628, 1.0023735119047619, 0.9993932760036348], [1.007369546206817, 1.0022602495543673, 0.9998021265300792], [0.9891337042649831, 0.998991134751773, 1.003907679776026], [1.0036956753697417, 0.9991934744268076, 1.0037528620758687], [1.0212840213001926, 0.9990722368421051, 1.0036638555492157], [0.9892204808050272, 0.9990253054101222, 1.0045164622506704], [1.0208460782600122, 0.9990029513888887, 1.0039151335470495], [0.9639499408196843, 0.9988974093264249, 1.0037664659159817], [0.9946701579049779, 1.0005023666092943, 1.0038009332549294], [1.034353225214946, 0.9984693921232877, 1.0043546671947632], [0.9895638086025192, 0.9987195911413967, 1.0044364307929456], [0.9664392238343945, 0.993734246767847, 1.0098885610753079], [0.9927773941259672, 0.9987804809843399, 1.0039477847514289], [0.9798759783659157, 0.9970914444444445, 1.005724035160166], [0.9957141182862402, 1.000797342192691, 1.0046097654912294], [1.0023961037791178, 0.9992039118457301, 1.004902503986218], [1.0078822600710948, 0.9993694490131579, 1.0033384422457863], [0.9760524312214353, 0.9996425531914892, 1.0030512798509654], [0.9850672709247983, 1.0015632272974444, 1.00205330822366], [0.9748949286645495, 1.0002382034632034, 1.0033040445009758], [1.0049674676194504, 0.9985989247311827, 1.0054364248393148], [0.9960304995956586, 1.0002185660781167, 1.0033330006820051], [0.9599516491579622, 0.9989528442317915, 1.0047660490910524], [0.9840223584754706, 1.0005875, 1.0031458697876465], [0.9947895284305194, 0.9988994479495268, 1.006307592510151], [1.0401314081500017, 0.9973759259259259, 1.0076389527587446], [1.0452614984711015, 0.9959896511627907, 1.0071837759819684], [0.9959580827480832, 0.9978728846153847, 1.0061688821693733], [0.9918025334688639, 0.9981634860050892, 1.0041907664451761], [1.068434171702102, 0.9997943854324735, 1.0031917924116234], [0.9964772373667565, 0.9974600877192983, 1.0042613757697452], [0.9635843742693666, 0.997656917536016, 1.0068885100094196], [0.9414282165931217, 1.0012314074074073, 1.004813561479389], [1.014726365971097, 1.0016310751104565, 1.0039342324188572], [1.0327378818494286, 0.998964294403893, 1.0090434123633194], [0.9780112030750249, 0.9975724951830444, 1.0056284694035194], [1.0131845606100955, 0.9978065808297567, 1.0086350406892342], [1.0127405357390487, 0.9978901558073654, 1.0100187523201327], [0.96875823439701, 0.9967141223155928, 1.0109255213184765], [1.0128824312504066, 0.9963860110803324, 1.0090443386557957], [1.003154975101792, 0.9966567123287673, 1.0084672978292215], [1.040228184358807, 0.9983600180913612, 1.0069873900759414], [1.0045589512783262, 0.9990609543010752, 1.0091080299778075], [0.9587991219445096, 0.9990079787234042, 1.0072488431827886], [0.9876195953292023, 0.9991952631578946, 1.0064218534484466], [1.0331874804338559, 0.9982123970524491, 1.0081025395853056], [1.0185555584701749, 0.9957564102564104, 1.0117130658562885], [1.0294410139721744, 0.9979227848101266, 1.0096206671680035], [0.8985910933102921, 0.9987598834789847, 1.0134967909679746], [0.9774342356468213, 1.0010024721878859, 1.003900796090959], [1.0401262821349726, 0.9972880660954713, 1.0060007039105825], [1.05703300515674, 0.9961375656565655, 1.0044427175987571], [1.049726098022106, 1.0054978813559323, 1.0072732065427814], [1.0276214459823996, 1.0003419270833334, 1.007524119456413], [1.0198174201529464, 1.000143663090981, 1.0075217930475315], [1.0235196509806845, 1.0001467729240456, 1.0069689654884304], [1.0376010516135021, 1.0008073500778816, 1.0070104909690765], [0.9784158532513699, 1.0035295524691357, 1.0062372886812079], [0.9920778624420624, 1.0032275229357799, 1.0093509298283818], [0.9593984962406015, 1.0031220454545455, 1.0118363622171556], [1.0343982434834644, 1.004285929270128, 1.0075196566130973], [1.0061395942449185, 1.0057326412270855, 1.0012235072836178], [0.9761808214062002, 1.0068035117056853, 1.001166231811287], [0.9996931366189465, 1.0033267127071825, 1.0018292870860903], [0.9691675695290245, 1.0013932149362477, 1.004338686861275], [1.0004085775092668, 1.005234680043384, 1.004460956180702], [0.9081458686571645, 1.00246455424275, 1.004463015559109], [1.0151199333829295, 1.0080350999286223, 1.0022912832219175], [1.0271635654912818, 1.0047470149253732, 1.003093309745679], [1.0085893435244015, 1.005824743181013, 1.0018084480566065], [0.9489504331722393, 1.0070228460451978, 1.0040541060885417], [0.9777717323715956, 1.0080298486448436, 1.0020927589512838], [0.9736056006099674, 1.0105666666666666, 1.000137925704474], [1.050270116177774, 1.0073920175438598, 0.9967201905379717], [0.9962696808520188, 1.0005956725755996, 1.0051260322152997], [0.935595927657916, 0.998933616838488, 1.008548580957832], [0.9973078326282248, 1.004281623931624, 1.004845270724919], [1.0058865743686134, 1.0051714431934493, 1.0008482370086211], [1.1186838295794794, 1.0066, 1.0008546075842328], [1.0854922093946484, 1.0023213302752292, 1.0034233663685264], [1.0471360070410982, 1.0077522704081634, 1.0016442541579376], [1.0177129455965626, 1.0097076083248038, 0.9993309788497258], [1.0371402136334607, 1.0044937180796731, 1.0023407422193844], [1.0202646328618237, 1.0057310289115649, 0.9991296983715169], [1.038663714804723, 1.0059318722392119, 1.0005430849392487], [1.0345819529146476, 0.999708173076923, 1.0054534981898275], [1.0379294022439502, 1.0027652217741936, 1.003807418591069], [1.0144721576601268, 1.005298189134809, 1.0023245804308205], [1.0030589483714485, 1.0035283233132934, 1.004222813073859], [0.9730161533220982, 1.0047630036630035, 1.0025943897206364], [1.0280187700872219, 1.0044895418326694, 1.001184378431139], [1.0035046317131715, 1.0032031746031747, 1.000312103473138], [0.9866469195336738, 1.0043109792284868, 0.9994903099599743], [0.9977479410122005, 1.0045192307692306, 0.9997582956164954], [1.00979352560873, 1.0005097943192949, 1.0057148252651407], [0.9442599614461263, 1.0026647904483432, 1.006260825531114], [1.0024815281593593, 1.004994752186589, 1.001832454254378], [1.0002205746077444, 1.0041715150048405, 1.001498880698185], [0.9946030892802495, 1.0062434702093397, 0.9992963379428078], [0.9787004605665309, 1.0062804966248795, 1.0004974172719572], [0.987120621056392, 1.004558469420429, 1.002184861994489], [1.0878982588450248, 1.0058263649425288, 1.0021083380148552], [1.0092525489514543, 1.005751575931232, 1.0001768024251212], [0.9930637386487277, 1.004279876308278, 1.0019942007501306], [1.0128843042071198, 1.0052620370370369, 0.9997015123010942], [0.992949488875526, 1.0048081990521327, 1.0016982103909544], [1.045012804606808, 1.0045622831914223, 1.003909986504304], [1.0529045841442364, 1.001208364691126, 1.003862023998521], [0.9914952874169944, 1.0023851123595506, 1.0036121845807455], [1.0055342535958998, 1.0047434579439252, 1.0007375212869545], [1.023538753742573, 1.0043560323383085, 1.0009299376842686], [1.0222635414300103, 1.0029848062015503, 1.0022486079036783], [1.0205899038079065, 1.0040320334261839, 1.0012060826415936], [0.9797436228395059, 1.0040854031510658, 1.001104130390055], [0.9784468998753979, 1.0040555812519272, 1.0007835027842136], [1.0112297724277883, 1.0022580337941627, 1.0011798442494892], [1.0612850770438549, 1.001418501529052, 1.003005863367613], [1.0500635034608423, 1.0013234398782342, 1.003515364118442], [1.004775518689488, 1.0022305505004547, 1.0034203793030687], [1.059889630369841, 1.0077172136128836, 0.996115870303691], [1.066722697653583, 1.0109962725328445, 0.9911625786474053], [1.0293159554533402, 1.0087484360625574, 0.9932941034814529], [1.002159240861634, 1.0023586009174312, 1.00101076005044], [1.0256905315757734, 1.0014997714808043, 1.0027918951119348], [0.9819755843185213, 1.0039406544901068, 0.9984700580263501], [1.0209588091566812, 1.0036917198905109, 0.9999489014140102], [0.9710265534525973, 1.000689515151515, 1.0025206765256287], [0.9982012935955767, 1.0024939503932244, 0.9997105567345078], [1.0343975409522796, 1.0026386624396133, 1.0005896348020582], [1.0161746152184632, 1.0009815884476534, 1.0014786276910614]]}, "quarterly": {"columns": ["r3", "r6", "r9", "r12"], "index": ["1964-07-31 00:00:00", "1964-08-31 00:00:00", "1964-09-30 00:00:00", "1964-10-31 00:00:00", "1964-11-30 00:00:00", "1964-12-31 00:00:00", "1965-01-31 00:00:00", "1965-02-28 00:00:00", "1965-03-31 00:00:00", "1965-04-30 00:00:00", "1965-05-31 00:00:00", "1965-06-30 00:00:00", "1965-07-31 00:00:00", "1965-08-31 00:00:00", "1965-09-30 00:00:00", "1965-10-31 00:00:00", "1965-11-30 00:00:00", "1965-12-31 00:00:00", "1966-01-31 00:00:00", "1966-02-28 00:00:00", "1966-03-31 00:00:00", "1966-04-30 00:00:00", "1966-05-31 00:00:00", "1966-06-30 00:00:00", "1966-07-31 00:00:00", "1966-08-31 00:00:00", "1966-09-30 00:00:00", "1966-10-31 00:00:00", "1966-11-30 00:00:00", "1966-12-31 00:00:00", "1967-01-31 00:00:00", "1967-02-28 00:00:00", "1967-03-31 00:00:00", "1967-04-30 00:00:00", "1967-05-31 00:00:00", "1967-06-30 00:00:00", "1967-07-31 00:00:00", "1967-08-31 00:00:00", "1967-09-30 00:00:00", "1967-10-31 00:00:00", "1967-11-30 00:00:00", "1967-12-31 00:00:00", "1968-01-31 00:00:00", "1968-02-29 00:00:00", "1968-03-31 00:00:00", "1968-04-30 00:00:00", "1968-05-31 00:00:00", "1968-06-30 00:00:00", "1968-07-31 00:00:00", "1968-08-31 00:00:00", "1968-09-30 00:00:00", "1968-10-31 00:00:00", "1968-11-30 00:00:00", "1968-12-31 00:00:00", "1969-01-31 00:00:00", "1969-02-28 00:00:00", "1969-03-31 00:00:00", "1969-04-30 00:00:00", "1969-05-31 00:00:00", "1969-06-30 00:00:00", "1969-07-31 00:00:00", "1969-08-31 00:00:00", "1969-09-30 00:00:00", "1969-10-31 00:00:00", "1969-11-30 00:00:00", "1969-12-31 00:00:00", "1970-01-31 00:00:00", "1970-02-28 00:00:00", "1970-03-31 00:00:00", "1970-04-30 00:00:00", "1970-05-31 00:00:00", "1970-06-30 00:00:00", "1970-07-31 00:00:00", "1970-08-31 00:00:00", "1970-09-30 00:00:00", "1970-10-31 00:00:00", "1970-11-30 00:00:00", "1970-12-31 00:00:00", "1971-01-31 00:00:00", "1971-02-28 00:00:00", "1971-03-31 00:00:00", "1971-04-30 00:00:00", "1971-05-31 00:00:00", "1971-06-30 00:00:00", "1971-07-31 00:00:00", "1971-08-31 00:00:00", "1971-09-30 00:00:00", "1971-10-31 00:00:00", "1971-11-30 00:00:00", "1971-12-31 00:00:00", "1972-01-31 00:00:00", "1972-02-29 00:00:00", "1972-03-31 00:00:00", "1972-04-30 00:00:00", "1972-05-31 00:00:00", "1972-06-30 00:00:00", "1972-07-31 00:00:00", "1972-08-31 00:00:00", "1972-09-30 00:00:00", "1972-10-31 00:00:00", "1972-11-30 00:00:00", "1972-12-31 00:00:00", "1973-01-31 00:00:00", "1973-02-28 00:00:00", "1973-03-31 00:00:00", "1973-04-30 00:00:00", "1973-05-31 00:00:00", "1973-06-30 00:00:00", "1973-07-31 00:00:00", "1973-08-31 00:00:00", "1973-09-30 00:00:00", "1973-10-31 00:00:00", "1973-11-30 00:00:00", "1973-12-31 00:00:00", "1974-01-31 00:00:00", "1974-02-28 00:00:00", "1974-03-31 00:00:00", "1974-04-30 00:00:00", "1974-05-31 00:00:00", "1974-06-30 00:00:00", "1974-07-31 00:00:00", "1974-08-31 00:00:00", "1974-09-30 00:00:00", "1974-10-31 00:00:00", "1974-11-30 00:00:00", "1974-12-31 00:00:00", "1975-01-31 00:00:00", "1975-02-28 00:00:00", "1975-03-31 00:00:00", "1975-04-30 00:00:00", "1975-05-31 00:00:00", "1975-06-30 00:00:00", "1975-07-31 00:00:00", "1975-08-31 00:00:00", "1975-09-30 00:00:00", "1975-10-31 00:00:00", "1975-11-30 00:00:00", "1975-12-31 00:00:00", "1976-01-31 00:00:00", "1976-02-29 00:00:00", "1976-03-31 00:00:00", "1976-04-30 00:00:00", "1976-05-31 00:00:00", "1976-06-30 00:00:00", "1976-07-31 00:00:00", "1976-08-31 00:00:00", "1976-09-30 00:00:00", "1976-10-31 00:00:00", "1976-11-30 00:00:00", "1976-12-31 00:00:00", "1977-01-31 00:00:00", "1977-02-28 00:00:00", "1977-03-31 00:00:00", "1977-04-30 00:00:00", "1977-05-31 00:00:00", "1977-06-30 00:00:00", "1977-07-31 00:00:00", "1977-08-31 00:00:00", "1977-09-30 00:00:00", "1977-10-31 00:00:00", "1977-11-30 00:00:00", "1977-12-31 00:00:00", "1978-01-31 00:00:00", "1978-02-28 00:00:00", "1978-03-31 00:00:00", "1978-04-30 00:00:00", "1978-05-31 00:00:00", "1978-06-30 00:00:00", "1978-07-31 00:00:00", "1978-08-31 00:00:00", "1978-09-30 00:00:00", "1978-10-31 00:00:00", "1978-11-30 00:00:00", "1978-12-31 00:00:00", "1979-01-31 00:00:00", "1979-02-28 00:00:00", "1979-03-31 00:00:00", "1979-04-30 00:00:00", "1979-05-31 00:00:00", "1979-06-30 00:00:00", "1979-07-31 00:00:00", "1979-08-31 00:00:00", "1979-09-30 00:00:00", "1979-10-31 00:00:00", "1979-11-30 00:00:00", "1979-12-31 00:00:00", "1980-01-31 00:00:00", "1980-02-29 00:00:00", "1980-03-31 00:00:00", "1980-04-30 00:00:00", "1980-05-31 00:00:00", "1980-06-30 00:00:00", "1980-07-31 00:00:00", "1980-08-31 00:00:00", "1980-09-30 00:00:00", "1980-10-31 00:00:00", "1980-11-30 00:00:00", "1980-12-31 00:00:00", "1981-01-31 00:00:00", "1981-02-28 00:00:00", "1981-03-31 00:00:00", "1981-04-30 00:00:00", "1981-05-31 00:00:00", "1981-06-30 00:00:00", "1981-07-31 00:00:00", "1981-08-31 00:00:00", "1981-09-30 00:00:00", "1981-10-31 00:00:00", "1981-11-30 00:00:00", "1981-12-31 00:00:00", "1982-01-31 00:00:00", "1982-02-28 00:00:00", "1982-03-31 00:00:00", "1982-04-30 00:00:00", "1982-05-31 00:00:00", "1982-06-30 00:00:00", "1982-07-31 00:00:00", "1982-08-31 00:00:00", "1982-09-30 00:00:00", "1982-10-31 00:00:00", "1982-11-30 00:00:00", "1982-12-31 00:00:00", "1983-01-31 00:00:00", "1983-02-28 00:00:00", "1983-03-31 00:00:00", "1983-04-30 00:00:00", "1983-05-31 00:00:00", "1983-06-30 00:00:00", "1983-07-31 00:00:00", "1983-08-31 00:00:00", "1983-09-30 00:00:00", "1983-10-31 00:00:00", "1983-11-30 00:00:00", "1983-12-31 00:00:00", "1984-01-31 00:00:00", "1984-02-29 00:00:00", "1984-03-31 00:00:00", "1984-04-30 00:00:00", "1984-05-31 00:00:00", "1984-06-30 00:00:00", "1984-07-31 00:00:00", "1984-08-31 00:00:00", "1984-09-30 00:00:00", "1984-10-31 00:00:00", "1984-11-30 00:00:00", "1984-12-31 00:00:00", "1985-01-31 00:00:00", "1985-02-28 00:00:00", "1985-03-31 00:00:00", "1985-04-30 00:00:00", "1985-05-31 00:00:00", "1985-06-30 00:00:00", "1985-07-31 00:00:00", "1985-08-31 00:00:00", "1985-09-30 00:00:00", "1985-10-31 00:00:00", "1985-11-30 00:00:00", "1985-12-31 00:00:00", "1986-01-31 00:00:00", "1986-02-28 00:00:00", "1986-03-31 00:00:00", "1986-04-30 00:00:00", "1986-05-31 00:00:00", "1986-06-30 00:00:00", "1986-07-31 00:00:00", "1986-08-31 00:00:00", "1986-09-30 00:00:00", "1986-10-31 00:00:00", "1986-11-30 00:00:00", "1986-12-31 00:00:00"], "data": [[1.0054088367609255, 1.0055548573454922, 1.0053003214755676, 1.0052916791362339], [1.0035785805831465, 1.0036972585041644, 1.0031839822732285, 1.0030435925767673], [1.003336992, 1.0032289064976225, 1.0028012669772004, 1.002780501753832], [1.0037642583120205, 1.0038283052138102, 1.0033975817068705, 1.003630195746385], [1.006841783887468, 1.0068769512177131, 1.0065170220901658, 1.006467398791487], [1.007665282657298, 1.007893280521432, 1.0077587306880595, 1.00774747578924], [1.0063079031230082, 1.0065610160289875, 1.006195488594009, 1.0058005306910138], [1.0034093392630241, 1.0037581470642727, 1.0037440038278311, 1.003656309216086], [1.00024108668143, 1.0008118069732668, 1.0011257500875308, 1.0012497226774824], [1.0034296548448385, 1.0038535380173013, 1.0040104675111452, 1.0041387204435714], [1.0074847226624406, 1.0078124803785402, 1.0077370972423014, 1.0076857373447603], [1.0091807400379507, 1.0090885727210466, 1.008587185468939, 1.008301185358764], [1.0073670774091628, 1.0070986626483833, 1.0061932065100287, 1.0054880583039378], [1.00324031496063, 1.0030699873322833, 1.0023367984554221, 1.0017988297337892], [1.002507880690738, 1.0020096893490378, 1.0007990200950359, 0.9997224998182773], [1.002787758782936, 1.002085370871136, 1.0008238503628508, 0.9995296350721192], [0.9998330346009975, 0.999080822594447, 0.9976258006543549, 0.9964920746080006], [1.0005828931013052, 1.0007779591831343, 1.0002453367317874, 0.9999022306879845], [0.998941232961586, 0.9993244077987227, 0.9994385994919174, 0.9996657988439115], [1.0031817619783616, 1.0039073180778393, 1.0038067626594316, 1.0039714273859792], [1.0052274706609015, 1.006255353034996, 1.0067530064964256, 1.0068927134893462], [1.0062506625577812, 1.006261868365439, 1.005925718406458, 1.0054240331571171], [1.0023050535987752, 1.0022132146377267, 1.000634319375124, 0.9991553907222568], [0.9998251908396948, 0.9982876071940311, 0.9955485934115748, 0.9945409665614603], [0.9996773211567733, 0.9988141484359029, 0.9972154971925132, 0.9970191091362182], [1.0053181265206812, 1.0057934909739394, 1.0054089724071442, 1.0062093377815977], [1.0081916388213852, 1.011098841557878, 1.012482212753598, 1.0136954723203195], [1.011834916413374, 1.0145656631685323, 1.0163294064412038, 1.017968487191554], [1.009615272727273, 1.0124213062002267, 1.0144802243067066, 1.0161248284267972], [1.009945696969697, 1.01208559148103, 1.0145871060027363, 1.0167731498658823], [1.0056864048338368, 1.0078392447608695, 1.0096916707204981, 1.0108453348194644], [1.0083444108761328, 1.0107626527416396, 1.0125107845201, 1.0137151723165512], [1.0015450450450452, 1.0030241372859203, 1.0033243062082142, 1.0026290788855783], [1.0005317365269464, 0.9997706770966123, 0.9972142467702346, 0.9954281189066049], [0.9969522388059702, 0.9961984177118217, 0.9935226591254053, 0.9920125117891531], [0.9998424107142856, 0.9993054427151404, 0.9974421184969888, 0.9973237934711567], [1.0015292284866466, 1.0030530292939421, 1.0018633718326475, 1.0015415760798563], [0.9987496312684366, 1.0002378219734531, 0.9988890445855296, 0.9982418796857847], [0.9991552941176471, 1.0003146202550952, 0.9986230902892084, 0.9980986790109518], [0.9995360703812318, 1.0008122805112054, 1.000741139334195, 1.0012763141769423], [1.0029493421052629, 1.0047388088473934, 1.005601046286819, 1.006887695589757], [1.003569970845481, 1.0054678844448621, 1.0060744142366858, 1.0066688865829239], [1.0036700581395348, 1.003750141985642, 1.0033993124205671, 1.002980348614025], [1.003646086956522, 1.0027407831360167, 1.001442304645666, 1.000044419177642], [1.0012486311239193, 1.001001595844777, 1.0006939395502166, 1.000052123529866], [0.9989306590257879, 0.999462224924019, 1.0000210634709334, 1.0004611736811722], [0.9996621428571429, 1.0017012092550859, 1.0037134295320234, 1.0060214359548476], [1.0022467236467236, 1.0034626926455452, 1.0052934542337706, 1.0073044173753225], [1.0017931303116148, 1.0020101538522825, 1.0025544847567354, 1.0032207156452067], [1.0012817796610172, 1.0009175826817243, 1.0002177724284993, 0.9998316701873677], [0.9987478230337077, 0.9969813542265192, 0.9953571802474896, 0.9940265137654716], [1.002020658263305, 1.000189527724223, 0.9981667380933366, 0.996702483537993], [1.0022995810055868, 1.0011956726883158, 0.9994316597026083, 0.9981118514234305], [1.0008432132963987, 1.000965387810952, 1.0006313843858465, 1.000303038822508], [0.9985673553719009, 0.9990909518265522, 0.9993827613401316, 0.9993890277920783], [0.9985642857142857, 0.9994062188427275, 0.9996539780859448, 0.9994483915530576], [1.0011831967213114, 1.000608240120938, 0.998861841800966, 0.9972998111134251], [1.0014805027173912, 0.9991612808460634, 0.9961824546524509, 0.992907213565102], [1.0013452574525745, 0.9993446339692157, 0.9971027993498238, 0.9948281271272656], [1.0024059299191375, 1.0020566059585756, 1.0009053415868696, 0.9992421508733821], [1.0038605898123325, 1.0047271936816173, 1.004871624979937, 1.0052925886970276], [1.0011708, 1.0012521363323839, 1.0002443887872075, 1.0000293905709188], [1.0015277851458886, 1.0005417951722861, 1.0004389607837882, 1.000733609179224], [1.001391820580475, 1.000359742643955, 1.000356164971526, 0.9998200809349417], [1.0020669291338582, 1.0038581961574309, 1.0052104272001225, 1.0060366863506958], [1.0035779373368148, 1.0065321345692537, 1.0104101496787044, 1.013267645839762], [1.0037839610389612, 1.0063313086018555, 1.0097168755736037, 1.0122982679761674], [1.004640738341969, 1.0054852183109249, 1.006535343885575, 1.006230859757758], [1.003474806701031, 1.0028419720563497, 1.0028725725651393, 1.001781441538434], [1.0058248714652958, 1.0061536641956927, 1.0076175375835328, 1.0081383962419064], [1.006668205128205, 1.008325178754056, 1.0114384050549627, 1.0149525623181028], [1.0063255102040813, 1.008318643127496, 1.0106383951430034, 1.0143530714094893], [1.0032300126903553, 1.0046035560632267, 1.0064492126084075, 1.0095556897475886], [1.0006306818181818, 1.0038514338010982, 1.007513615858714, 1.012107166599896], [0.9999939698492465, 1.0045078059053139, 1.0089720896934278, 1.0136175108187655], [1.002058521303258, 1.0069524022696437, 1.011663996397312, 1.0165034406307867], [1.0055819548872182, 1.0100346233430988, 1.0139960018802527, 1.0178898601895316], [1.007114125, 1.0107866032029351, 1.0141543611793609, 1.017320496123276], [1.0060571072319202, 1.0075283489389733, 1.0084236548754564, 1.00896693405095], [0.9992326302729528, 0.998452861518519, 0.9968207651364035, 0.9935651653890197], [0.9960000000000001, 0.9931446785471904, 0.9896901503803326, 0.984911595332795], [0.9972158866995073, 0.9941653442078736, 0.99065071321128, 0.9869631955677591], [1.0004202702702703, 0.9994149647431614, 0.9990016107840881, 0.9988011989308413], [1.004434742647059, 1.0055245627372007, 1.0071151911757532, 1.0093436513137874], [1.0060660146699267, 1.009354257486241, 1.012811867392276, 1.0163755131521859], [1.0049425609756097, 1.0079579943788157, 1.0115525479797316, 1.0157853222127702], [1.0043401459854013, 1.007271446811409, 1.0099805178861243, 1.012867271876062], [1.0037872572815532, 1.0070414704484962, 1.00964476893242, 1.0113480345998853], [1.0007862318840581, 1.0039946131431638, 1.0056944121204963, 1.0067616428522415], [1.0027059782608696, 1.0043844770701615, 1.0049247281366178, 1.0052836282585986], [1.0011600000000003, 1.0016485052941202, 1.0011563858135377, 1.0007725623181005], [1.003153846153846, 1.0039932107081404, 1.0039926315967982, 1.004683176870571], [1.0020636690647482, 1.0034488415308702, 1.0037006264819317, 1.004222829699132], [1.002031399521531, 1.0038330335648338, 1.0044382669833065, 1.0063661465954592], [1.0019990453460623, 1.003210337539707, 1.0026447251052868, 1.0030609839800029], [1.0001809382422804, 1.0003876454506897, 0.9993352225626458, 0.9994162185712843], [1.0003770142180093, 1.0009468368553025, 1.0000098192268778, 0.9997246804102393], [0.9981390330188679, 0.9987541566954146, 0.9981214241423693, 0.9986237503189758], [1.002128588235294, 1.003280246406213, 1.0035556287785452, 1.004510684844776], [1.0000016393442623, 1.0001135115940971, 0.9996695320510061, 0.9996947053819941], [0.9978297674418605, 0.9971808632631532, 0.9953402503081682, 0.9932408322758631], [0.9916748271889401, 0.9901382783526341, 0.9868735225997469, 0.9840186385584518], [0.9903322082379863, 0.9890943575154101, 0.9871116643198325, 0.9852699086724694], [0.9932118451025057, 0.9922740947409986, 0.9908525527147104, 0.9899752209169901], [0.9968498868778279, 0.9959589500893388, 0.9951200744664103, 0.9949130020475216], [1.0041607466063347, 1.0008764535426944, 0.9977494873302298, 0.9948210383883811], [0.9910668888888888, 0.9864648194821681, 0.9824870729823999, 0.9786570625246848], [0.99545342920354, 0.9926535819477608, 0.9893929487982306, 0.987306627988448], [0.9887084429824562, 0.990768385036064, 0.9929673193571428, 0.9956618351223019], [1.0016421568627452, 1.0031573132403786, 1.004635601114845, 1.0081505759321885], [0.996474514038877, 0.9988839081608285, 0.9998060359449525, 1.0016626390761691], [0.9919461538461539, 0.9907747140010427, 0.990265918366087, 0.9904866610300764], [0.9893973044397463, 0.9913771651080118, 0.9923806144480737, 0.9923577330219134], [0.9866597803347279, 0.9856192316828172, 0.9839643792792508, 0.981648255000802], [0.9918729729729728, 0.989581161500932, 0.9869029455723002, 0.982739068256569], [0.9905748971193415, 0.9868164168327203, 0.9824978476023475, 0.9772512855189207], [0.9949228571428572, 0.9940685742303786, 0.9922554001419904, 0.9889434443062358], [0.9959773326572009, 0.9974203441482189, 0.9980167180383014, 0.9971640796657188], [0.993986873747495, 0.9926190408986989, 0.9915302845181538, 0.9908329535937941], [0.9875049407114624, 0.9877916504179904, 0.9872450367327552, 0.9878788497198138], [0.9849124999999999, 0.986642451610792, 0.9890720772760822, 0.9929389365527063], [0.9906361165048543, 0.9944947045955613, 0.9984991269995733, 1.0025537078505125], [0.9945971098265899, 0.9986820837642745, 1.002913850011662, 1.0069777366918562], [0.9933298279158701, 0.9972741132820125, 1.0010506708838665, 1.0039829411901218], [0.9973719106463877, 1.002121963683759, 1.0065382800344538, 1.0101442753529453], [1.0005248579545456, 1.0041170727223405, 1.0077889431961873, 1.0103650884012239], [1.002235754716981, 1.0040900893273723, 1.0054385189595163, 1.00554703933086], [1.0042043314500941, 1.0052752353375103, 1.0055685584156355, 1.0046852316012012], [1.0004613084112148, 1.0012811213293187, 1.0022157000800445, 1.0024807453374471], [0.9952467592592592, 0.9956673241828241, 0.996572056317819, 0.9982552513147283], [0.9925144372693726, 0.9911303475302247, 0.9893863294243266, 0.9880632605738325], [0.9929345238095237, 0.9914259829372275, 0.989348000572145, 0.9871790748794577], [0.9986803278688525, 1.0006638786991855, 1.002479880774963, 1.0038503893344994], [0.9958882459312841, 1.000412611240472, 1.0047778966921308, 1.009071280869163], [0.9977757194244604, 1.0023599904606701, 1.0065945640378635, 1.010923034427298], [0.9985306451612902, 1.002412562535007, 1.006700380857133, 1.0107462328150327], [1.0028194991055457, 1.0056859091887558, 1.0086348629723783, 1.0113351938202026], [1.0063600000000001, 1.0092821869488537, 1.011693108172007, 1.0140829647626461], [1.0067622994652408, 1.007968160116615, 1.0093530761824885, 1.010384458159075], [1.0032265957446809, 1.0038541513515786, 1.0042096132368392, 1.0044358688159574], [1.0, 1.0009802604953193, 1.0018977199162198, 1.0027723821582686], [0.9961686842105264, 0.9966701171654305, 0.9975947934352009, 0.9985519840742193], [0.997089005235602, 0.9991132274875183, 1.0016165622435091, 1.0043519138002235], [0.9976886718750001, 1.0000732879924954, 1.0031586778494888, 1.006509323030405], [0.9973277202072538, 0.9993837457306222, 1.0023990198243506, 1.0056677837430499], [0.998903700516351, 1.0009723177542074, 1.0038969119071253, 1.0070000120822429], [0.9988273972602739, 1.001546537568328, 1.0048448580402338, 1.0083567929128363], [0.9985037478705281, 0.9997791268935786, 1.0012514636935388, 1.0025741180135495], [0.9913986087689715, 0.9920875298595475, 0.9928059136320354, 0.992978954190421], [0.9905218120805368, 0.9905701878066662, 0.9902440846041161, 0.989273728184124], [0.9896330833333333, 0.9907154628302104, 0.9916612141927083, 0.9919945749871598], [0.9965502906976743, 0.9968229502343693, 0.9974229622829682, 0.9976301707323451], [0.9964528925619835, 0.9966529966278574, 0.9974854221094218, 0.9980968609764037], [0.9980427631578949, 0.9975826805098584, 0.997796340900938, 0.9980828428953492], [0.9974873977086743, 0.9972004936017483, 0.9969977448696202, 0.9971884484506496], [0.9993356443719413, 0.9981611706601096, 0.9975714459220608, 0.9971875669830338], [0.9998194805194803, 0.9982886918084867, 0.9969342772714374, 0.9956120527889154], [0.9990096370967742, 0.9989763366722006, 0.9985657265292537, 0.9982470179491354], [0.9982404895666132, 0.9985114728299817, 0.9983813124478953, 0.9981911070764032], [0.9975859649122808, 0.9979747123936206, 0.9983788692825434, 0.9985826385094745], [0.9991349206349206, 0.9995505021215441, 0.9997404914692328, 0.9997376610218558], [0.9975615536277602, 0.9983948777710254, 0.9987713297866576, 0.9988285108867693], [0.9970183098591551, 0.9983918376487483, 0.9990433417837197, 0.9995048506912534], [0.9924941860465116, 0.9937358481496807, 0.9934463134670732, 0.9931674411995696], [0.9907225384615383, 0.9910442951192341, 0.9905639590347404, 0.9898200678700938], [0.990913396946565, 0.9910326865198841, 0.9905983299134783, 0.9895127227513957], [0.9944402503793626, 0.9954898449194327, 0.996502333619183, 0.9966890682210742], [0.9938890977443611, 0.9932849777994085, 0.9938917682204936, 0.9944993323771134], [0.9932621087928465, 0.9926399747751041, 0.9917065387615359, 0.9922321933001972], [0.9935767407407408, 0.9908700223324343, 0.9880544050071864, 0.986232835692002], [0.9986018041237112, 0.9959007841583679, 0.9939416493663558, 0.9909427460476378], [0.999128795620438, 0.9981075570224827, 0.9973206099927553, 0.9949225392941605], [0.9965028901734104, 0.9972623423368462, 0.998851662929679, 0.9994289976974848], [0.9934381974248927, 0.9933072588801344, 0.9958497681286097, 0.9976634195918549], [0.9929346671388102, 0.9927187317394057, 0.9953577398341067, 0.9978771105653688], [0.9917697478991598, 0.9909796686429265, 0.9932277291941879, 0.9950708915198947], [0.9910890581717453, 0.9915275654622253, 0.9946793230640891, 0.9976784950068501], [0.9899957534246573, 0.9901410298809821, 0.9923944909561804, 0.9945799069700797], [0.9920676390773406, 0.9914082820725618, 0.9930942970435471, 0.9942420919355541], [0.9924103494623657, 0.9890221726688925, 0.9878466041046419, 0.9855410777803358], [0.9931688829787233, 0.9867311975772486, 0.98221053033669, 0.9761086489373897], [0.9928165789473685, 0.9866687926012364, 0.9824754539604134, 0.9777491756619584], [0.9923063719115733, 0.9871199394960706, 0.98548454264376, 0.9844318177375503], [0.9923025641025642, 0.9905919840677124, 0.9924786002014101, 0.994871559552069], [0.9903810126582278, 0.9871443226839391, 0.985967480854475, 0.9825478821042387], [0.9889474406991261, 0.9796578939139179, 0.9727074345460492, 0.9635887469384349], [0.9930778739184177, 0.9886071147796389, 0.987002548834072, 0.9838415195139324], [0.9980397796817625, 1.0075160751692596, 1.019945790110171, 1.0317538702607065], [1.0078036363636362, 1.0257429032755143, 1.0450855150638074, 1.062886088131486], [1.0117397094430993, 1.0219021344603574, 1.0339068877738051, 1.0442465016531157], [1.0030344350961538, 1.0015803351013126, 1.0012907716000632, 1.0004570652003566], [1.0006935339690106, 0.9936913837345348, 0.9880999826624175, 0.9821897075391509], [0.9948570247933884, 0.9858679733895619, 0.9793653979754936, 0.9716740643505657], [0.994147663551402, 0.983920390538685, 0.9775963579855108, 0.9708287796908518], [0.995996903935185, 0.9842697444249228, 0.9797851252441641, 0.9749990829940409], [0.9995474197247706, 0.9906155180318489, 0.9895245689684726, 0.9882863844116359], [1.0061161363636362, 1.0013610392115178, 1.0031178993862944, 1.002748228224037], [1.0129327313769751, 1.012726623768393, 1.0179225992770289, 1.0189408268673636], [1.0154249158249158, 1.0129076465705344, 1.0138428610826518, 1.0111722282836237], [1.0173221850613154, 1.0088556859802513, 1.0091865924746548, 1.0052760826622056], [1.0117043093922653, 1.0047122983428078, 1.005528165079539, 1.004207865880762], [1.0070977868852458, 1.0018137678053252, 1.0013751666139912, 0.9990930254028657], [1.012530097613883, 1.0081702902702585, 1.0094381902540714, 1.0085577730476496], [1.00786962943072, 1.003670687621945, 1.0027951973936597, 0.9987683097306606], [1.0162720824411133, 1.0174185201382868, 1.0210071580550553, 1.0217751499846084], [1.021056023454158, 1.031221110184711, 1.0428586564843285, 1.0536111993546506], [1.0257324654622741, 1.0351030632044167, 1.0457829850755866, 1.0562860837858232], [1.0228981991525423, 1.0262683497968303, 1.0315715096874485, 1.0360905711025072], [1.0173882787750792, 1.0123433736102838, 1.0098439274923305, 1.0064558048038197], [1.0206173442449842, 1.0186093445998385, 1.0193849603552358, 1.0192238254847397], [1.0241903157894738, 1.0248888322089449, 1.028997823506134, 1.0323100524558095], [1.02076527632951, 1.023742826661649, 1.0298191391941391, 1.0340616503095839], [1.0072370103092783, 1.007224467933813, 1.0099791100189515, 1.0109901537731494], [1.0052948717948718, 1.0081127494522413, 1.012090781913323, 1.0149646855916274], [1.0112443961105424, 1.0191407360983145, 1.0248136869750009, 1.0301932111169256], [1.0237868474923235, 1.0353797270542742, 1.043610311364957, 1.0527057131489934], [1.022085244648318, 1.0330092362675785, 1.0442245381534774, 1.0557546109927727], [1.0185723469387757, 1.0254981263218648, 1.0335093072940034, 1.0424763660302832], [1.0198, 1.0264744815414033, 1.033651998462721, 1.041811068948908], [1.0213572778345248, 1.023466463161291, 1.0274758899521608, 1.0314207490472402], [1.020175, 1.0209992404008723, 1.0235076597992605, 1.025638616477773], [1.0156915902140673, 1.0153605163965722, 1.017108047087688, 1.0181845044462892], [1.0103616902834007, 1.0094603307597394, 1.0104540005753146, 1.0108052832335128], [1.0079329637096774, 1.0079183160277196, 1.009929643661636, 1.0111108753508617], [1.0075235160965794, 1.0061148219584881, 1.0066112963866782, 1.006148995886145], [1.0102992985971944, 1.0081784768324173, 1.0074841453910401, 1.0055035395238858], [1.0112999000999001, 1.0081980363897596, 1.0067603152420108, 1.0037750929719491], [1.0117959661354583, 1.0112930186345086, 1.012583779155432, 1.0123694839840343], [1.0125541666666666, 1.0140172667213583, 1.0174116810286185, 1.0197845222146558], [1.0132278437190898, 1.014960834480563, 1.0190163975714797, 1.0220448139886078], [1.0124161735700197, 1.0126522089283045, 1.0152855952978048, 1.0171930380253251], [1.0085923604309501, 1.008417940778501, 1.0107433856010994, 1.012331367293856], [1.006959941520468, 1.0065045238762, 1.0088039750314373, 1.0104954416293592], [1.007594752186589, 1.0066461937662066, 1.0079832153627044, 1.0084684097281085], [1.0103748789932236, 1.0084796010262238, 1.008837289112361, 1.0078479284311286], [1.0138317391304348, 1.0119368688395718, 1.0106534246547023, 1.0078010918897584], [1.015901832208293, 1.0151636620958373, 1.0143338694332222, 1.0116675771054127], [1.0163539145052833, 1.0154461949376263, 1.01604824921885, 1.0146740511057255], [1.0157424568965518, 1.0158938911911743, 1.018998692631748, 1.0210878833433195], [1.0148882282712512, 1.0161532191963465, 1.020907781823997, 1.0253144410920307], [1.015544529019981, 1.0178013143978377, 1.0237224579739612, 1.0294586661162306], [1.0174042735042736, 1.0220499475290106, 1.0294972282903896, 1.0362478683407776], [1.0181454739336493, 1.023741699540979, 1.0317625767172698, 1.0387429685597096], [1.0185353358561968, 1.023536810660323, 1.0305470512517283, 1.036547199940167], [1.0119151693320791, 1.0132787312806317, 1.0171293652717242, 1.0202277611480217], [1.0077324438202249, 1.007268954050265, 1.008196637729645, 1.009008306814128], [1.0070147663551403, 1.0073435332578096, 1.00936466730489, 1.0110944168609708], [1.012105900186567, 1.0142360709215288, 1.0183942735156388, 1.021983929444522], [1.0146496744186047, 1.0199765127422658, 1.0269740490315973, 1.033725668563008], [1.013246285979573, 1.0163928548261234, 1.0214426648096564, 1.0263436491021904], [1.0120911955514362, 1.0134247336571394, 1.0163352172399358, 1.0188402643295786], [1.0117281452358928, 1.0117443590878012, 1.0131491893179683, 1.0137033651675789], [1.0101962211981568, 1.010277326183889, 1.011609822582979, 1.0124083959623578], [1.007578119266055, 1.0078959818117756, 1.0100956044734175, 1.011988430172087], [1.0047376712328766, 1.005256559089854, 1.0080178936179311, 1.0107483922174516], [1.0049331210191084, 1.0056690667609243, 1.0079680864539917, 1.009947803834596], [1.0116034639927074, 1.012023832232563, 1.0141284536196729, 1.015841674481994], [1.0214814390467462, 1.0227245673250174, 1.0257128156733257, 1.0282089163042312], [1.0289096826126956, 1.0316059445490968, 1.0359991069107235, 1.0403485517773996], [1.024185366972477, 1.0264191270229397, 1.0300950713045907, 1.0332592987119726], [1.0136127970749542, 1.0142711281216517, 1.0162582206864168, 1.0177496933103523], [1.0077333789954337, 1.0081777724370495, 1.0097163608552515, 1.0106515492952672], [1.0098163777372262, 1.011324551218096, 1.0142660691362144, 1.0168846137293177], [1.009985772727273, 1.0125361709192315, 1.0158554131527104, 1.0189866215190206], [1.008130331215971, 1.0096863583920355, 1.012224955980755, 1.0141903493875608], [1.0064784420289854, 1.0068361033495832, 1.0082193336903427, 1.009199681435148], [1.0057107400722023, 1.0054364832187785, 1.006255120759923, 1.0069409315036624], [1.0020385098743267, 1.0016473411145672, 1.0026864002891547, 1.0035859695243625], [1.000685152057245, 1.0002109605913883, 1.001010486769567, 1.0013791090220565], [1.0011747771836008, 1.0009379175575697, 1.0017635441159132, 1.0017988856708715]]}} \ No newline at end of file diff --git a/lectures/hansen_jagannathan_1991_data.json.yml b/lectures/hansen_jagannathan_1991_data.json.yml new file mode 100644 index 0000000..e205a26 --- /dev/null +++ b/lectures/hansen_jagannathan_1991_data.json.yml @@ -0,0 +1,367 @@ +# Manifest for hansen_jagannathan_1991_data.json — migrated out of +# QuantEcon/lecture-python-advanced.myst, where it sat at +# lectures/_static/lecture_specific/hansen_jagannathan_1991/ and was already +# read over that repo's own raw URL (PLAN Phase 8, wave C1). +# +# READ THE `source` NOTE FIRST. These are NOT Hansen and Jagannathan's data. +# The paper is the specification being replicated; every number here is a +# modern reconstruction from Robert Shiller's public workbooks and from FRED, +# standing in for the CRSP/Fama return and bill files the authors used. The +# lecture says so itself ("our FRED proxy differs from the original CRSP bill +# data", "FRED proxy data"). A reader who takes this file for the paper's +# dataset will misread every number in it. +# +# THE `monthly.cons_ratio` COLUMN IS MISLABELLED AND IS NOT CONSUMPTION. It is +# the growth rate of (DNDGRG3M086SBEA + DSERRG3M086SBEA) / POPTHM — the sum of +# two chain-type PRICE indices divided by population, i.e. roughly PCE +# inflation minus population growth. No lecture reads it (verified by grep: +# the only reads of the monthly table are `stock` and `bill`), so nothing +# published today is wrong because of it — but it must not be adopted by a new +# consumer as written. See `schema.tables[monthly]` and the open item at the +# foot of this file. +# +# FIRST .json in the published tree. `schema.format` is free-form and +# unvalidated — nothing in scripts/ or .github/scripts/ reads `format`, +# `columns` or `tables` — and build_audit.py's DATA_EXT already admits +# ".json", so this file needs no tooling change. The `tables:` block below is +# a three-table analogue of the `sheets:` structure the Excel manifests use +# (dette.xlsx.yml, mpd2020.xlsx.yml): `schema.columns` models one flat table +# and cannot express a bundle. + +filename: hansen_jagannathan_1991_data.json +title: Hansen-Jagannathan (1991) replication — US asset returns 1891-1986, with annual consumption (three-table bundle) +description: > + A three-table bundle serving the `hansen_jagannathan_1991` lecture: `annual` + (gross real stock and one-year bond returns plus a real per-capita + consumption level, 1891-1985), `monthly` (gross real stock and Treasury-bill + returns, 1959:3-1986:12), and `quarterly` (gross real three-month + holding-period returns on 3-, 6-, 9- and 12-month bills, observed monthly + 1964:7-1986:12). Every column is a gross ratio near 1, not a percentage and + not a net return — except `annual.consumption`, which is a level, and + `annual.year`. Reconstructed from Shiller's workbooks and FRED rather than + taken from the paper — see the source note. + +# Constructed: every value is computed from upstream series by our processing. +# Nothing here is republished as distributed — with the single exception noted +# under `license`, that `annual.bond` reproduces 95 values of one Shiller +# column unchanged. +class: constructed + +source: + name: Robert J. Shiller's public data workbooks (chapt26.xlsx, ie_data.xls) and FRED + url: http://www.econ.yale.edu/~shiller/data.htm + doi: null # neither provider issues one for these series + version: > + Shiller's workbooks are undated, unversioned and updated in place. As read + on 2026-08-17: chapt26.xlsx, 108,566 B, sha256 + d255bb1230a9a94c450ee4738d914ec8c6c79ceae58f1cc89559c7f40fa7c9c0; + ie_data.xls, 1,628,672 B, sha256 + 0df9392b7dacf91f756e92c8db508ad903c4588b43f3253680eec3dd8b40db68. FRED + series are unversioned and revisable; the 1891-1986 windows used here + reproduced exactly on that date (see integrity.upstream). + series: > + Shiller chapt26.xlsx, sheet `Data`: column P "Return on S&P Composite" + (annual real total return), column H "RealR" (real one-year interest + rate, gross), column I "C" (real per-capita consumption, chained 2005 + dollars); + Shiller ie_data.xls, sheet `Data`: column J "Real Total Return Price" + (monthly); + FRED TB3MS (3-month Treasury bill secondary market rate, monthly); + FRED TB6MS (6-month Treasury bill secondary market rate, monthly); + FRED GS1 (1-year Treasury constant maturity rate, monthly); + FRED CPIAUCSL (CPI-U all items, SA, 1982-84=100); + FRED DNDGRG3M086SBEA and DSERRG3M086SBEA (PCE chain-type PRICE indices, + nondurable goods and services, 2017=100, SA, BEA); + FRED POPTHM (US population, monthly, thousands). + citation: > + Constructed by QuantEcon from Robert J. Shiller's public stock-market and + consumption workbooks (Yale University) and from Board of Governors, BLS, + BEA and Census series retrieved via FRED (Federal Reserve Bank of St. + Louis). Replicates the empirical exhibits of Hansen, Lars Peter, and Ravi + Jagannathan. 1991. "Implications of Security Market Data for Models of + Dynamic Economies." Journal of Political Economy 99 (2): 225-262. + doi:10.1086/261749. + note: > + NOT the authors' data, and not a faithful copy of it. Hansen and + Jagannathan used CRSP value-weighted NYSE returns, the Fama Treasury bill + term-structure files, and NIPA consumption; CRSP is a paid subscription + product, so every leg here is a public substitute. The annual stock leg is + Shiller's S&P Composite real total return, the annual bond leg is his real + one-year rate, the monthly stock leg is his Irrational Exuberance real + total-return index, and the bill legs are built from FRED yields deflated + by CPIAUCSL. The quarterly table has no 9-month upstream at all: its 9-month + yield is the arithmetic mean of TB6MS and GS1 — an interpolation of ours, + not a published series. The lecture states the consequence plainly at two + places ("Because our FRED proxy differs from the original CRSP bill data, + the levels differ slightly, but the qualitative features match"; "Here we + use just the 2 base payoffs (stock and bill returns) from FRED proxy + data"). The paper is the specification; the bytes are ours. + +license: + name: null + url: http://www.econ.yale.edu/~shiller/data.htm + # Recorded as found, per the record-and-track policy (AGENTS.md, "Licensing + # and attribution"). Split answer across the two providers, and neither half + # has a licence to name. + redistribution: permitted + verified: 2026-08-17 + note: > + The seven FRED inputs are U.S. federal statistics — Board of Governors + H.15 Treasury rates, the BLS consumer price index, BEA PCE price indices + and the BEA/Census population series — which are U.S. Government works in + the public domain; FRED is the delivery channel, not the rights holder, + and none is among the third-party series FRED re-serves under restriction. + Shiller's data page states NO licence, NO redistribution terms and carries + no copyright notice (checked 2026-08-17); ie_data.xls ships a `Disclaimer` + sheet whose only content is an accuracy disclaimer ("developed by Robert + J. Shiller using various public sources. Neither Robert J. Shiller nor any + affiliates or consultants ... guarantee the accuracy or completeness"), not + a grant. `permitted` therefore rests on what is actually published here. + The six FRED-derived columns are transformed past recovery, and + `monthly.stock` publishes only ratios of a level index. The four `annual` + columns are the exposure, and it is worth naming precisely: `annual.bond` + reproduces 95 values of Shiller's chapt26 `RealR` column unchanged + (bit-identical, measured 2026-08-17), `annual.stock` is one addition away + from his `Return` column, `annual.year` is his year column, and + `annual.consumption` is his `C` column times a constant. An inherited exposure, + served publicly from lecture-python-advanced.myst since 2026-04-10. No + permission has been sought from Yale or from Professor Shiller. + Registered for licence review on QuantEcon/data-lectures#35. + +retrieved: null # no upstream-retrieval date was recorded, and + # none is reconstructed from git history + # (AGENTS.md, "Two inherited-file states"). The + # gap is answered by content instead: a + # from-scratch re-derivation from the live + # upstreams on 2026-08-17 reproduced every one + # of the 2,462 data cells to within 4 ULP, so the + # vintage is pinned by value rather than by a + # date. For context and NOT as a retrieval + # date: the bytes landed in + # lecture-python-advanced.myst in 95d83cd + # (#320), 2026-04-10. +maintainer: QuantEcon + +# --------------------------------------------------------------------------- +# Integrity (PLAN Phase 7) +# --------------------------------------------------------------------------- +# Migration check (repoint gate, not a manifest field): the bytes landing here +# are byte-identical to the copy the lecture reads today — sha256 c81333f3..., +# 63,456 B, against lecture-python-advanced.myst @ 00057ba, and against a live +# GET of the raw URL the lecture's data cell uses (HTTP 200, 63,456 B, same +# digest, 2026-08-17). No translation of advanced exists, so there is no second +# committed copy to reconcile. A repoint to this file therefore cannot change a +# figure. + +integrity: + sha256: c81333f372a23465a593db592b04070b7b5732b4919348423d9534942f610029 + upstream: + # `verified` in the sense AGENTS.md defines for a constructed dataset — + # re-derive and compare. There is no committed builder to re-run, so the + # construction was recovered first (recorded in full under `builder` below) + # and then evaluated against the live upstreams. + status: verified + date: 2026-08-17 + against: > + http://www.econ.yale.edu/~shiller/data/chapt26.xlsx; + http://www.econ.yale.edu/~shiller/data/ie_data.xls; + https://fred.stlouisfed.org/graph/fredgraph.csv?id={TB3MS,TB6MS,GS1, + CPIAUCSL,DNDGRG3M086SBEA,DSERRG3M086SBEA,POPTHM} + note: > + All eleven columns reproduce from the live upstreams. The ten gross-ratio + columns are near 1 and reproduce to a maximum absolute difference of + 4.44e-16 (1-4 ULP); annual.consumption is a level running 2412.16 to + 17039.72 and reproduces to 3.64e-12, which is 1 ULP at its top end, so the + whole-file maximum absolute difference is 3.64e-12 rather than 4.44e-16. + Six columns are bitwise identical end to + end: annual.year (95/95), annual.bond (95/95), monthly.bill (334/334), + monthly.cons_ratio (334/334), quarterly.r3 (270/270), quarterly.r6 + (270/270); quarterly.r9 and quarterly.r12 are bitwise identical in + 269/270 rows. The two stock legs agree everywhere to <=4 ULP (annual.stock <=2, + monthly.stock <=4) but are + bitwise identical in only about half their rows (annual.stock 46/95, + monthly.stock 154/334), which is why the recovered builder is recorded + rather than committed — see `builder`. One element is NOT verified: the + level of annual.consumption carries a constant factor of + 0.8938191876245914 relative to Shiller's published series, recovered by + division rather than derived, and of unknown origin. It reproduces the + column to <=2 ULP (43 of 95 values bitwise identical, max abs diff + 3.64e-12); the observed per-row ratios span six distinct doubles, + 0.8938191876245912 to 0.8938191876245918. It changes nothing the lecture prints — + consumption enters only as the ratio c[t+1]/c[t], and those ratios are + agree with Shiller's to <=3 ULP (max abs diff 4.44e-16, bitwise identical + in 49 of 94 rows) — but the units + of the column as published cannot be stated with confidence. Two + candidate explanations remain live (a rescale applied by the original + construction, or an older Shiller vintage on a different dollar base); + web.archive.org returned HTTP 503 on both its replay and CDX endpoints on + this date, so no archived vintage could be checked and the snapshot test + that would settle it is still to be run. + +# --------------------------------------------------------------------------- +# Shape +# --------------------------------------------------------------------------- +# Measured from the committed bytes 2026-08-17. +# +# This is a BUNDLE, not a table: the top-level JSON object has three keys, each +# holding a pandas `orient='split'` dict {columns, index, data}. The consuming +# lecture rebuilds each with +# pd.DataFrame(raw[k]["data"], columns=raw[k]["columns"], index=raw[k]["index"]) +# so BOTH the column order and the index are load-bearing — a consumer that +# reorders either silently changes what it reads. Note that every index entry is +# a STRING, including the monthly and quarterly date stamps ("1959-03-31 +# 00:00:00"): the frames come back with an object index, not a DatetimeIndex. +# The whole file is one line with no trailing newline. +# +# `tables:` is the bundle analogue of the `sheets:` block in dette.xlsx.yml and +# mpd2020.xlsx.yml — same intent (one entry per readable sub-table, each with +# its own shape, columns and nulls), same standing as an undocumented but +# established local extension. No tooling reads it. + +schema: + format: json + bundle_orient: split # each top-level value is {columns, index, data} + table_count: 3 + tables: + - name: annual + shape: [95, 4] + index: > + positional strings "0"-"94" — a RangeIndex serialised as text, carrying + no information; the calendar year is the `year` COLUMN + columns: + - {name: year, dtype: float64, description: "calendar year, 1891-1985, stored as a float (1891.0). Unpacked by the lecture but never used"} + - {name: stock, dtype: float64, description: "gross real annual total return on the S&P Composite — Shiller chapt26 `Data` column P plus 1. Observed 0.635-1.514"} + - {name: bond, dtype: float64, description: "gross real annual one-year interest rate — Shiller chapt26 `Data` column H (`RealR`), reproduced unchanged. Observed 0.853-1.251"} + - {name: consumption, dtype: float64, description: "real per-capita consumption LEVEL, not a ratio: 0.8938191876245914 x Shiller chapt26 `Data` column C. Observed 2412.2-17039.7; the unit is nominally chained 2005 dollars but the constant factor is unexplained (see integrity.upstream). Only its growth ratio is ever used"} + known_nulls: {} + date_range: {start: 1891, end: 1985} + description: > + The lecture's headline exhibit. `stock` and `bond` are the two payoffs + of the annual HJ frontier; `consumption` drives the CRRA IMRS points + m = 0.95 (c[t+1]/c[t])^g for g = 0,-1,...,-30. + - name: monthly + shape: [334, 3] + index: > + month-end timestamps as STRINGS, "1959-03-31 00:00:00" to "1986-12-31 + 00:00:00" — an unbroken 334-month grid + columns: + - {name: stock, dtype: float64, description: "gross real monthly total return on the S&P Composite — the ratio of consecutive months of Shiller ie_data.xls `Real Total Return Price`. Observed 0.879-1.119"} + - {name: bill, dtype: float64, description: "gross real monthly Treasury-bill return, (1 + TB3MS/100/12) deflated by the realised CPIAUCSL inflation of the SAME month. Observed 0.989-1.011"} + - {name: cons_ratio, dtype: float64, description: "MISLABELLED — not consumption. The growth rate of (DNDGRG3M086SBEA + DSERRG3M086SBEA)/POPTHM, i.e. a sum of two chain-type PRICE indices per head; economically it is PCE inflation net of population growth. Observed 0.991-1.016. Read by nothing"} + known_nulls: {} + date_range: {start: 1959-03-31, end: 1986-12-31} + description: > + Base payoffs for the monthly frontier in the time-nonseparable + section. Only `stock` and `bill` are consumed. + - name: quarterly + shape: [270, 4] + index: > + month-end timestamps as STRINGS, "1964-07-31 00:00:00" to "1986-12-31 + 00:00:00" — MONTHLY stamps on an unbroken 270-month grid. "Quarterly" + names the three-month HOLDING PERIOD, not the observation frequency: + the returns overlap, and consecutive rows share two months + columns: + - {name: r3, dtype: float64, description: "gross real three-month holding-period return on a 3-month bill (held to maturity), from TB3MS deflated by CPIAUCSL over t..t+3. Observed 0.985-1.029"} + - {name: r6, dtype: float64, description: "same, 6-month bill sold at t+3 as a 3-month bill (TB6MS -> TB3MS). Observed 0.980-1.035"} + - {name: r9, dtype: float64, description: "same, 9-month bill sold at t+3 as a 6-month bill. The 9-month yield is OURS — the arithmetic mean of TB6MS and GS1, not a published series. Observed 0.973-1.046"} + - {name: r12, dtype: float64, description: "same, 12-month bill (GS1) sold at t+3 as a 9-month bill (interpolated as above). Observed 0.964-1.063"} + known_nulls: {} + date_range: {start: 1964-07-31, end: 1986-12-31} + description: > + The four-asset menu behind the duality figures and the replication of + the paper's Figure 6. All four columns are consumed. The 1964:7 start + is NOT forced by data availability (TB6MS begins 1958-12, GS1 + 1953-04) and no reason for it is recorded anywhere. + row_count_floor: null # per-table, declared above; the file is a + # frozen historical extract and does not grow + date_range: {start: 1891, end: 1986} + known_nulls: {} # genuinely none — 2,462 data cells, zero + # nulls across all three tables + +# --------------------------------------------------------------------------- +# Consumers — how a correction knows what to rebuild +# --------------------------------------------------------------------------- +# Every lecture that CONSUMES this dataset. The list answers "what must be +# rebuilt if these bytes change", so it also names a consumer that still reads a +# local copy rather than this repo — such an entry carries a `note` saying so, +# and is the only machine-readable trace of that divergence. Empty means nothing +# consumes it yet. The one consumer below reads advanced.myst's own raw URL +# today; migration.yml flips to `repointed` when the repoint PR merges (PLAN, +# "Repoint rules"). +# +# That consumer is QuantEcon/lecture-python-advanced.myst, +# lectures/hansen_jagannathan_1991.md — one file, one read, established by +# BASENAME grep across all nine lecture clones (the URL is split across three +# adjacent Python string literals at :183-185, so a whole-URL grep returns a +# confident zero). Two other lectures name `hansen_jagannathan_1991`, but only +# as {doc} cross-references: doubts_or_variability.md:200 and +# risk_aversion_or_mistaken_beliefs.md:1673,1838. +# +# A third reference-holder that is NOT a repoint target: the generated mirror +# QuantEcon/lecture-python-advanced.notebooks bakes the same URL into +# hansen_jagannathan_1991.ipynb (HTTP 200, verified 2026-08-17). It self-heals +# after a publish tag while the lecture still exists in the source repo, so it +# is deliberately not listed (wave A4 precedent). +consumers: + - repo: QuantEcon/lecture-python-advanced.myst + file: lectures/hansen_jagannathan_1991.md + note: > + Reads its own copy over an own-repo raw URL + (`lecture-python-advanced.myst/.../hansen_jagannathan_1991/`), not this + file — the repoint PR follows this one, and migration.yml records the + dataset as `landed` until it merges. Listed now because a correction to + these bytes must reach the lecture regardless of where it currently reads + them from (QuantEcon/data-lectures#91). + +# --------------------------------------------------------------------------- +# Builder +# --------------------------------------------------------------------------- +# `unrecovered`, but unusually for that state the construction is FULLY +# SPECIFIED rather than lost — recovered by re-derivation on 2026-08-17 and +# recorded here so Phase 9 is a finishing job, not an investigation. The reason +# it is not `committed` is precise: a builder written to this specification +# reproduces the file to within 4 ULP but NOT byte for byte (63,457 B against +# 63,456 B; 2,179 of 2,462 data cells bitwise identical), so committing it +# would name a builder that does not produce the bytes beside it. Two residues +# block byte-exactness — the arithmetic form used for the two Shiller-derived +# stock legs, which agree to <=4 ULP but match bitwise only about half the +# time under every form tried (1+Return, exp(ln(1+ret)), the RealP/RealD +# quotient, and the pandas ratio/pct_change variants), and the unexplained +# 0.8938191876245914 factor on annual.consumption. Everything else is exact. +# +# The recovered specification, verbatim enough to re-implement: +# +# annual (95 rows, Shiller chapt26.xlsx sheet `Data`, header rows 0-7): +# year = column A, 1891..1985, as float +# stock = 1 + column P ("Return on S&P Composite") +# bond = column H ("RealR") +# consumption = 0.8938191876245914 * column I ("C") +# index = str(i) for a 0-based RangeIndex +# +# monthly (334 rows, 1959-03..1986-12): +# stock = RTRP[t]/RTRP[t-1], RTRP = ie_data.xls sheet `Data` +# column J ("Real Total Return Price") +# bill = (1 + TB3MS[t]/100/12) / (CPIAUCSL[t]/CPIAUCSL[t-1]) +# — note the BACKWARD deflator +# cons_ratio = x[t]/x[t-1] with +# x = (DNDGRG3M086SBEA + DSERRG3M086SBEA)/POPTHM +# index = str(month-end Timestamp) +# +# quarterly (270 rows, 1964-07..1986-12, monthly stamps): +# y3 = TB3MS, y6 = TB6MS, y12 = GS1, y9 = (TB6MS + GS1)/2 +# P(n,t) = 1 / (1 + (y_n[t]/100) * (n/12)) # simple discount, P(0,.) = 1 +# r_n[t] = [P(n-3, t+3) / P(n, t)] / (CPIAUCSL[t+3]/CPIAUCSL[t]) +# — note the FORWARD deflator, opposite to `monthly.bill` +# index = str(month-end Timestamp) +# +# serialisation: json.dumps of +# {name: {"columns": [...], "index": [str(i) ...], "data": df.values.tolist()}} +# with default separators, one line, no trailing newline. +# +# Anyone completing this should also settle the two open items recorded above +# (the consumption scale factor, and the mislabelled `monthly.cons_ratio`); +# both are data questions for the lecture's author, not infrastructure calls, +# and per AGENTS.md "a migration moves bytes; it does not update them" neither +# is fixed here. +builder: null +builder_status: unrecovered diff --git a/migration.yml b/migration.yml index 1e499d2..26b9e18 100644 --- a/migration.yml +++ b/migration.yml @@ -708,6 +708,44 @@ datasets: date: 2026-08-13 cutover: null + # Wave C1 — the three lecture-python-advanced.myst datasets that needed no + # rename decision. `landed` here and NOT yet `repointed`: the lecture still + # reads its own copies, and the repoint PR follows this one (advanced.myst + # caches notebook execution, so the repointed cells re-execute against + # whatever is on this repo's main at that moment — data first, always). + bbh_macro_quarterly.csv: + pilot: C1 + status: landed + prior_pattern: local-path + landed: + pr: QuantEcon/data-lectures#92 + date: 2026-08-17 + repoints: [] + cutover: null + + bbh_michigan_monthly.csv: + pilot: C1 + status: landed + prior_pattern: local-path + landed: + pr: QuantEcon/data-lectures#92 + date: 2026-08-17 + repoints: [] + cutover: null + + # Already read over an own-repo raw URL rather than a local path, so deleting + # it from advanced.myst breaks readers at RUNTIME with no stale-serving grace + # period. Repoint and publish before any deletion. + hansen_jagannathan_1991_data.json: + pilot: C1 + status: landed + prior_pattern: own-repo + landed: + pr: QuantEcon/data-lectures#92 + date: 2026-08-17 + repoints: [] + cutover: null + # Planned waves that have not landed anything here yet. `datasets` names the # files as the audit sees them today, so the dashboard can join the two views. # `title` is the reader-facing milestone name (the dashboard is read by people diff --git a/requirements.txt b/requirements.txt index 528fb73..67d70a0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,6 +8,11 @@ pandas==2.3.3 # imported by 9 of the 10 builders — every one except # 2026-08-13; they also reproduce byte-identically under # 3.0.5, so the pin records the measurement rather than # guarding a known sensitivity. +openpyxl==3.1.5 # the .xlsx reader pandas defers to — builders/ + # bbh_macro_quarterly.py, bbh_michigan_monthly.py, + # ames_house_prices.py and japan_population_by_age.py all + # need it. The last two have needed it since they landed; + # it was never declared because CI does not run builders. PyYAML==6.0.3 # scripts/build_catalog.py — parse the sidecar manifests scipy==1.16.3 # builders/NEWQDATA.py — loadmat, the only way to read a # MATLAB 5.0 .MAT; pandas cannot diff --git a/scripts/audit_annotations.yml b/scripts/audit_annotations.yml index 2841d17..fe60754 100644 --- a/scripts/audit_annotations.yml +++ b/scripts/audit_annotations.yml @@ -22,14 +22,6 @@ datasets: description: ACS occupation summary provenance: constructed-lost note: construction (ACS filters, grouping, sorting) described in lecture prose only - bbh_macro_quarterly.csv: - description: Macro quarterly series (Bhandari et al.) - provenance: constructed-lost - note: extracted from the paper's replication package (Zenodo DOI, CC BY 4.0); extraction not scripted - bbh_michigan_monthly.csv: - description: Michigan survey monthly series (Bhandari et al.) - provenance: constructed-lost - note: same Zenodo replication package; extraction not scripted dataBHS.mat: description: US consumption/income series, MATLAB replication bundle provenance: verbatim @@ -50,10 +42,6 @@ datasets: all. Two of the four repos also commit a copy the %%file cell overwrites before reading (intro, dp) — those are shadowed; jax and wasm commit no copy at all, which is the cleaner shape - hansen_jagannathan_1991_data.json: - description: Hansen–Jagannathan (1991) asset-returns bundle - provenance: constructed-lost - note: lecture documents 3 sources (FRED yields deflated by CPIAUCSL, …); no build script test_pwt.csv: description: Penn World Table 7.0 extract provenance: author-assembled