Skip to content

Commit dc3fec2

Browse files
committed
Strip meta-language, fix consistency bugs, add duration and scatter charts
- Remove "descriptive evidence," "supplementary checks," "The Great Drainage," "The Buffer," "ample reserves," "motive-neutral," and reading-order directives from all public copy (README, site, publish script). Rename section headings to neutral labels. - Fix QT2 state split: publish qt2_low_liquidity from the pipeline (QT2-subsample median) so the site no longer silently redefines the liquidity state client-side. - Harmonize debt-limit sample notes with actual data: all 68 quarters are in-sample; notes now say debt-limit quarters are flagged for inspection, not excluded. - Remove classification_prior from published quarterly panel and manual audit (was "review_required" throughout, communicated nothing). - Add duration decomposition stacked bar chart showing SOMA runoff, coupon issuance, bill offset, and buyback offset with a net overlay. - Add offset/amplify scatter (Fed runoff DV01 vs Treasury mix DV01) with debt-limit quarters marked distinctly.
1 parent f86d3bf commit dc3fec2

12 files changed

Lines changed: 1388 additions & 256 deletions

File tree

README.md

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
**[Live site](https://smkwray.github.io/coordwatch/)**
44

5-
Tracking how Fed runoff, Treasury issuance, the TGA, ON RRP, and private intermediation interact under ample reserves.
5+
Tracking Fed balance-sheet runoff, Treasury issuance, reserves, and market intermediation.
66

77
## Question
88

9-
**How do Fed runoff, Treasury debt management, and liquidity conditions combine under an ample-reserves regime?**
9+
**How do Fed balance-sheet runoff, Treasury issuance, reserves, and market intermediation move together?**
1010

11-
The effective stance of monetary conditions depends jointly on Fed balance-sheet runoff, Treasury issuance composition, TGA management, ON RRP drainage, and private intermediation capacity. CoordWatch follows the balance sheets using free public data.
11+
CoordWatch follows Fed runoff, Treasury issuance composition, TGA management, ON RRP drainage, dealer balance sheets, and repo spreads using free public data.
1212

1313
## What it measures
1414

@@ -20,8 +20,6 @@ The effective stance of monetary conditions depends jointly on Fed balance-sheet
2020
6. How does ON RRP drainage change money-market sensitivity?
2121
7. How do lower-buffer states differ from higher-buffer states?
2222

23-
Descriptive evidence is the core analysis. The site is organized around reserve drainage, buffers, cash mechanics, duration burden, intermediation, sectoral absorption, and realized issuance. Light econometrics appear only as supplementary checks.
24-
2523
## Data
2624

2725
All data from free public sources. No proprietary data required.
@@ -65,14 +63,13 @@ make verify Check all artifacts present
6563

6664
## Public structure
6765

68-
1. Drainage and buffer conditions.
66+
1. Fed runoff and liquidity buffers.
6967
2. Debt-ceiling cash mechanics and the DTS cross-check.
70-
3. Duration burden, dealer absorption, and repo intermediation.
71-
4. Sectoral absorption and realized auction mix appendices.
72-
5. Supplementary econometric checks.
68+
3. Duration burden, dealer balance sheets, and repo spreads.
69+
4. Treasury holders and realized auction mix appendices.
70+
5. Regression results.
7371

7472
## Conventions
7573

7674
- **Positive Fed pressure** = more duration burden on private sector.
7775
- **Positive buyback offset** = Treasury removes duration from private hands.
78-
- **Motive-neutral language.** Measures balance-sheet interactions and market effects; does not infer intent.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
55
[project]
66
name = "coordwatch"
77
version = "0.1.0"
8-
description = "Measuring Fed-Treasury operational interdependence under ample reserves"
8+
description = "Fed runoff, Treasury issuance, reserves, and market intermediation"
99
readme = "README.md"
1010
requires-python = ">=3.10"
1111
dependencies = [

scripts/15_build_publish_artifacts.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ def _build_manual_input_audit(manual: pd.DataFrame) -> dict:
108108
"verification_status",
109109
"debt_limit_flag",
110110
"clean_sample_flag",
111-
"classification_prior",
112111
"cash_balance_statement_sourced",
113112
"reviewer_notes",
114113
]
@@ -511,7 +510,7 @@ def main() -> None:
511510
lp_dealer = pd.read_csv(OUTPUTS_TABLES_DIR / "main_lp_dealer.csv")
512511
lp_repo = pd.read_csv(OUTPUTS_TABLES_DIR / "main_lp_repo.csv")
513512

514-
# Publish econometric tables (supporting evidence)
513+
# Publish econometric tables
515514
publish_table(reaction, "reaction_function_main")
516515
publish_table(lp_dealer, "main_lp_dealer")
517516
publish_table(lp_repo, "main_lp_repo")
@@ -524,7 +523,8 @@ def main() -> None:
524523
weekly_cols = [
525524
"week", "soma_treasuries_bn", "reserves_bn", "tga_bn", "on_rrp_bn",
526525
"dealer_inventory_bn", "repo_spread_bp", "system_liquidity_bn",
527-
"low_liquidity", "qt_runoff_dv01", "qt_runoff_source", "qt_runoff_proxy_bn",
526+
"low_liquidity", "qt2_low_liquidity",
527+
"qt_runoff_dv01", "qt_runoff_source", "qt_runoff_proxy_bn",
528528
"coupon_dv01_shock", "bill_dv01_offset", "mix_shock_dv01",
529529
"buyback_offset_dv01", "expected_soma_redemptions_dv01",
530530
"duration_pressure_dv01", "fed_pressure_dv01",
@@ -553,10 +553,11 @@ def main() -> None:
553553
write_json(PUBLISH_DIR / "auction_mix_appendix.json", auction_mix_appendix)
554554
write_json(ROOT / "site" / "data" / "auction_mix_appendix.json", auction_mix_appendix)
555555

556-
# Quarterly panel: full
557-
publish_table(_ts_to_str(quarter), "quarterly_panel")
556+
# Quarterly panel: full (drop classification_prior — not meaningful in published data)
557+
quarter_pub = quarter.drop(columns=["classification_prior"], errors="ignore")
558+
publish_table(_ts_to_str(quarter_pub), "quarterly_panel")
558559

559-
# Publish descriptive tables (core evidence)
560+
# Publish descriptive tables
560561
for table_name in ["regime_summary", "episode_summary", "quarterly_descriptive", "correlation_matrix"]:
561562
path = TABLES_DIR / f"{table_name}.csv"
562563
if path.exists():
@@ -638,7 +639,7 @@ def main() -> None:
638639
},
639640
{
640641
"title": "Manual review",
641-
"detail": "Episode windows and selected refunding inputs use manual review files. Debt-limit periods are treated as confounded windows rather than clean policy comparisons."
642+
"detail": "Episode windows and selected refunding inputs use manual review files. Debt-limit quarters are flagged (debt_limit_flag = 1) for separate inspection but remain in the regression sample."
642643
},
643644
{
644645
"title": "Sample coverage",
@@ -662,7 +663,7 @@ def main() -> None:
662663
},
663664
{
664665
"title": "Interpretation",
665-
"detail": "Balance-sheet identities and descriptive comparisons are primary. Correlations and regressions are supplementary checks, not stand-alone proof of intent."
666+
"detail": "The site reports balance-sheet quantities, market variables, and model estimates from the same public data bundle. Regression tables summarize statistical relationships in the published sample."
666667
}
667668
],
668669
"data_files": data_files,

0 commit comments

Comments
 (0)