BTC ETF Analysis
Three-month quantitative deep-dive on spot Bitcoin ETFs: decomposed premium/discount dynamics across 12 products and identified a persistent 3–7bp arbitrage window.
Overview
When the first US spot Bitcoin ETFs launched in January 2024, I ran a three-month study to answer three questions: who's providing liquidity (creation flow vs secondary market), how the premium/discount behaves across products of different size and AP concentration, and whether the creation-redemption mechanism was actually arbitraging efficiently.
Process
- 01
Data pipeline
Built a local ETL pulling daily creation/redemption units, NAV, closing price, and on-chain spot-BTC transfer data across 12 products. Sources: each issuer's daily PCF, Bloomberg (via university access), Dune for on-chain flow. Loaded into DuckDB for sub-second queries over 2M+ rows.
- 02
Premium/discount decomposition
Decomposed the price-vs-NAV gap into three drivers via panel regression with product-level fixed effects: spot BTC bid-ask at quote time, implied hedging cost (funding + borrow), and a creation-unit friction term scaled by unit size relative to daily volume. Tested robustness on rolling windows through the active Jan–Mar 2024 period.
- 03
Writing up
Published a 4,500-word memo with an interactive dashboard (Evidence.dev + dbt) that lets readers drill into any single trading day. Code and the reconstructed PCF dataset will be released as a public repo.
Result
The regression identified a persistent 3–7bp discount window on two smaller ETFs that lasted 4+ weeks — consistent with a friction-bound arbitrage where creation unit size was large relative to daily trading volume. The memo was picked up by a finance newsletter. Two institutional quant researchers reached out; one conversation turned into an informal referral.
By the numbers
12
Products analyzed
2M+
Data points
3–7bp × 4wk
Arb window
Next project
Gitlet — A Miniature Git
Built a working version-control system in Java from scratch — init / add / commit / log / checkout / branch / merge — modeled on git's internals. CS 61B Project 3.