Methodology
This page explains exactly how every number on Hillscore is calculated, where the data comes from, and what its limits are. If a figure here disagrees with another tracker's, this is usually why.
Where the data comes from
Trade disclosures come from a commercial feed that parses the House Clerk's Periodic Transaction Reports and the Senate's electronic financial disclosures — the same filings members are legally required to submit under the STOCK Act. Prices are public daily closing data. Neither the filings nor the prices are proprietary: both are the kind of data a reader could pull themselves to check a figure, and the full dataset this site is built from is published for exactly that reason.
Who is tracked, and why not everyone
Hillscore follows the most active disclosed stock traders in Congress, selected by trading volume — not party, seniority, or any judgement about who is interesting. Congress has 535 voting members and most trade rarely or not at all; a volume-based list is the only selection rule that doesn't quietly become a popularity contest.
The trade-off is real: this is not a complete picture of Congress, it is a deep one of the members who trade most.
Some tracked members appear with no priced trades at all. Where that's a known gap in the source data rather than an absence of real trading, they stay listed and unranked rather than being quietly dropped — and this page is where that gap is disclosed.
A member needs at least 10 priced trades before being ranked. Below that, one good or bad pick moves the average so far that a ranking would be misleading.
How Composite is calculated
Composite is the plain average return of every disclosed stock buy a politician has made in the last five years. Each buy contributes exactly one number: its realised return if the position has since been sold, or its return marked to today's closing price if it is still held.
There is no time weighting. A trade made nine days ago and one made 900 days ago each count once, equally, as a single win or loss. A $2,000 trade and a $2,000,000 trade also count once each — Composite measures the average pick, not money-weighted performance.
This is deliberate. It answers "was each individual decision a good one," not "how much money did they make." Congressional filings disclose dollar ranges, never exact amounts, so any money-weighted figure would be estimating from a midpoint before it started.
The 1W / 1M / 6M / 12M columns
These sit alongside Composite and answer a different question. They measure the market's move exactly that many days after each buy's own purchase date — counted only for buys still held at that checkpoint.
Sell a position before the six-month mark and it drops out of the 6M and 12M columns entirely, rather than being carried forward or force-fitted to a horizon it never actually ran. That means shorter windows always have at least as much data behind them as longer ones.
These columns do not feed Composite. Think of Composite as "did this pick work out," and the checkpoint columns as "how did the market move after they bought" — answered separately, on purpose.
On a politician's own page the same figures are split into committee-flagged buys and everything else, with the number of buys behind each one shown in brackets. That count matters: only 21 of the 27 ranked members have any flagged buys inside these windows at all, and the subset runs from a couple of hundred trades down to one. A return drawn from a single buy should not be read like one drawn from two hundred.
The buy-timing table
The buy timing page asks a narrower question than Composite does: not "was this a good pick" but "what did the stock do straight after they bought it, and was that any better than its own sector."
Only positions that have been sold appear there. An open position has no sale to measure against, and the headlines are drawn from the window between purchase and sale, which does not exist yet while it is still held.
Each row shows the stock's move at one week, one month and three months from the purchase date. Underneath each is a Δ figure: the same window's move for that stock's sector benchmark ETF, subtracted. A stock that rose 8% while its sector rose 9% shows +8.0% with Δ−1.0%, and the second number is the one that carries information — the first mostly reflects what was bought rather than when. Which ETF stands in for which sector, and how each stock was assigned to one, is published in full.
Δ is blank where the benchmark has no price for that window. That happens for buys made before an ETF existed — XLC launched in 2018, so older trades in the communications sector have no comparison to draw.
Headlines on that page
The news beside each closed position is every headline the source returned for that ticker between the purchase date and the sale, gathered automatically. No one selects them, and no editorial judgement is applied to which appear.
They are context for what the stock did, and nothing more. They are not evidence that a member read them, acted on them, or knew anything ahead of the market — a headline published during a holding period is simply a headline published during a holding period.
The performance chart
Each politician's page carries a chart of how their disclosed positions have performed week by week, with committee-flagged buys plotted against everything else.
It is a time-weighted return. Each week's return is measured across the positions held right through that week and then chained onto the running total, so money arriving never moves the line — a new purchase joins from the following week. Sales are matched oldest-first, and a sold position is fixed at what it went out for. The line starts at zero on the left, so it reads as the return over the period drawn rather than carrying in gains from before it.
The obvious alternative — total value divided by total cost — is rejected for two reasons. It falls when someone buys more, because the new cost lands in the denominator immediately while the gain has not happened yet, so the line can drop sharply on a day when nothing lost value. Across seven hundred positions that is barely visible; across six it dominates the chart. And it would make the two lines incomparable, since whichever category has more money behind it would win by construction rather than by performance.
Estimated profit
Each politician's page carries an estimate of money made — gains banked on positions they have sold, plus the paper gain on those still held. The full calculation is set out on the page itself, directly beside the figures, so it can be read at the point it actually matters rather than looked up here.
Two things are worth repeating in both places. Every figure is prefixed "c." because it is an estimate: filings disclose amount bands, never exact sums, so each trade is counted at the midpoint of its band, and the totals are rounded hard instead of being given to the dollar.
And percentages lead everywhere else on this site — including the rankings, which are built on Composite — because the ratio between entry and exit price stays right even when the size attached to it is wrong. A money total has no such protection.
Why prices are the close on the trade date
STOCK Act filings disclose a transaction date, not an execution price. The actual fill price a member paid is never public. Every price here is the stock's ordinary closing price on the disclosed transaction date — the only consistent choice that doesn't require inventing an undisclosed number.
This is not presented as the politician's actual purchase price, and no figure on this site should be read as one. Trade size, similarly, is the midpoint of the disclosed range.
What "Notable" and "Cluster" mean
Every trade gets exactly one of four tags, in descending order of how specific the overlap is:
- Aligned (Mega-cap) — the sector does overlap one of their committees, but the stock is a widely-held mega-cap almost anyone might own regardless of their seat. The overlap is real; it just isn't evidence of anything.
- Unaligned — no overlap at all. This is the baseline that flagged trades are measured against.
- Notable — the stock's sector falls under a committee the politician currently sits on.
- Cluster — the strongest signal. At least one other tracked member of the same committee traded the same stock within 30 days. Colleagues moving on the same name in the same month is a narrower, more specific pattern than one person trading in their committee's sector alone.
These are screening signals, not evidence of wrongdoing. Committee jurisdiction is broad and plenty of matches are coincidence. Two limitations apply specifically: only current committee membership is checked, so an older trade is measured against today's seats rather than the one held at the time; and the committee-to-sector mapping is a hand-curated judgement, not an official classification.
How a stock gets its sector. We take Yahoo Finance's sector and industry where they exist, and fall back to the industry code in the company's own SEC filings where they don't. The SEC code is only a fallback because the scheme dates from 1937, was last revised in 1987, and is self-reported: it files Airbnb under "Services-To Dwellings & Other Buildings" and puts Accenture, Visa and Uber together in one bucket called "Business Services, NEC". A handful of symbols — closed-end funds, business development companies and preferred lines — have no sector from either source, because they are holding vehicles rather than operating companies. Those are excluded from sector-relative comparisons and shown everywhere else.
Because a stock's sector determines both its benchmark and whether a trade can be flagged at all, the full classification is published: every tracked symbol, the sector applied, where that came from, and which committees claim each sector.
Appropriations is mapped at subcommittee level — Defense, Energy and Water, Homeland Security and the rest. Those subcommittees write the actual spending bills for named sectors via 302(b) allocations, which makes them narrower signals than most full committees, not broader ones. Treating the parent committee as "too broad" measured the wrong level of granularity.
Budget, Rules and Ethics remain excluded. Budget drafts the concurrent budget resolution allocating across all twenty budget functions; it does not control the 302(b) subdivisions and never reaches specific programmes, let alone companies. Because its jurisdiction spans the whole economy, a flag would fire on nearly every trade a Budget member makes and would carry no information. That is a limitation of this signal, not a claim that Budget members lack access to anything. Rules and Ethics concern procedure and member conduct, so there is no sector to map at all.
What isn't priced
Only common-stock trades are priced into any return figure. Options, bonds, municipal debt and private placements appear in the trade feed — so you can see they happened — but are excluded from every performance number, because no free, reliable daily close series exists for them.
A meaningful minority of records carry a transaction type of "Other" rather than a clean buy or sell. These come from annual holdings-disclosure filings mixed into the same feed as ordinary transaction reports. Where the real direction can be recovered from the filing text, it is; where it can't, the record stays visible but is excluded from performance maths rather than guessed at.
Data-quality exclusions
A small number of filings carry transaction dates that cannot be true — a mistyped year, or a trade dated after the filing that reports it. Filings are typed by hand by congressional staff, so this is a feature of the source data rather than of any tracker.
Hillscore drops these from performance calculations rather than correcting them: when a date is impossible there is no reliable way to know which field is wrong without inventing data. Rejected records are logged and counted, not silently deleted.
Duplicate records are also removed. The source feed occasionally returns the same disclosure line twice — identical symbol, date, amounts, owner and filing status — which is a parsing artifact rather than a second trade.
How current this is
The site rebuilds daily. Coverage rotates because of a data-provider rate limit, so any single politician's history refreshes every few days rather than instantly.
Corrections
Spot a number that looks wrong? Tell us. Confirmed errors are corrected, and this page is updated whenever the method changes.