The Boring PartsFederalLocal · USLocal · Canada

Dataset schema

The exact columns of the public dataset (the SQLite / Parquet you download), generated from the live build so it never drifts. Dates are ISO 8601 (YYYY-MM-DD); columns ending in _at are UTC timestamps. Everything joins back to municipalities.id via muni_id, or via meetings.id through meeting_id.

Download schema.md · back to the dataset

municipalities — 5,790 rows

PRIMARY KEY id. Every other table joins back here via muni_id, or via meetings through meeting_id.

columntype
id (key)integer
slugtext
nametext
statetext
countrytext
platformtext

meetings — 1,724,628 rows

PK id · FK muni_id → municipalities.id. One row per meeting.

columntype
id (key)integer
muni_idinteger
body_nametext
meeting_datetext
meeting_timetext
locationtext
agenda_urltext
minutes_urltext
video_urltext
detail_urltext
archived_pdf_keytext

briefs — 701,008 rows

PK/FK meeting_id → meetings.id. AI plain-English agenda summary.

columntype
meeting_id (key)integer
headlinetext
summarytext
notable_itemstext
tagstext
created_attext

decisions — 243,699 rows

PK/FK meeting_id → meetings.id. What passed/failed, from minutes.

columntype
meeting_id (key)integer
headlinetext
summarytext
decisionstext
tagstext
created_attext

briefs_i18n — 160,774 rows

FK meeting_id → meetings.id. lang is 'es' or 'fr'.

columntype
meeting_id (key)integer
lang (key)text
headlinetext
summarytext
notable_itemstext

roundups — 4,469 rows

FK muni_id → municipalities.id. Weekly recap (markdown).

columntype
muni_id (key)integer
week_of (key)text
headlinetext
article_mdtext
created_attext

transcripts — 26,543 rows

PK/FK meeting_id → meetings.id. Whisper/caption transcript of meeting video.

columntype
meeting_id (key)integer
duration_sinteger
texttext
created_attext

census_demographics — 2,565 rows

FK muni_id → municipalities.id. US Census ACS 5-year.

columntype
muni_id (key)integer
populationinteger
median_incomeinteger
per_capita_incomeinteger
median_home_valueinteger
housing_unitsinteger
updated_attext

meeting_texts — 807,915 rows

PK/FK meeting_id → meetings.id. Raw extracted source text (NOT AI).

columntype
meeting_id (key)integer
agenda_texttext
minutes_texttext
updated_attext

campaign_finance — 1,397,866 rows

FK muni_id → municipalities.id. NetFile local donor transactions (predominantly California).

columntype
txn_id (key)text
muni_idinteger
filing_idtext
filer_nametext
txn_datetext
amountreal
txn_typetext
scheduletext
contributortext
employertext
occupationtext
addresstext
updated_attext

canada_demographics — 454 rows

FK muni_id → municipalities.id. StatCan.

columntype
muni_id (key)integer
populationinteger
median_incomeinteger
median_home_valueinteger
updated_attext

home_value_trend — 2,336 rows

FK muni_id → municipalities.id. Zillow ZHVI home-value trend.

columntype
muni_id (key)integer
zhvi_latestreal
latest_monthtext
yoy_pctreal
five_yr_pcttext
yearly_series_jsontext
updated_attext

federal_awards — 21,446 rows

FK muni_id → municipalities.id. USAspending federal grants/contracts.

columntype
muni_id (key)integer
award_uidtext
recipienttext
amountreal
agencytext
descriptiontext
official_urltext
updated_attext

civic_records — 5,697 rows

FK muni_id → municipalities.id. Building permits & business licenses from municipal open-data feeds.

columntype
muni_idinteger
kindtext
record_notext
addresstext
rec_typetext
descriptiontext
applicanttext
valuetext
applied_datetext
issued_datetext
statustext
official_urltext
fetched_attext

decision_geo — 1,907 rows

FK meeting_id → meetings.id. Per-decision address geocode + building + flood zone.

columntype
meeting_id (key)integer
addresstext
latreal
lonreal
building_height_mreal
building_floorstext
building_nametext
building_classtext
building_subtypetext
flood_zonetext
flood_subtypetext
in_flood_zoneinteger
updated_attext

decision_echo — 170 rows

FK meeting_id → meetings.id. EPA ECHO facilities near a decision address.

columntype
meeting_id (key)integer
registry_idtext
fac_nametext
fac_streettext
compliance_statustext
curr_svtext
viol_flagtext
last_inspectiontext
echo_urltext
updated_attext

decision_nonprofit — 76 rows

FK meeting_id → meetings.id. IRS nonprofit tied to a decision.

columntype
meeting_id (key)integer
eintext
nametext
nteetext
categorytext
propublica_urltext
updated_attext

matters — 15,319 rows

columntype
meeting_idinteger
muni_idinteger
matter_typetext
titletext
case_notext
addresstext
actiontext
staff_rectext
outcometext
votetext
unitstext
affordable_unitstext
height_fttext
sqfttext
acreagetext
parkingtext
est_valuetext
conditionstext
lattext
lontext
created_attext

officials — 237 rows

columntype
muni_idinteger
body_nametext
nametext
roletext
first_seen_datetext
last_seen_datetext
meeting_countinteger
updated_attext

member_votes — 4,562,764 rows

columntype
meeting_idinteger
muni_idinteger
body_nametext
motiontext
member_nametext
votetext
contestedinteger
created_attext

cf_transactions — 2,221,015 rows

columntype
sourcetext
leveltext
statetext
txn_typetext
filer_nametext
filer_idtext
officetext
counterparty_nametext
counterparty_typetext
employertext
occupationtext
citytext
regiontext
ziptext
amounttext
txn_datetext
election_cycletext
report_idtext
external_idtext

school_stats — 125 rows

columntype
muni_idinteger
leaidtext
enrollmentinteger
teachers_fteinteger
schools_countinteger
per_pupil_spendinginteger
revenue_totalinteger
yearinteger
updated_attext

gov_finances — 2,001 rows

columntype
muni_idinteger
fiscal_yearinteger
populationinteger
government_typetext
total_revenueinteger
total_taxesinteger
property_taxinteger
intergov_revenueinteger
total_expenditureinteger
debt_outstandinginteger
per_capita_total_revenuereal
per_capita_total_taxesreal
per_capita_total_expenditurereal
per_capita_debt_outstandingreal
updated_attext

building_permits — 2,887 rows

columntype
muni_idinteger
yearinteger
units_1integer
units_2_4integer
units_5plusinteger
units_totalinteger
value_totalinteger
updated_attext

election_results — 40,054 rows

columntype
muni_idtext
place_nametext
statetext
countytext
officetext
election_datetext
candidate_nametext
partytext
votesinteger
total_votes_in_raceinteger
is_winnerinteger
term_yearstext
sourcetext
source_urltext

ballot_measures — 1,468 rows

columntype
muni_idinteger
place_nametext
statetext
countytext
election_datetext
measure_titletext
measure_typetext
topictext
yes_votesinteger
no_votesinteger
total_votesinteger
passedinteger
jurisdiction_typetext
source_urltext

official_bridges — 318 rows

columntype
muni_idtext
local_nametext
statetext
legislator_nametext
openstates_idtext
chambertext
partytext
term_starttext
term_endtext

officials_tenure — 215 rows

columntype
muni_idinteger
nametext
partytext
first_wontext
last_wontext
terms_woninteger
is_incumbenttext
updated_attext

council_districts — 176 rows

columntype
muni_idinteger
citytext
statetext
district_idtext
member_nametext
centroid_lattext
centroid_lontext
bboxtext
source_urltext

Example queries

-- Every decision mentioning a seven-figure dollar amount, newest first
SELECT m.meeting_date, mu.name, mu.state, d.headline
FROM decisions d JOIN meetings m ON m.id = d.meeting_id
JOIN municipalities mu ON mu.id = m.muni_id
WHERE d.decisions LIKE '%,000,000%' ORDER BY m.meeting_date DESC;

-- Upcoming meetings in one state, with the plain-English brief
SELECT mu.name, m.body_name, m.meeting_date, b.headline
FROM meetings m JOIN municipalities mu ON mu.id = m.muni_id
LEFT JOIN briefs b ON b.meeting_id = m.id
WHERE mu.state = 'California' AND m.meeting_date >= date('now')
ORDER BY m.meeting_date;