Streamlining attendance tracking


#1

I’ve got a couple different Airtable bases that include tracking attendance. In both situation I find myself entering the names of 20–30 people in a field in my attendance tracking table. (More precisely, I’m linking to those individuals’ records in the relevant table.)

The interface seems ungainly, and without the ability to filter records when viewing all of the students who may be attending a certain class based on their schedule, the number of possible attendees is large. It takes a long time to enter 20+ people in the linked field that records their attendance.

A typical spreadsheet approach would be to create a column for each meeting that requires taking attendance and quickly enter an “x” or some other indicator that the person was present. This is really quick and allows for basic calculations, but isn’t very elegant from a database standpoint.

Is there a good way to speed up the process of selecting and adding a large number of records to a linked field?

Am I missing an alternative design that would make things more streamlined?


#2

Here’s how I do it.

  1. I only track absences and assume attendance of the others.

  2. I link my student table to a table that tracks attendance

  3. If I have a large number of folks I need to put in, I spreadsheet style use copy/paste and cell dragging to apply the date or the student across multiple “cells”

Hope that helps you.


#3

Thanks, Hashim. I’m curious how you have that attendance taking table set up. Do you have separate columns for each date?


#4

I track attendance of Pilates exercise classes. I had a similar problem to yours, and discussed it with Airtable tech support. What I wanted, but the Airtable UI doesn’t provide:

  1. the ability to set a View as the destination of a link or lookup, with that view filtered as desired, say, to the currently enrolled students ((like a temporary table or SELECT … INTO works in SQL))
  2. the ability to put a “boolean clause” on the Lookup, Link or Rollup so that only criteria-meeting records are included.
    The API does provide these capabilities somewhat. A “get request” can specify a View and a FilterbyFormula… If you don’t want to write some scripts to use the API, you can experiment with a web service automator/connector like Zapier. Creating a “faux temporary” table containing the matching records and using it for link/lookup/rollup is a messy error-prone workaround that may appeal to the really desperate. The API documentation doesn’t explain how to specify query parameters, so I am reading the airtable.js file. Chris Coyier’s example of combining Airtable with axios for the AJAX was enough to get me started.

#5

@Leslie_Henry, thanks for the input. I had started wondering myself if I needed to code a web page just for the purpose of taking attendance. I really hope that won’t be necessary.


#6

Just following up on my own post here. I realized that the simplest way to do the attendance each week is to simply copy a field from another table that contains all the students who are enrolled and then paste it into the weekly attendance field. Deleted the few students who don’t attend will be much easier than selected those who were present one at a time.

To keep accurate statistics I also need to track separately the students who were absent. That will add a bit of hassle, but it’s the only way I’ve come up with to track percentage attendance for people who enroll part way through the course. Otherwise it’s impossible to know the right denominator to do the percentage calculation.

Feature request: I would be awesome to be able to drag a linked reference from one field to another.


#7

Each new date is a new record


#8

Tim, I’m not 100% sure I follow what you’re trying to do here, but it seems to me you could have an attendance table set up with fields like this:

Name | Student Name | Course Title | Week 1 Attendance | Week 2 Attendance | Week 3 Attendance

Your “name” field would be a formula that concatenates student name and course title, so you have a unique ID for each attendance record. Student Name links to a Students table; Course Title links to a Courses table. The Week 1, 2, 3, etc fields are checkboxes.

You can then set up another formula field to count/sum the number of attendances (a checkbox will be counted as “1”, no check as “0”). If you need this as a percentage, create a field with the total number of classes offered, and use this in another formula field that divides by the number of attendances.

To show attendance at each class, you can add an IF formula field for every attendance field, i.e. “IF({Week 1 Attendance} = 1, {Student Name})”. Then in your Course Title table, you can use a lookup field to pull the names of all attending students for each class.

Hope this is helpful in some way, and apologies if I’ve misunderstood what you’re looking for here…