How to read a Periodic Transaction Report (PTR)
A field-by-field walkthrough of the disclosure form members of Congress use to report stock trades — including the amount ranges, the asset codes, and the five traps that produce wrong conclusions.
· 10 min read · By Insider Option
If you want to work with Congressional trading data rather than read someone else's summary of it, you need to be able to read the source document. That document is the Periodic Transaction Report, and it is a deceptively simple form that produces a remarkable number of wrong conclusions.
This is a field-by-field guide, followed by the traps.
Where PTRs live
- House:
disclosures-clerk.house.gov/FinancialDisclosure. Search by year and optionally name. Filings are PDFs — some typed, some scanned handwriting. - Senate:
efdsearch.senate.gov/search. You must accept a terms page first. Many recent filings are web-form submissions and render as clean HTML tables.
Both are free. The Senate's electronic filings are far easier to work with; the House's scanned PDFs are the reason automated Congressional trade data has an irreducible error rate.
The header
- Filer name and office — the member, their state, and district.
- Filing date — when the report was submitted. This is not when the trades happened, and confusing the two is the most common error in this entire subject.
- Report type — a new PTR or an amendment to a previous one. Amendments matter enormously; see the traps below.
The transaction table
Each row is one transaction.
Owner
Who holds the account: SP for spouse, DC for dependent child, JT for joint, and blank or self for the member. This field is essential and routinely ignored. A large fraction of the most discussed Congressional trading is spousal — the filing is under the member's name because the law requires it, not because the member placed the order.
Asset
Free text naming the security, ideally with a ticker in brackets. In practice you will encounter the same issuer written many different ways across filings, plus options described in prose, plus assets that are not securities at all. There is no controlled vocabulary. This is where automated pipelines lose accuracy.
Common asset type codes include ST for stock, OP for options, CS for corporate securities, MF for mutual funds, GS for government securities, and PS for partnership interests. If you are studying stock trading specifically, you wantST and OP.
Transaction type
Purchase (P), Sale (S), Exchange (E). Sales are sometimes further marked as partial. Note that unlike SEC Form 4, there is no code distinguishing a discretionary trade from a mechanical one — the form simply does not capture that.
Date
The transaction date. Compare it to the filing date to compute the actual reporting lag, which is often the most interesting derived field on the whole form. Members who consistently file at day 44 are behaving differently from those who file at day 5.
Amount
A range, never a number. The bands are:
- $1,001 – $15,000
- $15,001 – $50,000
- $50,001 – $100,000
- $100,001 – $250,000
- $250,001 – $500,000
- $500,001 – $1,000,000
- $1,000,001 – $5,000,000
- $5,000,001 – $25,000,000
- $25,000,001 – $50,000,000
- Over $50,000,000
Note how the bands widen. The top brackets are so wide as to be nearly uninformative, and the higher brackets are generally only available for the member's own accounts — spousal and dependent-child amounts are capped at a lower top band on some forms, which distorts aggregate dollar comparisons between members and their spouses.
Filing status and comments
A free-text field. Read it. This is where you find explanations of late filings, notes that a trade was made by a third-party manager without the member's knowledge, and clarifications of ambiguous asset names.
That "managed account" note is genuinely important: if a member's trades are executed by an adviser with full discretion, the trade carries no informational content about what the member knew. Any serious analysis should exclude them, and most public datasets do not.
The five traps
1. Treating the filing date as the transaction date
Produces a systematic bias of up to 45 days in any performance calculation. Always use the transaction date for "what did they get", and the filing date for "what could I have acted on" — they answer different questions and mixing them is how impossible-looking track records get published.
2. Double-counting amendments
An amended PTR frequently restates the original rather than adding to it. Naive aggregation counts the trade twice. Key on the filing ID and reconcile amendments explicitly.
3. Summing range midpoints and reporting the result as a fact
Everyone does this because there is no alternative, but the output is an estimate with enormous error bars, especially once top-bracket trades are involved. "Member X traded $12.4m" derived from midpoints is not a measurement. Report ranges, or at minimum say what you did.
4. Ignoring the owner field
Attributing a spouse's professional trading to a member's legislative knowledge is a category error, and it drives a lot of misleading coverage.
5. Assuming absence means inactivity
No PTR can mean no trades — or a late filing, a failed OCR parse in whatever dataset you are using, or trades entirely in exempt assets. Mutual funds, ETFs, and Treasuries are not reportable in the same way, so a member could be highly active in markets with a nearly empty PTR history.
What the PTR cannot tell you, ever
- Exact position sizes.
- The member's total portfolio or the weight of any holding.
- The reason for the trade.
- Whether it was the member's decision or an adviser's.
- Holdings in exempt asset classes.
- Anything at all within the 45-day window before filing.
Understanding these limits is what separates using this data well from overreading it. If you want the parsed, ticker-resolved version of all of this, our Congress tracker does the work — and how to track Congress stock trades compares every available approach, including building it yourself.
This post is for informational purposes only and is not legal or investment advice. See our disclaimer.
Frequently asked questions
- What is a Periodic Transaction Report?
- A Periodic Transaction Report, or PTR, is the form members of the US Congress file to disclose securities transactions over $1,000. It is required by the STOCK Act within 45 days of the transaction and is published publicly by the House Clerk and the Senate Office of Public Records.
- Why do PTRs show dollar ranges instead of exact amounts?
- Because the STOCK Act only requires disclosure within bands, such as $15,001 to $50,000. Congress wrote the reporting requirement that way, so the exact size of any trade is not public information.
- Does a PTR filed under a member's name mean the member made the trade?
- Not necessarily. Trades by a member's spouse or dependent children are filed under the member's name. The owner field on the form indicates whether the transaction was the filer's, their spouse's, or a joint or dependent-child account.
- What is the penalty for filing a PTR late?
- A $200 late-filing fee, which the relevant ethics committee can waive. Late filings are common and the penalty is widely regarded as too small to deter them.
Keep reading
- How to track Congress stock trades (5 methods, from free to instant) — A practical walkthrough of every way to follow Congressional stock trades — the official House and Senate portals, bulk data, RSS, ETFs, and trackers — with the trade-offs of each.
- The STOCK Act, explained: what it does and why it matters — The Stop Trading on Congressional Knowledge Act of 2012 forced US lawmakers to publicly disclose their stock trades. Here's what it requires, what it doesn't, and what's changed since.
- SEC Form 4, explained: how to read an insider trading filing — Form 4 is how corporate insiders disclose their trades within two business days. Here's what every box and transaction code means, and how to tell a meaningful buy from routine compensation.