A
All projects
2024CompleteQuant · Python · DuckDB · Finance

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.

01

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.

02

Process

  1. 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.

  2. 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.

  3. 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.

03

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.