Skip to content

congress_bills

Congressional bills

One row per bill or resolution. bill-family writes this table, filling the full contract for the Congresses it is scoped to (the current Congress on its daily schedule) — from a BILLSTATUS document for the 108th onward, and from the API bill detail route for the 82nd through the 107th, where no BILLSTATUS bulk exists. A consumer tells the two family routes apart by Congress and by the NULLs: a row for a Congress below the 108th is the detail route's, its schema_version is NULL because the detail record states no BILLSTATUS schema, and its action_count, committee_count, version_count, subject_count, subjects_json, related_bill_count and related_bills_json are NULL because the detail record states those only as sub-route counts the backfill does not walk — a zero would contradict the count the publisher declared. cosponsor_count is the one count the record does state, as its cosponsors sub-route's count, and is published from there (NULL when the record states no such sub-route, as the 92nd's do not). stage and signed_date_rule are NULL on these rows too: the record carries no actions, so no rule read any. The first ten columns keep the exact order and spelling they have always had, because other repositories pin that prefix by digest; every new column is appended after them. Until plan A1 retired it (decision 31), a second rollup, congress-bills, walked the Congress.gov list route for that prefix across the whole archive, and a row of a Congress the family has not been scoped to keeps the prefix that walk last stated. Because rows from the two routes state different columns, this is the one table merged column-wise: a family row's NULL cannot erase a list-era value. All columns are stored as VARCHAR.

Coverage. True range on the archive index, mixed on enrichment. The archive index lists bills back to the earliest Congresses (latest actions from 1799-12-16); the bill family fills every column from GovInfo BILLSTATUS for the Congresses it has read, which begin at the 108th. On 2026-09-26 the 108th-117th rows, then written by a retired list walk, lacked bills against the BILLSTATUS listings (receipt join-gaps-2026-09-26/d/); bill-family runs scoped to those Congresses fill them. An absent CBO element does not mean CBO never scored a bill. The bill family re-reads its own prior once where the CBO outcome is missing, or where a reader other than the running one read it, even when the publisher stamp is unchanged; a bill of the 82nd-107th filled from the detail route is re-read the same way, within the run's fetch cap. A bill the running reader found refused in, or dropped from, its folder's unchanged zip is not read again until the zip moves or another reader runs. (measured 2026-09-29)

Data quality. Historical cosponsor-count defect: the 2026-09-21 native-XML audit found 13,154 wrong zero counts in the then-retained 118th Congress HR/S output using SpicyDocs 0.24.2. The current reader counts the publisher's separate cosponsors list, including withdrawn entries, as the column description states. Corrected code does not establish that every historical row has been re-read; consult the selected generation's audit before claiming population-wide repair. Historical receipt: legislative-release-candidate-2026-09-21/. statutes_at_large_cite is filled at this table's merge by joining the published laws table on bill_id, as its column sentence says: bill-family reads laws best-effort after its merge and takes the law's citation where one is published, keeping a citation already here where laws has none for the bill; with no laws table published the column stays as it was, NULL on a cold start. It is never guessed: laws publishes a citation only from a captured PLAW USLM file, and reads a NULL through its own uslm_outcome. public_law_number and law_type are not that case: they come from the bill's own publisher record — its laws entry, when the publisher states one — and are filled wherever the bill family has reached. url_source congress_api_list marks a row the retired list writer last wrote. Its run of 2026-09-23 replaced 3,044 BILLSTATUS update_date instants with the list route's same-day dates and 3,095 congress.gov page URLs with API resource URLs (receipt drift-audit-2026-09-23/). The bill family re-reads every such bill in its scope instead of skipping it as unchanged, so the current Congress's rows heal on its next run; the 47 rows it relabelled in the 114th–118th (five of the replaced URLs among them) are re-read only by a run scoped to their Congress. update_date merges by the larger value, so a re-read never moves it backwards; the 46 rows of the 119th (and 42 older) whose list date is later than BILLSTATUS's therefore keep that date-only value after the re-read, and until BILLSTATUS catches up they read url_source billstatus beside an update_date no BILLSTATUS document stated. A row keeps the stage the rule of its last read gave until its Congress is read again. The 26 BILLSTATUS bills of the 108th-111th and 117th that stayed in doubt after every read on 2026-09-29 list a printing twice or without a type, so their version_count exceeds their bill_versions rows.

  • Parquet file: congress_bills.parquet
  • MCP query_sql support: Configured; requires an available artifact.
  • Publication status: Not established by this schema page or its measurement date.
  • Row count: Not stated here; the MCP describe_table reply gives the live count under publication.
Column Type Description
bill_id VARCHAR Natural key: congress, bill type and number joined with hyphens (119-hr-6028).
congress VARCHAR The numbered Congress this measure belongs to.
bill_type VARCHAR Lowercase publisher bill or resolution type (hr, s, hjres, sres...).
bill_number VARCHAR The measure's number within its Congress and type.
title VARCHAR The measure's official title as BILLSTATUS states it.
origin_chamber VARCHAR The chamber the measure originated in, as the publisher states it.
latest_action_date VARCHAR Date of the publisher's own latestAction entry.
latest_action_text VARCHAR Text of the publisher's own latestAction entry.
update_date VARCHAR The publisher's updateDate for this record; the merge prefers the larger value.
url VARCHAR The publisher's own legislation URL for this measure.
schema_version VARCHAR The BILLSTATUS schema version the document declared (3.0.0 today).
update_date_including_text VARCHAR The publisher's updateDateIncludingText, which moves when a text version posts.
introduced_date VARCHAR The date the measure was introduced, as the publisher states it.
policy_area VARCHAR The publisher's single policy-area term for this measure.
subjects_json VARCHAR Every legislative subject term the publisher lists, as a JSON array in publisher order.
subject_count VARCHAR How many legislative subject terms the publisher listed.
sponsor_bioguide_id VARCHAR Bioguide id of the first sponsor the publisher lists.
sponsor_full_name VARCHAR Full name string of the first sponsor, exactly as the publisher spells it.
cosponsor_count VARCHAR Number of items in the publisher's separate cosponsors list, including withdrawn entries; NULL when that list was not examined.
latest_action_code VARCHAR Action code of the actions[] entry the publisher's latestAction names; latestAction itself states no code, so the two are linked on date and text.
latest_action_time VARCHAR The publisher's actionTime on the latestAction entry.
latest_action_source_system_code VARCHAR Source-system code of that same actions[] entry.
latest_action_source_system_name VARCHAR Source-system name of that same actions[] entry.
action_count VARCHAR How many action entries this document carries; the bill_actions row count for this bill.
committee_count VARCHAR How many committees and subcommittees this document names, at any nesting depth. This is the bill_committees row count except where the publisher states a committee with no systemCode, which cannot be keyed and is refused.
version_count VARCHAR How many text versions this BILLSTATUS document offers. Not the bill_versions row count: a PDF twin and an upload are rows the publisher's own list does not name.
public_law_number VARCHAR Public law number from the publisher's laws entry, when the measure became a public law; NULL on a private law (law_type says which; its number is laws.law_number).
law_type VARCHAR The publisher's law type for the first laws entry (Public Law or Private Law).
statutes_at_large_cite VARCHAR NULL here on purpose: the citation is published on laws.statutes_at_large_cite, read from the PLAW USLM meta, and the host fills this column by joining laws on bill_id at merge time. The family build sees one BILLSTATUS document and its printings; the PLAW is a different package the laws rollup acquires once per law, so filling it here would fetch every PLAW twice or read another table's output, which the one-pass rule forbids.
stage VARCHAR The whole bill's interpreted legislative stage: the latest step its actions show under the current rule, not a final outcome. On the ladder: introduced, committee, calendared, passed_chamber, other_chamber, passed_both, conference, cleared, presented or law (the terminal rung; the literal is law, never enacted); or an outcome with no rung, failed or vetoed. introduced is also the default when no rule fires (see stage_rule); NULL where the bill's actions were not examined, which is not a statement about enactment. A number the House reserves for its leadership (title "Reserved for the Speaker.") has no actions: it reads introduced with stage_rule NULL, or NULL where GovInfo holds no document. A mention is not an event: taking over the sponsorship of a bill "originally introduced by" another, a floor action citing the text "as introduced" or "as reported", a special rule's report or description, and a star print classify nothing, and where the publisher's action code names a step, the code is read before the text. calendared is a placement on the Union, House or Senate Legislative Calendar in the bill's own chamber (a reported bill awaiting the floor, or one placed there unreported under Senate Rule XIV or a discharge); a later report, order to report, subcommittee referral or floor step leaves it calendared, and only a referral of the bill to a committee lowers it. passed_chamber and other_chamber both mean the bill's own chamber has passed it; other_chamber adds that the other chamber has received it or taken a calendar, desk or floor step on it. A calendar placement, the desk, a motion to proceed or cloture reads other_chamber only where the chamber that took it (as the text names it, else the system that entered it) is not the one the bill's type originates in; in its own chamber the desk, a motion to proceed or cloture moves nothing. passed_both means both chambers have passed it (the Library of Congress's 8000 and 17000 where the actions carry codes, else the text) but not, as far as the wording shows, in one text: the second passage carried an amendment the other chamber has not agreed to, or names none either way (the House's "On passage Passed"). It is read from the passage that completed it. conference is a conference requested, held or reported; the Library of Congress's "Resolving differences" exchange of amendments is not one. cleared means both chambers have agreed to one text: the second chamber passed it as it arrived (the Senate "without amendment", or the House on a motion to suspend the rules that names no amendment), a chamber agreed to the other's amendment with no amendment of its own, or both agreed to a conference report; the Library of Congress's "Cleared for White House." (109th-111th Congresses) reads it too. A bill or joint resolution is then ready for the President; a concurrent resolution is complete. failed is the latest vote on passage failing in either chamber, a failed two-thirds vote to suspend the rules included: the measure can still pass, and it reads over an earlier passage by the other chamber until a later step. vetoed stands until a recorded enactment; a failed override keeps it. The stage never moves back once a chamber has passed the bill: the other chamber's referral or report, a star print or an introduction phrase does not lower it, and only a passage the Senate states it vitiated is undone; where the actions carry publisher codes, the Library of Congress's passage code (8000 House, 17000 Senate) is what holds it. Once cleared, no lower rung moves it back. A motion's or a point of order's result ("motion to proceed ... agreed to in Senate") is not the measure's passage, and "disagreed to in Senate" reads failed.
stage_rule VARCHAR Which rule fired: a stage's own name where that rule read the action's text (introduced, committee, calendared, passed_chamber, other_chamber, conference, cleared, presented, law), cleared also for both chambers' agreement to a conference report, read from the second; vetoed for the President's veto; failed_passage for a failed vote on passage, a failed veto override included (which leaves the stage vetoed); action_code where the Library of Congress's passage or presentation code decided it; became_law_code for the publisher's became-law code; passed_both for the passage that left both chambers' passages standing. NULL when no rule fired and the default stood.
stage_matcher VARCHAR The matched text pattern, publisher code or vote-result reading used by the named rule.
stage_action_index VARCHAR Position in the publisher's action list of the action the stage was read from; the list runs newest first, so 0 is the bill's latest action.
stage_action_date VARCHAR Date of the action the stage was read from.
stage_source_text VARCHAR The full action text the stage rule matched against, never shortened.
signed_date VARCHAR The date of the publisher's coded became-law action (36000, E40000 or the BecameLaw type) for a public or a private law; NULL where the bill states no law, or states one with no coded action.
signed_date_rule VARCHAR Which signed-date rule produced that answer: public_law_and_became_law_action, private_law_and_became_law_action, public_law_without_became_law_action (a public law with no coded action, so no date) or no_public_law (no law entry, or a private law with no coded action).
signed_date_action_index VARCHAR Position of the became-law action the signing date was read from.
signed_date_action_code VARCHAR The publisher's action code on that became-law action.
money_bill_kind VARCHAR Interpreted money-bill kind, or NULL when no rule claimed the measure. A title heuristic with unmeasured recall: an appropriations act whose title lacks the pattern, or an appropriations division inside another bill, is NULL (money_bill_rule names the rule that fired). A simple or concurrent resolution (H. Res., S. Res., H. Con. Res., S. Con. Res.) is never a money bill, though a House special rule names the one it brings up, and omnibus is an appropriations omnibus only, not a statute named "Omnibus" (the Omnibus Crime Control and Safe Streets Act).
money_bill_rule VARCHAR Which money-bill rule fired, or NULL alongside a NULL kind.
money_bill_reason_codes VARCHAR The rule's reason codes, unit-separator joined; BillTrax computed and then discarded these.
fiscal_year VARCHAR Fiscal year the display title states, spelled FY plus the year: fiscal year 2027, the long title's for the fiscal year ending September 30, 2027, or an appropriations act's closing year (... Appropriations Act, 2027, Continuing Appropriations and Extensions Act, 2027). Never read from short_title, which a reused vehicle takes from the act it replaced. NULL where the title states none.
appropriations_subcommittee VARCHAR Which of the twelve appropriations subcommittees the title names, under the statutory names: the House's National Security, Department of State, and Related Programs reads State, Foreign Operations. Read only where the regular-appropriations rule (or a manual override) classified the bill.
referral_signals VARCHAR The referral signals the money-bill classifier was given, sorted and unit-separator joined; this is the classifier's input, recorded so a classification can be re-derived.
short_title VARCHAR The publisher's short title for the whole measure: the first titles[] entry whose titleType names a short title, which is the newest stage's because the publisher lists titles newest stage first, skipping the types that name only portions of the bill (an omnibus's divisions); NULL where the measure states no short title for the whole of it, which is ordinary.
related_bills_json VARCHAR Every relatedBills entry the publisher states, as a JSON array, with each one's relationship details nested; this replaces BillTrax's hand-set related_bill_id with the publisher's own fact.
related_bill_count VARCHAR How many related bills the publisher states.
cbo_cost_estimates_outcome VARCHAR BILLSTATUS estimate-block observation: NULL means unread; populated means estimate items were read; requested-empty:absent means no element; requested-empty:present-and-empty means an empty element; requested-empty:unexpected-shape: names an unsupported XML shape. These are observations of this document, never evidence that no CBO estimate exists. Populated items can still have unkeyable URLs, which the family records as refusals.
url_source VARCHAR Who stated url, and so which kind of URL it is: billstatus (the BILLSTATUS legislationUrl, the congress.gov page), congress_api (the Congress.gov detail record's legislationUrl, the same page), congress_api_list (the Congress.gov list route's url, the API resource), or inherited (this observation stated none and a host merge kept an earlier observation's value; its lineage is that earlier source, not a fresh read). NULL when url is NULL or the row predates this label.
cosponsors_outcome VARCHAR Source list state: absent, empty or populated; NULL means not read.