Half the time I pull up a headline about some senator buying a stock right before a big committee vote, the trade turns out to have been filed under their spouse. Not the member. The name in the headline is the member, but the little owner code on the disclosure says SP. And once you notice that, you start seeing it everywhere, because a large share of the trades that get people worked up online were never technically the member's trade at all. So the question stops being should I follow this person and becomes how much do I trust a trade that came from the household rather than the officeholder.
This is one of those details that looks like a footnote and then quietly changes how you build the whole feed. If you treat spouse trades as identical to member trades, you are probably overcounting. If you throw them out entirely, you are probably dropping some of the most informative activity in the dataset. Neither of those is right, and the interesting part is figuring out where in between to land.
What the owner field actually is
Under the disclosure regime that covers members of Congress, filers have to report transactions not just for themselves but for their spouse and their dependent children. The filing form carries a small owner indicator for each transaction so you can tell whose account it came from. In most of the machine readable versions of this data you will see something like SP for spouse, DC or JT for dependent child or joint accounts, and self for the member's own holdings. The exact letters vary by how the filing was digitized, but the three buckets are always there: the member, the spouse, and the dependents.
The reason this matters is that the reporting requirement is about the household, not about who has non-public information. A member sits on a committee, gets briefed, has a schedule full of meetings that never make the news. Their spouse might be a corporate lawyer, a fund manager, a small business owner, or someone who just likes trading. The disclosure form flattens all of that into one filing under the member's name, and the owner code is the only thing telling you which world a given trade came from.
One practical wrinkle. A single filing often mixes owners. The member reports a Treasury purchase under self, three equity sales under SP, and a mutual fund position under JT, all on the same PDF. If your parser assigns the whole document one owner, you will mislabel most of it. So the owner code has to be read per transaction, not per filing, and that is the first place naive pipelines go wrong.
Do spousal trades actually carry information
Here is the honest answer. Nobody has a clean, settled number for this, and anyone who quotes you one with three decimal places is selling something. What the research and the anecdotes both point to is messier and more interesting than a yes or no.
The case that spouse trades carry information is straightforward. Households share dinner tables. A member who cannot legally trade on something they heard in a closed briefing does not stop being married when they get home. Whether or not anything improper is happening, the information environment around a member's spouse is not the same as the environment around a random retail trader, and some of the most talked about, best timed trades in the whole dataset historically came from spouse accounts rather than member accounts. That is not a coincidence you want to ignore.
The case against weighting them equally is just as real. A spouse who is a full time professional investor generates a huge volume of trades that have nothing to do with the member's committee work. They are running a career. If you treat every one of those as a congressional signal, you drown the actual signal in a professional's normal order flow, and you end up with a feed that is mostly noise wearing a senator's name. The volume problem alone can wreck a naive strategy.
So the useful framing is not are spouse trades informative. Some clearly are. The framing is that the owner code changes the base rate, and you should price that in rather than treating the code as a pass or fail gate.
A weighting scheme instead of a coin flip
What I have settled on is to keep every trade but attach a weight to it based on the owner and a couple of context features. Discarding spouse trades throws away real information. Double counting joint trades inflates everything. A weight lets you keep the whole dataset and still say some of it counts more.
Rough starting point, and you should tune these to your own data rather than trust my numbers:
- Self trades get full weight. This is the member acting in an account they control, and it is the cleanest read on what the officeholder is doing.
- Joint trades get most of the weight but not all of it. The member is at least a party to the account, so you cannot dismiss it, but you also cannot attribute it cleanly to them.
- Spouse trades get a reduced weight that depends on the spouse's baseline activity. A spouse who trades twice a year and suddenly buys a defense contractor before an appropriations cycle is very different from a spouse who trades every day for a living.
- Dependent trades get the lowest weight by default. They are the furthest from the member and most often reflect custodial accounts or gifts rather than any view.
The piece people skip is normalizing by the filer's own history. A spouse trade is only interesting relative to how that spouse usually behaves. So before you score anything, build a per owner activity baseline over a long lookback and flag trades that break from it. A rare buy in a sleepy account should outrank a routine buy in a busy one, even though the owner code is identical on both.
Two more features earn their keep. Position size relative to the household's disclosed net worth, because a large concentrated bet says more than a token position. And overlap with the member's committee assignments, because a spouse buying into an industry the member directly oversees is a different animal from a spouse buying an index fund. Neither of these is a smoking gun on its own, and I want to be clear that none of this establishes wrongdoing. It just tells you which trades are worth a second look.
A quick checklist before you trust a household trade
When a congressional trade shows up and I am deciding how seriously to take it, I run through roughly this:
- Read the owner code on the transaction itself, not the filing, and confirm the parser assigned it per line.
- Check the spouse or dependent's baseline. Is this account usually quiet or usually busy.
- Size it against the household's disclosed wealth so a rounding error does not read as conviction.
- Look for overlap with the member's committees and current legislative work.
- Note the reporting lag. These filings can land well after the trade, so treat the timing as approximate and never as a live entry.
That last one keeps burning people. The disclosures are periodic and delayed by design, so by the time a spouse's trade is public the setup that made it interesting may be long gone. Weighting the owner code correctly fixes a bias in your dataset. It does not turn a stale filing into a fresh trade, and pretending otherwise is how you talk yourself into buying the top. Keep the household trades, weight them honestly, and let the timing keep you humble.