QuantCapitol. Congressional Trading Intelligence

Updated 2026-11-05 00:32 UTC · Public disclosure record

Reference Data Dictionary

Every field in the API and the data exports, defined. Each trade is drawn straight from an official House or Senate disclosure — the fields below are the FACT layer, kept faithful to the source. Values in [brackets] are the possible values. This is what lets you use our data in your own models without guessing what a column means.

Trade fields /api/v1/trades

FieldMeaningType / values
transaction_dateDate the trade was made, per the filing.YYYY-MM-DD
filing_dateDate the trade was publicly disclosed. The gap to transaction_date is the disclosure lag.YYYY-MM-DD
pol_nameMember of Congress who filed the trade.string
pol_slugURL-safe id for the member (use it to build a profile link).string
chamber_labelWhich chamber.House | Senate
partyParty affiliation at time of writing.string
tickerStock symbol, where one could be resolved. Null for assets with no public ticker (many funds, private holdings, some crypto).string | null
company_nameAsset name as written in the filing, tidied. For options this still reads like the underlying — see asset_type for the instrument.string
asset_typeThe instrument type. A put and a common share are very different bets; this is how you tell them apart. "other" covers crypto, funds, and misc.stock | option | bond | etf | other
transaction_typeDirection of the trade.BUY | SELL | EXCHANGE | …
ownerWhose account the trade sits in.self | spouse | joint | dependent_child | child
sub_holdingThe specific account (e.g. "Roth IRA", "Joint Brokerage"), where the filing names one. This is why two otherwise-identical rows on the same day are not duplicates — they're different accounts.string | null
amount_lowLower bound of the disclosed value range. US disclosures report a range, never an exact figure.number
amount_highUpper bound of the disclosed value range.number
amount_displayHuman-readable form of the range, e.g. "$1K–$15K".string
disclosure_lag_daysDays between the trade and its public disclosure. The STOCK Act allows up to 45.integer | null
lag_price_change_pctHow the stock moved between the trade and its disclosure — the non-public window. Context, not part of the score.number | null
sectorSector of the company, from its SEC industry classification.string | null
interest_scoreOur ranking of how notable the trade is (0–100) — an attention filter, not a profit signal. See Methodology and Does it work?.number | null
rci_pctRelative Conviction: the trade's size as a share of the member's own estimated net worth — a $50k trade is noise for a nine-figure fortune but a big bet for a member worth $500k. Ex-ante (wealth as known at the time of the trade). Null when we have no wealth estimate for that member.number | null
rci_catThe conviction tier for that percentage. Thresholds: immaterial <0.5%, moderate 0.5–3%, high 3–10%, extreme >10% of estimated net worth. The headline rci_pct uses the net-worth midpoint; a member whose estimated net worth is non-positive (disclosed liabilities exceed disclosed assets) carries no rci.immaterial | moderate | high | extreme | null
source_urlLink to the original filing. Every row is verifiable against its source document. House filings are direct PDFs (and open inline on the site); Senate filings link to the Senate eFD portal — see the note below.URL | null

Facts vs. our analysis

A deliberate line runs through this data. Most fields are facts from the filing — date, member, ticker, direction, amount range, account, source. A few are our own analysis, computed on top: interest_score, sector (a mapping we apply), and lag_price_change_pct (which we calculate). We keep them clearly separable so you can take the facts alone if you'd rather run your own analysis.

House vs. Senate filings — an honest asymmetry

The two chambers publish disclosures differently, and we're transparent about what that means for verification. House filings are free, direct PDFs — on this site they open inline, one click from any trade, fully verifiable. Senate filings live in the Senate's eFD portal, which gates its documents behind a disclaimer and blocks automated access. We therefore link Senate rows to that portal (marked with a ↗), where you accept the disclaimer to view the original. The trade data itself is equally accurate for both chambers; only the one-click document verification differs — a limitation the Senate imposes, not a gap in our data.

Amounts are ranges, not exact figures

This is worth stressing: US disclosures require a member to report each trade in a broad band — "$1,001–$15,000", "$50,001–$100,000", and so on — never a precise amount. So amount_low and amount_high are the disclosed bounds. Any single "value" you see elsewhere on the site is a mid-point we use for aggregation, and we say so. Never treat it as an exact figure.

Estimated net worth & Relative Conviction

The same logic applies to wealth. Members' annual Financial Disclosures report their assets and liabilities only in ranges, so the estimated net worth we show is itself a range — the sum of the asset bands minus the liability bands — never an exact figure. From it we derive rci_pct, a trade's size as a share of that member's own estimated wealth, which puts a dollar amount in context: the same $50,000 is a rounding error for one member and a serious swing for another. It is an estimate for context, not an allegation, and it is fully ex-ante — we use the wealth disclosed at or before the trade, never a later filing. Where we have no disclosure to estimate from, the field is simply blank and nothing is implied.

Signal-card context (Concentration page)

Each ranked stock on the Concentration page opens a three-column breakdown. These are display-only context shown next to the ranking, not part of the Interest Score:

  • P/E, P/B, EV/EBITDA — standard multiples from SEC-reported annual financials, each shown against the sector median (cheaper / in line / pricier). A multiple above ~100× is labelled "not meaningful" (earnings near zero) and carries no comparison.
  • Revenue YoY — latest fiscal-year revenue versus the prior year, from SEC filings.
  • Debt / equity (or Net debt / equity) — gross or net debt over book equity (book value per share × shares). Suppressed when book equity is non-positive, where the ratio is meaningless.
  • Sector rel. strength — the whole sector's price return versus the market over 90 days (a sector figure, not this company). Sector flow — the sector's net congressional buy/sell over 90 days.
  • Fed funds / Rate risk — the current federal-funds rate and direction from FRED, plus a rule-based rate-sensitivity for the sector (a heuristic).
  • Fed budget — the matching federal department's budget, year-over-year, from USAspending.gov. Shown only for sectors that map cleanly to one department (Defense→DoD, Energy→DOE, Health→HHS, Agriculture→USDA); a department-level figure, never company-specific.

Enriched endpoints

Beyond the trade feed, the API also serves computed analysis: /api/v1/politicians (per-member metrics), /api/v1/clusters (cross-party consensus), /api/v1/sectors (money-flow reports), and /api/v1/scores (the full score breakdown). See the API documentation for parameters and examples.

Using this data

The data is derived from official House and Senate disclosures. It's a faithful index of those filings, not a substitute for them — for anything high-stakes, follow the source_url to the original. Amounts are ranges; the interest score is our analysis, not a forecast. Not investment advice. Get an API key →

About this data. Sourced from official House Clerk and Senate eFD financial disclosures (Senate via a maintained community mirror — see project documentation). Transaction amounts are reported as ranges, not exact figures. Interest scores, consensus labels, and backtested performance are proprietary analytical calculations based on public data and are not investment advice. Backtested performance is a hypothetical simulation, not actual portfolio performance.