Robin's Data Dictionary for Advanced Analytics

Robin gives you nine tables to build custom dashboards from. This article lists every table, what each one is for, what a single row represents, every available field, and the things that most commonly cause a number to come out wrong.

If you read only one line per table, read What one row means. It is the line that determines whether your numbers are right.

Before you start: know what you are counting

Most dashboard errors come from the same place. Someone picks a table, drags in a field, and gets a number that looks plausible but answers a different question than the one they asked.

The most common version of this is counting rows instead of counting things.

Several Robin tables contain a row for every desk or room on every day, whether or not anyone booked it. Count the rows and you get the number of desk-days, not the number of bookings. The result will be large, it will trend smoothly, and it will be wrong. The notes below tell you which tables behave this way and what to count instead.

The nine tables at a glance

GroupTablesWhat it answers
PeoplePeople Roster
Workplace Presence
Who works here, and who came in
DesksDesk Inventory
Desks and Reservations
What desks exist, and who booked them
Meeting roomsSpace Inventory
Spaces and Reservations
Hourly Space Utilization
What rooms exist, who booked them, and how full they actually were
Other bookable resourcesCustom Resource Inventory
Custom Resources and Reservations
Parking, lockers, equipment, EV chargers

Notice the pattern in the last three groups. Each has an Inventory table, which tells you what you have, and a Reservations table, which tells you what happened. Inventory tables are usually your denominators. Reservations tables are usually your numerators.

Which table should I use?

Your questionUse this table
How many people work here? How many are in each department?People Roster
How many people came into the office?Workplace Presence
Who is meeting our in-office expectations?Workplace Presence with People Roster
How many desks do we have?Desk Inventory
How many desk bookings were there, and who made them?Desks and Reservations
Do people show up for the desks they book?Desks and Reservations
How many meeting rooms do we have, and what are their capacities?Space Inventory
How many meetings were booked, and by whom?Spaces and Reservations
What percentage of the time are our rooms actually in use?Hourly Space Utilization
What is our busiest hour? Our busiest day of the week?Hourly Space Utilization
Are people booking rooms that are too big for their meetings?Spaces and Reservations, comparing attendees to capacity
How is our parking being used?Custom Resources and Reservations

People Roster

What it is for: Your employee list. This is where headcount comes from.

What one row means: One person. Every person in your Robin account has exactly one row.

Fields (16)

Organization ID, User ID, Name, Department, Title, Email, Manager Name, Manager Email, Invitation Accepted, Active, Groups, Roles, Default Building, Creation Time, Disabled Time, Employee Number

Use it for

  • Headcount, and headcount broken down by department, manager, or building
  • The denominator in any metric that starts "what percentage of employees"
  • Adoption tracking. Invitation Accepted tells you who has actually logged in
  • Reporting lines, using Manager Email

Watch out for

  • Former employees are still in this table. Active is FALSE and Disabled Time is filled in for people who have left. If you count rows without filtering to Active = TRUE, your headcount includes everyone who has ever worked there. Decide how you want to handle this once, then apply it the same way on every component.
  • Default Building is where someone is assigned, not where they went. A person assigned to Boston who spent the month in London still appears as a Boston row. If your question is about where people actually were, use Workplace Presence.
  • Groups and Roles hold multiple values in one field. One person can belong to several groups, and those arrive as a single combined value rather than one row per group. Filtering on them requires a "contains" match rather than "equals".
  • This is a current snapshot, not history. If someone changed departments last month, this table only knows about the new department. You cannot use it to reconstruct what your organization looked like in the past.

Workplace Presence

What it is for: Who was physically in the office. This is the only Robin table that counts people who came in without booking a desk.

What one row means: One person, on one day, at one building.

Fields (23)

Date, Organization ID, Campus ID, Campus, Building ID, Building, Name, Email, Department, Groups, Title, Manager Name, Manager Email, Start Time, End Time, Creation Time, Confirmed, Confirmation Method, Confirmation Time, Canceled, Cancellation Time, Confirmed Locally, Had Reservation

Use it for

  • Daily and weekly office attendance
  • In-office policy tracking, such as days in office per person per week
  • Understanding how presence is detected. Confirmation Method shows badge, Wi-Fi, and other signals
  • Sizing your deskless population. Had Reservation = FALSE means the person came in without booking a desk

Watch out for

  • Canceled rows are still in the table. Filter Canceled = FALSE or you will count visits that did not happen.
  • Confirmed and Canceled are two different filters. A row can be unconfirmed, meaning planned but never verified, or canceled, meaning called off. "Actually in the office" normally means Confirmed = TRUE and Canceled = FALSE. Decide which you mean before you build.
  • There is no User ID in this table. To combine it with People Roster you have to match on Email. That works, but email addresses change, and when they do the match silently drops the row rather than raising an error.
  • Employees with zero visits do not appear at all. Someone who never came in produces no rows. A chart of days in office by employee built only on this table quietly omits everyone with zero, which makes attendance look better than it is. To include them, start from People Roster and bring presence in alongside it.
  • One person at two buildings on one day produces two rows. Counting rows overstates how many people came in. Count distinct people instead.

Desk Inventory

What it is for: The desks you have. This is your desk denominator.

What one row means: One desk, on one day. This is a daily snapshot, so 200 desks over 30 days produces 6,000 rows.

Fields (20)

Organization ID, Organization, Date, Campus, Campus ID, Building, Building ID, Building Address, Building Description, Building Open, Floor, Floor ID, Desk Group, Desk Group ID, Desk, Desk ID, Booking Policy, Desk Disabled, Check-in Enabled, Bookable on Unassigned Days

Use it for

  • Desk counts by building, floor, and neighborhood, using Desk Group
  • The denominator in desk utilization
  • Auditing your setup: which desks are assigned rather than bookable, using Booking Policy, and which require check-in
  • Tracking how your desk supply changes over time, since this is a daily snapshot

Watch out for

  • Do not count rows. Because this is a daily snapshot, a row count answers "how many desk-days", not "how many desks". For a desk count, either filter to a single date or count distinct Desk ID.
  • Disabled desks are included. Desks with Desk Disabled = TRUE cannot be booked. Leaving them in your denominator makes utilization look artificially low.
  • Assigned desks are included. A permanently assigned desk is not competing for bookings the way a shared desk is. Combining the two into a single utilization number produces a figure that will not mean much to a facilities team. Split by Booking Policy.

Desks and Reservations

What it is for: Desk bookings. Who booked what, when, and whether they turned up.

What one row means: Read this carefully. This table contains Desk Inventory with reservation details attached. You get a row for every desk on every day. If that desk had a booking, the reservation fields are filled in. If it did not, the reservation fields are empty but the row is still there.

This is the most common source of wrong numbers in Robin data. A row count is not a booking count.

To count bookings, count Reservation ID, which is empty on unbooked rows and therefore counts only real reservations.

Fields (52)

Where and what
Organization ID, Organization, Reservation Date, Campus, Campus ID, Building, Building ID, Building Address, Building Description, Building Open, Floor, Floor ID, Desk Group, Desk Group ID, Desk, Desk ID, Booking Policy, Desk Type, Check-in Enabled, Desk Disabled, Bookable on Unassigned Days

The booking
Reservation ID, Series ID, Reservation Type, Planned Start Time, Actual Start Time, Actual End Time, Actual Hour Duration, Creation Time, Automatically Booked

Whether they showed up
Checked In, Check-in Time, Check-in Source, Check-in Type

Whether they canceled
Canceled, Cancellation Time, Cancellation Type, Canceling Client Type, Canceling Client Source

Who
Creator Name, Creator Department, Creator Groups, Creator Email, Assignee Name, Assignee Department, Assignee Groups, Assignee Email, Assignee Title, Assignee Manager Name, Assignee Manager Email

How they booked
Booking Client Type, Booking Client Source

Use it for

  • Booking volume and trend over time
  • Check-in rate, meaning how often a booked desk was actually claimed
  • No-shows and cancellations, including how late people cancel, by comparing Cancellation Time to Planned Start Time
  • Which teams sit where, using Assignee Department
  • Which apps people book from, using Booking Client Source. This is useful for rollout and training decisions

Watch out for

  • The empty-row behavior described above. This will affect your first chart if you skip it.
  • Creator and Assignee are different people. Admins and assistants book on other people's behalf regularly. "Bookings by department" means something different depending on which one you group by. Assignee is usually what people intend.
  • Canceled bookings are still rows. Filter Canceled = FALSE for bookings that actually happened.
  • Planned Start Time is not Actual Start Time. Planned is what was reserved. Actual is when the reservation really began. Duration math on the wrong one gives you the wrong answer.
  • Automatically Booked = TRUE means Robin created the booking, not a person. If you are measuring employee behavior, these are not employee behavior.
  • Recurring desk bookings have a Series ID, so you can group a repeating booking into a single series. Note that meeting room reservations do not have an equivalent field.

Space Inventory

What it is for: The meeting rooms you have, and how many people each one holds.

What one row means: One room, on one day. This is a daily snapshot, the same as Desk Inventory.

Fields (22)

Date, Organization ID, Organization, Campus, Campus ID, Building, Building ID, Building Address, Building Description, Floor, Floor ID, Space, Space ID, Space Type, Schedule Configuration, Is Bookable, Capacity, AMP Enabled, AMP Minute Threshold, AMP Strike Threshold, AMP Enabled Time, Space Disabled Time

About the AMP fields

AMP stands for abandoned meeting protection, the setting that automatically releases a room when nobody checks in.

  • AMP Enabled and AMP Enabled Time: whether the setting is on for this room, and when it was turned on
  • AMP Minute Threshold: how long Robin waits before releasing the room. The default is 10 minutes
  • AMP Strike Threshold: how many times a recurring meeting can be a no-show before Robin removes it from the room's calendar entirely

Use it for

  • Room counts by building, floor, and room type
  • Total seat capacity, and the denominator for any capacity-based metric
  • Answering "do we have enough small rooms", by grouping rooms by capacity
  • Auditing which rooms have automatic release turned on

Watch out for

  • Capacity is sometimes empty. Rooms that were never configured with a seat count have a blank value. Any average, sum, or capacity-weighted percentage will silently skip them, and your total seat count will be too low. Check how many of your rooms have a blank capacity before you build anything that depends on it.
  • Space Type is sometimes "unknown". A chart grouped by room type will include an "unknown" bucket. Leave it visible rather than filtering it out, so the reader knows it exists.
  • Rooms with Is Bookable = FALSE are included. A lobby or phone booth that nobody can reserve does not belong in a booking denominator.
  • Daily snapshot. Count distinct Space ID, not rows.

Spaces and Reservations

What it is for: Meeting room bookings in full detail. This is the most detailed table Robin provides.

What one row means: The same structure as Desks and Reservations. There is a row for every room on every day, whether or not it was booked. Count Meeting ID, not rows.

Fields (66)

Where and what
Organization ID, Organization, Campus, Campus ID, Building, Building ID, Building Address, Building Description, Building Open, Floor, Floor ID, Space, Space ID, Space Type, Schedule Configuration, Capacity, Is Bookable, AMP Enabled, AMP Enabled Time, AMP Minute Threshold, AMP Strike Threshold, Space Disabled Time

The meeting
Meeting ID, Reservation Date, Reservation Creation Time, Reservation Update Time, All Day Meeting, Title, Meeting Category, Is Recurring, Is Ad Hoc, Location

Who was there
Invited People, Attendees

Timing
Planned Start Time, Actual Start Time, Actual End Time, Actual Minute Duration, Check in Time, Minutes Delayed

What went wrong
Room Declined, Canceled, Cancellation Time, Cancellation Type, Automatically Unbooked At

Who booked it
Creator Robin ID, Creator Robin Name, Creator Department, Creator Groups, Creator Robin Email, Created by Email

Who is hosting
Host Robin ID, Host Robin Name, Host Department, Host Groups, Host Robin Email, Host Title, Host Manager Name, Host Manager Email, Hosting Calendar Email

How
Check in Source, Booking Client Type, Booking Client Source, Canceling Client Type, Canceling Client Source

Use it for

  • Meeting volume, and meeting volume by team
  • No-show rate, meaning meetings that were booked but never checked into
  • Punctuality. Minutes Delayed tells you how late meetings start
  • Right-sizing your rooms. Comparing Attendees to Capacity is how you find four-person meetings happening in twenty-person rooms. This is the analysis that most often justifies a floor plan change
  • Ad hoc versus planned booking behavior, using Is Ad Hoc
  • How much room time automatic release is recovering, using Automatically Unbooked At

Watch out for

  • Is Recurring tells you a meeting repeats, but there is no series identifier in this table. You cannot group the instances of a recurring meeting into a single series here the way you can with desk bookings. Questions like "how many recurring meetings do we have" are not answerable from this table today.
  • Attendees and Invited People are not the same thing. Invited is who was on the invitation. Attendees is who Robin believes was actually there. Using invited counts as attendance inflates every room-sizing conclusion you draw.
  • Both of those fields hold multiple values. They contain a list within a single field, so counting them means counting list entries rather than rows.
  • Creator and Host are different people, and the difference matters more here than with desks, because assistants book on behalf of executives frequently. Host is usually the meaningful one.
  • Title contains real meeting titles. Meeting titles are often sensitive. Think carefully before putting this field on a dashboard that other people will see.
  • Room Declined = TRUE means the room rejected the invitation. These are not meetings that happened. Filter them out.
  • For utilization, use Hourly Space Utilization instead. This table tells you about bookings. It does not cleanly tell you what share of the day a room was in use.

Hourly Space Utilization

What it is for: How full your rooms actually were, hour by hour. If you are building a utilization percentage or a heatmap, this is the table you want.

What one row means: One room, in one hour. A 50-room building over a 30-day month produces 50 x 24 x 30, or 36,000 rows.

Fields (21)

Date, Time Local, Organization ID, Organization, Campus ID, Campus, Building ID, Building, Floor ID, Floor, Space ID, Space, Space Type, Space Disabled Time, Capacity, Amp Enabled, Office Open, Minutes Booked, Minutes Checked In, Minutes Recaptured, Minutes Autocanceled

The four minute columns

Each row covers a single hour, so each of these values falls between 0 and 60.

FieldWhat it means
Minutes BookedMinutes the room was reserved
Minutes Checked InMinutes someone confirmed they were actually there
Minutes RecapturedMinutes returned to the pool because a meeting ended early or was released
Minutes AutocanceledMinutes freed because nobody checked in and Robin released the room

Use it for

  • Utilization percentage: Minutes Booked divided by 60 times the number of room-hours
  • The gap between booked and actually used. Comparing Minutes Checked In to Minutes Booked shows the difference between what people reserve and what they use. The gap is usually larger than people expect
  • Peak hour and peak day-of-week heatmaps
  • Quantifying what automatic release is recovering, using Minutes Recaptured and Minutes Autocanceled

Watch out for

  • Office Open is the field that decides whether your utilization number is credible. Every room has 24 rows per day, including the middle of the night. If you leave the closed hours in, you are dividing by a day that is roughly three times too long, and a room that is 60 percent utilized during business hours will show as about 20 percent. Filter to Office Open = TRUE, or define your own business-hours window. Whichever you choose, state it in the component description.
  • Decide your denominator explicitly. Minutes divided by 60 gives you share of time in use. Weighting by Capacity gives you share of seat-time in use. These are different numbers that tell different stories, and rooms with a blank capacity will drop out of the second one.
  • Disabled rooms still generate rows. Space Disabled Time is populated for them. Filter them out.
  • Date and Time Local are both timestamps. Date is the day bucket. Time Local is the specific hour in the building's own time zone. For anything involving hour of day, use Time Local, otherwise a report covering multiple regions will smear the peak hour across time zones.
  • This table spells the field Amp Enabled, while Space Inventory spells it AMP Enabled. Field names are not always consistent between tables, so select fields from the list rather than typing them.

Custom Resource Inventory and Custom Resources and Reservations

What they are for: Everything bookable that is not a desk or a meeting room. Parking spaces, lockers, EV chargers, equipment, and bike storage.

What one row means: One resource, on one day, with booking details where a booking exists. These tables have the same empty-row behavior as the desk and space tables, so count Reservation ID rather than rows.

Fields (44)

Where
Organization ID, Organization, Reservation Date, Campus, Campus ID, Building, Building ID, Building Address, Building Description, Building Open, Floor, Floor ID

What
Resource Group, Resource Group ID, Resource Name, Resource ID, Resource Type, Resource Subtype, Resource Note, Is Accessible, Capacity

The booking
Reservation ID, Is Assigned, Planned Start Time, Actual Start Time, Actual End Time, Actual Hour Duration, Booking Client Source, Checked In, Check-in Source, Check-in Time

Who
Creator ID, Creator Name, Creator Email, Creator Department, Creator Groups, Assignee ID, Assignee Name, Assignee Email, Assignee Department, Assignee Groups, Assignee Title, Assignee Manager Name, Assignee Manager Email

Use it for

  • Parking demand and utilization
  • Accessible resource availability and usage, using Is Accessible
  • Locker and equipment assignment
  • Breaking any of the above down by Resource Type and Resource Subtype, for example parking narrowed to electric vehicle spaces

Watch out for

  • Floor is often empty. Parking lots and other outdoor resources are not on a floor, so a chart grouped by floor will drop them.
  • Is Assigned separates permanent assignments from bookings. An assigned locker is not a booking, the same way an assigned desk is not.
  • Resource types are whatever your organization named them. Unlike desks and rooms, these values are defined by you, so look at your own data before assuming what values exist.

Combining tables

Most useful dashboards eventually need two tables at once, such as presence against roster, or bookings against inventory. Two rules will save you most of the trouble.

Join on IDs, not names. Building ID, Floor ID, Space ID, Desk ID, Campus ID, and Resource ID are stable. Building, Floor, Space, and Desk are display names that someone will eventually rename, and when they do your join will start dropping rows without any error message.

For people, the key depends on the table. People Roster has User ID. Desk and resource reservations have Assignee Email and Creator Email. Workplace Presence has Email only. Any join involving Workplace Presence has to run on email address.

Field naming differences between tables

The differences below are real, not typos. Always select a field from the field list rather than typing it from memory.

ConceptHow it varies
When the record was createdCreation Time in roster, presence, and desk tables. Reservation Creation Time in Spaces and Reservations
When someone checked inCheck-in Time in desk and resource tables. Check in Time in Spaces and Reservations
Automatic release settingAMP Enabled in Space Inventory. Amp Enabled in Hourly Space Utilization
The date of the recordDate in inventory, presence, and hourly tables. Reservation Date in reservation tables

Writing descriptions people will understand

Every component has a description field. Use it, and write it for someone who has never seen the underlying data. Say what the number counts, over what period, and what is excluded.

Instead ofWrite
Sum of Minutes Booked / 60 where Office Open = TRUEShare of time meeting rooms were reserved during open office hours.
AMP recaptured minutesTime given back because nobody checked in and the room was released automatically.
Distinct assignee count from Desks and ReservationsNumber of people who booked at least one desk in this period.
Presence rows where Confirmed = TRUEEmployees confirmed in the office, including those who did not book a desk.

Articles in this section

Was this article helpful?
0 out of 1 found this helpful
Share