Metric

What is RSVP-to-attendance conversion?

Definition

RSVP-to-attendance conversion is the share of people who registered for an event and actually showed up. Its complement is the no-show rate. The metric requires two records per person — a registration and a check-in — and if the check-in side doesn't exist, the metric doesn't either, no matter how good the registration data looks.

Formula: RSVP-to-attendance conversion = attendees who checked in / registrations excluding cancellations × 100

What data do you need?

  • Registration records with event ID, contact or member ID, and RSVP status
  • Check-in or attendance records — badge scans, door lists, or virtual join events
  • Cancellation and waitlist status, so the denominator can exclude withdrawals
  • Event metadata: type, format (in person or virtual), price, and start time
  • A documented minimum-duration rule if virtual joins count as attendance

SQL pattern

Conversion and no-show rate by event type (PostgreSQL)PostgreSQL
SELECT
  e.event_type,
  e.is_virtual,
  COUNT(*) FILTER (WHERE r.status <> 'cancelled') AS registrations,
  COUNT(*) FILTER (
    WHERE r.status <> 'cancelled' AND r.checked_in_at IS NOT NULL
  ) AS attendees,
  ROUND(
    100.0 * COUNT(*) FILTER (
      WHERE r.status <> 'cancelled' AND r.checked_in_at IS NOT NULL
    )
    / NULLIF(COUNT(*) FILTER (WHERE r.status <> 'cancelled'), 0), 1
  ) AS conversion_pct,
  ROUND(
    100.0 * COUNT(*) FILTER (
      WHERE r.status <> 'cancelled' AND r.checked_in_at IS NULL
    )
    / NULLIF(COUNT(*) FILTER (WHERE r.status <> 'cancelled'), 0), 1
  ) AS no_show_pct,
  COUNT(*) FILTER (WHERE r.status = 'cancelled') AS cancellations
FROM community_events e
JOIN event_registrations r ON r.event_id = e.event_id
WHERE e.starts_at < CURRENT_TIMESTAMP
  AND e.starts_at >= CURRENT_DATE - INTERVAL '12 months'
GROUP BY e.event_type, e.is_virtual
ORDER BY registrations DESC;

Common pitfalls

Inferring attendance from registrations.→ Without check-in records the number is fiction. Capture badge scans, door check-offs, or platform join events, and leave the card off the dashboard until you do.
Counting cancellations as no-shows.→ Someone who withdrew in advance is a different problem from someone who ghosted. Exclude cancellations from the denominator and track them separately.
Comparing free and paid events on one conversion number.→ Paid registration converts far better than free sign-up because money creates commitment. Segment by price, format, and event type before drawing conclusions.

Where does this metric apply?

This metric commonly uses data from Luma, Eventbrite, Meetup, Zoom Events, Splash, plus any warehouse models built on exported community and event records at the same grain.

Dashboards

Integrations

Metrics

Analytics

FAQ

How long must someone stay for a virtual event to count?
That is a policy decision you have to make and publish — five minutes and thirty minutes give very different conversion rates from the same webinar. Store the join and leave timestamps so the threshold is a query parameter rather than a fixed export, and put the current rule on the dashboard.
Can Metabase pull this straight from our event platform?
No. Metabase queries SQL databases and warehouses — it does not call event-platform APIs. Land registration and check-in data in a database first, via the platform's export, an ETL tool, or a scheduled API job, then point Metabase at the modeled tables.