Event Log Sessionizer
A timestamp conversion does not explain which events belong to the same visit-like interval. This tool groups exact user keys, puts each user’s events in chronological order and splits them at a chosen inactivity threshold. Every session keeps its first and last observed events, original CSV records and complete event path. The report uses an explicit mathematical definition instead of assuming the rules of a particular analytics product.
Key features
- Three explicitly chosen columns and timestamp formats; no guessed Unix units or browser timezone.
- Exact-key grouping with stable input-order ties for events at the same instant.
- A new session at gap ≥ timeout, with last-minus-first duration and zero-length single-event sessions.
- Session and event tables retain normalized UTC, original timestamp, source record and ordering provenance.
- Whole-report session CSV, event CSV and JSON exports independent of filters and pagination.
- Bounded local analysis, cooperative cancellation and whole-input errors rather than silent skipped events.
How to use
- Paste UTF-8 CSV or select a local file and choose comma, semicolon or tab.
- Inspect the table and select three distinct columns for user key, timestamp and event name.
- Choose the exact timestamp format and an integer inactivity timeout in seconds.
- Run analysis, compare duration statistics and inspect session event order and boundary gaps.
- Filter the preview or download the complete session CSV, event CSV or JSON report.
Use cases
- Group an anonymous fictional product log into consistently defined inactivity sessions.
- Audit exactly-at-threshold events while retaining their original CSV record numbers.
- Compare raw timestamps with different UTC offsets that refer to the same instant.
- Export complete event paths for later analysis without mistaking a session span for active engagement.
Frequently asked questions
When does an event start a new session?
The first event for a user starts a session. After sorting that user by UTC milliseconds, a gap greater than or equal to the chosen timeout starts another. At 1,800 seconds, exactly 30 minutes splits; 29 minutes 59.999 seconds does not. Crossing midnight alone does not split. Events with the same timestamp remain together in original CSV order.
What timestamp formats are accepted?
Choose RFC3339 with milliseconds, Unix seconds with up to three decimals, or integer Unix milliseconds. The RFC profile requires years 0001–9999, valid month/day/time, T/t, seconds and Z/z or ±HH:MM. Fractions beyond milliseconds, leap seconds, hour 24, named zones, offsetless timestamps and whitespace around timestamps are rejected. The tool does not claim every RFC3339 variant is supported.
What does -00:00 mean?
RFC3339 -00:00 identifies a known UTC instant while leaving the original local offset unknown. Z and +00:00 specify zero offset. Unix timestamps likewise define instants without providing an original local timezone. The report preserves the raw text and separately records whether that local offset is known.
Is session duration the time a user actively spent?
No. Duration is the last observed event minus the first in that session. A single event contributes zero and no timeout is added after the final event. Sessions with zero duration participate in mean and median statistics. Per-session integer milliseconds and total decimal-string milliseconds are exact; the mean is a floating-point approximation. These values do not prove attention or reproduce a specific analytics service.
How are keys, duplicate events and input order handled?
User keys preserve case, spaces, leading zeros and Unicode spelling. Headers alone have outer whitespace trimmed. Identical event rows are retained, not deduplicated. Events are sorted separately within each user; identical instants keep original input order. The result includes both original logical CSV records and chronological ranks. Global session IDs apply only to this report, not as persistent IDs across edited inputs.
What are the limits and what do exports include?
Use up to 1 MiB UTF-8, 5,000 data rows, 32 columns and 100,000 cells; selected user/event strings are single-line nonblank values up to 256 code points. Bad rows fail the whole analysis. Blank records are counted and skipped. CSV and JSON always include every session/event independent of the preview; full paths are exported even when the table shortens their display. CSV protects spreadsheet formula prefixes, JSON keeps originals, and each output is bounded to 8 MiB. Cancellation discards partial results.
Privacy
Only explicitly pasted text or a selected file is read. Analysis stays in page memory; there is no upload, URL/analytics storage or automatic save. Downloads contain user keys and event strings, so review them before sharing. Cancel or an error never yields a partial success.
Comments & questions