Docs

activity_capacity

Last updated: 27 Oct 2026

The activity_capacity schema shows how full your events and classes are. It sets the seats each event time slot and class session offers against the seats sold, check-ins and no-shows. Private appointments aren't in it.

It has no money. For what activities sell and earn, use activities, which has a row per ticket sold. A festival pass for three days is one ticket sold there, and a seat on each of the three days here.

Two kinds of metrics share it. Session metrics (capacity, sessions, sold_out_sessions, seats_available and fill_rate) belong to a time slot, so they can't split by ticket type. Seat metrics (seats_sold, checked_in, check_in_rate and no_shows) belong to each seat and split every way.

Use cases

  • Fill rate. Show capacity, seats_sold and fill_rate by activity.
  • Sell-outs. Count sold_out_sessions against sessions.
  • Best times. Group fill_rate by start_hour or day_of_week.
  • Attendance. Track checked_in, check_in_rate and no_shows for classes.
  • Booking pace. Use AS OF to see how full a month was a few weeks before.

Examples

Next month, activity by activity

FROM activity_capacity
  SHOW capacity, seats_sold, fill_rate, sold_out_sessions
  DURING next_month
  GROUP BY activity

Which class times fill up

FROM activity_capacity
  SHOW sessions, fill_rate
  WHERE activity_kind = 'service'
  DURING last_quarter
  GROUP BY start_hour

Class attendance

FROM activity_capacity
  SHOW seats_sold, checked_in, check_in_rate, no_shows
  WHERE activity_kind = 'service'
  DURING last_month
  GROUP BY activity

Seats by ticket type

Only seats have a ticket type. HAVING hides each activity's row of capacity, which has none.

FROM activity_capacity
  SHOW seats_sold
  DURING this_month
  GROUP BY activity, activity_variant
  HAVING seats_sold > 0

How full this month was a month ago

FROM activity_capacity
  SHOW seats_sold, fill_rate
  DURING this_month
  AS OF -1m
  GROUP BY activity

What it counts

How full events and classes are: the seats each event time slot and class session offers, against seats sold, check-ins and no-shows. Capacity is read as events and classes stand today. Only events and classes are included, not appointment services.

Dates

Rows are dated by service_date. Without DURING or SINCE, a query covers this_month. AS OF reads what was on the books at the end of an earlier day, and covers the 12 months from that day when the query has no range.

Metrics

Metrics you can use in FROM activity_capacity.

  • capacity · Number

    Seats on offer, as events and classes stand today. Ticket types whose times overlap form one slot. A slot offers its ticket types' capacities added up, a type without its own capacity offering the event's, but never more than the event's capacity. A class session offers its own capacity.

    Groups and filters only by activity, activity_kind, event_category, start_hour and time dimensions.

  • sessions · Number

    Event time slots and class sessions. An event over three days counts once a day; one that only runs past midnight counts on its first day. Cancelled class sessions, and draft events and classes with no seat sold, aren't counted.

    Groups and filters only by activity, activity_kind, event_category, start_hour and time dimensions.

  • sold_out_sessions · Number

    Event time slots and class sessions with every seat sold. AS OF a day, those that were sold out on that day.

    Groups and filters only by activity, activity_kind, event_category, start_hour and time dimensions.

  • seats_sold · Number

    Seats taken by tickets and class bookings that aren't cancelled. A ticket valid on several days takes a seat on each of them.

  • seats_available · Number

    Capacity less seats sold. Below zero when more seats were sold than the event or class offers today.

    Groups and filters only by activity, activity_kind, event_category, start_hour and time dimensions.

  • fill_rate · Percent

    Seats sold divided by capacity.

    Groups and filters only by activity, activity_kind, event_category, start_hour and time dimensions. Doesn't add up over time, so WITH CUMULATIVE can't take it.

  • checked_in · Number

    Seats checked in in SERVOS, from the day of the check-in. A ticket valid on several days counts as checked in on each of them.

  • check_in_rate · Percent

    Seats checked in divided by seats sold.

    Doesn't add up over time, so WITH CUMULATIVE can't take it.

  • no_shows · Number

    Class bookings marked as a no-show, or whose class has ended without a check-in, as the bookings calendar counts them. Tickets have no no-shows.

Dimensions

Dimensions you can group and filter by in FROM activity_capacity.

  • activity · Text

    The event or service (experience) sold.

  • activity_variant · Text

    The ticket or service variant sold. In activity_capacity only seats have a variant: grouped by it, each activity adds a row with no variant and 0; HAVING seats_sold > 0 hides it.

  • activity_kind · Text

    Whether the activity is an event (tickets) or a service. In activity_capacity a service is a class, because private appointments aren't included.

    Values: event, service.

  • event_category · Text

    The category set on an event (concert, workshop, …).

  • start_hour · Number

    The hour of the day, 0 to 23, an event time slot or class session starts, in the organization's time zone. An event that runs for more than a day starts at 0 on its later days.