chatviz ✦ analyze
paper demo · ShareChat (arXiv:2512.17843)

Timestamps

Per-message timestamps — the paper's Timestamp field — give the corpus a time axis for usage trends and assistant latency. — 4 questions, shown as one conversation. · × exit demo
round 1 of 4
How many conversations are there per month?

conversations by month

6,862 0 2023-05: 627 2023-06: 4,254 2023-07: 1,583 2023-08: 1,650 2023-09: 1,262 2023-10: 1,482 2023-11: 1,309 2023-12: 614 2024-01: 635 2024-02: 556 2024-03: 541 2024-04: 554 2024-05: 3,025 2024-06: 4,200 2024-07: 2,435 2024-08: 583 2024-09: 1,411 2024-10: 2,446 2024-11: 6,371 2024-12: 6,862 2023-05 2024-12
What this shows: conversations over 20 months: it rose from 627 in 2023-05 to 6,862 in 2024-12, peaking at 6,862 in 2024-12. Conversation-level timestamps turn the corpus into a usage time series.
20 row(s) · 0.117s on the full corpus
compiled SQL (read-only, parameterized)
SELECT grp, COUNT(*) AS value, COUNT(*) AS n
FROM (
    SELECT substr(cs.created_day, 1, 7) AS grp,
        c.id AS cid,
        c.n_messages AS n_messages, c.turns_count AS turns_count,
        cs.has_thinking AS has_thinking, cs.has_code AS has_code,
        cs.has_links AS has_links, cs.is_complete AS is_complete
    FROM conversations c
    LEFT JOIN conv_signals cs ON cs.conversation_id = c.id
    WHERE 1=1 AND substr(cs.created_day, 1, 7) IS NOT NULL
) t
GROUP BY grp
ORDER BY grp
LIMIT 20

-- params: []
open this round in the analyzer ⎘
round 2 of 4
How fast does the assistant respond, per platform?

avg assistant response time (seconds) by platform

grok 28.93
What this shows: Each bar is one platform; the value is avg assistant response time (seconds). grok is highest at 28.93 across 1 groups. Platforms with per-message timestamps (GPT, Grok) expose the user→assistant gap directly.
1 row(s) · 3.588s on the full corpus
compiled SQL (read-only, parameterized)
WITH base AS (
    SELECT c.platform AS grp,
           m.role, m.created_at,
           LAG(m.created_at) OVER (
             PARTITION BY m.conversation_id
             ORDER BY m.message_index) AS prev
    FROM messages m
    JOIN conversations c ON c.id = m.conversation_id
LEFT JOIN conv_signals cs ON cs.conversation_id = c.id
    WHERE 1=1
), d AS (
    SELECT grp, (julianday(created_at) - julianday(prev)) * 86400 AS dt
    FROM base
    WHERE role = 'llm' AND created_at IS NOT NULL AND prev IS NOT NULL
)
SELECT grp, AVG(dt) AS value, COUNT(*) AS n
FROM d
WHERE dt > 0 AND dt < 3600 AND grp IS NOT NULL
GROUP BY grp
ORDER BY value DESC
LIMIT 20

-- params: []
open this round in the analyzer ⎘
round 3 of 4
Did response times change month by month?

avg assistant response time (seconds) by month

143.74 0 2024-12: 1.03 2025-01: 15.57 2025-02: 28.06 2025-03: 27.77 2025-04: 41 2025-05: 40.42 2025-06: 74.47 2025-07: 71.58 2025-08: 42.03 2025-09: 24.21 2025-10: 143.74 2024-12 2025-10
What this shows: avg assistant response time (seconds) over 11 months: it rose from 1.03 in 2024-12 to 143.74 in 2025-10, peaking at 143.74 in 2025-10. Latency as a trend — model releases and load show up here.
11 row(s) · 4.21s on the full corpus
compiled SQL (read-only, parameterized)
WITH base AS (
    SELECT substr(cs.created_day, 1, 7) AS grp,
           m.role, m.created_at,
           LAG(m.created_at) OVER (
             PARTITION BY m.conversation_id
             ORDER BY m.message_index) AS prev
    FROM messages m
    JOIN conversations c ON c.id = m.conversation_id
LEFT JOIN conv_signals cs ON cs.conversation_id = c.id
    WHERE 1=1
), d AS (
    SELECT grp, (julianday(created_at) - julianday(prev)) * 86400 AS dt
    FROM base
    WHERE role = 'llm' AND created_at IS NOT NULL AND prev IS NOT NULL
)
SELECT grp, AVG(dt) AS value, COUNT(*) AS n
FROM d
WHERE dt > 0 AND dt < 3600 AND grp IS NOT NULL
GROUP BY grp
ORDER BY grp
LIMIT 20

-- params: []
open this round in the analyzer ⎘
round 4 of 4
Which models dominate conversations since 2025?

conversations by model

ASSISTANT 11,490
o3 2,188
o1 1,115
gpt-4-5 947
o3-mini 767
grok-latest 725
requested_model_slug 564
o3-mini-high 539
o4-mini 479
o1-pro 429
o4-mini-high 384
grok-2 377
assistant 184
grok-3 147
gpt-4-1 118
o3-pro 105
model 101
gpt-4-1-mini 100
text-davinci-002-render-sha 75
grok-v-latest 63
What this shows: Each bar is one model; the value is conversations. ASSISTANT is highest at 11,490; grok-v-latest is lowest at 63 (182.4× spread) across 20 groups. Scope: date_from = 2025-01-01. Timestamps let you slice the corpus around model release dates.
20 row(s) · 0.063s on the full corpus
compiled SQL (read-only, parameterized)
SELECT grp, COUNT(*) AS value, COUNT(*) AS n
FROM (
    SELECT c.model AS grp,
        c.id AS cid,
        c.n_messages AS n_messages, c.turns_count AS turns_count,
        cs.has_thinking AS has_thinking, cs.has_code AS has_code,
        cs.has_links AS has_links, cs.is_complete AS is_complete
    FROM conversations c
    LEFT JOIN conv_signals cs ON cs.conversation_id = c.id
    WHERE cs.created_day >= ? AND c.model IS NOT NULL
) t
GROUP BY grp
ORDER BY value DESC
LIMIT 20

-- params: ['2025-01-01']
open this round in the analyzer ⎘
end of the walkthrough That was “timestamps” in 4 rounds. try your own question → · source links demo · conversation completeness demo
round 4 of 5 shown · continues as a normal analysis