5,165 tickets AI has worked on

What this meansTickets where AI closed it, sent a reply, or changed a booking. Both numbers behind it are in the charts below. Rounding can shift the last decimal. Checked 2026-08-03T16:10:59Z.

AI has worked thousands of tickets; booking changes are barely started

5,165 tickets

AI closed or helped on 5,165 tickets: 3,836 on its own and 1,329 alongside staff.

Booking changes are still tiny

AI made 23 booking changes and 9 went live. Staff made 1,024 and applied 983.

Worth knowing
  • AI alone and AI helped are two different jobs pooled into one number.
  • 23 booking changes is far too few to judge. Counts say nothing about whether the changes were right.
Before Easol On Easol
Booking changes by AI 23 count
AI changes that went live 9 count
Booking changes by staff 1,024 count
Staff changes that went live 983 count

Tickets by who handled them

Before Easol 572 Staff only 1,032 AI helped 1,329 AI alone 3,836 No reply yet 2,874

Where the numbers come from

One entry per figure: what it means, the SQL that made it, and when it was last re-checked.

Tickets AI worked on ai_touched_tickets

Tickets where AI closed it, sent a reply, or changed a booking

WITH b AS (
  SELECT
    CASE
      WHEN imported THEN 'pre_easol'
      WHEN ai_resolved THEN 'full_ai'
      WHEN (ai_draft_sent_count > 0 OR booking_action_performed_by_ai_count > 0) THEN 'partial_ai'
      WHEN sent_message_count > 0 THEN 'no_ai'
      ELSE 'no_reply'
    END AS bucket
  FROM reporting.inbox_tickets
  WHERE company_id = $1 AND created_at < $2
)
SELECT COUNT(*) AS value FROM b WHERE bucket IN ('full_ai', 'partial_ai')

Source: app/models/reporting/inbox/ticket.rb:178-186,205-207 (Reporting::Inbox::Ticket::AttributesBuilder#imported, #ai_resolved, #ai_draft_sent_count, #booking_action_performed_by_ai_count)

Verified: 2026-08-03T16:10:59Z

Booking changes by AI ai_booking_edits

Booking changes made in an AI session

SELECT COUNT(*) AS value
FROM booking_edits be
JOIN finance_bookings fb ON fb.id = be.finance_booking_id
WHERE fb.company_id = $1 AND be.created_at < $2 AND be.copilot_session_id IS NOT NULL

Source: app/models/booking_edit.rb:32 (belongs_to :copilot_session)

Verified: 2026-08-03T16:10:59Z

AI changes that went live ai_booking_edits_applied

AI booking changes that were actually applied

SELECT COUNT(*) AS value
FROM booking_edits be
JOIN finance_bookings fb ON fb.id = be.finance_booking_id
WHERE fb.company_id = $1 AND be.created_at < $2
  AND be.copilot_session_id IS NOT NULL AND be.applied_at IS NOT NULL

Source: app/models/booking_edit.rb:84 (BookingEdit#apply!, touch(:applied_at))

Verified: 2026-08-03T16:10:59Z

Booking changes by staff human_booking_edits

Booking changes made without AI

SELECT COUNT(*) AS value
FROM booking_edits be
JOIN finance_bookings fb ON fb.id = be.finance_booking_id
WHERE fb.company_id = $1 AND be.created_at < $2 AND be.copilot_session_id IS NULL

Source: app/models/booking_edit.rb:32 (belongs_to :copilot_session)

Verified: 2026-08-03T16:10:59Z

Staff changes that went live human_booking_edits_applied

Staff booking changes that were actually applied

SELECT COUNT(*) AS value
FROM booking_edits be
JOIN finance_bookings fb ON fb.id = be.finance_booking_id
WHERE fb.company_id = $1 AND be.created_at < $2
  AND be.copilot_session_id IS NULL AND be.applied_at IS NOT NULL

Source: app/models/booking_edit.rb:84 (BookingEdit#apply!, touch(:applied_at))

Verified: 2026-08-03T16:10:59Z

Tickets by who handled them tickets_by_bucket

Every ticket split five ways: before Easol, AI alone, AI helped, staff only, and no reply yet

SELECT
  CASE
    WHEN imported THEN 'pre_easol'
    WHEN ai_resolved THEN 'full_ai'
    WHEN (ai_draft_sent_count > 0 OR booking_action_performed_by_ai_count > 0) THEN 'partial_ai'
    WHEN sent_message_count > 0 THEN 'no_ai'
    ELSE 'no_reply'
  END AS label,
  COUNT(*) AS value
FROM reporting.inbox_tickets
WHERE company_id = $1 AND created_at < $2
GROUP BY 1 ORDER BY 1

Source: app/models/reporting/inbox/ticket.rb:178-186,205-207 (Reporting::Inbox::Ticket::AttributesBuilder#imported, #ai_resolved, #ai_draft_sent_count, #booking_action_performed_by_ai_count; delegates to Inbox::Ticket#imported? and Inbox::AiResolution via ticket.ai_resolution)

Verified: 2026-08-03T16:10:59Z