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.
| column | type |
id (key) | integer |
slug | text |
name | text |
state | text |
country | text |
platform | text |
meetings — 1,724,628 rows
PK id · FK muni_id → municipalities.id. One row per meeting.
| column | type |
id (key) | integer |
muni_id | integer |
body_name | text |
meeting_date | text |
meeting_time | text |
location | text |
agenda_url | text |
minutes_url | text |
video_url | text |
detail_url | text |
archived_pdf_key | text |
briefs — 701,008 rows
PK/FK meeting_id → meetings.id. AI plain-English agenda summary.
| column | type |
meeting_id (key) | integer |
headline | text |
summary | text |
notable_items | text |
tags | text |
created_at | text |
decisions — 243,699 rows
PK/FK meeting_id → meetings.id. What passed/failed, from minutes.
| column | type |
meeting_id (key) | integer |
headline | text |
summary | text |
decisions | text |
tags | text |
created_at | text |
briefs_i18n — 160,774 rows
FK meeting_id → meetings.id. lang is 'es' or 'fr'.
| column | type |
meeting_id (key) | integer |
lang (key) | text |
headline | text |
summary | text |
notable_items | text |
roundups — 4,469 rows
FK muni_id → municipalities.id. Weekly recap (markdown).
| column | type |
muni_id (key) | integer |
week_of (key) | text |
headline | text |
article_md | text |
created_at | text |
transcripts — 26,543 rows
PK/FK meeting_id → meetings.id. Whisper/caption transcript of meeting video.
| column | type |
meeting_id (key) | integer |
duration_s | integer |
text | text |
created_at | text |
census_demographics — 2,565 rows
FK muni_id → municipalities.id. US Census ACS 5-year.
| column | type |
muni_id (key) | integer |
population | integer |
median_income | integer |
per_capita_income | integer |
median_home_value | integer |
housing_units | integer |
updated_at | text |
meeting_texts — 807,915 rows
PK/FK meeting_id → meetings.id. Raw extracted source text (NOT AI).
| column | type |
meeting_id (key) | integer |
agenda_text | text |
minutes_text | text |
updated_at | text |
campaign_finance — 1,397,866 rows
FK muni_id → municipalities.id. NetFile local donor transactions (predominantly California).
| column | type |
txn_id (key) | text |
muni_id | integer |
filing_id | text |
filer_name | text |
txn_date | text |
amount | real |
txn_type | text |
schedule | text |
contributor | text |
employer | text |
occupation | text |
address | text |
updated_at | text |
canada_demographics — 454 rows
FK muni_id → municipalities.id. StatCan.
| column | type |
muni_id (key) | integer |
population | integer |
median_income | integer |
median_home_value | integer |
updated_at | text |
home_value_trend — 2,336 rows
FK muni_id → municipalities.id. Zillow ZHVI home-value trend.
| column | type |
muni_id (key) | integer |
zhvi_latest | real |
latest_month | text |
yoy_pct | real |
five_yr_pct | text |
yearly_series_json | text |
updated_at | text |
federal_awards — 21,446 rows
FK muni_id → municipalities.id. USAspending federal grants/contracts.
| column | type |
muni_id (key) | integer |
award_uid | text |
recipient | text |
amount | real |
agency | text |
description | text |
official_url | text |
updated_at | text |
civic_records — 5,697 rows
FK muni_id → municipalities.id. Building permits & business licenses from municipal open-data feeds.
| column | type |
muni_id | integer |
kind | text |
record_no | text |
address | text |
rec_type | text |
description | text |
applicant | text |
value | text |
applied_date | text |
issued_date | text |
status | text |
official_url | text |
fetched_at | text |
decision_geo — 1,907 rows
FK meeting_id → meetings.id. Per-decision address geocode + building + flood zone.
| column | type |
meeting_id (key) | integer |
address | text |
lat | real |
lon | real |
building_height_m | real |
building_floors | text |
building_name | text |
building_class | text |
building_subtype | text |
flood_zone | text |
flood_subtype | text |
in_flood_zone | integer |
updated_at | text |
decision_echo — 170 rows
FK meeting_id → meetings.id. EPA ECHO facilities near a decision address.
| column | type |
meeting_id (key) | integer |
registry_id | text |
fac_name | text |
fac_street | text |
compliance_status | text |
curr_sv | text |
viol_flag | text |
last_inspection | text |
echo_url | text |
updated_at | text |
decision_nonprofit — 76 rows
FK meeting_id → meetings.id. IRS nonprofit tied to a decision.
| column | type |
meeting_id (key) | integer |
ein | text |
name | text |
ntee | text |
category | text |
propublica_url | text |
updated_at | text |
matters — 15,319 rows
| column | type |
meeting_id | integer |
muni_id | integer |
matter_type | text |
title | text |
case_no | text |
address | text |
action | text |
staff_rec | text |
outcome | text |
vote | text |
units | text |
affordable_units | text |
height_ft | text |
sqft | text |
acreage | text |
parking | text |
est_value | text |
conditions | text |
lat | text |
lon | text |
created_at | text |
officials — 237 rows
| column | type |
muni_id | integer |
body_name | text |
name | text |
role | text |
first_seen_date | text |
last_seen_date | text |
meeting_count | integer |
updated_at | text |
member_votes — 4,562,764 rows
| column | type |
meeting_id | integer |
muni_id | integer |
body_name | text |
motion | text |
member_name | text |
vote | text |
contested | integer |
created_at | text |
cf_transactions — 2,221,015 rows
| column | type |
source | text |
level | text |
state | text |
txn_type | text |
filer_name | text |
filer_id | text |
office | text |
counterparty_name | text |
counterparty_type | text |
employer | text |
occupation | text |
city | text |
region | text |
zip | text |
amount | text |
txn_date | text |
election_cycle | text |
report_id | text |
external_id | text |
school_stats — 125 rows
| column | type |
muni_id | integer |
leaid | text |
enrollment | integer |
teachers_fte | integer |
schools_count | integer |
per_pupil_spending | integer |
revenue_total | integer |
year | integer |
updated_at | text |
gov_finances — 2,001 rows
| column | type |
muni_id | integer |
fiscal_year | integer |
population | integer |
government_type | text |
total_revenue | integer |
total_taxes | integer |
property_tax | integer |
intergov_revenue | integer |
total_expenditure | integer |
debt_outstanding | integer |
per_capita_total_revenue | real |
per_capita_total_taxes | real |
per_capita_total_expenditure | real |
per_capita_debt_outstanding | real |
updated_at | text |
building_permits — 2,887 rows
| column | type |
muni_id | integer |
year | integer |
units_1 | integer |
units_2_4 | integer |
units_5plus | integer |
units_total | integer |
value_total | integer |
updated_at | text |
election_results — 40,054 rows
| column | type |
muni_id | text |
place_name | text |
state | text |
county | text |
office | text |
election_date | text |
candidate_name | text |
party | text |
votes | integer |
total_votes_in_race | integer |
is_winner | integer |
term_years | text |
source | text |
source_url | text |
ballot_measures — 1,468 rows
| column | type |
muni_id | integer |
place_name | text |
state | text |
county | text |
election_date | text |
measure_title | text |
measure_type | text |
topic | text |
yes_votes | integer |
no_votes | integer |
total_votes | integer |
passed | integer |
jurisdiction_type | text |
source_url | text |
official_bridges — 318 rows
| column | type |
muni_id | text |
local_name | text |
state | text |
legislator_name | text |
openstates_id | text |
chamber | text |
party | text |
term_start | text |
term_end | text |
officials_tenure — 215 rows
| column | type |
muni_id | integer |
name | text |
party | text |
first_won | text |
last_won | text |
terms_won | integer |
is_incumbent | text |
updated_at | text |
council_districts — 176 rows
| column | type |
muni_id | integer |
city | text |
state | text |
district_id | text |
member_name | text |
centroid_lat | text |
centroid_lon | text |
bbox | text |
source_url | text |
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;