How long do sessions really last? Access logs tell you when someone logged in and, eventually, when they logged out, but nobody reads two log lines a thousand entries apart and does the subtraction by hand. Session Duration Calculator pairs each login with its matching logout and reports per-user session counts, average, minimum and maximum durations — plus the unmatched logins and logouts that reveal when pairing broke down.
Pairing works first-in-first-out per user: each user gets their own queue, a login pushes a timestamp onto that queue, and the next logout for that same user pops the oldest pending login off it and records the gap as a completed session. This mirrors how sessions actually nest in most systems — you rarely see two logins for the same user without a logout in between, and when you do, the older one usually resolves first. Any login left in a queue with no matching logout by the end of the log is counted as an unmatched login (the user is presumably still active, or the logout never made it into the log); any logout with nothing to pair against is an unmatched logout (their session started before your log window, or something clipped it).
Start and end markers default to the words "login" and "logout", but real-world logs use all sorts of vocabulary — "authenticated", "signed in", "connection established" for starts; "disconnected", "session closed", "signed out" for ends. Both marker fields accept comma-separated lists, so you can type login, authenticated, sign in to match every phrasing your system uses in one pass, and each marker is also automatically checked against common variants like "logged in" / "sign in" without you having to spell those out.