Central repository for CAD/RMS data standards, schemas, and field mappings.
Standards/
├── CAD/ # CAD-specific standards
│ └── DataDictionary/
│ ├── current/schema/ # cad_export_field_definitions.md
│ └── archive/ # Retired v1.0 field maps
├── CAD_RMS/ # CANONICAL unified standards (source of truth)
│ ├── DataDictionary/
│ │ └── current/schema/ # ALL cross-system schemas + mappings (v2.0)
│ └── mappings/ # Field mapping rules, CSVs, policies
├── RMS/ # RMS-specific standards
│ └── DataDictionary/
│ └── current/schema/ # RMS field definitions
├── Clery/ # Clery Act crime statistics (v1.1.0)
│ └── DataDictionary/current/ # Crime definitions, geography, NIBRS-to-Clery map
├── NIBRS/ # NIBRS offense standards
│ └── DataDictionary/current/ # Offense definitions, RMS-to-NIBRS mapping
├── Personnel/ # Personnel/Assignment Master schema
├── Processed_Exports/ # Dashboard CSV outputs (regenerated monthly)
├── config/ # ETL configuration files
├── data/ # Sample/test data
├── mappings/ # Call type category CSVs and JSON lookup
├── scripts/ # Utility scripts (extraction, validation)
├── docs/ # All documentation
│ ├── ai_handoff/ # AI session handoff documents
│ ├── chat_logs/ # Development chat logs
│ ├── data_quality/ # Data quality crisis/fix docs
│ ├── merge/ # Repository merge documentation
│ ├── response_time/ # Response time data dictionaries
│ ├── image/ # Images and diagrams
│ └── task_templates/ # Task management templates
├── unified_data_dictionary/ # COMPATIBILITY SHIM ONLY (4 files for schemas.yaml)
│ └── schemas/ # canonical_schema, cad/rms_fields_schema, transformation_spec
└── archive/ # All retired/archived content
├── PD_BCI_01_versions/ # Frozen v0.2.1 files from initial AI setup
├── unified_data_dictionary_20260317/ # UDD bulk content
├── schemas_udd_20260317/ # Older duplicate schemas
├── mappings_field_mappings_20260317/ # v1.0 field mappings
├── root_loose_files_20260317/ # Relocated root-level files
├── completed_planning/ # Finished merge/planning docs
├── directory_trees/ # Historical tree snapshots
├── legacy_copies/ # Legacy file versions
└── merged_residue/ # Merge artifacts
| File | Canonical Location |
|---|---|
canonical_schema.json |
CAD_RMS/DataDictionary/current/schema/ |
cad_fields_schema_latest.json |
CAD_RMS/DataDictionary/current/schema/ |
rms_fields_schema_latest.json |
CAD_RMS/DataDictionary/current/schema/ |
transformation_spec.json |
CAD_RMS/DataDictionary/current/schema/ |
cad_rms_schema_registry.yaml |
CAD_RMS/DataDictionary/current/schema/ |
cad_to_rms_field_map.json (v2.0) |
CAD_RMS/DataDictionary/current/schema/ |
rms_to_cad_field_map.json (v2.0) |
CAD_RMS/DataDictionary/current/schema/ |
multi_column_matching_strategy.md |
CAD_RMS/DataDictionary/current/schema/ |
mapping_rules.md |
CAD_RMS/mappings/ |
rms_export_field_definitions.md |
RMS/DataDictionary/current/schema/ |
cad_export_field_definitions.md |
CAD/DataDictionary/current/schema/ |
clery_crime_definitions.json |
Clery/DataDictionary/current/schema/ |
nibrs_to_clery_map.json |
Clery/DataDictionary/current/mappings/ |
Note: unified_data_dictionary/schemas/ is a 4-file compatibility shim for 02_ETL_Scripts/cad_rms_data_quality/config/schemas.yaml. The canonical copies live in CAD_RMS/DataDictionary/current/schema/.
Files in archive/ are retained indefinitely for reference. See archive/README.md for details.
This repository contains enhanced mapping schemas and strategies for integrating CAD (Computer-Aided Dispatch) and RMS (Records Management System) data.
cad_to_rms_field_map.json(v2.0) - Enhanced CAD-to-RMS field mapping with multi-column matching strategiesrms_to_cad_field_map.json(v2.0) - Enhanced RMS-to-CAD field mapping with multi-column matching strategies
multi_column_matching_strategy.md- Comprehensive guide to multi-column matching strategies for confident record linkingrms_export_field_definitions.md- Comprehensive RMS field definitions with validation rules, formats, and mapping notes (29 fields across 8 functional groups)docs/call_type_category_mapping.md- Complete Call Type to Category Type mapping documentation (649 call types across 11 categories, ESRI standard)
The enhanced mapping schemas (v2.0) include:
-
Multi-Column Matching Strategies: Three alternative matching strategies beyond primary key matching:
- Temporal + Address Match (confidence threshold: 0.85)
- Officer + Temporal Match (confidence threshold: 0.80)
- Address + Zone + Approximate Date Match (confidence threshold: 0.75)
-
Confidence Scoring: Each match includes a confidence score (0.0 to 1.0) indicating match quality
-
Match Strategy Tracking: Audit fields track which matching strategy was used for each record
-
Enhanced Audit Fields: Additional metadata fields for match quality analysis and troubleshooting
The primary join key (ReportNumberNew ↔ Case Number) should be used first for exact matching. The enhanced schemas maintain backward compatibility with primary key matching.
When primary key matching fails or confidence is low, the alternative matching strategies can be applied according to the workflow defined in multi_column_matching_strategy.md.
The enhanced schemas are backward compatible with v1.0 schemas. Existing code that uses primary key matching will continue to work. Alternative matching strategies are additive enhancements.
- CAD Field Definitions:
CAD/DataDictionary/current/schema/cad_export_field_definitions.md - RMS Field Definitions:
rms_export_field_definitions.md(comprehensive v1.0 with 29 fields organized into 8 functional groups) - Call Type Classification:
docs/call_type_category_mapping.md(527 call types mapped to 11 ESRI categories with response types) - Mapping Rules:
CAD_RMS/mappings/mapping_rules.md
The Standards folder now includes a comprehensive Call Type to Category Type mapping system for RMS Incident Type classification:
- Primary Reference:
09_Reference/Classifications/CallTypes/CallType_Categories.csv(649 entries, with Incident_Norm column, 11 ESRI standard categories only) - Documentation:
docs/call_type_category_mapping.md- Human-readable breakdown by category - Category Files:
mappings/call_types_*.csv- 11 category-specific CSV files for targeted loading - JSON Mapping:
mappings/call_type_category_mapping.json- Programmatic lookup dictionaries
Usage Example:
import pandas as pd
from pathlib import Path
# Load standard reference
calltype_file = Path(r"C:\Users\carucci_r\OneDrive - City of Hackensack\09_Reference\Classifications\CallTypes\CallType_Categories.csv")
df = pd.read_csv(calltype_file)
# Or load specific category
criminal_file = Path(r"C:\Users\carucci_r\OneDrive - City of Hackensack\09_Reference\Standards\mappings\call_types_criminal_incidents.csv")
criminal_incidents = pd.read_csv(criminal_file)
# Or use JSON for quick lookups
import json
json_file = Path(r"C:\Users\carucci_r\OneDrive - City of Hackensack\09_Reference\Standards\mappings\call_type_category_mapping.json")
with open(json_file, 'r') as f:
mapping = json.load(f)
category = mapping['call_type_to_category']['Domestic Dispute'] # Returns: 'Criminal Incidents'Categories (11 total):
- Administrative and Support (122 call types)
- Assistance and Mutual Aid (21 call types)
- Community Engagement (20 call types)
- Criminal Incidents (201 call types)
- Emergency Response (33 call types)
- Investigations and Follow-Ups (44 call types)
- Juvenile-Related Incidents (16 call types)
- Public Safety and Welfare (85 call types)
- Regulatory and Ordinance (31 call types)
- Special Operations and Tactical (19 call types)
- Traffic and Motor Vehicle (57 call types)
Note: The reference file includes an Incident_Norm column for normalized incident type matching, with E.D.P. variations (E.D.P., EDP, edp, etc.) all mapping to "Mental Health Incident".
| Version | Date | Changes |
|---|---|---|
| 1.0 | 2025-12-15 | Initial mapping schema with primary key matching |
| 2.0 | 2025-12-30 | Added multi-column matching strategies, confidence scoring, enhanced audit fields |