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
| Field | Meaning | Type / values |
|---|---|---|
| transaction_date | Date the trade was made, per the filing. | YYYY-MM-DD |
| filing_date | Date the trade was publicly disclosed. The gap to transaction_date is the disclosure lag. | YYYY-MM-DD |
| pol_name | Member of Congress who filed the trade. | string |
| pol_slug | URL-safe id for the member (use it to build a profile link). | string |
| chamber_label | Which chamber. | House | Senate |
| party | Party affiliation at time of writing. | string |
| ticker | Stock symbol, where one could be resolved. Null for assets with no public ticker (many funds, private holdings, some crypto). | string | null |
| company_name | Asset name as written in the filing, tidied. For options this still reads like the underlying — see asset_type for the instrument. | string |
| asset_type | The 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_type | Direction of the trade. | BUY | SELL | EXCHANGE | … |
| owner | Whose account the trade sits in. | self | spouse | joint | dependent_child | child |
| sub_holding | The 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_low | Lower bound of the disclosed value range. US disclosures report a range, never an exact figure. | number |
| amount_high | Upper bound of the disclosed value range. | number |
| amount_display | Human-readable form of the range, e.g. "$1K–$15K". | string |
| disclosure_lag_days | Days between the trade and its public disclosure. The STOCK Act allows up to 45. | integer | null |
| lag_price_change_pct | How the stock moved between the trade and its disclosure — the non-public window. Context, not part of the score. | number | null |
| sector | Sector of the company, from its SEC industry classification. | string | null |
| interest_score | Our 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_pct | Relative 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_cat | The 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_url | Link 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 →