Accident Evidence & Timeline Organizer

Multi-modal transport incident timeline preparation & client-side evidence synthesis

🔒 100% Local Browser Memory

Incident Profile Step 1: Set Incident Scope

Add Evidence or Record

Chronological Evidence Stream Sorted 2026-06-15 to 2026-06-18
Filter:

Timeline Sequencing and Identifier Redaction

Read the explanation

Every evidence record carries a timestamp and category. The organizer automatically re-indexes items along a continuous chronological timeline. To preserve privacy, client-side regular expressions detect personal names and license plate codes, substituting them with secure redaction blocks. Toggling 'Mask Details' increments the local redacted counter, updating consultation readiness and exporting clean case dossiers on demand.

Timeline Sequencing and Identifier Redaction Mechanics

How does this tool re-order accident evidence records, and what patterns trigger its client-side redaction masks?

The application maintains an in-memory collection of incident records and re-renders them chronologically by comparing ISO date strings via JavaScript's Date constructor. When redaction is enabled for an individual card or globally across the dossier, the tool applies two simple regular expressions: one matching title-cased two-word phrases (e.g., 'Jane Doe') and another matching alphanumeric tokens between 3 and 7 characters in length (excluding purely numeric strings). These simple text transforms run entirely inside local browser memory.

The redaction engine uses rigid pattern heuristics rather than comprehensive Personally Identifiable Information (PII) recognition or legal redaction rules (such as Federal Rule of Civil Procedure 5.2 or HIPAA safe harbor standards). It will overlook single-name references, lowercase names, multi-part surnames, addresses, and non-conforming plate formats, while unintentionally masking ordinary capitalised words or short acronyms. The checklist and dossier generator do not provide legal advice or verify evidential authenticity.

Try a worked example

Under 'Incident Profile', the default fixture initializes three entries dated 2026-06-15, 2026-06-16, and 2026-06-18. If you add a new entry titled 'Towing Dispatch' with category 'Police', date '2026-06-14', and notes 'Driver Alice Smith vehicle ABC1234', the timeline immediately re-sorts with 2026-06-14 as the first entry, and 'Active Chronology' expands to '2026-06-14 to 2026-06-18'. Clicking 'Mask Details' on that card transforms 'Alice Smith' into '[REDACTED NAME]' and 'ABC1234' into '[REDACTED]', while incrementing the 'Redacted' summary metric from 0 to 1.

Date Sorting Implementation

Every time an item is added, removed, or edited, the script creates a shallow copy of the state's item list and runs Array.prototype.sort with (a, b) => new Date(a.date) - new Date(b.date). The minimum and maximum date values are read directly from indices 0 and length - 1 of this sorted array to update the display range.

Client-Side Regular Expression Matching

The masking routine runs two replace passes: first, /\b([A-Z][a-z]+ [A-Z][a-z]+)\b/ replaces two-word capitalized phrases with '[REDACTED NAME]'; second, /\b[A-Z0-9]{3,7}\b/ replaces alphanumeric codes with '[REDACTED]' unless the match consists entirely of digits (/^[0-9]+$/). Both title and description strings are processed through this helper before rendering or building the JSON/text export dossier.

Enjoy this tool? Build your own with Super