main_bronze.raw_311_requests
|
_dlt_id
VARCHAR
|
dlt row identifier -- retained at every layer for source-to-pipeline lineage.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 1,224,700len
14..14
|
|
_dlt_load_id
VARCHAR
|
dlt load identifier -- retained at every layer for source-to-pipeline lineage.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 2len
18..18
|
|
_extracted_at
TIMESTAMP WITH TIME ZONE
|
**PIPELINE METADATA -- not for analysis.** UTC timestamp when this
row was last extracted from the SODA endpoint. Advances on every
run that touched the row. Use for run-traceability, not for
business questions about when an event occurred -- use
`date_created` (gold: `opened_dt`) for the latter.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 2dates
2026-06-24 → 2026-10-03 · span 101 days |
|
_extracted_run_id
VARCHAR
|
**PIPELINE METADATA -- not for analysis.** ULID of the pipeline
run that produced this row's current state. Joins to
`main_admin.fct_pipeline_run_raw.run_id` for run-level diagnostics.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 2len
26..26
|
|
_first_seen_at
TIMESTAMP
|
**PIPELINE METADATA -- not for analysis.** UTC timestamp when this
row was first ingested into our warehouse. Preserved across
subsequent re-extractions. Distinguishes "when did the city
create this case" (`date_created`) from "when did our pipeline
first see it" (this column). Maintained by a post-merge UPDATE
inside `dlt/somerville_311_pipeline.py`, not by dlt's payload.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 2dates
2026-06-24 → 2026-10-03 · span 101 days |
|
_source_endpoint
VARCHAR
|
**PIPELINE METADATA -- not for analysis.** SODA endpoint URL this
row was extracted from. Static for this project; present
structurally to support multi-source extensions.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 1len
53..53
|
|
accuracy
VARCHAR
|
Post-resolution survey field for accuracy. Sparse (<1% of rows) -- see [docs/limitations/2024-survey-columns-sparse.md](../../../docs/limitations/2024-survey-columns-sparse.md).
rows
1,224,700 · non-null 8,273 (0.7%) · distinct 8len
3..34
|
|
block_code
VARCHAR
|
Block identifier. Padded with spaces in source when unknown -- see [docs/limitations/block-code-padded.md](../../../docs/limitations/block-code-padded.md). Cleanup deferred to Silver (MVP 3).
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 763len
15..15
|
|
category
VARCHAR
|
Mid-level grouping within classification (e.g. Parking, Trash & Recycling).
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 22len
4..33
|
|
classification
VARCHAR
|
Top of the type hierarchy. One of Service, Information, Feedback.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 3len
7..11
|
|
courtesy
VARCHAR
|
Post-resolution survey field for courtesy. Sparse (<1% of rows) -- see [docs/limitations/2024-survey-columns-sparse.md](../../../docs/limitations/2024-survey-columns-sparse.md).
rows
1,224,700 · non-null 8,252 (0.7%) · distinct 8len
3..34
|
|
date_created
VARCHAR
|
Timestamp the request was opened. VARCHAR at bronze; cast to TIMESTAMPTZ in gold.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 884,342len
22..22
|
|
ease
VARCHAR
|
Post-resolution survey field for ease. Sparse (<1% of rows) -- see [docs/limitations/2024-survey-columns-sparse.md](../../../docs/limitations/2024-survey-columns-sparse.md).
rows
1,224,700 · non-null 6,936 (0.6%) · distinct 8len
3..34
|
|
emergency_readiness_and_response_planning
VARCHAR
|
Department tag stored as VARCHAR '0' or '1'. Cast to BOOLEAN in gold (`is_emergency_readiness_tag`). Sparse -- only ~4,187 rows of 1.17M carry any dept tag.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2len
1..1
|
|
green_space_care_and_maintenance
VARCHAR
|
Department tag stored as VARCHAR '0' or '1'. Cast to BOOLEAN in gold (`is_green_space_tag`). Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2len
1..1
|
|
id
VARCHAR
|
Somerville 311 request ID. Primary key from source; also the dlt merge key.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 1,224,700len
6..7
|
|
infrastructure_maintenance_and_repairs
VARCHAR
|
Department tag stored as VARCHAR '0' or '1'. Cast to BOOLEAN in gold (`is_infrastructure_tag`). Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2len
1..1
|
|
most_recent_status
VARCHAR
|
Latest status of the request (Open / Closed / In Progress / On Hold).
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 4len
4..11
|
|
most_recent_status_date
VARCHAR
|
Timestamp the most recent status was last set. VARCHAR at bronze; cast in gold.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 791,274len
22..22
|
|
navigating_city_services_and_policies
VARCHAR
|
Department tag stored as VARCHAR '0' or '1'. Cast to BOOLEAN in gold (`is_city_services_tag`). Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2len
1..1
|
|
noise_and_activity_disturbances
VARCHAR
|
Department tag stored as VARCHAR '0' or '1'. Cast to BOOLEAN in gold (`is_noise_tag`). Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2len
1..1
|
|
origin_of_request
VARCHAR
|
How the request was submitted (Contact Center, Website, etc.). Becomes `origin` in gold.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 3len
7..14
|
|
overallexperience
VARCHAR
|
Post-resolution survey field for overall experience. Sparse (<1% of rows) -- see [docs/limitations/2024-survey-columns-sparse.md](../../../docs/limitations/2024-survey-columns-sparse.md).
rows
1,224,700 · non-null 8,318 (0.7%) · distinct 8len
3..34
|
|
public_space_cleanliness_and_environmental_health
VARCHAR
|
Department tag stored as VARCHAR '0' or '1'. Cast to BOOLEAN in gold (`is_public_space_tag`). Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2len
1..1
|
|
reliable_service_delivery
VARCHAR
|
Department tag stored as VARCHAR '0' or '1'. Cast to BOOLEAN in gold (`is_reliable_service_tag`). Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2len
1..1
|
|
type
VARCHAR
|
Leaf level of the source classification/category/type hierarchy. Becomes `request_type` in gold.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 352len
3..64
|
|
voting_and_election_information
VARCHAR
|
Department tag stored as VARCHAR '0' or '1'. Cast to BOOLEAN in gold (`is_voting_tag`). Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2len
1..1
|
|
ward
VARCHAR
|
Somerville ward 1-7 as VARCHAR. NULL when unknown.
rows
1,224,700 · non-null 759,598 (62.0%) · distinct 7len
1..1
|
main_bronze.raw_somerville_at_a_glance
|
_dlt_id
VARCHAR
|
dlt row identifier -- retained at every layer for source-to-pipeline lineage.
rows
749 · non-null 749 (100.0%) · distinct 749len
14..14
|
|
_dlt_load_id
VARCHAR
|
dlt load identifier -- retained at every layer for source-to-pipeline lineage.
rows
749 · non-null 749 (100.0%) · distinct 1len
18..18
|
|
_extracted_at
TIMESTAMP WITH TIME ZONE
|
**PIPELINE METADATA.** UTC timestamp of the run that touched the row.
rows
749 · non-null 749 (100.0%) · distinct 1dates
2026-05-15 → 2026-05-15 |
|
_extracted_run_id
VARCHAR
|
**PIPELINE METADATA.** ULID of the manual ingestion run.
rows
749 · non-null 749 (100.0%) · distinct 1len
26..26
|
|
_source_endpoint
VARCHAR
|
**PIPELINE METADATA.** Source SODA URL.
rows
749 · non-null 749 (100.0%) · distinct 1len
53..53
|
|
description
VARCHAR
|
Sub-label within the topic identifying the exact metric variant (e.g. "Total Population", "30-Year Fixed Median Rent"). Use together with `topic` for human-readable axis labels.
rows
749 · non-null 749 (100.0%) · distinct 81len
6..57
|
|
geography
VARCHAR
|
Comparison geography. "Somerville" for the city; "Massachusetts" for the state comparator.
rows
749 · non-null 749 (100.0%) · distinct 2len
10..13
|
|
topic
VARCHAR
|
Top-level metric grouping (e.g. "Population", "Median Rent Overtime", "Educational Attainment"). 25 distinct values.
rows
749 · non-null 749 (100.0%) · distinct 25len
7..32
|
|
units
VARCHAR
|
Unit of measure for `value` (e.g. "People", "USD", "Percent"). Source-provided; not a normalized vocabulary.
rows
749 · non-null 749 (100.0%) · distinct 5len
4..7
|
|
value
VARCHAR
|
Numeric metric value in the unit named by `units`. Population: people; rent / income: USD; percentages: 0-100.
rows
749 · non-null 749 (100.0%) · distinct 491len
1..9
|
|
year
VARCHAR
|
Calendar year for the metric value. 1850-2024 range; most topics 2010-2023 (ACS), Population goes back to 1850.
rows
749 · non-null 749 (100.0%) · distinct 31len
4..4
|
main_bronze.raw_somerville_crime
|
_dlt_id
VARCHAR
|
dlt row identifier -- retained at every layer for source-to-pipeline lineage.
rows
23,448 · non-null 23,448 (100.0%) · distinct 23,448len
14..14
|
|
_dlt_load_id
VARCHAR
|
dlt load identifier -- retained at every layer for source-to-pipeline lineage.
rows
23,448 · non-null 23,448 (100.0%) · distinct 1len
18..18
|
|
_extracted_at
TIMESTAMP WITH TIME ZONE
|
**PIPELINE METADATA.** UTC timestamp of the run that touched the row.
rows
23,448 · non-null 23,448 (100.0%) · distinct 1dates
2026-10-03 → 2026-10-03 |
|
_extracted_run_id
VARCHAR
|
**PIPELINE METADATA.** ULID of the pipeline run.
rows
23,448 · non-null 23,448 (100.0%) · distinct 1len
26..26
|
|
_first_seen_at
TIMESTAMP
|
**PIPELINE METADATA.** UTC timestamp when this row was first ingested. Preserved across re-extractions.
rows
23,448 · non-null 23,448 (100.0%) · distinct 1dates
2026-10-03 → 2026-10-03 |
|
_source_endpoint
VARCHAR
|
**PIPELINE METADATA.** Source SODA URL.
rows
23,448 · non-null 23,448 (100.0%) · distinct 1len
53..53
|
|
blockcode
VARCHAR
|
Fixed-length 15-character census block code (state + county + tract + block + suffix). Geographic granularity floor -- ~750 blocks across Somerville.
rows
23,448 · non-null 20,650 (88.1%) · distinct 679len
15..15
|
|
category
VARCHAR
|
Top-level NIBRS category. One of "Crimes against Property" / "Crimes against Person" / "Crimes against Society" / "Other".
rows
23,448 · non-null 23,448 (100.0%) · distinct 4len
5..23
|
|
day_and_month
VARCHAR
|
Calendar day + month (e.g. "1/9"). NULL or blank for sensitive incidents stripped of time at source.
rows
23,448 · non-null 20,650 (88.1%) · distinct 366len
3..5
|
|
incdesc
VARCHAR
|
NIBRS standard definition of the offense type. Generic legal text, not victim-specific narrative.
rows
23,448 · non-null 23,448 (100.0%) · distinct 40len
61..499
|
|
incnum
VARCHAR
|
Incident number -- case identifier from SPD records management. Primary key from source; the dlt merge key.
rows
23,448 · non-null 23,448 (100.0%) · distinct 23,448len
8..9
|
|
offense
VARCHAR
|
Offense type label.
rows
23,448 · non-null 23,448 (100.0%) · distinct 40len
5..31
|
|
offensecode
VARCHAR
|
Three-character NIBRS offense code.
rows
23,448 · non-null 23,448 (100.0%) · distinct 40len
3..19
|
|
offensetype
VARCHAR
|
Sub-category grouping similar offense types.
rows
23,448 · non-null 23,448 (100.0%) · distinct 29len
5..30
|
|
police_shift
VARCHAR
|
Shift during which the incident was reported (e.g. "First Half (4PM - Midnight)").
rows
23,448 · non-null 20,650 (88.1%) · distinct 3len
21..27
|
|
ward
VARCHAR
|
Ward number (1-7) -- **space-padded to length 15 in source** (e.g. "1 "). Trim at join to gold dim_ward.ward. NULL for ~13% of rows.
rows
23,448 · non-null 20,532 (87.6%) · distinct 8len
15..15
|
|
year
VARCHAR
|
Year the incident was reported (VARCHAR; source values "2017"-"2026" as of 2026-05-13).
rows
23,448 · non-null 23,448 (100.0%) · distinct 10len
4..4
|
main_bronze.raw_somerville_happiness_survey
|
_dlt_id
VARCHAR
|
dlt row identifier -- retained at every layer for source-to-pipeline lineage.
rows
12,583 · non-null 12,583 (100.0%) · distinct 12,583len
14..14
|
|
_dlt_load_id
VARCHAR
|
dlt load identifier -- retained at every layer for source-to-pipeline lineage.
rows
12,583 · non-null 12,583 (100.0%) · distinct 1len
17..17
|
|
_extracted_at
TIMESTAMP WITH TIME ZONE
|
**PIPELINE METADATA.** UTC timestamp of the run that touched the row.
rows
12,583 · non-null 12,583 (100.0%) · distinct 1dates
2026-05-15 → 2026-05-15 |
|
_extracted_run_id
VARCHAR
|
**PIPELINE METADATA.** ULID of the manual ingestion run.
rows
12,583 · non-null 12,583 (100.0%) · distinct 1len
26..26
|
|
_source_endpoint
VARCHAR
|
**PIPELINE METADATA.** Source SODA URL.
rows
12,583 · non-null 12,583 (100.0%) · distinct 1len
53..53
|
|
acs_somerville_avg_household
VARCHAR
|
ACS Somerville average household size for the respondent's tract / `census_year`.
rows
12,583 · non-null 12,583 (100.0%) · distinct 7len
3..4
|
|
acs_somerville_median_income
VARCHAR
|
ACS Somerville median household income for the respondent's census tract / `census_year`.
rows
12,583 · non-null 12,583 (100.0%) · distinct 8len
5..6
|
|
adult_education_learning_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,360 (10.8%) · distinct 6len
7..16
|
|
adult_education_learning_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 645 (5.1%) · distinct 5len
1..1
|
|
adults_in_household
VARCHAR
|
rows
12,583 · non-null 1,351 (10.7%) · distinct 7len
7..20
|
|
age
VARCHAR
|
Self-reported age bucket (e.g. "35 to 44"). Bucketed at source to reduce quasi-identifier risk.
rows
12,583 · non-null 11,734 (93.3%) · distinct 9len
8..20
|
|
air_pollution_concern_label
VARCHAR
|
rows
12,583 · non-null 1,380 (11.0%) · distinct 4len
8..18
|
|
air_pollution_concern_num
VARCHAR
|
rows
12,583 · non-null 1,336 (10.6%) · distinct 3len
1..1
|
|
availability_childcare_0_4_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,366 (10.9%) · distinct 6len
7..16
|
|
availability_childcare_0_4_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 489 (3.9%) · distinct 5len
1..1
|
|
availability_ost_activities_6_8_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,360 (10.8%) · distinct 6len
7..16
|
|
availability_ost_activities_6_8_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 410 (3.3%) · distinct 5len
1..1
|
|
availability_ost_activities_9_12_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,354 (10.8%) · distinct 6len
7..16
|
|
availability_ost_activities_9_12_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 399 (3.2%) · distinct 5len
1..1
|
|
availability_ost_care_pk_5_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,361 (10.8%) · distinct 6len
7..16
|
|
availability_ost_care_pk_5_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 448 (3.6%) · distinct 5len
1..1
|
|
basic_needs_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,380 (11.0%) · distinct 6len
7..16
|
|
basic_needs_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,368 (10.9%) · distinct 5len
1..1
|
|
beauty_neighborhood_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 6,290 (50.0%) · distinct 6len
7..16
|
|
beauty_neighborhood_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 6,284 (49.9%) · distinct 5len
1..1
|
|
bedrooms
VARCHAR
|
rows
12,583 · non-null 2,296 (18.2%) · distinct 8len
9..25
|
|
buildings_maintenance_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,380 (11.0%) · distinct 6len
7..16
|
|
buildings_maintenance_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,184 (9.4%) · distinct 5len
1..1
|
|
built_environment_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,381 (11.0%) · distinct 6len
7..16
|
|
built_environment_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,370 (10.9%) · distinct 5len
1..1
|
|
cars
VARCHAR
|
rows
12,583 · non-null 2,300 (18.3%) · distinct 7len
5..20
|
|
census_year
VARCHAR
|
ACS reference year for the per-respondent ACS-context columns below.
rows
12,583 · non-null 12,583 (100.0%) · distinct 8len
4..4
|
|
children_in_household
VARCHAR
|
rows
12,583 · non-null 1,272 (10.1%) · distinct 7len
7..20
|
|
children_yn
VARCHAR
|
rows
12,583 · non-null 5,955 (47.3%) · distinct 2len
1..1
|
|
city_processes_visible_label
VARCHAR
|
rows
12,583 · non-null 1,378 (11.0%) · distinct 6len
5..17
|
|
city_processes_visible_num
VARCHAR
|
rows
12,583 · non-null 1,306 (10.4%) · distinct 5len
1..1
|
|
city_services_facilities_accessibility_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,361 (10.8%) · distinct 6len
7..16
|
|
city_services_facilities_accessibility_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 654 (5.2%) · distinct 5len
1..1
|
|
city_services_information_availability_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 6,059 (48.2%) · distinct 6len
7..16
|
|
city_services_information_availability_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 5,960 (47.4%) · distinct 5len
1..1
|
|
city_services_quality_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 2,370 (18.8%) · distinct 6len
7..16
|
|
city_services_quality_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 2,344 (18.6%) · distinct 5len
1..1
|
|
civic_participation_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,376 (10.9%) · distinct 6len
7..16
|
|
civic_participation_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,261 (10.0%) · distinct 5len
1..1
|
|
crossing_street_safety_concern_label
VARCHAR
|
rows
12,583 · non-null 2,376 (18.9%) · distinct 4len
8..18
|
|
crossing_street_safety_concern_num
VARCHAR
|
rows
12,583 · non-null 2,366 (18.8%) · distinct 3len
1..1
|
|
cultural_religious_minority_yn
VARCHAR
|
rows
12,583 · non-null 2,039 (16.2%) · distinct 2len
1..1
|
|
describe_yourself_prefer_not_to_answer_yn
VARCHAR
|
rows
12,583 · non-null 2,226 (17.7%) · distinct 2len
1..1
|
|
different_backgrounds_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,384 (11.0%) · distinct 6len
7..16
|
|
different_backgrounds_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,337 (10.6%) · distinct 5len
1..1
|
|
difficulty_paying_food_yn
VARCHAR
|
rows
12,583 · non-null 2,232 (17.7%) · distinct 2len
1..1
|
|
difficulty_paying_healthcare_yn
VARCHAR
|
rows
12,583 · non-null 1,256 (10.0%) · distinct 2len
1..1
|
|
difficulty_paying_housing_yn
VARCHAR
|
rows
12,583 · non-null 2,232 (17.7%) · distinct 2len
1..1
|
|
difficulty_paying_other_yn
VARCHAR
|
rows
12,583 · non-null 2,232 (17.7%) · distinct 2len
1..1
|
|
difficulty_paying_prefer_not_to_answer_yn
VARCHAR
|
rows
12,583 · non-null 2,303 (18.3%) · distinct 2len
1..1
|
|
difficulty_paying_utilities_yn
VARCHAR
|
rows
12,583 · non-null 2,232 (17.7%) · distinct 2len
1..1
|
|
difficulty_paying_yn
VARCHAR
|
rows
12,583 · non-null 2,232 (17.7%) · distinct 2len
1..1
|
|
disability_yn
VARCHAR
|
rows
12,583 · non-null 3,298 (26.2%) · distinct 2len
1..1
|
|
education_quality_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 8,736 (69.4%) · distinct 6len
7..16
|
|
education_quality_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 7,971 (63.3%) · distinct 5len
1..1
|
|
efforts_become_more_modern_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,370 (10.9%) · distinct 6len
7..16
|
|
efforts_become_more_modern_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,208 (9.6%) · distinct 5len
1..1
|
|
efforts_decrease_rats_mice_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,370 (10.9%) · distinct 6len
7..16
|
|
efforts_decrease_rats_mice_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,193 (9.5%) · distinct 5len
1..1
|
|
efforts_reducing_ghg_emissions_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,359 (10.8%) · distinct 6len
7..16
|
|
efforts_reducing_ghg_emissions_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,138 (9.0%) · distinct 5len
1..1
|
|
emergency_response_quality_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,367 (10.9%) · distinct 6len
7..16
|
|
emergency_response_quality_satisfaction_num
VARCHAR
|
Satisfaction with emergency response, 1-5 Likert.
rows
12,583 · non-null 1,025 (8.1%) · distinct 5len
1..1
|
|
encourage_commercial_development_label
VARCHAR
|
rows
12,583 · non-null 1,372 (10.9%) · distinct 6len
5..17
|
|
encourage_commercial_development_num
VARCHAR
|
rows
12,583 · non-null 1,226 (9.7%) · distinct 5len
1..1
|
|
enjoy_create_art_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,381 (11.0%) · distinct 6len
7..16
|
|
enjoy_create_art_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,250 (9.9%) · distinct 5len
1..1
|
|
feel_part_community_label
VARCHAR
|
rows
12,583 · non-null 1,383 (11.0%) · distinct 5len
5..17
|
|
feel_part_community_num
VARCHAR
|
rows
12,583 · non-null 1,383 (11.0%) · distinct 5len
1..1
|
|
feel_safe_somerville_label
VARCHAR
|
rows
12,583 · non-null 1,381 (11.0%) · distinct 5len
5..17
|
|
feel_safe_somerville_num
VARCHAR
|
Sense of safety in Somerville, 1-5 Likert. Pairs with crime + traffic-citations data once joined.
rows
12,583 · non-null 1,381 (11.0%) · distinct 5len
1..1
|
|
gender
VARCHAR
|
Self-reported gender. Open-ended values bucketed at source (Man / Woman / Non-binary / Prefer not to answer / etc.).
rows
12,583 · non-null 12,048 (95.7%) · distinct 4len
3..20
|
|
getting_around_convenience_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 5,120 (40.7%) · distinct 6len
7..16
|
|
getting_around_convenience_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 5,114 (40.6%) · distinct 5len
1..1
|
|
grocery_access_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,379 (11.0%) · distinct 6len
7..16
|
|
grocery_access_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,375 (10.9%) · distinct 5len
1..1
|
|
happiness_label
VARCHAR
|
Headline happiness label paired with `happiness_num`.
rows
12,583 · non-null 12,232 (97.2%) · distinct 5len
5..12
|
|
happiness_num
VARCHAR
|
Headline happiness score, 1-5 Likert (1 = very unhappy, 5 = very happy).
rows
12,583 · non-null 12,232 (97.2%) · distinct 5len
1..1
|
|
health_services_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,381 (11.0%) · distinct 6len
7..16
|
|
health_services_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,349 (10.7%) · distinct 5len
1..1
|
|
heard_by_city_label
VARCHAR
|
rows
12,583 · non-null 1,384 (11.0%) · distinct 6len
5..17
|
|
heard_by_city_num
VARCHAR
|
Feels heard by the city, 1-5 Likert. Pairs with 311 responsiveness measures.
rows
12,583 · non-null 1,283 (10.2%) · distinct 5len
1..1
|
|
highest_level_education
VARCHAR
|
Highest education level attained.
rows
12,583 · non-null 1,376 (10.9%) · distinct 6len
5..48
|
|
household_income
VARCHAR
|
Household income bucket. Bucketed at source.
rows
12,583 · non-null 11,442 (90.9%) · distinct 8len
16..20
|
|
household_size
VARCHAR
|
rows
12,583 · non-null 2,240 (17.8%) · distinct 7len
8..20
|
|
housing_condition_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 5,075 (40.3%) · distinct 6len
7..16
|
|
housing_condition_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 5,070 (40.3%) · distinct 5len
1..1
|
|
housing_options_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,370 (10.9%) · distinct 6len
7..16
|
|
housing_options_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,316 (10.5%) · distinct 5len
1..1
|
|
housing_status
VARCHAR
|
Renter / Owner / Other. Demographic anchor for housing-affordability questions.
rows
12,583 · non-null 6,036 (48.0%) · distinct 4len
3..20
|
|
id
VARCHAR
|
Respondent-response ID. Primary key from source; year-prefixed integer (sample: 1100001 = 2011 respondent #00001).
rows
12,583 · non-null 12,583 (100.0%) · distinct 12,583len
7..7
|
|
immigrant_yn
VARCHAR
|
rows
12,583 · non-null 2,039 (16.2%) · distinct 2len
1..1
|
|
inflation_adjustment
VARCHAR
|
Multiplier to convert this row's income figures to a common reference year (typically the latest wave).
rows
12,583 · non-null 12,583 (100.0%) · distinct 8len
1..6
|
|
information_vote_label
VARCHAR
|
rows
12,583 · non-null 1,383 (11.0%) · distinct 6len
5..17
|
|
information_vote_num
VARCHAR
|
rows
12,583 · non-null 1,337 (10.6%) · distinct 5len
1..1
|
|
language_spoken
VARCHAR
|
Primary language spoken at home (separate from `survey_language` -- some respondents take an English survey but speak another language at home).
rows
12,583 · non-null 5,459 (43.4%) · distinct 3len
12..29
|
|
lgbtqia_yn
VARCHAR
|
rows
12,583 · non-null 2,039 (16.2%) · distinct 2len
1..1
|
|
life_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 12,339 (98.1%) · distinct 6len
7..16
|
|
life_satisfaction_num
VARCHAR
|
Life-satisfaction score, 1-5 Likert.
rows
12,583 · non-null 12,332 (98.0%) · distinct 5len
1..1
|
|
likely_cost_burdened
VARCHAR
|
Derived 0/1 flag: respondent likely spends >30% of income on housing.
rows
12,583 · non-null 1,835 (14.6%) · distinct 2len
1..1
|
|
likely_low_income
VARCHAR
|
Derived 0/1 flag: respondent is likely below the local low-income threshold based on income + household size.
rows
12,583 · non-null 1,866 (14.8%) · distinct 2len
1..1
|
|
neighbors_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 2,378 (18.9%) · distinct 6len
7..16
|
|
neighbors_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 2,334 (18.5%) · distinct 5len
1..1
|
|
neurodivergent_yn
VARCHAR
|
rows
12,583 · non-null 1,166 (9.3%) · distinct 2len
1..1
|
|
parks_proximity_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,382 (11.0%) · distinct 6len
7..16
|
|
parks_proximity_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,361 (10.8%) · distinct 5len
1..1
|
|
priced_out_concern_label
VARCHAR
|
rows
12,583 · non-null 2,372 (18.9%) · distinct 4len
8..18
|
|
priced_out_concern_num
VARCHAR
|
rows
12,583 · non-null 2,327 (18.5%) · distinct 3len
1..1
|
|
public_spaces_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,379 (11.0%) · distinct 6len
7..16
|
|
public_spaces_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,358 (10.8%) · distinct 5len
1..1
|
|
race_ethnicity
VARCHAR
|
Self-reported race / ethnicity. Open-ended.
rows
12,583 · non-null 11,981 (95.2%) · distinct 7len
5..25
|
|
rats_mice_concern_label
VARCHAR
|
rows
12,583 · non-null 2,383 (18.9%) · distinct 4len
8..18
|
|
rats_mice_concern_num
VARCHAR
|
Concern about rats / mice, 1-5 Likert. Pairs directly with the rat-complaints data app and 311 rodent requests.
rows
12,583 · non-null 2,343 (18.6%) · distinct 3len
1..1
|
|
relief_heat_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,376 (10.9%) · distinct 6len
7..16
|
|
relief_heat_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,309 (10.4%) · distinct 5len
1..1
|
|
rent_mortgage
VARCHAR
|
rows
12,583 · non-null 2,085 (16.6%) · distinct 11len
19..26
|
|
repurpose_street_parking_label
VARCHAR
|
rows
12,583 · non-null 1,376 (10.9%) · distinct 6len
5..17
|
|
repurpose_street_parking_num
VARCHAR
|
rows
12,583 · non-null 1,342 (10.7%) · distinct 5len
1..1
|
|
restaurants_shops_businesses_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,381 (11.0%) · distinct 6len
7..16
|
|
restaurants_shops_businesses_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,373 (10.9%) · distinct 5len
1..1
|
|
social_community_events_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 5,373 (42.7%) · distinct 6len
7..16
|
|
social_community_events_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 5,265 (41.8%) · distinct 5len
1..1
|
|
somerville_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 12,223 (97.1%) · distinct 6len
7..16
|
|
somerville_satisfaction_num
VARCHAR
|
Satisfaction with Somerville as a place to live, 1-5 Likert.
rows
12,583 · non-null 12,216 (97.1%) · distinct 5len
1..1
|
|
streets_layout_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,385 (11.0%) · distinct 6len
7..16
|
|
streets_layout_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,382 (11.0%) · distinct 5len
1..1
|
|
streets_maintenance_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 6,313 (50.2%) · distinct 6len
7..16
|
|
streets_maintenance_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 6,299 (50.1%) · distinct 5len
1..1
|
|
student_yn
VARCHAR
|
rows
12,583 · non-null 5,782 (46.0%) · distinct 2len
1..1
|
|
survey_language
VARCHAR
|
Language the respondent took the survey in (English, Spanish, Portuguese, Haitian Creole observed in recent waves).
rows
12,583 · non-null 6,133 (48.7%) · distinct 2len
7..16
|
|
survey_method
VARCHAR
|
Paper, Online, Phone, etc. -- channel through which the response was collected.
rows
12,583 · non-null 12,583 (100.0%) · distinct 2len
5..6
|
|
tenure
VARCHAR
|
Length of Somerville residency, bucketed.
rows
12,583 · non-null 5,909 (47.0%) · distinct 8len
12..20
|
|
tract
VARCHAR
|
Census tract identifier. Geographic granularity below ward when populated; sparse across waves.
rows
12,583 · non-null 1,385 (11.0%) · distinct 25len
11..11
|
|
transportation_bicycle_yn
VARCHAR
|
rows
12,583 · non-null 3,819 (30.4%) · distinct 2len
1..1
|
|
transportation_car_yn
VARCHAR
|
rows
12,583 · non-null 3,819 (30.4%) · distinct 2len
1..1
|
|
transportation_other_yn
VARCHAR
|
rows
12,583 · non-null 2,355 (18.7%) · distinct 2len
1..1
|
|
transportation_prefer_not_to_answer_yn
VARCHAR
|
rows
12,583 · non-null 3,829 (30.4%) · distinct 2len
1..1
|
|
transportation_public_transit_yn
VARCHAR
|
rows
12,583 · non-null 3,819 (30.4%) · distinct 2len
1..1
|
|
transportation_rideshare_yn
VARCHAR
|
rows
12,583 · non-null 2,355 (18.7%) · distinct 2len
1..1
|
|
transportation_walk_yn
VARCHAR
|
rows
12,583 · non-null 3,819 (30.4%) · distinct 2len
1..1
|
|
veteran_yn
VARCHAR
|
rows
12,583 · non-null 2,039 (16.2%) · distinct 2len
1..1
|
|
veterans_in_household
VARCHAR
|
rows
12,583 · non-null 1,349 (10.7%) · distinct 4len
2..20
|
|
ward
VARCHAR
|
Ward 1-7 (text type from source). NULL for ~50% of rows (all 2011 + a few elsewhere -- the 2011 wave did not collect ward). Required join key to gold dim_ward when not NULL.
rows
12,583 · non-null 6,358 (50.5%) · distinct 7len
1..1
|
|
water_sewer_reliability_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,360 (10.8%) · distinct 6len
7..16
|
|
water_sewer_reliability_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,327 (10.5%) · distinct 5len
1..1
|
|
work_opportunities_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,371 (10.9%) · distinct 6len
7..16
|
|
work_opportunities_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 1,138 (9.0%) · distinct 5len
1..1
|
|
year
VARCHAR
|
Survey wave year. Biennial: 2011, 2013, 2015, 2017, 2019, 2021, 2023, 2025.
rows
12,583 · non-null 12,583 (100.0%) · distinct 8len
4..4
|
|
youth_workforce_readiness_satisfaction_label
VARCHAR
|
rows
12,583 · non-null 1,359 (10.8%) · distinct 6len
7..16
|
|
youth_workforce_readiness_satisfaction_num
VARCHAR
|
rows
12,583 · non-null 435 (3.5%) · distinct 5len
1..1
|
main_bronze.raw_somerville_permits
|
_dlt_id
VARCHAR
|
dlt row identifier -- retained at every layer for source-to-pipeline lineage.
rows
64,521 · non-null 64,521 (100.0%) · distinct 64,521len
14..14
|
|
_dlt_load_id
VARCHAR
|
dlt load identifier -- retained at every layer for source-to-pipeline lineage.
rows
64,521 · non-null 64,521 (100.0%) · distinct 1len
18..18
|
|
_extracted_at
TIMESTAMP WITH TIME ZONE
|
**PIPELINE METADATA.** UTC timestamp of the run that touched the row.
rows
64,521 · non-null 64,521 (100.0%) · distinct 1dates
2026-05-15 → 2026-05-15 |
|
_extracted_run_id
VARCHAR
|
**PIPELINE METADATA.** ULID of the manual ingestion run.
rows
64,521 · non-null 64,521 (100.0%) · distinct 1len
26..26
|
|
_source_endpoint
VARCHAR
|
**PIPELINE METADATA.** Source SODA URL.
rows
64,521 · non-null 64,521 (100.0%) · distinct 1len
53..53
|
|
address
VARCHAR
|
Property address (public information for permits). Not an applicant identifier.
rows
64,521 · non-null 64,521 (100.0%) · distinct 13,766len
0..99 · empty strings 1
|
|
amount
VARCHAR
|
Permit fee amount in USD. Numeric.
rows
64,521 · non-null 64,521 (100.0%) · distinct 3,394len
4..10
|
|
application_date
TIMESTAMP WITH TIME ZONE
|
Date the permit application was submitted (calendar_date from source).
rows
64,521 · non-null 64,521 (100.0%) · distinct 3,184dates
2014-02-13 → 2023-05-15 · span 3,378 days |
|
id
VARCHAR
|
Permit ID, year-prefixed (e.g. "B14-001277" = Building 2014 #001277). Primary key from source.
rows
64,521 · non-null 64,521 (100.0%) · distinct 64,521len
10..12
|
|
issue_date
TIMESTAMP WITH TIME ZONE
|
Date the permit was issued. May be NULL for non-issued applications (Withdrawn, Denied, Under Review).
rows
64,521 · non-null 64,521 (100.0%) · distinct 2,294dates
2014-05-21 → 2023-10-24 · span 3,443 days |
|
latitude
VARCHAR
|
Geocoded latitude (WGS84). Precise enough for point-in-polygon spatial join to dim_ward.
rows
64,521 · non-null 64,521 (100.0%) · distinct 10,684len
1..19
|
|
longitude
VARCHAR
|
Geocoded longitude (WGS84).
rows
64,521 · non-null 64,513 (100.0%) · distinct 10,140len
1..19
|
|
status
VARCHAR
|
Permit status. Mostly "Issued" (~97%). Known data quality issue: some rows carry dates as status values (e.g. "08/17/2022"). 21 rows have NULL status. See limitations entry.
rows
64,521 · non-null 64,500 (100.0%) · distinct 18len
0..25 · empty strings 6
|
|
type
VARCHAR
|
Permit type. 20+ values observed; mostly "Residential Building" (~73%) and "Commercial Building" (~15%). No `accepted_values` test -- long tail acceptable. **11 rows have NULL type** (data quality issue at source); no `not_null` test for this reason -- see limitations entry.
rows
64,521 · non-null 64,510 (100.0%) · distinct 28len
5..32
|
|
work
VARCHAR
|
Freeform description of permitted work (e.g. "Remove and replace 1500 sf of roofing"). Occasionally includes street numbers in the text; no applicant names observed.
rows
64,521 · non-null 64,473 (99.9%) · distinct 49,052len
2..1486
|
main_bronze.raw_somerville_traffic_citations
|
_dlt_id
VARCHAR
|
dlt row identifier -- retained at every layer for source-to-pipeline lineage.
rows
73,038 · non-null 73,038 (100.0%) · distinct 73,038len
14..14
|
|
_dlt_load_id
VARCHAR
|
dlt load identifier -- retained at every layer for source-to-pipeline lineage.
rows
73,038 · non-null 73,038 (100.0%) · distinct 1len
18..18
|
|
_extracted_at
TIMESTAMP WITH TIME ZONE
|
**PIPELINE METADATA.** UTC timestamp of the run that touched the row.
rows
73,038 · non-null 73,038 (100.0%) · distinct 1dates
2026-10-03 → 2026-10-03 |
|
_extracted_run_id
VARCHAR
|
**PIPELINE METADATA.** ULID of the pipeline run.
rows
73,038 · non-null 73,038 (100.0%) · distinct 1len
26..26
|
|
_first_seen_at
TIMESTAMP
|
**PIPELINE METADATA.** UTC timestamp when this row was first ingested. Preserved across re-extractions.
rows
73,038 · non-null 73,038 (100.0%) · distinct 1dates
2026-10-03 → 2026-10-03 |
|
_source_endpoint
VARCHAR
|
**PIPELINE METADATA.** Source SODA URL.
rows
73,038 · non-null 73,038 (100.0%) · distinct 1len
53..53
|
|
address
VARCHAR
|
Address of violation. Intersection-level text (e.g. "RTE 28 & RTE 38 Somerville, MA") -- not a street number. Use `lat`/`long` for precise location.
rows
73,038 · non-null 73,038 (100.0%) · distinct 4,386len
18..55
|
|
blockcode
VARCHAR
|
Census block code at the violation location (matches the crime data convention).
rows
73,038 · non-null 73,038 (100.0%) · distinct 622len
15..15
|
|
chgcategory
VARCHAR
|
Top-level violation category (109 distinct values; high-cardinality, no accepted_values test).
rows
73,038 · non-null 51,704 (70.8%) · distinct 109len
19..68
|
|
chgcode
VARCHAR
|
Massachusetts General Laws violation code (e.g. "90/13B" = MGL Ch 90 Sec 13B = electronic device use while driving). Source value is space-padded.
rows
73,038 · non-null 73,038 (100.0%) · distinct 135len
15..15
|
|
chgdesc
VARCHAR
|
Plain-language violation description.
rows
73,038 · non-null 73,038 (100.0%) · distinct 134len
16..75
|
|
citationnum
VARCHAR
|
Citation number + violation suffix (e.g. "T2725339-1"). Primary key from source; the dlt merge key. Each row is one violation; a citation with N violations has N rows with N distinct citationnum values.
rows
73,038 · non-null 73,038 (100.0%) · distinct 73,038len
3..17
|
|
dtissued
TIMESTAMP WITH TIME ZONE
|
Timestamp the citation was issued (text from source; cast to TIMESTAMP in silver).
rows
73,038 · non-null 73,038 (100.0%) · distinct 62,259dates
2017-01-01 → 2026-09-02 · span 3,531 days |
|
lat
VARCHAR
|
Geocoded latitude (text from source; cast to DOUBLE in silver). Precise enough for point-in-polygon ward joins independent of the `ward` column.
rows
73,038 · non-null 73,038 (100.0%) · distinct 398len
4..7
|
|
long
VARCHAR
|
Geocoded longitude (text from source).
rows
73,038 · non-null 73,038 (100.0%) · distinct 566len
5..8
|
|
mphzone
VARCHAR
|
Posted speed limit at the violation location, for speeding violations.
rows
73,038 · non-null 13,010 (17.8%) · distinct 25len
1..3
|
|
police_shift
VARCHAR
|
Shift during which the citation was issued (e.g. "Day Shift (8AM - 4PM)").
rows
73,038 · non-null 73,038 (100.0%) · distinct 3len
21..27
|
|
vehiclemph
VARCHAR
|
Speed of vehicle in mph for speeding violations; NULL for non-speeding (most warnings).
rows
73,038 · non-null 13,016 (17.8%) · distinct 65len
1..5
|
|
ward
VARCHAR
|
Ward 1-7 from source. NULL for ~0.12% of rows (84 of 67,311).
rows
73,038 · non-null 72,952 (99.9%) · distinct 7len
1..1
|
|
warning
VARCHAR
|
Y if the citation was issued as a written warning (no fine); N if it carries a monetary fine. ~76% warnings, ~24% fines.
rows
73,038 · non-null 73,038 (100.0%) · distinct 2len
1..1
|
main_bronze.raw_somerville_wards
|
_extracted_at
TIMESTAMP
|
**PIPELINE METADATA.** UTC timestamp when the shapefile was loaded.
rows
7 · non-null 7 (100.0%) · distinct 1dates
2026-05-13 → 2026-05-13 |
|
_source_filename
VARCHAR
|
**PIPELINE METADATA.** Source shapefile filename inside the Socrata ZIP blob.
rows
7 · non-null 7 (100.0%) · distinct 1len
9..9
|
|
_source_srid
VARCHAR
|
**PIPELINE METADATA.** Source projection identifier. Static `EPSG:2249` for this dataset.
rows
7 · non-null 7 (100.0%) · distinct 1len
9..9
|
|
_source_url
VARCHAR
|
**PIPELINE METADATA.** Canonical Socrata permalink for the source dataset.
rows
7 · non-null 7 (100.0%) · distinct 1len
41..41
|
|
geometry_wkt_source
VARCHAR
|
Polygon geometry as WKT in source projection (EPSG:2249). Retained for round-trip back to shapefile + projection-aware spatial joins.
rows
7 · non-null 7 (100.0%) · distinct 7len
5040..14243
|
|
geometry_wkt_wgs84
VARCHAR
|
Polygon geometry as WKT in WGS84 (EPSG:4326). Lat/lng-friendly; the analyst-facing geometry column.
rows
7 · non-null 7 (100.0%) · distinct 7len
5140..14516
|
|
object_id
INTEGER
|
ESRI internal OBJECTID. Pipeline metadata; not for analysis.
rows
7 · non-null 7 (100.0%) · distinct 7range
1..7 · mean 4.00 · p50 4, p95 6.7 |
|
ogc_fid
INTEGER
|
OGC feature id assigned by the spatial reader. Pipeline metadata; not for analysis.
rows
7 · non-null 7 (100.0%) · distinct 7range
0..6 · mean 3.00 · p50 3, p95 5.7 · zeros 1 |
|
shape_area_sqftus
DOUBLE
|
Polygon area in square US survey feet (source projection unit). Gold layer converts to sq km.
rows
7 · non-null 7 (100.0%) · distinct 7range
1.36808e+07..2.88832e+07 · mean 16820058.46 · p50 1.45066e+07, p95 2.5619e+07 |
|
shape_length_ftus
DOUBLE
|
Polygon perimeter length in US survey feet (source projection unit). Gold layer converts to meters.
rows
7 · non-null 7 (100.0%) · distinct 7range
20326.8..28680.7 · mean 23077.47 · p50 21213.6, p95 28338.2 |
|
ward_number
INTEGER
|
Ward number (1-7). Joins to `fct_311_requests.ward` (which stores ward as VARCHAR -- cast at the join).
rows
7 · non-null 7 (100.0%) · distinct 7range
1..7 · mean 4.00 · p50 4, p95 6.7 |
main_gold.dim_date
|
date_dt
DATE
|
Calendar date. Primary key for this dimension.
rows
4,140 · non-null 4,140 (100.0%) · distinct 4,140dates
2015-07-01 → 2026-10-30 · span 4,139 days |
|
day
INTEGER
|
Day of month 1-31.
rows
4,140 · non-null 4,140 (100.0%) · distinct 31range
1..31 · mean 15.73 · p50 16, p95 29 |
|
day_name
VARCHAR
|
Full English day name (Monday, Tuesday, ...).
rows
4,140 · non-null 4,140 (100.0%) · distinct 7len
6..9
|
|
day_of_week
INTEGER
|
Day-of-week index. DuckDB extract(dow): 0=Sunday, 6=Saturday.
rows
4,140 · non-null 4,140 (100.0%) · distinct 7range
0..6 · mean 3.00 · p50 3, p95 6 · zeros 591 |
|
fiscal_year
INTEGER
|
Fiscal year. Currently equals calendar year -- Somerville fiscal calendar mapping TBD.
rows
4,140 · non-null 4,140 (100.0%) · distinct 12range
2015..2026 · mean 2020.66 · p50 2021, p95 2026 |
|
is_weekend
BOOLEAN
|
Boolean -- TRUE for Saturday and Sunday.
rows
4,140 · non-null 4,140 (100.0%) · distinct 2true
28.6% |
|
month
INTEGER
|
Month number 1-12.
rows
4,140 · non-null 4,140 (100.0%) · distinct 12range
1..12 · mean 6.58 · p50 7, p95 12 |
|
month_name
VARCHAR
|
Full English month name (January, February, ...).
rows
4,140 · non-null 4,140 (100.0%) · distinct 12len
3..9
|
|
quarter
INTEGER
|
Calendar quarter 1-4.
rows
4,140 · non-null 4,140 (100.0%) · distinct 4range
1..4 · mean 2.53 · p50 3, p95 4 |
|
week_of_year
INTEGER
|
ISO week-of-year 1-53.
rows
4,140 · non-null 4,140 (100.0%) · distinct 53range
1..53 · mean 26.85 · p50 27, p95 50 |
|
year
INTEGER
|
Four-digit year (YYYY) extracted from date_dt.
rows
4,140 · non-null 4,140 (100.0%) · distinct 12range
2015..2026 · mean 2020.66 · p50 2021, p95 2026 |
main_gold.dim_kpi_topic
|
first_year
SMALLINT
|
Earliest year observed for this topic.
rows
25 · non-null 25 (100.0%) · distinct 6range
1850..2024 · mean 2008.84 · p50 2010, p95 2024 |
|
geography_count
BIGINT
|
Number of distinct geographies observed for this topic (typically 1 = Somerville-only, or 2 = Somerville + Massachusetts benchmark).
rows
25 · non-null 25 (100.0%) · distinct 2range
1..2 · mean 1.84 · p50 2, p95 2 |
|
has_massachusetts_benchmark
BOOLEAN
|
TRUE when the topic includes Massachusetts benchmark rows.
rows
25 · non-null 25 (100.0%) · distinct 2true
84.0% |
|
has_somerville_data
BOOLEAN
|
TRUE when the topic includes Somerville rows.
rows
25 · non-null 25 (100.0%) · distinct 1true
100.0% |
|
latest_year
SMALLINT
|
Most recent year observed for this topic.
rows
25 · non-null 25 (100.0%) · distinct 2range
2022..2024 · mean 2023.84 · p50 2024, p95 2024 |
|
observation_count
BIGINT
|
Total observations for this topic across all years and geographies.
rows
25 · non-null 25 (100.0%) · distinct 15range
6..75 · mean 29.96 · p50 30, p95 59.2 |
|
topic
VARCHAR
|
KPI topic name. Natural key.
rows
25 · non-null 25 (100.0%) · distinct 25len
7..32
|
main_gold.dim_offense_category
|
offense_category
VARCHAR
|
NIBRS top-level category name. PK.
rows
4 · non-null 4 (100.0%) · distinct 4len
5..23
|
|
severity_rank
INTEGER
|
Editorial ordinal -- 1=Person, 2=Property, 3=Society, 4=Other.
rows
4 · non-null 4 (100.0%) · distinct 4range
1..4 · mean 2.50 · p50 2.5, p95 3.85 |
main_gold.dim_offense_code
|
is_active
BOOLEAN
|
TRUE for all 39 rows today. Placeholder for future code retirement.
rows
40 · non-null 40 (100.0%) · distinct 1true
100.0% |
|
is_multi_offense_grouping
BOOLEAN
|
TRUE when offense_code is a multi-code grouping string (2 rows today). FALSE for atomic NIBRS codes (37 rows).
rows
40 · non-null 40 (100.0%) · distinct 2true
5.0% |
|
offense
VARCHAR
|
NIBRS offense name.
rows
40 · non-null 40 (100.0%) · distinct 40len
5..31
|
|
offense_category
VARCHAR
|
NIBRS top-level category.
rows
40 · non-null 40 (100.0%) · distinct 4len
5..23
|
|
offense_code
VARCHAR
|
NIBRS offense code or source-side grouping string. PK.
rows
40 · non-null 40 (100.0%) · distinct 40len
3..19
|
|
offense_type
VARCHAR
|
NIBRS offense type -- sub-category grouping.
rows
40 · non-null 40 (100.0%) · distinct 29len
5..30
|
main_gold.dim_request_type
|
first_seen_dt
DATE
|
Earliest date_created across all requests of this type.
rows
352 · non-null 352 (100.0%) · distinct 177dates
2015-07-01 → 2026-09-22 · span 4,101 days |
|
last_seen_dt
DATE
|
Most recent date_created across all requests of this type.
rows
352 · non-null 352 (100.0%) · distinct 121dates
2016-11-22 → 2026-09-30 · span 3,599 days |
|
request_count
BIGINT
|
Total number of requests of this type, all-time.
rows
352 · non-null 352 (100.0%) · distinct 299range
1..87257 · mean 3479.26 · p50 567, p95 16369.2 |
|
request_type
VARCHAR
|
Human-readable request type display value (sourced from bronze.type).
rows
352 · non-null 352 (100.0%) · distinct 352len
3..64
|
|
request_type_id
VARCHAR
|
Surrogate primary key -- md5 hash of request_type.
rows
352 · non-null 352 (100.0%) · distinct 352len
32..32
|
main_gold.dim_status
|
first_seen_dt
DATE
|
Earliest date_created among requests with this status.
rows
4 · non-null 4 (100.0%) · distinct 4dates
2015-07-01 → 2018-09-04 · span 1,161 days |
|
is_open
BOOLEAN
|
Boolean -- FALSE for Closed; TRUE for Open / In Progress / On Hold.
rows
4 · non-null 4 (100.0%) · distinct 2true
75.0% |
|
last_seen_dt
DATE
|
Most recent date_created among requests with this status.
rows
4 · non-null 4 (100.0%) · distinct 3dates
2026-09-24 → 2026-09-30 · span 6 days |
|
status
VARCHAR
|
Human-readable status display value.
rows
4 · non-null 4 (100.0%) · distinct 4len
4..11
|
|
status_id
VARCHAR
|
Surrogate primary key -- md5 hash of status.
rows
4 · non-null 4 (100.0%) · distinct 4len
32..32
|
main_gold.dim_survey_question
|
column_name
VARCHAR
|
Original source column name on bronze (e.g. `happiness_num`).
rows
8 · non-null 8 (100.0%) · distinct 8len
13..55
|
|
first_wave_asked
INTEGER
|
Earliest survey wave year where this question cleared the >50% non-NULL filter. Per the Phase D matrix.
rows
8 · non-null 8 (100.0%) · distinct 3range
2011..2015 · mean 2012.25 · p50 2012, p95 2014.3 |
|
last_wave_asked
INTEGER
|
Latest survey wave year where this question cleared the >50% non-NULL filter. Note: `education_quality` last_wave_asked = 2021 because the column was not asked in 2023 and was only partially populated in 2025.
rows
8 · non-null 8 (100.0%) · distinct 2range
2021..2025 · mean 2024.50 · p50 2025, p95 2025 |
|
question_label
VARCHAR
|
Human-readable label for the question. Prefixed `[paraphrase]` -- the bronze source does not carry per-question wording, so these are short paraphrases from the column-name semantics. A future plan with access to the survey instrument can supply verbatim wording.
rows
8 · non-null 8 (100.0%) · distinct 8len
38..78
|
|
scale_max
INTEGER
|
Upper bound of the Likert scale (always 5 for the 8 surviving columns).
rows
8 · non-null 8 (100.0%) · distinct 1range
5..5 · mean 5.00 · p50 5, p95 5 |
|
scale_min
INTEGER
|
Lower bound of the Likert scale (always 1 for the 8 surviving columns).
rows
8 · non-null 8 (100.0%) · distinct 1range
1..1 · mean 1.00 · p50 1, p95 1 |
|
survey_question_id
VARCHAR
|
Slug form of the question (e.g. `happiness`, `life_satisfaction`). Surrogate primary key.
rows
8 · non-null 8 (100.0%) · distinct 8len
9..38
|
|
topic
VARCHAR
|
Thematic grouping of the question. 5 buckets cover the 8 columns.
rows
8 · non-null 8 (100.0%) · distinct 5len
12..19
|
|
waves_asked_count
INTEGER
|
Count of waves where this question cleared the threshold. Ranges 6-8 for the surviving columns. Non-contiguous for `social_community_events` (skipped 2011 and 2017) and `education_quality` (last full wave was 2021).
rows
8 · non-null 8 (100.0%) · distinct 3range
6..8 · mean 7.00 · p50 7, p95 8 |
main_gold.dim_survey_wave
|
notes
VARCHAR
|
Wave-specific analytical notes. The 2011 wave row flags the ward coverage gap and the city-only handling in fct_happiness_survey.
rows
8 · non-null 8 (100.0%) · distinct 2len
46..136
|
|
respondent_count
INTEGER
|
Count of distinct respondents in this wave. 2011 has 6,167 (49% of total dataset); other waves range 186-1,496.
rows
8 · non-null 8 (100.0%) · distinct 8range
186..6167 · mean 1572.88 · p50 1152, p95 4532.15 |
|
survey_wave_id
VARCHAR
|
Wave year as VARCHAR (e.g. `2011`). Surrogate primary key. Joins to fct_happiness_survey.survey_wave_id.
rows
8 · non-null 8 (100.0%) · distinct 8len
4..4
|
|
ward_coverage_pct
DOUBLE
|
Share of respondents in this wave with a non-NULL ward (0-100). 0.0 for 2011; 96-99.5 for 2013-2025.
rows
8 · non-null 8 (100.0%) · distinct 8range
0..100 · mean 86.45 · p50 99.05, p95 99.825 · zeros 1 |
|
wave_year
INTEGER
|
Wave year as INTEGER (1850-style sort-friendly form).
rows
8 · non-null 8 (100.0%) · distinct 8range
2011..2025 · mean 2018.00 · p50 2018, p95 2024.3 |
main_gold.dim_ward
|
_extracted_at
TIMESTAMP
|
Lineage -- UTC timestamp when the shapefile was last ingested.
rows
7 · non-null 7 (100.0%) · distinct 1dates
2026-05-13 → 2026-05-13 |
|
_source_url
VARCHAR
|
Lineage -- canonical Socrata permalink for the source dataset.
rows
7 · non-null 7 (100.0%) · distinct 1len
41..41
|
|
area_sqkm
DOUBLE
|
Polygon area in square kilometers. Wards are ~1.3-2.7 sq km.
rows
7 · non-null 7 (100.0%) · distinct 7range
1.27099..2.68334 · mean 1.56 · p50 1.34771, p95 2.38009 |
|
area_sqm
DOUBLE
|
Polygon area in square meters, converted from the source projection (NAD83 / MA Mainland, US survey feet).
rows
7 · non-null 7 (100.0%) · distinct 7range
1.27099e+06..2.68334e+06 · mean 1562640.81 · p50 1.34771e+06, p95 2.38009e+06 |
|
geometry_wkt_wgs84
VARCHAR
|
Polygon geometry as WKT in WGS84 (EPSG:4326). Lat/lng-friendly; use ST_GeomFromText to re-parse for spatial operations.
rows
7 · non-null 7 (100.0%) · distinct 7len
5140..14516
|
|
perimeter_m
DOUBLE
|
Polygon perimeter in meters, converted from US survey feet.
rows
7 · non-null 7 (100.0%) · distinct 7range
6195.63..8741.91 · mean 7034.03 · p50 6465.91, p95 8637.5 |
|
ward
VARCHAR
|
Ward number (1-7) as VARCHAR. Matches `fct_311_requests.ward` for natural-key joins.
rows
7 · non-null 7 (100.0%) · distinct 7len
1..1
|
|
ward_id
VARCHAR
|
Surrogate key -- md5(ward). Matches the SK pattern of the other gold dims.
rows
7 · non-null 7 (100.0%) · distinct 7len
32..32
|
|
ward_name
VARCHAR
|
Human-readable label, "Ward N". Derived (the source shapefile has no name column -- just numbers).
rows
7 · non-null 7 (100.0%) · distinct 7len
6..6
|
main_gold.fct_311_requests
|
accuracy
VARCHAR
|
Post-resolution survey field for accuracy. Sparse -- see docs/limitations/2024-survey-columns-sparse.md.
rows
1,224,700 · non-null 8,273 (0.7%) · distinct 8len
3..34
|
|
block_code
VARCHAR
|
Block identifier. Carried through from source -- still padded with spaces when unknown; cleanup deferred to Silver. See docs/limitations/block-code-padded.md.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 763len
15..15
|
|
category
VARCHAR
|
Mid-level grouping within classification.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 22len
4..33
|
|
classification
VARCHAR
|
Top of the type hierarchy: Service / Information / Feedback.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 3len
7..11
|
|
courtesy
VARCHAR
|
Post-resolution survey field for courtesy. Sparse -- see docs/limitations/2024-survey-columns-sparse.md.
rows
1,224,700 · non-null 8,252 (0.7%) · distinct 8len
3..34
|
|
date_created_dt
DATE
|
Date the request was opened. FK to dim_date.date_dt.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 4,110dates
2015-07-01 → 2026-09-30 · span 4,109 days |
|
date_created_ts
TIMESTAMP
|
Full timestamp the request was opened (precision retained alongside date_created_dt for time-of-day analysis).
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 884,342dates
2015-07-01 → 2026-09-30 · span 4,108 days |
|
ease
VARCHAR
|
Post-resolution survey field for ease. Sparse -- see docs/limitations/2024-survey-columns-sparse.md.
rows
1,224,700 · non-null 6,936 (0.6%) · distinct 8len
3..34
|
|
id
VARCHAR
|
Somerville 311 request ID -- natural key sourced from bronze.id.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 1,224,700len
6..7
|
|
is_city_services_tag
BOOLEAN
|
Department tag -- navigating city services and policies. Boolean. Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2true
26.0% |
|
is_emergency_readiness_tag
BOOLEAN
|
Department tag -- emergency readiness and response planning. Boolean. Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2true
0.2% |
|
is_green_space_tag
BOOLEAN
|
Department tag -- green space care and maintenance. Boolean. Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2true
1.0% |
|
is_infrastructure_tag
BOOLEAN
|
Department tag -- infrastructure maintenance and repairs. Boolean. Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2true
1.7% |
|
is_noise_tag
BOOLEAN
|
Department tag -- noise and activity disturbances. Boolean. Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2true
0.3% |
|
is_public_space_tag
BOOLEAN
|
Department tag -- public space cleanliness and environmental health. Boolean. Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2true
1.9% |
|
is_reliable_service_tag
BOOLEAN
|
Department tag -- reliable service delivery. Boolean. Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2true
1.0% |
|
is_voting_tag
BOOLEAN
|
Department tag -- voting and election information. Boolean. Sparse.
rows
1,224,700 · non-null 1,224,699 (100.0%) · distinct 2true
0.2% |
|
most_recent_status_dt
DATE
|
Date the most recent status was set.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 4,063dates
2015-07-01 → 2026-09-30 · span 4,109 days |
|
most_recent_status_ts
TIMESTAMP
|
Full timestamp the most recent status was set.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 791,274dates
2015-07-01 → 2026-09-30 · span 4,109 days |
|
origin
VARCHAR
|
How the request was submitted (Contact Center, Website, etc.). Sourced from bronze.origin_of_request.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 3len
7..14
|
|
overallexperience
VARCHAR
|
Post-resolution survey field for overall experience. Sparse -- see docs/limitations/2024-survey-columns-sparse.md.
rows
1,224,700 · non-null 8,318 (0.7%) · distinct 8len
3..34
|
|
request_type
VARCHAR
|
Leaf-level request type. Sourced from bronze.type.
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 352len
3..64
|
|
request_type_id
VARCHAR
|
FK to dim_request_type.request_type_id (md5 of request_type).
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 352len
32..32
|
|
status
VARCHAR
|
Most recent status display value (Open / Closed / In Progress / On Hold).
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 4len
4..11
|
|
status_id
VARCHAR
|
FK to dim_status.status_id (md5 of status).
rows
1,224,700 · non-null 1,224,700 (100.0%) · distinct 4len
32..32
|
|
ward
VARCHAR
|
Somerville ward 1-7 as VARCHAR. NULL when unknown.
rows
1,224,700 · non-null 759,598 (62.0%) · distinct 7len
1..1
|
main_gold.fct_citations
|
_extracted_at
TIMESTAMP WITH TIME ZONE
|
Lineage -- UTC timestamp when the most recent pipeline run touched this row.
rows
73,038 · non-null 73,038 (100.0%) · distinct 1dates
2026-10-03 → 2026-10-03 |
|
_extracted_run_id
VARCHAR
|
Lineage -- ULID of the pipeline run that touched this row.
rows
73,038 · non-null 73,038 (100.0%) · distinct 1len
26..26
|
|
_source_endpoint
VARCHAR
|
Lineage -- Socrata SODA URL the row came from.
rows
73,038 · non-null 73,038 (100.0%) · distinct 1len
53..53
|
|
address
VARCHAR
|
Intersection or street address where the citation was issued.
rows
73,038 · non-null 73,038 (100.0%) · distinct 4,386len
18..55
|
|
block_code
VARCHAR
|
15-character census block code (source blockcode).
rows
73,038 · non-null 73,038 (100.0%) · distinct 622len
15..15
|
|
charge_category
VARCHAR
|
Broader category for the violation (source chgcategory). 109 distinct values -- not tested for accepted_values.
rows
73,038 · non-null 51,704 (70.8%) · distinct 109len
19..68
|
|
charge_code
VARCHAR
|
MGL chapter/section reference for the violation (source chgcode).
rows
73,038 · non-null 73,038 (100.0%) · distinct 135len
15..15
|
|
charge_description
VARCHAR
|
Source-side description of the violation (chgdesc).
rows
73,038 · non-null 73,038 (100.0%) · distinct 134len
16..75
|
|
citation_date
DATE
|
Date of citation issuance (DATE).
rows
73,038 · non-null 73,038 (100.0%) · distinct 3,150dates
2017-01-01 → 2026-09-02 · span 3,531 days |
|
citation_id
VARCHAR
|
Surrogate PK -- md5(citation_number).
rows
73,038 · non-null 73,038 (100.0%) · distinct 73,038len
32..32
|
|
citation_number
VARCHAR
|
Source citation number with numeric suffix. Multi-violation tickets share the root; 67,311 rows = 61,603 distinct roots + 5,708 supplementary-violation rows.
rows
73,038 · non-null 73,038 (100.0%) · distinct 73,038len
3..17
|
|
citation_ts
TIMESTAMP WITH TIME ZONE
|
Full timestamp the citation was issued (source dtissued, TIMESTAMP WITH TIME ZONE).
rows
73,038 · non-null 73,038 (100.0%) · distinct 62,259dates
2017-01-01 → 2026-09-02 · span 3,531 days |
|
citation_year
SMALLINT
|
Year of citation issuance (SMALLINT).
rows
73,038 · non-null 73,038 (100.0%) · distinct 10range
2017..2026 · mean 2021.24 · p50 2021, p95 2026 |
|
is_warning
BOOLEAN
|
Boolean -- TRUE when warning_flag = "Y".
rows
73,038 · non-null 73,038 (100.0%) · distinct 2true
77.2% |
|
latitude
DOUBLE
|
Geocoded latitude (WGS84). 0% NULL.
rows
73,038 · non-null 73,038 (100.0%) · distinct 398range
42.3427..42.6217 · mean 42.39 · p50 42.3923, p95 42.4058 |
|
longitude
DOUBLE
|
Geocoded longitude (WGS84). 0% NULL.
rows
73,038 · non-null 73,038 (100.0%) · distinct 566range
-71.3147..-71.0545 · mean -71.10 · p50 -71.0964, p95 -71.0823 · negative 73,038 |
|
police_shift
VARCHAR
|
Police shift during which the citation was issued. Same vocabulary as crime ("Day Shift (8AM - 4PM)", "First Half (4PM - Midnight)", "Last Half (Midnight - 8AM)").
rows
73,038 · non-null 73,038 (100.0%) · distinct 3len
21..27
|
|
posted_mph_zone
INTEGER
|
Posted speed limit at the citation location (TRY_CAST from VARCHAR).
rows
73,038 · non-null 13,010 (17.8%) · distinct 25range
3..250 · mean 22.87 · p50 20, p95 30 |
|
vehicle_mph
INTEGER
|
Vehicle speed in MPH (TRY_CAST from VARCHAR; NULL when uncastable). ~82.5% NULL -- recorded only on speed-related violations. 4 rows have implausible speeds >100 (data-entry errors at source, passed through).
rows
73,038 · non-null 13,016 (17.8%) · distinct 65range
0..62021 · mean 41.01 · p50 35, p95 46 · zeros 1 |
|
ward
VARCHAR
|
Somerville ward 1-7 (source-published, not spatially derived). 84 rows NULL (~0.12%).
rows
73,038 · non-null 72,952 (99.9%) · distinct 7len
1..1
|
|
warning_flag
VARCHAR
|
Source "Y" / "N" indicator. 51,422 Y / 15,889 N (76% warnings, 24% fines).
rows
73,038 · non-null 73,038 (100.0%) · distinct 2len
1..1
|
main_gold.fct_crime_incidents
|
_extracted_at
TIMESTAMP WITH TIME ZONE
|
Lineage -- UTC timestamp when the most recent pipeline run touched this row.
rows
23,448 · non-null 23,448 (100.0%) · distinct 1dates
2026-10-03 → 2026-10-03 |
|
_extracted_run_id
VARCHAR
|
Lineage -- ULID of the pipeline run that touched this row.
rows
23,448 · non-null 23,448 (100.0%) · distinct 1len
26..26
|
|
_first_seen_at
TIMESTAMP
|
Lineage -- UTC timestamp when this incident was first ingested. Preserved across re-extractions.
rows
23,448 · non-null 23,448 (100.0%) · distinct 1dates
2026-10-03 → 2026-10-03 |
|
_source_endpoint
VARCHAR
|
Lineage -- Socrata SODA URL the row came from.
rows
23,448 · non-null 23,448 (100.0%) · distinct 1len
53..53
|
|
block_code
VARCHAR
|
15-character census block code. NULL for sensitive incidents (same 2,798 rows as NULL incident_dt). Block-level analysis on the full dataset is therefore similarly bounded.
rows
23,448 · non-null 20,650 (88.1%) · distinct 679len
15..15
|
|
case_number
VARCHAR
|
Source case number from Somerville Police. Non-sensitive incidents use 8-char `YYxxxxxx` format; sensitive incidents use 9-char `1xxxxxxxx` sentinel format.
rows
23,448 · non-null 23,448 (100.0%) · distinct 23,448len
8..9
|
|
incident_dt
DATE
|
Date the incident was reported. NULL for ~12.5% of rows (sensitive incidents -- day-and-month withheld at source). See docs/limitations/crime-sensitive-incidents-no-month.md.
rows
23,448 · non-null 20,650 (88.1%) · distinct 3,509dates
2017-01-01 → 2026-09-02 · span 3,531 days |
|
incident_id
VARCHAR
|
Surrogate PK -- md5(case_number). Matches the gold-dim pattern.
rows
23,448 · non-null 23,448 (100.0%) · distinct 23,448len
32..32
|
|
incident_year
SMALLINT
|
Year the incident was reported. Populated for all rows.
rows
23,448 · non-null 23,448 (100.0%) · distinct 10range
2017..2026 · mean 2021.56 · p50 2022, p95 2026 |
|
incident_year_only
BOOLEAN
|
TRUE when only the year is known (sensitive incident with day-and-month stripped at source). Filter `WHERE NOT incident_year_only` to exclude these rows from sub-annual time-series.
rows
23,448 · non-null 23,448 (100.0%) · distinct 2true
11.9% |
|
multi_offense_flag
BOOLEAN
|
TRUE when offense_code is a multi-code grouping string. 2,875 rows (12.9%); filter `WHERE NOT multi_offense_flag` for single-NIBRS-code analysis.
rows
23,448 · non-null 23,448 (100.0%) · distinct 2true
13.1% |
|
offense
VARCHAR
|
NIBRS offense name (denormalized from dim_offense_code for query convenience). E.g. "Motor Vehicle Theft".
rows
23,448 · non-null 23,448 (100.0%) · distinct 40len
5..31
|
|
offense_category
VARCHAR
|
rows
23,448 · non-null 23,448 (100.0%) · distinct 4len
5..23
|
|
offense_code
VARCHAR
|
rows
23,448 · non-null 23,448 (100.0%) · distinct 40len
3..19
|
|
offense_type
VARCHAR
|
NIBRS offense type (denormalized from dim_offense_code). Sub-category grouping similar offenses.
rows
23,448 · non-null 23,448 (100.0%) · distinct 29len
5..30
|
|
police_shift
VARCHAR
|
Shift during which the incident was reported. NULL for sensitive incidents.
rows
23,448 · non-null 20,650 (88.1%) · distinct 3len
21..27
|
|
ward
VARCHAR
|
Somerville ward (TRIM applied; source pads to length 15). 7 valid ward strings (1-7), NULL for ~13% of rows, "CAM" for 2 cross-jurisdiction rows. See docs/limitations/crime-ward-coverage-gaps.md.
rows
23,448 · non-null 20,532 (87.6%) · distinct 8len
1..3
|
main_gold.fct_happiness_survey
|
geography_key
VARCHAR
|
Ward number 1-7 when geography_level=`ward`; NULL when geography_level=`city`. Deliberately NOT relationship-tested against dim_ward -- the city rows would fail. A future plan that splits the fact into per-geography views can wire the relationships test on the ward-only view.
rows
428 · non-null 371 (86.7%) · distinct 7len
1..1
|
|
geography_level
VARCHAR
|
One of `city` (city-wide aggregation across all respondents in the wave with a non-NULL score) or `ward` (per-ward aggregation, 2013+).
rows
428 · non-null 428 (100.0%) · distinct 2len
4..4
|
|
mean_score
DOUBLE
|
Arithmetic mean of the Likert scores at this grain. Unweighted.
rows
428 · non-null 428 (100.0%) · distinct 398range
2.42361..4.59259 · mean 3.81 · p50 3.92926, p95 4.3299 |
|
median_score
DOUBLE
|
Median Likert score at this grain. Robust to outliers; usually integer-valued for Likert 1-5 distributions.
rows
428 · non-null 428 (100.0%) · distinct 6range
2..5 · mean 3.83 · p50 4, p95 4.5 |
|
respondent_count
INTEGER
|
Count of respondents at this grain who returned a non-NULL score for this question. Surfaces as the denominator for top/bottom-two-box measures.
rows
428 · non-null 428 (100.0%) · distinct 174range
9..6039 · mean 267.36 · p50 143.5, p95 1262.95 |
|
score_1_count
INTEGER
|
Count of respondents who scored 1 (lowest Likert value -- "very dissatisfied" / "very unhappy").
rows
428 · non-null 428 (100.0%) · distinct 58range
0..276 · mean 10.68 · p50 4, p95 41 · zeros 74 |
|
score_2_count
INTEGER
|
Count of respondents who scored 2.
rows
428 · non-null 428 (100.0%) · distinct 69range
0..632 · mean 18.80 · p50 7, p95 69.55 · zeros 47 |
|
score_3_count
INTEGER
|
Count of respondents who scored 3 (neutral).
rows
428 · non-null 428 (100.0%) · distinct 116range
0..2050 · mean 57.42 · p50 28, p95 235.45 · zeros 1 |
|
score_4_count
INTEGER
|
Count of respondents who scored 4.
rows
428 · non-null 428 (100.0%) · distinct 153range
1..2888 · mean 106.52 · p50 53, p95 466.4 |
|
score_5_count
INTEGER
|
Count of respondents who scored 5 (highest -- "very satisfied" / "very happy").
rows
428 · non-null 428 (100.0%) · distinct 137range
0..2100 · mean 73.93 · p50 35, p95 320.85 · zeros 2 |
|
survey_observation_id
VARCHAR
|
Surrogate PK -- md5(survey_wave_id || '|' || geography_level || '|' || coalesce(geography_key, 'NULL') || '|' || survey_question_id).
rows
428 · non-null 428 (100.0%) · distinct 428len
32..32
|
|
survey_question_id
VARCHAR
|
FK to dim_survey_question.survey_question_id.
rows
428 · non-null 428 (100.0%) · distinct 8len
9..38
|
|
survey_wave_id
VARCHAR
|
FK to dim_survey_wave.survey_wave_id (the wave year as text).
rows
428 · non-null 428 (100.0%) · distinct 8len
4..4
|
|
weight_strategy
VARCHAR
|
**RESERVED, NULL TODAY.** Names the weighting strategy applied to the row when populated (e.g. `raked_age_ward_2020_acs`). Companion to silver.stg_happiness_survey.weight. See docs/limitations/survey-gold-unweighted.md.
rows
428 · non-null 0 (0.0%) · distinct 0 |
main_gold.fct_permits
|
_extracted_at
TIMESTAMP WITH TIME ZONE
|
Lineage -- UTC timestamp when the most recent pipeline run touched this row.
rows
64,521 · non-null 64,521 (100.0%) · distinct 1dates
2026-05-15 → 2026-05-15 |
|
_extracted_run_id
VARCHAR
|
Lineage -- ULID of the pipeline run that touched this row.
rows
64,521 · non-null 64,521 (100.0%) · distinct 1len
26..26
|
|
_source_endpoint
VARCHAR
|
Lineage -- Socrata SODA URL the row came from.
rows
64,521 · non-null 64,521 (100.0%) · distinct 1len
53..53
|
|
address
VARCHAR
|
Property address (public information for permits, by design).
rows
64,521 · non-null 64,521 (100.0%) · distinct 13,766len
0..99 · empty strings 1
|
|
application_date
DATE
|
Date the permit application was submitted. Cast from source TIMESTAMP to DATE.
rows
64,521 · non-null 64,521 (100.0%) · distinct 3,184dates
2014-02-13 → 2023-05-15 · span 3,378 days |
|
application_year
SMALLINT
|
Year of application_date (SMALLINT).
rows
64,521 · non-null 64,521 (100.0%) · distinct 10range
2014..2023 · mean 2018.32 · p50 2018, p95 2022 |
|
is_issued
BOOLEAN
|
Boolean -- TRUE when permit_status = "Issued". Filter on this for analyst-clean issued-permit counts (96.68% of rows).
rows
64,521 · non-null 64,500 (100.0%) · distinct 2true
96.7% |
|
issue_date
DATE
|
Date the permit was issued. NULL for non-issued applications (Withdrawn, Denied, Under Review).
rows
64,521 · non-null 64,521 (100.0%) · distinct 2,294dates
2014-05-21 → 2023-10-24 · span 3,443 days |
|
issue_year
SMALLINT
|
Year of issue_date (SMALLINT). NULL when issue_date is NULL.
rows
64,521 · non-null 64,521 (100.0%) · distinct 10range
2014..2023 · mean 2018.39 · p50 2018, p95 2022 |
|
latitude
VARCHAR
|
Geocoded latitude (WGS84). 8 rows are NULL.
rows
64,521 · non-null 64,521 (100.0%) · distinct 10,684len
1..19
|
|
longitude
VARCHAR
|
Geocoded longitude (WGS84). 8 rows are NULL.
rows
64,521 · non-null 64,513 (100.0%) · distinct 10,140len
1..19
|
|
permit_amount
VARCHAR
|
Permit fee amount in USD. Source DOUBLE.
rows
64,521 · non-null 64,521 (100.0%) · distinct 3,394len
4..10
|
|
permit_id
VARCHAR
|
Surrogate PK -- md5(permit_number). Matches the gold-dim pattern.
rows
64,521 · non-null 64,521 (100.0%) · distinct 64,521len
32..32
|
|
permit_number
VARCHAR
|
Year-prefixed natural key from source (e.g. "B14-001277" = Building, 2014, #001277). Preserved for back-reference to the public permit log.
rows
64,521 · non-null 64,521 (100.0%) · distinct 64,521len
10..12
|
|
permit_status
VARCHAR
|
Permit status. ~97% "Issued". 21 NULL, 6 empty-string, and 3 rows carry dates as status values (source DQ issue documented in permits-static-since-2023).
rows
64,521 · non-null 64,500 (100.0%) · distinct 18len
0..25 · empty strings 6
|
|
permit_type
VARCHAR
|
Permit type. ~73% Residential Building, ~15% Commercial Building, 20+ values. **11 rows have NULL type** per the documented source data quality issue (Plan 21 honest-test precedent).
rows
64,521 · non-null 64,510 (100.0%) · distinct 28len
5..32
|
|
ward
VARCHAR
|
Somerville ward 1-7 derived via spatial join. NULL for ~3.4% of rows (geocoded outside Somerville). See permits-spatial-ward-derivation limitation.
rows
64,521 · non-null 62,337 (96.6%) · distinct 7len
1..1
|
|
work_description
VARCHAR
|
Freeform description of permitted work. Source-side text; no applicant names observed.
rows
64,521 · non-null 64,473 (99.9%) · distinct 49,052len
2..1486
|
main_gold.fct_somerville_kpi
|
_extracted_at
TIMESTAMP WITH TIME ZONE
|
Lineage -- UTC timestamp when the most recent pipeline run touched this row.
rows
749 · non-null 749 (100.0%) · distinct 1dates
2026-05-15 → 2026-05-15 |
|
_extracted_run_id
VARCHAR
|
Lineage -- ULID of the pipeline run that touched this row.
rows
749 · non-null 749 (100.0%) · distinct 1len
26..26
|
|
_source_endpoint
VARCHAR
|
Lineage -- Socrata SODA URL the row came from.
rows
749 · non-null 749 (100.0%) · distinct 1len
53..53
|
|
geography
VARCHAR
|
Geographic scope (typically 'Somerville').
rows
749 · non-null 749 (100.0%) · distinct 2len
10..13
|
|
kpi_description
VARCHAR
|
Source-side editorial description of the KPI (source `description`).
rows
749 · non-null 749 (100.0%) · distinct 81len
6..57
|
|
kpi_id
VARCHAR
|
Surrogate PK -- md5(topic + '|' + year + '|' + COALESCE(description, '') + '|' + COALESCE(geography, '')). The natural primary key is (topic, year, description, geography) because (a) categorical topics have multiple rows per (topic, year) differentiated by description, AND (b) the source includes both Somerville and Massachusetts benchmark rows at the same (topic, year, description) — geography distinguishes them.
rows
749 · non-null 749 (100.0%) · distinct 749len
32..32
|
|
topic
VARCHAR
|
rows
749 · non-null 749 (100.0%) · distinct 25len
7..32
|
|
units
VARCHAR
|
Units for the value (USD, percent, count, etc.).
rows
749 · non-null 749 (100.0%) · distinct 5len
4..7
|
|
value
DOUBLE
|
Observed value (DOUBLE). TRY_CAST from source VARCHAR.
rows
749 · non-null 749 (100.0%) · distinct 491range
0.8..911300 · mean 27281.00 · p50 28.7, p95 106979 |
|
year
SMALLINT
|
Year of observation (SMALLINT). Range 1850-2024.
rows
749 · non-null 749 (100.0%) · distinct 31range
1850..2024 · mean 2016.43 · p50 2019, p95 2024 |