Loading… press / to search

The data

Everything this site knows, as CSV. 524,850 rows across 7 tables.

These are built from the same files the pages are drawn from, by the same run, so a download and a page cannot disagree. They are rebuilt whenever the site is.

Before you start

A bill number is not a key. HB100 names a different bill in every biennium, so every table carries a term and the pair bill + term is what joins them. Getting this wrong silently merges two centuries of different bills, which is a mistake this project has made and fixed.

The passage column in bills.csv is one character per stop: where the bill started, then the House, the Senate, the Governor and the statute book. p passed, x stopped there, - never reached it. A resolution has three characters rather than five, because it has fewer places to go.

Where a number is missing it is missing on purpose. A hearing with no start time is one nobody has placed in the recording yet, not one that did not happen; a bill with no roll calls was decided on a voice vote, which records no individual member.

What is filled in, and for which terms

Every bill back to 1989 has a title and an outcome. The rest arrives term by term as the archived dockets are fetched, and a column that is empty below is empty because the record has not been collected yet — not because the bill had no sponsor.

TermBillsSponsorCommittee TopicPassage
1989-19901,632 none none none none
1991-19921,674 none none none none
1993-19941,784 none none none none
1995-19961,586 none none none none
1997-19981,849 none 0% none none
1999-20001,673 none 96% none none
2001-20021,487 none 97% none none
2003-20041,605 none 92% none none
2005-20061,836 none 97% none none
2007-20081,953 none 98% none none
2009-20101,729 none 97% none none
2011-20121,765 none 96% none none
2013-20141,553 none 97% none none
2015-20161,788 none 95% none none
2017-20181,804 none 99% none 98%
2019-20201,983 none 96% none 98%
2021-20221,752 none 99% none none
2023-20241,996 93% 98% none 99%
2025-20262,234 99% 62% 62% 99%

The tables

bills.csv

33,683 rows · 5.5 MB · CSV, UTF-8, header row

Every bill of every term: title, sponsor, committee, outcome and how far it got.

bill + term is the key every other table refers to. A bill number alone is not a key: HB100 names a different bill in every biennium.

Columns term, year, bill, title, sponsor, committee, topic, status, outcome, passage, roll_calls

legislators.csv

406 rows · 0.1 MB · CSV, UTF-8, header row

The sitting roster, with district, contact details and committee seats.

id is member_id in the vote and sponsor files.

Columns id, name, chamber, party, district, county, email, phone, committees, bills_sponsored, recorded_votes

rollcalls.csv

1,504 rows · 0.2 MB · CSV, UTF-8, header row

Every recorded vote: the question in the record's words and in plain English, the tally, and what it needed to carry.

roll_call is year-body-number and is the key the vote files use. bill + term joins bills.csv.

Columns roll_call, term, year, body, number, date, bill, question, question_plain, yeas, nays, not_voting, passed, procedural, threshold_needed, threshold_rule

proceedings.csv

29,837 rows · 3.8 MB · CSV, UTF-8, header row

Every hearing, executive session and floor debate on record, and the recording it is on where there is one.

bill + term joins bills.csv. video_id is a YouTube id.

Columns term, bill, body, kind, date, time, committee, venue, video_id, video_title, start_seconds, end_seconds, how_placed

sponsors.csv

21,718 rows · 1.2 MB · CSV, UTF-8, header row

Who put their name to which bill, and who was prime. Sponsoring is not voting and is not counted as one.

bill + term joins bills.csv; member_id joins legislators.csv.

Columns term, bill, member_id, member, party, chamber, prime, role

votes-2023-2024.csv

199,385 rows · 16.6 MB · CSV, UTF-8, header row

How every member voted on every roll call of 2023-2024. Join to rollcalls.csv on roll_call.

roll_call joins rollcalls.csv; bill + term joins bills.csv; member_id joins legislators.csv.

Columns roll_call, term, date, bill, question, member_id, member, party, chamber, vote

votes-2025-2026.csv

238,317 rows · 19.8 MB · CSV, UTF-8, header row

How every member voted on every roll call of 2025-2026. Join to rollcalls.csv on roll_call.

roll_call joins rollcalls.csv; bill + term joins bills.csv; member_id joins legislators.csv.

Columns roll_call, term, date, bill, question, member_id, member, party, chamber, vote

For programs

data/manifest.json lists every table with its rows, byte size and column names, so a script can discover what is here in one request instead of guessing from filenames. The site's own JSON is served from this origin too and is open to cross-origin requests: index.json (every bill), legislators.json, rollcalls_index.json.

Using it

The record itself is the State of New Hampshire's and is public. This site adds the parsing, the joining and the plain-English summaries. Use it for whatever you like; a link back to graniterecord.org helps somebody check your working, which is the point of publishing the whole thing rather than a chart of it.

Found something that looks wrong? It probably is, and the page for that bill links the General Court's own record so the two can be compared.