Skip to content

committee_meetings

Committee meetings

One row per scheduled committee meeting, as the Congress.gov committee-meeting list and detail routes state it, keyed (congress, chamber, event_id). The detail carries the hearing transcript jackets (hearing_transcripts joins on event_id), the related bills, the witnesses and every document URL. All columns are stored as VARCHAR.

Coverage. Sampled, and accumulating. Each run walks the current Congress's whole committee-meeting list, and the previous Congress's from the day before its newest held updateDate (or its oldest unread row), and reads the detail of every meeting the table does not yet hold, newest updateDate first, at most 1,000 a run; a meeting whose detail is unread or refused has its list fields only. The previous Congress stays in scope because its meetings change when GovInfo prints their transcripts, and hearing transcripts have named meetings the table lacked (receipt join-gaps-2026-09-26/f/). (measured 2026-09-28)

Data quality. A row whose detail_read is false is list-only: its detail has not been read yet, and every detail-only column is NULL with it. A read detail's list is [] where the detail states an empty one and NULL where it states none. Rows read before spicy-docs 0.54.0 spelled both []; each such row is read once more, after a run's own reads and under its cap of 1,000, and until then its [] can mean either. Event ids are keyed with their chamber because their uniqueness across chambers is unmeasured (spicy-docs' contract note); the 119th's House and Senate event ids come from different ranges, so an id alone does not say which chamber. The publisher's witness entries can repeat within one meeting, so count people by name, not entries. Related bills. Congress.gov often leaves the related bills off a markup's detail, so bill_ids_json names none; the meeting's documents usually still name them, in a meeting_documents_json entry whose documentType is Bills and Resolutions. A bill named only in a meeting document is not in bill_ids_json. A meeting can carry no committee: committee_system_code and committees_json are NULL where the detail names none (Senate Finance's nominations meeting of 2026-07-23, event 338678), so a filter on the committee misses it; search title as well. meeting_status is Congress.gov's and can lag: a hearing the committee rescheduled can stay Scheduled under its first date (Senate Finance's trade-agenda hearing, event 338326 on 2026-04-23, which the committee lists as rescheduled to July, event 338681). Senate and NoChamber meetings list no witnesses here. Congress.gov's committee-meeting detail, the route this table reads, has no witnesses element for those chambers (retained detail 119/nochamber/338692), so their witness lists are [] or NULL: the route stated none, not that the meeting had none. For a printed hearing, hearing_transcripts.witnesses_json lists the witnesses GovInfo's MODS names (CHRG-119shrg64653 names four). A transcript reaches its meeting by event_id, or by mods_event_id where event_id is NULL, with congress and chamber; most Senate transcripts name no meeting either way, so most Senate meetings have no witness list from either source. The publisher's NoChamber value is stored as nochamber, matching its detail address and preserving the existing row identity. It is neither NULL nor an inferred joint chamber. The source reader accepts that address, so previously list-only rows can fill at an unchanged timestamp. Retained meeting 119/nochamber/338692 names the Helsinki Commission; the September 24 committee-meetings audit retains its list row and served detail.

  • Parquet file: committee_meetings.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
congress VARCHAR The numbered Congress the meeting belongs to.
chamber VARCHAR The publisher's chamber value, lowercased as its address spells it (house, senate, joint, nochamber). NoChamber stays nochamber, not an inferred chamber.
event_id VARCHAR The publisher's event id, the key hearing_transcripts.event_id joins on.
title VARCHAR The meeting title as the detail states it.
meeting_type VARCHAR The publisher's meeting type (Hearing, Markup, ...).
meeting_status VARCHAR The publisher's meeting status (Scheduled, Rescheduled, ...).
meeting_date VARCHAR The meeting's date-time instant as the detail states it.
location_building VARCHAR The building the detail names.
location_room VARCHAR The room the detail names.
committee_system_code VARCHAR System code of the first committee the detail lists.
committee_count VARCHAR How many committees the detail lists; every one is in committees_json, and NULL where it is NULL.
committees_json VARCHAR Every committee the detail lists, as a JSON array of the publisher's objects. NULL where no detail was read or the detail states no such list; [] where it states an empty one.
hearing_jacket VARCHAR The first hearing transcript jacket number the detail lists, where it lists any.
hearing_jacket_count VARCHAR How many transcript jackets the detail lists; every one is in hearing_jackets_json, and NULL where it is NULL.
hearing_jackets_json VARCHAR Every transcript jacket number the detail lists, as a JSON array of strings. NULL where no detail was read or the detail states no such list; [] where it states an empty one.
bill_count VARCHAR How many bills the detail relates to the meeting; every one is in bill_ids_json, and NULL where it is NULL.
bill_ids_json VARCHAR Natural keys of every bill in relatedItems.bills, as a JSON array, in publisher order; a bill named only in a meeting document is not here. NULL where no detail was read or the detail states no relatedItems.bills; [] where it states an empty one.
witness_count VARCHAR How many witness entries the detail lists, repeats included; not a count of people. NULL where witnesses_json is NULL.
witnesses_json VARCHAR Every witness entry the detail lists, as a JSON array of the publisher's objects, in publisher order and as published: an entry can repeat within one meeting, so count people by name, not entries. NULL where no detail was read or the detail states no witnesses (the Senate and NoChamber details retained so far omit the key: no witness list, not an empty one); [] where it states an empty one.
witness_document_count VARCHAR How many witness documents the detail lists; NULL where witness_documents_json is NULL.
witness_documents_json VARCHAR Every witness document the detail lists, as a JSON array of the publisher's objects. NULL where no detail was read or the detail states no such list; [] where it states an empty one.
meeting_document_count VARCHAR How many meeting documents the detail lists; NULL where meeting_documents_json is NULL.
meeting_documents_json VARCHAR Every meeting document the detail lists, as a JSON array of the publisher's objects. NULL where no detail was read or the detail states no such list; [] where it states an empty one.
document_urls_json VARCHAR The URL of every document the meeting lists, witness documents first then meeting documents, in publisher order: what the map's meeting-to-documents edge resolves. NULL where neither list is stated (or no detail was read); [] where the stated lists carry no URL.
videos_json VARCHAR Every video link the detail lists, as a JSON array of the publisher's objects. NULL where no detail was read or the detail states no such list; [] where it states an empty one.
update_date VARCHAR The publisher's updateDate; the merge prefers the larger value.
url VARCHAR The publisher's own URL for this meeting, which only the list row states.
detail_read VARCHAR true where the Congress.gov detail route was read for this row, false where the row holds the list route's record only (a detail not yet reached under a run's cap, or refused). The one test of whether a detail was read: a list column cannot say it, because a read detail omits a list it does not state and the column is then NULL as for an unread one.