Tracking Attendance & Detention in Notion

We worked with an Atlanta-based private academy to create a workspace that easily tracks attendance, detention, and community service per grade level.


The goal of this project is to eliminate spreadsheets and create a more straightforward, streamlined solution for admin and grade group leads to track crucial data for student success.

We used three databases to accomplish this;

  • 2024-2025 School Year Calendar

  • Student Log

  • Detention Log

 

The 2024-2025 School Year Calendar Database

The 2024-2025 School Year Calendar utilizes reoccurring templates to auto-create a new entry everyday. These entries are then used as a relation in the Student Log for tracking absences and tardies. In this database, the admin team can also see this data for the entire school as a whole as well.

The recurring template adds the date to the page title & date property using the ‘@ date when duplicated’ feature.

The recurring template is triggered every day Monday - Friday at 12AM.

 

Student Log Database

The Student Log is the primary database to see all information regarding a student, grouped by grade. This database utilizes relations and rollups to track total absences, tardies, detentions and community service.

Attendance Status formula:

Based on the number of absences & tardies a student has will trigger an action to either assign Saturday School or notify the grade leader.

if( or( Absences == 5, Absences == 10, Absences == 15, Absences == 20 ) or Tardies == 5, if( Tardies == 5, "⚠️ Notify Leader; Saturday School", "⚠️ Leader Notified" ), "" )


Service Remaining formula:

Each student is required to complete 20 service hours every year, with a total of 80 hours by graduation. This formula counts total hours completed, subtracts by the required number for their grade level, then shares the remaining time until the hours are due each year.

if( Grade == "9th Grade", if( 20 - Service Hours <= 0, "🎉 Service hours complete!", 20 - Service Hours + " hours, " + dateBetween(now(), fromTimestamp(toNumber("1680307200000")), "weeks") + " weeks until due" ), if( Grade == "10th Grade", if( 40 - Service Hours <= 0, "🎉 Service hours complete!", 40 - Service Hours + " hours, " + dateBetween(now(), fromTimestamp(toNumber("1680307200000")), "weeks") + " weeks until due" ), if( Grade == "11th Grade", if( 60 - Service Hours <= 0, "🎉 Service hours complete!", 60 - Service Hours + " hours, " + dateBetween(now(), fromTimestamp(toNumber("1680307200000")), "weeks") + " weeks until due" ), if( Grade == "12th Grade", if( 80 - Service Hours <= 0, "🎉 Service hours complete!", 80 - Service Hours + " hours, " + dateBetween(now(), fromTimestamp(toNumber("1680307200000")), "weeks") + " weeks until due" ), "" ) ) ) )

 

Detention Log Database

The Detention Log tracks each detention as it’s assigned along with the hours, serve by date, and verification that the detention was completed.

Verification formula:

if( empty(Date Complete), "‼️ Incomplete", if( dateBetween(Date Complete, Serve Deadline, "days") <= 0, "✅ Completed on Time", "⚠️ Past Due" ) )

 

Using and Maintaining this Workspace

Our goal was that this workspace required minimal maintenance from the school’s admin staff aside from adding the students (which can be imported from a CSV), and updating their grade level each year.

Additionally, to ease new users into Notion, we provided a training video that can be shared internally with anyone who will be utilizing the workspace.

Have a similar project? Talk to us.


Written By: Sara Loretta

👋🏼 Sara Loretta is the Chief Digital Architect & Founder @ _systms — she’s also the 10th US Certified Notion Consultant, and 1st Certified Paperform Expert. Through her work and creatorship, Sara is focused on connecting and educating teams on tech, workflows, and all the ways they can optimize their business to scale. 

Previous
Previous

How to Build a Scalable Company Wiki: A Step-By-Step Guide

Next
Next

Building a Content Flywheel in Notion