A paired study of congressional stock purchases

Does copying Congress beat the market?

In a November 15, 2023 update, Quiver Quantitative said its Congress Buys strategy had

“continued to consistently outperform the market.”

A purchase-size-weighted strategy, rebalanced weekly.

That is the attraction of copying politicians. But by the time a filing is public, the purchase may be weeks old. Is the useful information in which stock they bought, or in when they bought it? We tested two questions: do the purchases beat SPY, and does buying before disclosure improve the result?

01 / The market-beating claim

Do the purchases beat SPY?

The average purchase lagged SPY at both entry dates. Change the weighting, and the estimates change. All four uncertainty intervals cross zero.

One vote per purchase

Average across 7,998 matched purchases.

Each interval crosses zero, the SPY benchmark-8-40+4+8+12Transaction-date entry−2.92 ppTransaction-date entry: −2.92 pp; 95% interval −4.80 to +2.24 ppAfter-disclosure entry−2.56 ppAfter-disclosure entry: −2.56 pp; 95% interval −4.40 to +2.41 ppBehind SPY ← Excess price return (pp) → Ahead of SPY

95% uncertainty intervals

  • Transaction-date entry−4.80 to +2.24 pp
  • After-disclosure entry−4.40 to +2.41 pp

One vote per politician

Average within each member, then across 83 members.

Each interval crosses zero, the SPY benchmark-8-40+4+8+12Transaction-date entry+3.16 ppTransaction-date entry: +3.16 pp; 95% interval −3.38 to +10.86 ppAfter-disclosure entry−0.81 ppAfter-disclosure entry: −0.81 pp; 95% interval −6.61 to +4.99 ppBehind SPY ← Excess price return (pp) → Ahead of SPY

95% uncertainty intervals

  • Transaction-date entry−3.38 to +10.86 pp
  • After-disclosure entry−6.61 to +4.99 pp

Dot = average · Line = descriptive 95% bootstrap interval · Dashed zero = matched SPY return

No reliable market-beating edge established in this sample.

The estimates remain compatible with underperformance and outperformance. They do not prove that every Congress-copying strategy underperforms.

Each entry is held for 252 market sessions from its own start, so exit dates differ. Both arms use the same 7,998 purchases across 83 politicians; this fixed-horizon cohort is separate from the common-exit timing study below. Returns are split-adjusted price returns minus SPY over the same dates, before dividends, costs and taxes. These are event averages, not portfolio returns.

Intervals use 4,000 politician-cluster bootstrap resamples. Repeated trades stay with their member; shared stocks and overlapping dates still limit independence. Quiver’s dated, purchase-size-weighted, weekly-rebalanced strategy uses different rules and a different period, so this study does not validate or refute its stated historical return.

02 / The timing question

Does buying earlier help?

With a shared exit, earlier entry’s average advantage was −0.27 pp. Its 95% interval runs from −0.86 to +0.20 pp, crossing zero. This sample establishes no clear average timing advantage.

8,385 matched purchases · 86 politicians · Same exit, 252 market sessions after transaction-date entry. This paired difference has its own uncertainty interval; it is not inferred from overlap between the benchmark intervals above.

The disclosure gap: congressional purchase timing The disclosure gap: congressional purchase timing 2026-10-22 Landscape comparison of 8,385 matched stock purchases across 86 politicians. Prices through October 21, 2026. image/svg+xml Matplotlib v3.10.3, https://matplotlib.org/

The landscape PNG is 5,280 × 3,080 pixels. Open the full-size image to inspect labels. Every plotted member has at least 20 matched annual purchases; the explorer below includes small samples.

The full breakdown

Every politician. Every horizon.

Both entries exit on the same date, the selected number of market sessions after the transaction-date entry. Positive gaps favor earlier entry; negative gaps favor the public entry. Return columns are price return minus SPY in percentage points.

PoliticianPurchasesEarlier vs SPYPublic vs SPYEarlier − publicTiming 95% interval

Per-politician intervals resample securities, preserving repeated purchases of the same stock. They are descriptive; comparisons across many members are not adjusted for multiple testing. A single-security sample has no cluster interval.

Waiting time

Breakdown by disclosure delay

Calendar daysPurchasesEarlier vs SPYPublic vs SPYEarlier − public95% interval
Methods & reproducibility

Follow the evidence.

Official House and Senate disclosures, queried read-only through NexusTrade’s canonical lake. Price coverage was checked across the full market before selecting October 21, 2026 as the cutoff. The latest disclosure date in this cohort is October 19, 2026.

What exactly is being compared?

Quiver’s quoted claim concerns its own weighted, weekly-rebalanced strategy and an earlier reporting window. This study measures excess price returns and isolates entry timing in a broader stock-purchase sample; it is not a replication of that strategy or a test of its stated historical return.

Each reported common-stock or ADR purchase is observed twice: at the transaction-date close (or the next session when no bar exists), and at the first close strictly after the filing’s New York calendar date. The transaction-date arm uses advance knowledge; neither close is the politician’s actual execution price. The exit is fixed at 21, 63, 126 or 252 sessions after the earlier entry. A pair qualifies only if both entries precede that exit and the full interval has consistent market-session coverage.

For each arm: excess return = 100 × (stock exit / stock entry − 1) − 100 × (SPY exit / SPY entry − 1). The timing gap is earlier excess minus public excess. SPY is measured over each arm’s actual invested interval; pre-entry cash is not modeled. Dividends, fees, taxes, allocation limits and risk adjustment are outside these price-return measurements.

Selection, amendments and missing data

Transaction dates start January 1, 2024. Canonical event IDs deduplicate repeated filings. The main analysis uses the latest event version available before October 22; a first-reported-version sensitivity is included in the study JSON. Filings dated October 21 map to a conservative end-of-day New York availability instant. Household and spouse transactions remain attributed to the member as disclosed.

Common-stock/ADR identity is verified at the transaction date with historical security segments; price history follows that security across ticker changes. Options, exercises, other instruments, missing identities and invalid or missing dates are excluded. Duplicate price generations are checked for conflicting values before consolidation. Exact exclusions and event-level receipts are preserved with the study.

Only matured, fully priced pairs qualify. A delisting, halt or missing terminal bar may exclude a purchase; delisting payouts are not reconstructed. This creates potential survivorship and coverage selection. The results describe the resolved cohort, not all congressional investments.

Weighting, uncertainty and small samples

The headline weights each purchase equally. The equal-member estimate first averages purchases within each politician, then averages politicians. Aggregate and delay intervals use 4,000 member-cluster bootstrap resamples with a fixed seed; calendar-month clustering is reported as a sensitivity. Overlapping holdings, shared stocks and market exposure limit independence. These intervals do not establish causality or investment skill.

Nancy Pelosi has 2 qualifying annual purchases across 1 stock in this stricter stock-only cohort, after excluding option-linked acquisitions. Her complete row is available by choosing ‘All sample sizes’; a small retrospective sample is not ranked with the ≥20-purchase group.

Members with fewer than 20 annual purchases are shown in the full data but omitted from the static politician panel. Shorter horizons use different matured cohorts; changes across horizons are not the growth of a single portfolio.

House disclosures ↗ · Senate disclosures ↗ · Built with Python, Matplotlib, SVG, HTML and CSS.