# MyTown dataset schema

Generated from the live build. Dates are ISO 8601 (YYYY-MM-DD); `_at` columns are UTC.
Join everything to `municipalities.id` via `muni_id`, or via `meetings.id` through `meeting_id`.

## municipalities  (8,269 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 |
| `kind` | text |

## meetings  (2,114,214 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  (1,750,373 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  (765,858 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  (170,856 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  (10,525 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  (48,398 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  (5,520 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` | text |
| `pct_hs_plus` | text |
| `pct_bachelors_plus` | text |
| `updated_at` | text |

## meeting_texts  (1,883,956 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  (3,298,337 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  (4,081 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  (36,565 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  (213,049 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  (25,887 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  (1,295 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  (949 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  (33,726 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  (207,457 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `body_name` | text |
| `name` | text |
| `norm_name` | text |
| `role` | text |
| `is_elected` | text |
| `first_seen_date` | text |
| `last_seen_date` | text |
| `meeting_count` | integer |
| `n_absent` | integer |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## member_votes  (8,994,043 rows)
| column | type |
|---|---|
| `meeting_id` | integer |
| `muni_id` | integer |
| `body_name` | text |
| `motion` | text |
| `member_name` | text |
| `vote` | text |
| `contested` | integer |
| `created_at` | text |

## people  (59,675 rows)
| column | type |
|---|---|
| `person_id` | text |
| `canonical_name` | text |
| `muni_id` | integer |
| `body_name` | text |
| `role` | text |
| `first_seen_vote` | text |
| `last_seen_vote` | text |
| `n_votes` | integer |
| `n_meetings` | integer |
| `aliases` | text |
| `confidence` | real |
| `match_method` | text |
| `updated_at` | text |

## people_aliases  (70,867 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `raw_name` | text |
| `person_id` | text |
| `n_votes` | integer |
| `updated_at` | text |

## person_vote_stats  (59,675 rows)
| column | type |
|---|---|
| `person_id` | text |
| `muni_id` | integer |
| `canonical_name` | text |
| `n_votes` | integer |
| `n_yea` | integer |
| `n_nay` | integer |
| `n_abstain` | integer |
| `n_present` | integer |
| `n_absent` | integer |
| `n_other` | integer |
| `n_meetings` | integer |
| `n_decided` | integer |
| `n_contested` | integer |
| `n_dissents` | integer |
| `dissent_rate` | real |
| `attendance_rate` | real |
| `first_seen_vote` | text |
| `last_seen_vote` | text |
| `updated_at` | text |

## cf_transactions  (46,372,205 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 |

## gov_payments  (1,474,857 rows)
| column | type |
|---|---|
| `source` | text |
| `record_type` | text |
| `muni_id` | integer |
| `state` | text |
| `payee` | text |
| `amount` | text |
| `txn_date` | text |
| `end_date` | text |
| `category` | text |
| `object_type` | text |
| `purpose` | text |
| `funding_source` | text |
| `site` | text |
| `fiscal_period` | text |
| `source_url` | text |
| `external_id` | text |
| `payer_level` | text |

## dot_projects  (44,747 rows)
| column | type |
|---|---|
| `source` | text |
| `state` | text |
| `external_id` | text |
| `muni_id` | text |
| `name` | text |
| `description` | text |
| `project_type` | text |
| `route` | text |
| `city` | text |
| `county` | text |
| `cost` | text |
| `program_year` | text |
| `status` | text |
| `is_highway` | text |
| `lat` | real |
| `lon` | real |
| `official_url` | text |
| `fetched_at` | text |

## infrastructure_projects  (32,738 rows)
| column | type |
|---|---|
| `source` | text |
| `muni_id` | integer |
| `state` | text |
| `town` | text |
| `project_type` | text |
| `description` | text |
| `road_name` | text |
| `amount` | text |
| `project_date` | text |
| `meeting_id` | integer |
| `quote` | text |
| `source_url` | text |
| `external_id` | text |

## sba_loans  (436,303 rows)
| column | type |
|---|---|
| `program` | text |
| `muni_id` | integer |
| `borrower_name` | text |
| `city` | text |
| `state` | text |
| `zip` | text |
| `amount` | real |
| `jobs_supported` | integer |
| `naics` | text |
| `naics_desc` | text |
| `business_type` | text |
| `loan_status` | text |
| `approval_date` | text |
| `approval_fy` | integer |
| `project_county` | text |
| `project_state` | text |
| `external_id` | text |

## business_patterns  (8,842 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `county_fips` | text |
| `year` | integer |
| `total_establishments` | integer |
| `total_employment` | integer |
| `retail_estab` | integer |
| `foodservice_estab` | integer |
| `manufacturing_estab` | integer |
| `health_estab` | integer |
| `updated_at` | text |

## school_stats  (965 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `leaid` | text |
| `enrollment` | integer |
| `teachers_fte` | integer |
| `schools_count` | integer |
| `per_pupil_spending` | integer |
| `revenue_total` | integer |
| `read_pct_proficient` | real |
| `math_pct_proficient` | real |
| `frpl_pct` | real |
| `assessment_year` | integer |
| `year` | integer |
| `updated_at` | text |

## literacy  (4,457 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `county_fips` | text |
| `county_name` | text |
| `state` | text |
| `pct_low_literacy` | real |
| `pct_low_numeracy` | real |
| `year` | integer |
| `source` | text |
| `updated_at` | text |

## staar_results  (53,631 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `year` | integer |
| `grade` | integer |
| `subject` | text |
| `approaches_pct` | text |
| `meets_pct` | real |
| `masters_pct` | real |
| `updated_at` | text |

## school_finance  (120,160 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `year` | integer |
| `function_code` | text |
| `function_name` | text |
| `amount` | real |
| `updated_at` | text |

## crime_stats  (278 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `ori` | text |
| `agency_name` | text |
| `year` | integer |
| `population` | integer |
| `violent_total` | integer |
| `property_total` | integer |
| `homicide` | integer |
| `robbery` | integer |
| `agg_assault` | integer |
| `burglary` | integer |
| `larceny` | integer |
| `mv_theft` | integer |
| `source` | text |
| `updated_at` | text |

## crime_incidents  (9,064,148 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `incident_id` | text |
| `offense` | text |
| `category` | text |
| `incident_date` | text |
| `latitude` | real |
| `longitude` | real |
| `source_domain` | text |
| `dataset_id` | text |
| `updated_at` | text |

## gov_finances  (2,409 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  (74,492 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `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 |
| `election_type` | text |
| `match_method` | text |

## official_elections  (3,176 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `member_name` | text |
| `matched_candidate` | text |
| `office` | text |
| `election_date` | text |
| `votes` | integer |
| `is_winner` | integer |
| `source` | text |
| `match_method` | text |
| `total_votes_in_race` | integer |
| `election_type` | text |

## ballot_measures  (1,579 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 |

## ma_election_results  (87,307 rows)
| column | type |
|---|---|
| `source` | text |
| `state` | text |
| `election_id` | text |
| `election_date` | text |
| `office` | text |
| `district` | text |
| `stage` | text |
| `muni_id` | integer |
| `city_town` | text |
| `ward` | text |
| `precinct` | text |
| `candidate` | text |
| `party` | text |
| `is_aggregate` | integer |
| `votes` | integer |
| `total_votes_in_race` | integer |
| `source_url` | text |

## official_bridges  (727 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `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 |

## food_inspections  (18,494,942 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `establishment_name` | text |
| `address` | text |
| `inspection_date` | text |
| `result` | text |
| `score` | text |
| `violations_summary` | text |
| `source_domain` | text |
| `source_id` | text |
| `source_url` | text |
| `updated_at` | text |

## gov_contracts  (1,767,326 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `vendor_name` | text |
| `description` | text |
| `amount` | real |
| `award_date` | text |
| `start_date` | text |
| `end_date` | text |
| `contract_number` | text |
| `department` | text |
| `status` | text |
| `source_domain` | text |
| `dataset_id` | text |
| `source_url` | text |
| `updated_at` | text |

## public_salaries  (3,539,824 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `dataset_id` | text |
| `record_id` | text |
| `employee_name` | text |
| `job_title` | text |
| `department` | text |
| `base_pay` | real |
| `overtime` | real |
| `total_pay` | real |
| `year` | integer |
| `redacted` | text |
| `source_domain` | text |
| `source_url` | text |
| `updated_at` | text |

## service_requests_rollup  (6,898 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `category` | text |
| `period_month` | text |
| `count` | integer |
| `source_domain` | text |
| `source_url` | text |
| `dataset_id` | text |
| `updated_at` | text |

## service_requests_recent  (100 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `dataset_id` | text |
| `request_id` | text |
| `category` | text |
| `status` | text |
| `created_date` | text |
| `source_domain` | text |
| `updated_at` | text |

## bps_permits  (4,280 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `year` | integer |
| `month` | integer |
| `units_total` | integer |
| `units_1unit` | integer |
| `units_2unit` | integer |
| `units_34unit` | integer |
| `units_5plus` | integer |
| `valuation` | integer |
| `source_url` | text |
| `updated_at` | text |

## fiscal_health  (2,409 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `fiscal_year` | integer |
| `population` | integer |
| `total_revenue` | integer |
| `total_expenditure` | integer |
| `debt_outstanding` | integer |
| `debt_per_capita` | real |
| `debt_to_revenue` | real |
| `operating_margin` | real |
| `tax_reliance` | real |
| `intergov_reliance` | real |
| `pct_debt_to_revenue` | real |
| `pct_debt_per_capita` | real |
| `pct_deficit` | real |
| `pct_intergov_reliance` | real |
| `debt_load_index` | real |
| `debt_load_band` | text |
| `structural_deficit` | integer |
| `source_url` | text |
| `updated_at` | text |

## pension_state  (96 rows)
| column | type |
|---|---|
| `state` | text |
| `year` | integer |
| `govtype` | text |
| `govtype_label` | text |
| `total_holdings` | integer |
| `total_contributions` | integer |
| `gov_contributions` | integer |
| `employee_contributions` | integer |
| `total_benefits_paid` | integer |
| `num_systems` | integer |
| `total_membership` | integer |
| `beneficiaries` | integer |
| `holdings_to_benefits` | real |
| `gov_contrib_share` | real |
| `source_url` | text |
| `updated_at` | text |

## business_formations  (3,105,341 rows)
| column | type |
|---|---|
| `grain` | text |
| `muni_id` | integer |
| `city` | text |
| `state` | text |
| `county` | text |
| `period` | text |
| `seasonally_adj` | text |
| `applications_total` | text |
| `high_propensity` | text |
| `entity_id` | text |
| `business_name` | text |
| `entity_type` | text |
| `entity_type_code` | text |
| `entity_status` | text |
| `formation_date` | text |
| `address` | text |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## property_sales  (38,935 rows)
| column | type |
|---|---|
| `state` | text |
| `parcel_id` | text |
| `muni_id` | integer |
| `address` | text |
| `owner` | text |
| `sale_price` | real |
| `sale_date` | text |
| `assessed_value` | real |
| `land_value` | real |
| `land_use` | text |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## lobbying_registrations  (5,217,388 rows)
| column | type |
|---|---|
| `source` | text |
| `state` | text |
| `muni_id` | text |
| `lobbyist_name` | text |
| `client_name` | text |
| `year` | integer |
| `compensation` | real |
| `registrant_name` | text |
| `issue_codes` | text |
| `specific_issues` | text |
| `branch` | text |
| `paid` | text |
| `date_from` | text |
| `date_to` | text |
| `source_url` | text |
| `external_id` | text |
| `updated_at` | text |

## official_disclosures  (1,128,215 rows)
| column | type |
|---|---|
| `source` | text |
| `state` | text |
| `muni_id` | text |
| `official_name` | text |
| `role` | text |
| `disclosure_year` | integer |
| `income_summary` | text |
| `source_url` | text |
| `external_id` | text |
| `updated_at` | text |

## lobbying_expenditures  (687,821 rows)
| column | type |
|---|---|
| `source` | text |
| `state` | text |
| `muni_id` | text |
| `lobbyist_name` | text |
| `client_name` | text |
| `recipient_name` | text |
| `recipient_role` | text |
| `expense_date` | text |
| `year` | integer |
| `amount` | real |
| `expense_type` | text |
| `description` | text |
| `source_url` | text |
| `external_id` | text |
| `updated_at` | text |

## muni_financials  (4,751 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `state` | text |
| `fiscal_year` | integer |
| `gov_type` | text |
| `revenue_total` | real |
| `revenue_tax` | text |
| `revenue_intergov` | text |
| `expenditure_total` | real |
| `debt_outstanding` | text |
| `fund_balance` | text |
| `population` | text |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## local_sales_tax  (51,997 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `state` | text |
| `period_month` | text |
| `amount` | real |
| `tax_type` | text |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## muni_debt  (2,290 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `state` | text |
| `gov_type` | text |
| `fiscal_year` | integer |
| `debt_type` | text |
| `debt_outstanding` | real |
| `debt_service` | text |
| `debt_per_capita` | real |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## fiscal_stress_official  (49 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `state` | text |
| `year` | integer |
| `stress_score` | real |
| `stress_label` | text |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## nonprofits  (50 rows)
| column | type |
|---|---|
| `ein` | text |
| `name` | text |
| `city` | text |
| `state` | text |
| `ntee_code` | text |
| `category` | text |
| `tax_year` | integer |
| `total_revenue` | integer |
| `total_expenses` | integer |
| `total_assets` | integer |
| `exec_comp_top` | integer |
| `form_type` | text |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## state_bills  (1,456,284 rows)
| column | type |
|---|---|
| `state` | text |
| `session` | text |
| `bill_id` | text |
| `openstates_id` | text |
| `title` | text |
| `classification` | text |
| `subjects` | text |
| `status` | text |
| `latest_action_date` | text |
| `sponsors` | text |
| `source_url` | text |
| `updated_at` | text |

## state_votes  (1,181,341 rows)
| column | type |
|---|---|
| `vote_id` | text |
| `state` | text |
| `session` | text |
| `bill_id` | text |
| `motion` | text |
| `classification` | text |
| `result` | text |
| `vote_date` | text |
| `chamber` | text |
| `yes_count` | integer |
| `no_count` | integer |
| `other_count` | integer |
| `source_url` | text |
| `updated_at` | text |
| `member_vote_count` | integer |

## state_legislators  (21,605 rows)
| column | type |
|---|---|
| `openstates_id` | text |
| `state` | text |
| `name` | text |
| `party` | text |
| `district` | text |
| `chamber` | text |
| `current` | integer |
| `source_url` | text |
| `updated_at` | text |

## air_quality  (231 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `county_fips` | text |
| `county_name` | text |
| `state` | text |
| `year` | integer |
| `days_with_aqi` | integer |
| `good_days` | integer |
| `moderate_days` | integer |
| `days_unhealthy` | integer |
| `max_aqi` | integer |
| `p90_aqi` | integer |
| `median_aqi` | integer |
| `source_url` | text |
| `data_license` | text |
| `updated_at` | text |

## water_violations  (32,661 rows)
| column | type |
|---|---|
| `muni_id` | text |
| `pwsid` | text |
| `system_name` | text |
| `state` | text |
| `city_served` | text |
| `county_served` | text |
| `population_served` | integer |
| `year` | integer |
| `violation_count` | integer |
| `health_based_count` | integer |
| `source_url` | text |
| `data_license` | text |
| `updated_at` | text |

## college_stats  (6,119 rows)
| column | type |
|---|---|
| `id` | integer |
| `name` | text |
| `city` | text |
| `state` | text |
| `muni_id` | integer |
| `year` | integer |
| `enrollment` | integer |
| `tuition_in` | integer |
| `tuition_out` | integer |
| `admission_rate` | text |
| `completion_rate` | real |
| `total_revenue` | text |
| `faculty_salary_avg` | integer |
| `median_earnings` | integer |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## warn_notices  (2,827 rows)
| column | type |
|---|---|
| `uid` | text |
| `state` | text |
| `employer` | text |
| `city` | text |
| `county` | text |
| `muni_id` | integer |
| `num_affected` | integer |
| `notice_date` | text |
| `effective_date` | text |
| `layoff_type` | text |
| `reason` | text |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## professional_licenses  (7,873,634 rows)
| column | type |
|---|---|
| `row_id` | text |
| `state` | text |
| `board` | text |
| `license_type` | text |
| `licensee_name` | text |
| `business_name` | text |
| `license_no` | text |
| `status` | text |
| `issue_date` | text |
| `expiry_date` | text |
| `disciplinary_flag` | integer |
| `city` | text |
| `muni_id` | integer |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## police_stops_rollup  (2,384 rows)
| column | type |
|---|---|
| `muni_id` | integer |
| `agency` | text |
| `state` | text |
| `geography` | text |
| `year` | integer |
| `race` | text |
| `n_stops` | integer |
| `n_searches` | integer |
| `n_arrests` | integer |
| `n_contraband` | integer |
| `n_citations` | integer |
| `search_rate` | text |
| `hit_rate` | text |
| `arrest_rate` | real |
| `source` | text |
| `source_url` | text |
| `data_license` | text |
| `citation` | text |
| `updated_at` | text |

## assisted_contracts  (24,308 rows)
| column | type |
|---|---|
| `contract_number` | text |
| `property_id` | integer |
| `muni_id` | text |
| `match_method` | text |
| `place_geoid` | text |
| `property_name` | text |
| `address` | text |
| `city` | text |
| `state` | text |
| `zip` | text |
| `county_fips` | text |
| `county_name` | text |
| `msa_name` | text |
| `congressional_district` | text |
| `contract_status` | text |
| `contract_effective_date` | text |
| `contract_expiration_date` | text |
| `current_expiration_date` | text |
| `expiration_fiscal_year` | integer |
| `expiration_quarter` | text |
| `contract_term_months` | integer |
| `assisted_units` | integer |
| `property_total_units` | integer |
| `program_type` | text |
| `program_group` | text |
| `contract_doc_type` | text |
| `hud_administered` | text |
| `rent_to_fmr_ratio` | real |
| `rent_to_fmr_bucket` | text |
| `units_0br` | integer |
| `units_1br` | integer |
| `units_2br` | integer |
| `units_3br` | integer |
| `units_4br` | integer |
| `units_5plus_br` | integer |
| `property_category` | text |
| `is_insured` | text |
| `is_202_811` | text |
| `is_236` | text |
| `is_bmir` | text |
| `is_opportunity_zone` | text |
| `owner_company_type` | text |
| `owner_organization` | text |
| `mgmt_agent_organization` | text |
| `expired_but_active` | text |
| `property_units_overallocated` | text |
| `as_of_date` | text |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## lihtc_projects  (55,345 rows)
| column | type |
|---|---|
| `hud_project_id` | text |
| `muni_id` | integer |
| `match_method` | text |
| `state` | text |
| `project_name` | text |
| `address` | text |
| `city` | text |
| `zip` | text |
| `place_geoid2020` | text |
| `county_fips` | text |
| `total_units` | integer |
| `low_income_units` | integer |
| `credit_type` | text |
| `construction_type` | text |
| `tax_exempt_bond` | text |
| `allocation_year` | integer |
| `placed_in_service_year` | integer |
| `allocated_credit_annual` | text |
| `allocated_credit_suspect` | text |
| `nonprofit_sponsor` | text |
| `aff_period_gt30` | text |
| `affordability_years` | text |
| `affordability_expiration` | text |
| `no_longer_monitored` | text |
| `nlm_reason` | text |
| `qct` | text |
| `dda` | text |
| `latitude` | real |
| `longitude` | real |
| `state_project_id` | text |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## insured_mortgages  (74,247 rows)
| column | type |
|---|---|
| `fha_project_number` | text |
| `status` | text |
| `muni_id` | integer |
| `match_method` | text |
| `place_geoid` | text |
| `property_name` | text |
| `city` | text |
| `state` | text |
| `zip` | text |
| `units` | integer |
| `initial_endorsement_date` | text |
| `final_endorsement_date` | text |
| `original_mortgage_amount` | text |
| `first_payment_date` | text |
| `maturity_date` | text |
| `term_months` | integer |
| `interest_rate` | real |
| `current_principal_and_interest` | text |
| `amortized_principal_balance` | text |
| `holder_name` | text |
| `holder_state` | text |
| `servicer_name` | text |
| `servicer_state` | text |
| `soa_code` | text |
| `soa_category` | text |
| `income_restricted` | text |
| `business_type` | text |
| `termination_type` | text |
| `termination_date` | text |
| `claim_type` | text |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## subsidized_households  (97,022 rows)
| column | type |
|---|---|
| `year` | integer |
| `place_geoid` | text |
| `program` | integer |
| `sub_program` | text |
| `geo_kind` | text |
| `quarter` | text |
| `state` | text |
| `state_fips` | text |
| `place_fips` | text |
| `place_name` | text |
| `program_label` | text |
| `rollup_level` | text |
| `muni_id` | integer |
| `match_method` | text |
| `suppression` | text |
| `n_suppressed` | integer |
| `n_missing` | integer |
| `n_nonreporting` | integer |
| `total_units` | integer |
| `total_occupied` | integer |
| `pct_occupied` | integer |
| `number_reported` | integer |
| `pct_reported` | integer |
| `months_since_report` | integer |
| `pct_movein` | integer |
| `people_per_unit` | text |
| `people_total` | integer |
| `rent_per_month` | integer |
| `spending_per_month` | integer |
| `hh_income` | integer |
| `person_income` | integer |
| `pct_noincome` | integer |
| `pct_wage_major` | integer |
| `pct_welfare_major` | integer |
| `pct_other_major` | integer |
| `pct_median` | integer |
| `pct_lt80_median` | integer |
| `pct_lt50_median` | integer |
| `pct_lt30_median` | integer |
| `pct_2adults` | integer |
| `pct_1adult` | integer |
| `pct_0chldrn` | integer |
| `pct_female_head` | integer |
| `pct_female_head_child` | integer |
| `pct_disabled_head` | integer |
| `pct_disabled_all` | integer |
| `pct_lt62_head` | integer |
| `pct_age62plus` | integer |
| `pct_age85plus` | integer |
| `pct_minority` | integer |
| `pct_black_nonhsp` | integer |
| `pct_asian_pacific_nonhsp` | integer |
| `pct_white_nothsp` | integer |
| `pct_hispanic` | integer |
| `months_waiting` | integer |
| `months_from_movein` | integer |
| `pct_utility_allow` | integer |
| `ave_util_allow` | integer |
| `pct_bed1` | integer |
| `pct_bed2` | integer |
| `pct_bed3` | integer |
| `pct_overhoused` | integer |
| `tpoverty` | integer |
| `tminority` | integer |
| `tpct_ownsfd` | integer |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## debt_issues  (77,086 rows)
| column | type |
|---|---|
| `cdiac_number` | text |
| `muni_id` | text |
| `match_method` | text |
| `state` | text |
| `issuer` | text |
| `issuer_type` | text |
| `issuer_county` | text |
| `place_geoid` | text |
| `county_fips` | text |
| `sold_status` | text |
| `issue_name` | text |
| `project_name` | text |
| `sale_date` | text |
| `settlement_date` | text |
| `calendar_year` | integer |
| `principal_amount` | text |
| `new_money` | text |
| `refunding_amount` | text |
| `principal_outstanding_adtr` | text |
| `debt_type` | text |
| `primary_purpose` | text |
| `source_of_repayment` | text |
| `tax_status` | text |
| `sale_type` | text |
| `tic_rate` | text |
| `nic_rate` | text |
| `final_maturity_date` | text |
| `first_optional_call_date` | text |
| `statutory_authority` | text |
| `total_issuance_costs` | text |
| `lead_underwriter` | text |
| `financial_advisor` | text |
| `financial_advisor_fee` | text |
| `bond_counsel` | text |
| `bond_counsel_fee` | text |
| `disclosure_counsel` | text |
| `disclosure_counsel_fee` | text |
| `credit_enhancement_type` | text |
| `sp_rating` | text |
| `moodys_rating` | text |
| `fitch_rating` | text |
| `official_statement_url` | text |
| `document_count` | integer |
| `source` | text |
| `source_url` | text |
| `updated_at` | text |

## fac_audits  (170,436 rows)
| column | type |
|---|---|
| `report_id` | text |
| `audit_year` | integer |
| `fy_start_date` | text |
| `fy_end_date` | text |
| `auditee_name` | text |
| `auditee_uei` | text |
| `auditee_ein` | text |
| `auditee_city` | text |
| `auditee_zip` | text |
| `auditee_state_reported` | text |
| `state` | text |
| `state_source` | text |
| `entity_form` | text |
| `core_name` | text |
| `muni_id` | text |
| `muni_slug` | text |
| `census_geoid` | text |
| `match_method` | text |
| `city_name_agrees` | integer |
| `total_amount_expended` | text |
| `amount_context` | text |
| `dollar_threshold` | text |
| `audit_type` | text |
| `audit_period_covered` | text |
| `number_months` | text |
| `gaap_results` | text |
| `is_going_concern` | integer |
| `is_material_weakness` | integer |
| `is_control_deficiency` | integer |
| `is_material_noncompliance` | integer |
| `is_low_risk_auditee` | integer |
| `auditor_firm_name` | text |
| `auditor_ein` | text |
| `oversight_agency` | text |
| `cognizant_agency` | text |
| `submitted_date` | text |
| `fac_accepted_date` | text |
| `resubmission_version` | integer |
| `resubmission_status` | text |
| `is_primary_for_period` | integer |
| `muni_year_siblings` | text |
| `is_public` | integer |
| `data_source` | text |
| `source_url` | text |
| `fetched_at` | text |

## fac_findings  (50,666 rows)
| column | type |
|---|---|
| `report_id` | text |
| `reference_number` | text |
| `audit_year` | integer |
| `auditee_uei` | text |
| `auditee_name` | text |
| `state` | text |
| `entity_form` | text |
| `muni_id` | text |
| `muni_slug` | text |
| `match_method` | text |
| `award_count` | integer |
| `award_refs` | text |
| `is_material_weakness` | integer |
| `is_significant_deficiency` | integer |
| `is_questioned_costs` | integer |
| `is_repeat_finding` | integer |
| `is_modified_opinion` | integer |
| `is_other_findings` | integer |
| `is_other_matters` | integer |
| `prior_finding_ref_numbers` | text |
| `type_requirement` | text |
| `finding_text` | text |
| `finding_text_chars` | integer |
| `contains_chart_or_table` | integer |
| `questioned_costs_amount` | text |
| `questioned_costs_context` | text |
| `questioned_costs_basis` | text |
| `source_url` | text |
| `fetched_at` | text |

## fema_grants  (846,627 rows)
| column | type |
|---|---|
| `gm_project_id` | integer |
| `disaster_number` | integer |
| `declaration_date` | text |
| `incident_type` | text |
| `pw_number` | integer |
| `application_title` | text |
| `applicant_id` | text |
| `applicant_name` | text |
| `applicant_kind` | text |
| `muni_id` | integer |
| `match_method` | text |
| `place_geoid` | text |
| `damage_category_code` | text |
| `damage_category` | text |
| `project_status` | text |
| `project_process_step` | text |
| `project_size` | text |
| `county` | text |
| `county_fips` | text |
| `state` | text |
| `project_amount_estimate` | text |
| `federal_share_obligated` | text |
| `total_obligated` | text |
| `mitigation_amount` | text |
| `first_obligation_date` | text |
| `last_obligation_date` | text |
| `source` | text |
| `source_url` | text |
| `data_license` | text |
| `updated_at` | text |

## usda_rd_properties  (12,420 rows)
| column | type |
|---|---|
| `borrower_id` | text |
| `project_id` | text |
| `project_check_digit` | text |
| `mfis_key` | text |
| `muni_id` | text |
| `match_method` | text |
| `place_geoid` | text |
| `cousub_geoid` | text |
| `county_fips` | text |
| `report_date` | text |
| `property_name` | text |
| `city` | text |
| `state` | text |
| `zip` | text |
| `latitude` | real |
| `longitude` | real |
| `total_units` | integer |
| `vacant_units` | integer |
| `rental_assistance_units` | integer |
| `rental_type` | text |
| `section_program` | text |
| `revitalization` | text |
| `tax_credit` | text |
| `tax_credit_expires` | text |
| `management_name` | text |
| `borrower_name` | text |
| `borrower_type` | text |
| `borrower_city_state` | text |
| `estimated_exit_date` | text |
| `estimated_exit_year` | integer |
| `restrictive_clause_expires_year` | integer |
| `loan_payoff_year` | integer |
| `prepay_eligible` | text |
| `prepay_eligible_year` | integer |
| `fy_of_loan_obligation` | integer |
| `interest_rate_at_closing` | real |
| `loan_amount` | text |
| `balloon_payment` | text |
| `remaining_term_days` | integer |
| `orig_loan_term_years` | integer |
| `natural_maturity_date` | text |
| `upb_maturity_date` | text |
| `date_of_operation` | text |
| `source` | text |
| `source_url` | text |
| `data_license` | text |
| `updated_at` | text |
