# Process memo — The Triffin Margin: Who Absorbs Treasury Supply, and What It Costs

Paper repo: paper-triffin-margin-full (private). Built unattended from the web commission of October 1, 2026 (mode 1, NBER style, house voice, PDF and LaTeX, author Jason Furman, byline "Claude with guidance from Jason Furman"). Three attempts: the first ended on account capacity at Draft v1.0; the second resumed from the working notes and carried the paper through two referee rounds and two loop-backs to the Stage 10 audits, whose reports died with its context; the third re-ran those audits, found and fixed a data-construction defect they surfaced (below), and delivered.

## What was done, in order
1. Setup and literature: 48 PDFs acquired (Library first), digests, Literature Map (five strands); nothing reused from the first, short build except the Library's files.
2. Data (vintage 2026-10-01, frozen with a sha256 manifest): holder composition by remaining-maturity bucket 2004-2025 (TIC survey maturity tables × Z.1, the 2017-2025 dollar tables, MSPD by CUSIP, SOMA by CUSIP); every nominal coupon auction 2000-2025 matched to its investor-class allotment; every auction-size announcement beside the guidance parsed from 119 refunding statements; added at round 1, the TIC monthly official holdings and the H.4.1 weekly custody series.
3. Identification Memo committed before any results, with five dated amendments (two after results in attempt 1, one after the outline review, one per referee round).
4. Model in code (model/model.py), 56 claims checked by derive.py, 58 equation fragments input by the manuscript.
5. Plan, outline (with a referee memo), Draft v1.0 (57 pp.), auditor approvals at Setup, Literature, Data, Model and Draft v1.0.
6. Quality and voice passes (v1.1, v1.2); referee round 1 (five blind sampled dispositions + case-for; full citation audit batched by source); loop-back 1; Draft v1.3 (reframed); round 2 (fresh panel + case-for + citation-audit diff); loop-back 2; Draft v1.4; Stage 10 (claim check, number audit, auditor Final, copy-critic pre-send) on v1.4; loop-back 3 (memo Amendment 6, committed on its own before the code); Draft v1.5; the gates re-run; delivery.

## What the paper found, and how the findings moved
- **The Stage 10 claim check found a data-construction defect that two referee rounds and every number gate had passed.** The investor-class allotments were matched to auctions by (issue date, tenor), and Treasury's four off-cycle reopenings of off-the-run 10-year notes on October 8-9, 2008 ($10 billion each, all settling October 15) share that key; their allotments were summed into one $40 billion record and merged onto each of the four auctions, which manufactured two "$28 billion / $24 billion emergency changes" that the paper (v1.0-v1.4) described in five places as a real Treasury action and that carried the 2008-2009 result (foreign class marginal share 0.04, bootstrap p 0.001). Twenty-three further auctions sold as legal reopenings of an older CUSIP of a longer original term (a 2-year note reopening a 5-year) carried the wrong tenor. Fixed one record per auction with the tenor of the instrument sold (memo Amendment 6). The corrected full-sample marginal shares are dealers 0.44, funds 0.35, the foreign class 0.20 against an average of 0.17: the marginal dollar is divided roughly as the average dollar is, and the abstract, introduction, Section 6, robustness, conclusion and Appendix B were rewritten to say so. The number gate could not catch this because every number was correctly transcribed from a correctly run regression on a wrongly built panel; the fresh-context verifier caught it by opening the auction records to check a sentence about October 2008.
- The commission asked for the interaction of a supply surprise with the official share across buckets within a day. The announcement design has no first stage: Treasury's guidance removes the quantity news (the surprises carry about 2 percent of a Phillot-sized response); in the two windows where announced sizes did move yields the official share is collinear with the tenor. This was the pre-registered headline and it is reported in full with its diagnostics.
- Who underwrites the marginal dollar at auction (allotments, corrected): dealers 0.44 (s.e. 0.09), funds 0.35 (0.07), the foreign class 0.20 (0.07) against a 0.17 average, none distinguishable from its average share; in 2000-2008 the class took 0.12 (0.07) against 0.20 (bootstrap p 0.25), at or above its average in every period since. The pre-correction 0.12 / 0.04 numbers, and the round-1 referee's suspicion that the 0.04 was the crisis years, were both artifacts of the summed October 2008 record.
- Who held the path afterward (the loop-backs): official holdings rose by 0.95 of net coupon issuance between the 2004 and 2008 surveys, within six months of issuance in the monthly record (0.62, s.e. 0.27), by 0.32 from 2008 to 2013 (with the Fed taking 0.24), and by nothing since 2014, when private investors held 0.90 and 0.83 of net issuance in the two later periods. The weekly custody result survives only with bill settlements, the week-of-month pattern and a trend controlled and NET coupon settlements as the regressor (0.59, s.e. 0.17, July 2007 to August 2008); the first version's 0.47 was the trend and the bills, and the paper says so.
- The auction concession: larger in high-official-share buckets across periods (4.3 bp per unit of share, year-clustered s.e. 2.8, bootstrap p = 0.17), negative within every sub-period, absent among reopenings (no par-curve roll), and a fraction of a basis point with power far below the model's implied effect.
- Calibration: the fall in the official share lowered the cost of a one-percent surprise by a factor between 0.63 (proportional private demand, Koijen-Yogo) and 1.0 (linear, Vayanos-Vila); the data do not identify which, and the one cross-window comparison leans toward 1.0.

## Decisions and why
- Headline = the two-horizon absorption fact (underwriting vs holding the path), because that is what the data carry; the price designs reported with power.
- "Marginal holder" language removed after round 2: under the model's own assumption the holdings ratios are two quantities, not a margin.
- The paper does not confess its own earlier internal drafts' 0.04; the correction is recorded here, in Change Log v1.5 and in memo Amendment 6, and the Appendix B data-construction text describes the match that is actually used.
- The 2025 survey's maturity-table buckets for official Treasuries sum to $3,560 billion against the report's $3,500 billion total line; the paper uses the bucket sum (the bucket shares require it) and footnotes the share on the report total (15 against 16 percent).
- Record-keeping: the memo amendments for the two referee loop-backs were committed with their code, not before it, so their "written before the run" is not checkable in the log (the auditor at Final flagged this); Amendment 6 was committed alone first.
- The Phillot/BPZ futures shocks sit on openICPSR behind a login the engine cannot create; stated as a limitation.
- GSW or when-issued yields for the concession: not served; limitation stated. The auction's own high-minus-median yield added instead.
- Two-way clustering dropped (seven tenor clusters); year clustering treated as the right level; the wild bootstrap by year reported.
- Three positioning suggestions not acted on (not on disk): Greenwood-Hanson-Stein-Sunderam (2023), Albuquerque-Cardoso-Costa-Faias (2024), Garbade (2007).

## Referee rounds
Round 1 (v1.2): major ×5; odds 20-35 → 45-60; convergent: underwriting vs holding; within-period signs; calibration units; the functional-form conditional; the crisis-year leverage. Round 2 (v1.3): major ×5; odds 25-35 → 45-65; editor: accept conditional on light edits (0.7 → 0.85); convergent: bills in the custody series; the Fed in the accounting; "marginal" language; concession inference; calibration conditionals; the monthly stock bug. Both rounds' full reports are abridged in WIP Docs/Referee Reports/.

## Unresolved issues and honest limitations
- The Triffin margin in prices is not identified from daily par yields; the paper says so in the abstract.
- The holdings co-movement cannot separate quantity-driven absorption from a demand responding to a yield change too small to see.
- The foreign-and-international allotment class pools official and private money after 2008.
- The custody series includes bills and international accounts; the weekly result is a lower bound and holds in one window.
- 73 pages: long for the venue; the news diagnostics could move further into the appendix.
- The allotment match is by rank of accepted amount within an issue date and tenor when several auctions settle together (four cases); a CUSIP-keyed allotment release would make it exact.

## Where more or better data would change the answer
- The Phillot (2025) / Bi-Phillot-Zubairy intraday futures shocks (openICPSR; or by request from the authors) would give the announcement design its news.
- Treasury's primary-dealer auction-size surveys before 2015 would give the expectation the surprise should be measured against.
- A split of the foreign-and-international allotment class into official and private parts (Treasury holds it) would carry the auction test past 2008.
- Bucket-level sector elasticities with the official sector separated (Jansen-Li-Schmid's or Chaudhary-Fu-Zhou's data) would identify the functional-form parameter ψ the paper reports as a range.
- The FR 2004 primary-dealer positions would let the concession be tested against intermediary capacity as the alternative state variable (the theorist's objection).

## Asks a co-author could fulfill
- Obtain the openICPSR shock series under an institutional login and run code/03_analyze.py's news() block with it as a fourth surprise measure (02b takes any series keyed by announcement date and tenor).
- Ask the Office of Debt Management for the official/private split of the allotment class, even annually.
- Pull the GSW zero curve and re-run the concession design on it (code/02b builds the auction panel from any daily yield file with the tenor columns).

## Data vintage and reproduction
All series pulled 2026-10-01 (the custody series added the same day); `code/run_all.sh` rebuilds every number, table and figure from data/raw in about two minutes; the replication package (replication/) carries the code, the manifest, the environment, the passport and the memo; data/raw holds nothing restricted.
