DIFF13F is a minimal Dash app to explore quarterly 13F filings, view top positions, track changes between quarters, and visualize holdings over time.
- 📊 Explore top positions in a single quarter
- 🔍 Spot largest changes between two quarters
- 📈 Track top positions over time with line plots across multiple quarters
- 💻 Minimal web interface powered by Dash
Make sure Python 3.9+ is installed with pip.
Install the diff13f library:
pip install git+https://github.com/Noe-AC/diff13f.gitThis will add the diff13f command to your PATH.
Python libraries (installed automatically via pip):
dashanddash-bootstrap-components: the interactive web interface.plotly: for plots.pandas: data loading and manipulation.polars: optional high-performance DataFrame library.xmltodict: parsing XML-formatted 13F filings.
- Launch the app:
diff13f
- Import the 13F .txt filings.
- Explore the data in the app.
To use the app you need complete submission text file (13F filings .txt files). These files are typically named something like 0001037389-25-000034.txt.
You can find filings by looking up the company on the SEC EDGAR website. For example:
- 0001037389 - Renaissance Technologies
- 0001067983 - Berkshire Hathaway
- 0001350694 - Bridgewater Associates
- 0001423053 - Citadel Advisors
- etc. (just take any of these URL and substitute the CIK).
Starting from 2013-q2, SEC 13F filings use XML inside the complete submission text file, which DIFF13F parses reliably.
Earlier filings use a fixed-width format (FWF), harder to parse and not fully supported:
- FWF files for Renaissance Technologies and Bridgewater Associates are partially supported.
- FWF files for Berkshire Hathaway fail to parse and are therefore ignored by the app.
This project is licensed under the MIT License — see the LICENSE file for details.
