CongressFlow computes a simulated portfolio for each member of Congress based on their publicly disclosed STOCK Act filings. This page explains exactly how those calculations work — and what they can and can't tell you.
Why it's “simulated”
STOCK Act disclosures require members of Congress to report stock trades, but they don't require exact dollar amounts. Instead, each trade is reported as a broad range — for example, “$1,001 - $15,000” or “$500,001 - $1,000,000.” We don't know the exact number of shares bought or sold, and we don't know exact entry prices. So any portfolio we build from this data is necessarily a reconstruction, not the politician's actual portfolio.
Position sizing
For each trade, we use the midpoint of the reported amount range as the assumed dollar value. A “$1,001 - $15,000” trade is treated as $8,000. We then divide that by the stock's closing price on the trade date to get an estimated share count.
This is an approximation. Real trades could be anywhere in the range, and politicians often make multiple trades of the same stock on the same day that we treat as separate lots.
FIFO position matching
When a politician sells a stock, we close the oldest purchased lot first — this is called FIFO (First-In-First-Out). If the oldest lot has more shares than the sale, we close it partially. If it has fewer, we close it completely and move to the next oldest lot.
This mirrors the standard accounting approach and gives us a realistic picture of which specific shares are being sold.
Time-Weighted Returns (TWR)
To measure performance, we use Time-Weighted Return, the industry standard for evaluating stock-picking skill. TWR breaks the portfolio timeline into sub-periods at each trade date, calculates the return of each sub-period independently, and chains them together.
The key feature of TWR: it's independent of cash flows. Whether a politician adds $10,000 or $10 million to their portfolio doesn't change the TWR — only the performance of their picks does. This makes TWR the fairest way to compare different portfolios.
S&P 500 benchmark
Each portfolio is compared against the S&P 500 (SPY). We simulate a parallel portfolio that makes the same dollar cash flows into SPY on the same dates as the politician's real trades went into individual stocks. Then we compute TWR for both portfolios and compare.
The difference is alpha — how much better (or worse) the politician performed vs simply buying the index.
What's excluded
- Treasury bills, municipal bonds, corporate bonds
- Commodities, futures contracts
- Private investment funds and LLCs
- Mutual funds
- Dividends (not reported in disclosures)
- Tax impact
- Trading fees (negligible for the dollar amounts involved)
Limitations you should know
These numbers are estimates, not the politician's actual portfolio. Real returns may differ significantly due to:
- Actual trade sizes within the reported ranges
- Intraday pricing (we use closing prices)
- Pre-existing holdings not reported in the available data
- Trades that happened before our data coverage began
- Politicians may have other assets (real estate, private equity) that aren't disclosed
For more context on the data underlying these calculations, see our guide on how to read congressional financial disclosures and our overview of congressional disclosure requirements.