How benji-carr/seattle-area-public-safety-dashboard works
The repository combines Seattle public-safety dashboards with a neighborhood-level crime forecasting system. Dashboard users enter through the Dash app, which loads crime contexts and renders interactive analysis; separate data modules support crime, calls, use of force, SPD events, and population. Forecast production refreshes SPD call data, builds a validated feature panel, generates forecasts from a locked XGBoost artifact, and monitors forecast performance. The README documents source collection, snapshots, and presentation responsibilities. Some dashboard and production relationships are supported only by the SOURCE INDEX; unsampled subsystems are shown without speculative links.
Main entry points: app.py Dash application · crime_dashboard_data.py Crime dashboard data · xgboost.py Target features · crime_dashboard_components.py Crime components
Components 34
Dashboard presentation
- Dash application
app.py - Crime components
dashboard/crime_dashboard_components.py - Crime figures
dashboard/crime_dashboard_figures.py - Crime controls
dashboard/crime_controls.py - Analysis windows
dashboard/analysis_windows.py
Dashboard data
- Crime dashboard data
dashboard/crime_dashboard_data.py - Crime source
dashboard/crime_source.py - Crime snapshot
dashboard/crime_snapshot.py - Crime classification
dashboard/crime_classification.py - Population data
dashboard/population_service.py - Population snapshot
dashboard/population_snapshot.py - Calls support data
dashboard/crime_call_support_data.py - Call metrics refresh
dashboard/call_metrics_refresh.py - SPD dashboard data
dashboard/spd_dashboard_data.py - SPD source
dashboard/spd_source.py - SPD snapshot
dashboard/spd_snapshot.py - Use-of-force data
dashboard/uof_dashboard_data.py - Use-of-force source
dashboard/uof_source.py - Use-of-force snapshot
dashboard/uof_snapshot.py
Forecast modeling
- Target features
forecasting/features/xgboost.py - Calendar features
forecasting/features/calendar.py - XGBoost backtests
forecasting/backtests/xgboost.py - SARIMA backtests
forecasting/backtests/sarima.py - Top-10 evaluation
forecasting/evaluation/top10.py
Forecast production
- SPD forecast data refresh
forecasting/production/data_refresh.py - Production XGBoost
forecasting/production/xgboost.py - Forecast inference
forecasting/production/inference.py - Forecast snapshots
forecasting/paths.py - Forecast monitoring
forecasting/production/monitoring.py - Daily orchestration
forecasting/production/orchestration.py
Other components
- Dashboard user
- SPD call records
- Seattle Open Data
- Daily runner
scripts/forecasting/run_xgboost_daily_pipeline.py
Connections 41
- Dashboard user → Dash application: opens
README.md - Dash application → Calls support data: loads context
app.py - Dash application → Crime dashboard data: loads context
app.py - Dash application → Crime components: renders
app.py - Dash application → Crime figures: uses
app.py - Dash application → Crime controls: uses
app.py - Crime components → Crime dashboard data: uses
dashboard/crime_dashboard_components.py - Crime components → Crime controls: uses
dashboard/crime_dashboard_components.py - Crime components → Crime figures: uses
- Crime controls → Analysis windows: uses
dashboard/crime_controls.py - Crime figures → Crime dashboard data: uses
dashboard/crime_dashboard_figures.py - Crime figures → Analysis windows: uses
dashboard/crime_dashboard_figures.py - Crime dashboard data → Crime classification: classifies
dashboard/crime_dashboard_data.py - Crime dashboard data → Crime snapshot: loads
dashboard/crime_dashboard_data.py - Crime dashboard data → Population snapshot: loads
dashboard/crime_dashboard_data.py - Population data → Population snapshot: persists
- Calls support data → SPD snapshot: loads
dashboard/crime_call_support_data.py - Call metrics refresh → SPD snapshot: refreshes
- Use-of-force data → Use-of-force source: fetches
dashboard/uof_dashboard_data.py - Use-of-force data → Use-of-force snapshot: loads
dashboard/uof_dashboard_data.py - SPD dashboard data → SPD snapshot: loads
- SPD source → Seattle Open Data: fetches
- Crime source → Seattle Open Data: fetches
- Use-of-force source → Seattle Open Data: fetches
- Daily runner → Daily orchestration: runs
scripts/forecasting/run_xgboost_daily_pipeline.py - Daily orchestration → SPD forecast data refresh: refreshes data
forecasting/production/orchestration.py - Daily orchestration → Forecast inference: runs inference
forecasting/production/orchestration.py - Daily orchestration → Forecast monitoring: runs monitoring
forecasting/production/orchestration.py - SPD forecast data refresh → SPD source: fetches calls
forecasting/production/data_refresh.py - SPD forecast data refresh → Target features: builds panel
forecasting/production/data_refresh.py - Forecast inference → Target features: builds features
forecasting/production/inference.py - Forecast inference → Production XGBoost: loads model
forecasting/production/inference.py - Forecast inference → Forecast snapshots: writes forecasts
forecasting/production/inference.py - Forecast monitoring → Forecast snapshots: reads snapshots
forecasting/production/monitoring.py - Forecast monitoring → Top-10 evaluation: evaluates ranks
forecasting/production/monitoring.py - Forecast monitoring → Target features: prepares panel
forecasting/production/monitoring.py - Target features → Calendar features: adds calendar
forecasting/features/xgboost.py - XGBoost backtests → Target features: uses features
forecasting/backtests/xgboost.py - XGBoost backtests → SARIMA backtests: compares baseline
forecasting/backtests/xgboost.py - Production XGBoost → XGBoost backtests: trains from
forecasting/production/xgboost.py - SPD forecast data refresh → SPD call records: collects
forecasting/production/data_refresh.py