Skip to content

house_communications

House executive communications

One row per House executive communication, as the Congress.gov house-communication list and detail routes state it, keyed on the publisher's own address. The regulatory bridge: is_rulemaking, the cited legal_authority, the committee referral, the matching House requirement and the RIN read from report_nature. A Federal Register RIN join must unnest regulation_id_numbers_json (the scalar federal_register.rin is the first value only) and retain number plus publication date. The Register API lists no RIN on many Rule documents, including some whose printed text states one, and sometimes prints the RIN inside docket_ids_json, so a RIN join misses those and can land on a correction or effective-date notice that shares the rule's RIN, docket and title; federal_register.action tells such a notice from its rule. All columns are stored as VARCHAR.

Coverage. Window: the sitting Congress (the 119th), every communication the Congress.gov house-communication list declares for each type (ec, ml, pm, pt), the list walked whole each run and refused short of the publisher's declared total, with every detail read. A later run reads new details newest first under its per-run cap, so a row it has not reached is list-only (detail_read false), not absent. The output ledger records the declared counts beside what is held. (measured 2026-10-03)

Data quality. A row whose detail_read is false is list-only: its detail has not been read yet (not reached under the cap, or refused), and every detail-only column is NULL with it, including the scalar and occurrence RIN columns, because the rule was not run. 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 (817 on 2026-10-03, one run). The RIN is an interpretation: rin_rule names the rule that fired (report_nature_rin_label/2) or unmatched, and rin_matched_text is the exact text, so a false positive is readable from the row. Every run derives the four RIN columns of each read row again from its retained report_nature, re-read or not, so no row keeps an earlier SpicyDocs' scalar or rule name. The rows the rin_rule column note says name report_nature_rin_label last only until this table's first run under SpicyDocs 0.50.1: after it, no row names the old rule. The publisher repeats a record across a page boundary; the table holds each identity once. The shared pooled list reader must settle each query by distinct identity before any output is replaced. Every existing publisher row receives source_route=congress-gov-detail. The four Record evidence columns remain NULL until the separate Record backfill, one GovInfo request per entry, is acquired in the next rollup. In that future reconstruction submitting_official and submitting_agency must both remain NULL: held-out precision was 85.3% and 88.4%, below the declared 90% gate. The original sentence stays in record_entry_text.

  • Parquet file: house_communications.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
communication_id VARCHAR Natural key: congress, lowercase communication type and number joined with hyphens.
congress VARCHAR The numbered Congress the communication was received in.
communication_type VARCHAR The publisher's communication type code, lowercased the way its own address spells it (ec, ml, ...).
communication_type_name VARCHAR The publisher's name for that type (Executive Communication, Memorial, ...).
number VARCHAR The communication's number within its Congress and type.
chamber VARCHAR The chamber, as the publisher spells it.
session VARCHAR The session of Congress the communication was received in.
abstract VARCHAR The publisher's abstract: the Record's own description of the communication. On a congressional-record-granule row it is the printed entry under the four normalizations the publisher's own abstract applies, which record_entry_text keeps unapplied.
report_nature VARCHAR The nature of the report transmitted, where the detail states one; where the RIN is read from.
legal_authority VARCHAR The statutory authority the communication cites, where the detail states one; a Congressional Review Act rule submission cites 5 U.S.C. 801(a)(1)(A).
submitting_agency VARCHAR The agency that submitted the communication, where the detail states one.
submitting_official VARCHAR The official who submitted it, where the detail states one.
congressional_record_date VARCHAR The date the communication appeared in the Congressional Record.
is_rulemaking VARCHAR Whether the publisher flags the communication as a rulemaking: the publisher's True/False strings folded onto the one published truth spelling; any other spelling refuses.
referral_system_code VARCHAR System code of the first committee the communication was referred to. NULL on a congressional-record-granule row: the Record prints a name, and the resolver from a name to a committees.system_code is not built.
referral_committee_name VARCHAR That committee's name as the publisher spells it; on a congressional-record-granule row, as the Record printed it, which is the committee's name on the day and agrees with Congress.gov's current spelling on 71.5% of held-out rows. Resolve identity through referral_system_code, never through this.
referral_date VARCHAR The date of that referral.
referral_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 referral the detail lists, as a JSON array of the publisher's objects. NULL where no detail was read or the detail states no committees; [] where it states an empty list. On a congressional-record-granule row, one {name} object per committee the printed referral tail names, in printed order.
matching_requirement_number VARCHAR Number of the first House reporting requirement the communication matches.
matching_requirement_count VARCHAR How many requirements the detail lists; every one is in matching_requirements_json, and NULL where it is NULL.
matching_requirements_json VARCHAR Every matching requirement the detail lists, as a JSON array of numbers. NULL where no detail was read or the detail states no such list; [] where it states an empty one.
rin VARCHAR The Regulation Identifier Number read from report_nature, where the rule found one: the first occurrence in rin_occurrences_json that a RIN label directly precedes, as its published key.
rin_occurrences_json VARCHAR All interpreted RIN occurrences supplied by the consumer, with exact field spans and digest. NULL means unread; [] means the supplied field was read and contained no RIN. Each occurrence's field_sha256 is spelled sha256: plus the hex digest under the rule report_nature/shared_rin/2; one stored under the earlier report_nature/shared_rin carries the bare hex and is re-read, not reused.
rin_rule VARCHAR Which RIN rule fired (report_nature_rin_label/2), or unmatched; NULL where the rule was not run. Rows read before 0.50.1 name report_nature_rin_label, the older pattern.
rin_matched_text VARCHAR The exact text the RIN rule matched, the label and the RIN as printed, so a false positive is readable from the row.
update_date VARCHAR The publisher's updateDate; the merge prefers the larger value, except across source_route, where a congress-gov-detail row always wins.
url VARCHAR The publisher's own URL for this communication, which only the list row states. NULL on a congressional-record-granule row: the detail route 404s for every pre-114th communication.
source_route VARCHAR What produced this row: congress-gov-detail where the publisher decomposed the communication itself, congressional-record-granule where it was reconstructed from the printed entry.
record_package_id VARCHAR The CREC package whose issue printed the entry (CREC-{congressional_record_date}); NULL on a publisher-decomposed row.
record_granule_id VARCHAR The EXECUTIVE COMMUNICATIONS, ETC. granule within that package, so the row is replayable the way committee_reports replays from package_id; NULL on a publisher-decomposed row.
record_entry_text VARCHAR The sentence the Record printed, GPO's own wording with none of the publisher's normalizations applied, kept beside the derived fields the way rin_matched_text is kept beside rin, so a bad parse is readable from the row; NULL on a publisher-decomposed row.
reconstruction_rule_version VARCHAR The record-communication- rule identity that produced the derived fields (RECORD_COMMUNICATION_RULE_VERSION); NULL on a publisher-decomposed row.
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. false on a congressional-record-granule row, which no detail route serves.