Skip to main content

Attendance Data Format Requirements

This guide details the CSV file specifications required for SFTP-based attendance integration, including required columns, formatting rules, and optional contact data. Use this alongside the SFTP Attendance CSV Setup guide.

Need-to-Know

Before uploading any attendance files, confirm that the following values align exactly with your OneRoster data:

  • Student Numbers — Must exactly match the student identifiers in your OneRoster data (typically the OneRoster sourcedId).

  • Period Numbers — Must match the period values in your OneRoster class data.

  • Section IDs — Use the OneRoster class sourcedId. This is critical for matching attendance to the correct class.

  • Attendance Codes — Must exactly match the codes defined in your attendance_codes.csv file. Codes are case-sensitive ("A" and "a" are treated as different codes).


Required Files

You will need to provide the following CSV files:

  1. attendance_codes.csv — Upload once at setup; re-upload whenever codes change.

  2. attendance.csv — Upload on your regular attendance schedule (see SFTP Attendance CSV Setup).

  3. attendance_taken.csv — Optional but recommended; tracks which sections have had attendance taken.


File 1: Attendance Codes

Filename: attendance_codes.csv

This file defines all attendance codes used in your district and maps each code to a Present or Absent status. Upload this file once during setup and re-upload any time your codes change.

Column

Description

code

The short code used in attendance records (e.g., P, A, T, E, U)

status

Whether this code means Present or Absent (not case-sensitive)

description

Human-readable label (e.g., "Sick", "Tardy", "Doctor's Appointment")

Important:

  • Codes must match exactly in your attendance data.

  • Re-upload this file whenever attendance codes are added or changed.


File 2: Attendance Data

Filename: attendance.csv

This file contains your attendance records. Upload on your regular schedule (mid-day, end-of-day, or nightly—see SFTP Attendance CSV Setup).

Required Columns

Column

Description

att_date

Date attendance was taken — format MM/DD/YYYY

student_number

Local student ID; must match OneRoster student ID

period_number

Period or block number; must match OneRoster periods

section_id

OneRoster class/section identifier (sourcedId)

code

Attendance code; must match a code from attendance_codes.csv

Optional Column

Column

Description

comment

Additional notes about the attendance record (e.g., "Parent called ahead")


File 3: Attendance Taken (Optional)

Filename: attendance_taken.csv

Tracks which class sections have had attendance officially recorded. Uploading this file alongside attendance.csv enables faster family notifications by signaling that attendance is complete for a given section.

Required Columns

Column

Description

attend_id

Unique identifier for each record (e.g., ATT001)

date

Date attendance was taken — format MM/DD/YYYY

section_id

OneRoster class/section identifier (sourcedId)

period_id

Period number; must match period_number in attendance.csv

Important:

  • Each attend_id must be unique.

  • Upload this file at the same time as your attendance.csv.


Optional: Parent / Guardian Contacts

Edia will obtain parent/guardian contact information from your OneRoster API when available. If that data does not include sufficient contact details, you can provide contact information via CSV upload instead.

Please provide only one contact per student.

Filename: contacts.csv

Column

Description

contact_id

Unique identifier for the contact

student_id

Must match the OneRoster student ID

first_name

Contact's first name

last_name

Contact's last name

relationship

Contact's relationship to the student

Filename: contact_phone.csv

Column

Description

contact_id

Must match the contact_id in contacts.csv

contact_phone

Contact's phone number

ranking

Phone number ranking (used to determine outreach order)


Tips & Troubleshooting

✔ Attendance codes aren't matching Double-check that codes in attendance.csv exactly match those in attendance_codes.csv, including capitalization. "A" and "a" are treated as different codes.

✔ Attendance isn't linking to the right class Confirm that section_id values in your attendance file use the OneRoster class sourcedId, not a local section number or name.

✔ My codes or contacts have changed Re-upload attendance_codes.csv or your contacts files whenever changes occur. Nightly uploads will keep everything current automatically.

Did this answer your question?