Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
588 changes: 588 additions & 0 deletions css/index.css

Large diffs are not rendered by default.

90 changes: 90 additions & 0 deletions data/city_year.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
[
{
"year": 2015,
"total": 1271,
"fatal": 233,
"nonfatal": 1038,
"period": "baseline",
"completeness_flag": "complete by month/date check"
},
{
"year": 2016,
"total": 1319,
"fatal": 262,
"nonfatal": 1057,
"period": "baseline",
"completeness_flag": "complete by month/date check"
},
{
"year": 2017,
"total": 1250,
"fatal": 259,
"nonfatal": 991,
"period": "baseline",
"completeness_flag": "complete by month/date check"
},
{
"year": 2018,
"total": 1438,
"fatal": 302,
"nonfatal": 1136,
"period": "baseline",
"completeness_flag": "complete by month/date check"
},
{
"year": 2019,
"total": 1464,
"fatal": 311,
"nonfatal": 1153,
"period": "baseline",
"completeness_flag": "complete by month/date check"
},
{
"year": 2020,
"total": 2245,
"fatal": 449,
"nonfatal": 1796,
"period": "peak",
"completeness_flag": "complete by month/date check"
},
{
"year": 2021,
"total": 2332,
"fatal": 507,
"nonfatal": 1825,
"period": "peak",
"completeness_flag": "complete by month/date check"
},
{
"year": 2022,
"total": 2255,
"fatal": 476,
"nonfatal": 1779,
"period": "peak",
"completeness_flag": "complete by month/date check"
},
{
"year": 2023,
"total": 1660,
"fatal": 376,
"nonfatal": 1284,
"period": "recent_decline",
"completeness_flag": "complete by month/date check"
},
{
"year": 2024,
"total": 1082,
"fatal": 228,
"nonfatal": 854,
"period": "recent_decline",
"completeness_flag": "complete by month/date check"
},
{
"year": 2025,
"total": 940,
"fatal": 208,
"nonfatal": 732,
"period": "recent_decline",
"completeness_flag": "complete by month/date check"
}
]
50 changes: 50 additions & 0 deletions data/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"analysis_title": "The changing geography of Philadelphia shooting violence: Project 1",
"data_extraction_date": "2026-05-21",
"maximum_event_date": "2025-12-31",
"outcome_definition": "Shooting-victim events; fatal and nonfatal outcomes retained separately",
"officer_involved_exclusion": "Records coded Y for officer_involved are excluded; unknown status is excluded and reported",
"analytic_years": {
"start": 2015,
"end": 2025
},
"period_definitions": {
"baseline": "2015-2019",
"peak": "2020-2022",
"recent_decline": "2023-2025"
},
"geographic_vintage": "2020 Census tracts; 2020 Census block groups used only for sensitivity",
"acs_vintage_and_variable": "2020-2024 ACS 5-year B01003_001 total population estimate and margin of error",
"rate_definition": "period_count / (fixed total population * years in period) * 10000; area-level place-based burden, not resident incidence",
"primary_method": "Fixed 2015-2019 upper-quartile tract annualized burden benchmark",
"rate_eligibility": {
"rule": "Exclude Census special-use tract codes 9800-9899 from all rates and classifications, including constituent block groups; retain geometry and raw counts",
"source": "https://www2.census.gov/geo/pdfs/partnerships/psap/G-650.pdf",
"excluded_tract_geoids": ["42101980001", "42101980002", "42101980003", "42101980100", "42101980200", "42101980300", "42101980400", "42101980500", "42101980600", "42101980701", "42101980702", "42101980800", "42101980901", "42101980902", "42101980903", "42101980904", "42101980905", "42101980906", "42101989100", "42101989200", "42101989300"],
"display": "Unavailable; rate_exclusion_reason distinguishes special-use exclusions from missing/zero population",
"revision": "Land-use eligibility revision after map review; all periods and the baseline benchmark recalculated"
},
"baseline_percentile": 0.75,
"benchmark_rate_10k": 13.5227897235498,
"quantile_type": 7,
"threshold_inclusion": "greater than or equal to unrounded cutoff; zero-event positive-population tracts included",
"threshold_comparison_periods": "same cutoff for 2020-2022 and 2023-2025; not recalculated within each period",
"supplementary_gistar_implementation": "spdep 1.4.2 localG_perm; conditional greater alternative; focal unit fixed; one-sided high-tail probability derived from the reported folded permutation probability and standardized-deviate sign",
"supplementary_spatial_weights": "first-order queen contiguity, binary, focal geography explicitly included",
"supplementary_permutation_count": 9999,
"supplementary_hotspot_q_threshold": 0.1,
"supplementary_threshold_revision": "Exploratory post-map-review relaxation from BH q < 0.05 to q < 0.10; original threshold retained in comparison table",
"supplementary_random_seed": 20250904,
"supplementary_fdr_method_and_threshold": "Benjamini-Hochberg within period; q < 0.10 plus positive Gi* standardized deviate",
"transition_definitions": {
"persistent": "Persistently elevated: at or above the fixed benchmark in both periods",
"previously": "Previously elevated: at or above the benchmark only in 2020-2022",
"newly": "Newly elevated: at or above the benchmark only in 2023-2025",
"below": "Consistently below: below the benchmark in both periods",
"unavailable": "classification unavailable for special-use tracts or denominator/geometry problems"
},
"planned_social_measures": ["ACS economic, housing, education, age, and racial/ethnic composition", "CDC/ATSDR SVI overall and theme-specific measures, with explicit vintage and ranking reference"],
"known_limitations": ["75th percentile is a descriptive baseline reference, not a clinical or significance threshold", "classification ignores uncertainty around rates and ACS population; low-count and denominator flags retained", "descriptive spatial epidemiology; no causal or predictive interpretation", "event location may differ from victim residence", "a fixed ACS denominator does not capture all population change during 2015-2025", "local statistics depend on geography, spatial weights, sparse counts, and multiple-testing decisions", "below benchmark is not evidence that shooting violence is absent", "source completeness checks cannot detect every reporting delay or omission"],
"source_filenames": ["data/raw/shootings_2272_2026-05-21.gpkg", "tract_2020_acs2024_population.gpkg", "block_group_2020_acs2024_population.gpkg"],
"generation_timestamp": "2026-09-16 20:19:51 UTC"
}
Loading