Reading a Periodic Transaction Report

A field-by-field guide to congressional PTR filings: owner codes, transaction types, amount ranges, dates, amendments, and the traps in scanned reports.

The Periodic Transaction Report, or PTR, is the document behind every congressional stock trading headline. When a site reports that a representative bought a semiconductor stock, the primary source is a PTR filed with the Clerk of the House or with the Senate's disclosure office. Anyone who works with this data eventually needs to read the actual documents. This guide walks through one, field by field.

Where to find a PTR

House filings are published by the Clerk of the House at disclosures-clerk.house.gov. The site offers a search by name, state, and filing year, and each result links to a PDF. Senate filings live in the Senate's electronic financial disclosure system at efdsearch.senate.gov, which requires accepting an agreement before searching and places restrictions on reuse of the data.

The legal basis for the PTR is the STOCK Act of 2012, Public Law 112-105, whose text is on congress.gov. It requires a report for securities transactions over $1,000 by a member, their spouse, or a dependent child, filed within 30 days of the member becoming aware of the transaction and never more than 45 days after the transaction itself.

The header

The top of a PTR identifies the filer and the filing. You will see the member's name, their state and district for House filings, the filing type, and the filing date. The filing type field distinguishes an original PTR from an amendment. This distinction matters more than it looks. Amendments restate or correct earlier reports, and a dataset that counts an amended transaction and its original as two separate trades will double count.

The filing date in the header is when the document was submitted, not when any trade happened. The gap between transaction dates inside the report and the filing date in the header tells you how much of the legal disclosure window the member used.

The transaction table

The body of the report is a table with one row per transaction. The columns are consistent across filings, even when the visual layout differs.

Owner. A short code showing whose account the trade was in. Common values are SP for spouse, DC for dependent child, and JT for a joint account. When the column is blank or shows the member indicator, the trade was in the member's own account. Owner codes are essential context. A pattern of trades marked SP describes a spouse's portfolio decisions, and public discussion that attributes those trades directly to the member is being imprecise.

Asset. The full name of the security, and for listed stocks usually the ticker symbol in parentheses. Assets are not limited to common stock. PTRs also disclose bonds, options, exchange traded funds, and other covered securities. Option disclosures often describe the contract in the asset name, including strike and expiration, though formats vary by filer.

Transaction type. Usually a single letter. P means purchase. S means sale. Many filings distinguish a full sale from a partial sale, often written as S (partial). E marks an exchange. The purchase and sale codes carry different information value. A purchase is a positive decision to put money into one specific security. A sale can mean many things: taking profit, cutting a loss, raising cash, rebalancing, or paying a tax bill.

Date. The transaction date, when the trade executed.

Notification date. The date the member became aware of the transaction. For self-directed trades this matches the transaction date. For trades executed by a spouse or an adviser it can be later. The 30-day filing clock runs from this date.

Amount. A dollar range, never an exact figure. The brackets follow the standard disclosure schedule: $1,001 to $15,000, $15,001 to $50,000, $50,001 to $100,000, $100,001 to $250,000, $250,001 to $500,000, $500,001 to $1,000,000, and further ranges beyond $1,000,000.

Some filings include a description field with free-text notes, such as an indication that a holding belongs to a trust or that a transaction relates to an initial public offering.

Making sense of amount ranges

The ranges are the single most misunderstood part of these documents. Three points keep interpretation honest.

First, any exact dollar figure you see attached to a congressional trade in a dataset is an estimate. A common convention is to use the midpoint of the disclosed bracket, so a trade in the $15,001 to $50,000 range is treated as roughly $32,500. That is a reasonable modeling choice, but it is a choice, not a disclosure.

Second, the ranges are wide at the top. The bracket structure means uncertainty grows with size. A very large disclosed trade is known to be very large, but its exact size can be uncertain by hundreds of thousands of dollars.

Third, large trades are often split. A filer buying heavily into one stock over several days may report multiple rows in the same bracket. Summing midpoints across rows gives a rough total, with the uncertainty compounding accordingly.

E-filed versus scanned reports

House PTRs come in two physical forms. Electronically filed reports are generated from structured data, and the text in the PDF can be extracted reliably. Paper reports, which are handwritten or typed forms scanned to PDF, still exist in the historical record. Extracting data from scans requires optical character recognition, which introduces errors in exactly the fields where errors hurt most: tickers, dates, and amounts.

This is why data provenance matters when you use parsed congressional trading data. A dataset built only from e-filed reports trades some coverage for accuracy. A dataset that includes OCR output from scans has broader coverage and a higher, usually unmeasured, error rate.

Amendments and corrections

Members file amended PTRs to fix mistakes: a wrong ticker, a wrong date, a missing transaction, a misstated amount range. The amendment appears as a new document referencing the original period. Careful reading means checking whether a striking transaction was later amended, and careful data engineering means reconciling amendments so the final dataset reflects the corrected record rather than the first draft.

A short checklist for reading any PTR

  • Check the filing type first. Original or amendment?
  • Compare transaction dates with the filing date to see how stale the information was at publication.
  • Read owner codes before attributing trades to the member personally.
  • Treat every amount as a range, and treat any single number derived from it as an estimate.
  • Distinguish purchases from sales, and full sales from partial ones.
  • For older House filings, note whether the document is e-filed or scanned before trusting extracted text.

Reading one PTR takes a few minutes. The difficulty is scale. Hundreds of filers, thousands of documents per year, two different publishing systems, amendments arriving out of order, and a mix of machine-readable and scanned sources. That is the gap between the official record and a clean dataset, and it is exactly the gap that parsing and scoring pipelines exist to close.

The Congress Stock Trades Report does this reading for you, turning raw PTR filings into one scored, ranked document where every row links back to the official PDF. Get the free preview.

DataSignals Lab publishes data and research. This is not investment advice.


Prefer the tool to the write-up? Browse all data feeds or connect the free MCP server.