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.
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
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
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.