Core SIF - StudentDailyAttendance

Tool Search: SIF

The current version of SIF is v2.7.

This object provides daily attendance information for a particular student in a particular school on a particular date.

SIF_Events are reported for this object.

Batch Conditions:

Existing SIF_Condition elements to support:

  1. @StudentPersonalRefId
  2. @SchoolInfoRefId
  3. @Date
  4. @SchoolYear

Object Triggering

Event TypeRequirement
Add

When a new (Excuse NOT = X) attendance event is verified for a student and saved for a student with an enrollment.

  • When a student has both attendance and positive attendance.

    *An Add is not sent when the only attendance occurrence that exists is a positive attendance (Unit attendance) event. Attendance event must exist on attendance table for given day to send Add.

  • When a student's enrollment exists which didn't previously existed.

  • Report attendance for each school the student has a Student School Enrollment record for.

  • Attendance date must fall on or between enrollment start and end dates.

  • A record will send for each distinct Date and Attendance Event.

  • Do not send records if the student's enrollment is marked as a No Show or State Exclude.

Add/Change/DeleteIf Attendance Event Excuse is changed.
ChangeIf Attendance Comments on the Attendance table change.
  • When a (Excuse = X) attendance event is changed to a (Excuse NOT = X) attendance event.
Add/ChangeIf Positive Attendance Time In or Time Out Changes or Positive Attendance Time is removed.
DeleteDelete attendance record if all attendance is removed for the day.
Note: When a student's enrollment is deleted, no delete events are sent.

Object Population and Business Rules

Requirement
  1. Half Day absent (0.5):
    1. The sum of all absent minutes the student is assigned in their periods, where the attendance code has Status = A and Excuse NOT = X, minus any Present Minutes must be >= ((Half Day Absent Minutes)), and < ((Whole Day Absent Minutes)).
      1. If the student qualifies to report half day (0.5) absent:
        1. StudentDailyAttendance/AttendanceCodeInfoRefId must match the RefId for the Absent/Unknown AttendanceCodeInfo object with AbsenceValue = 0.5 in the calendar.
        2. When the calendar does not have an Absent attendance code with Excuse = Unknown, report the RefId for the attendance code in the calendar with Status = Absent and Excuse= Unexcused that has AbsenceValue = 0.5.
        3. When neither an Absent/Unknown nor Absent/Unexcused attendance code exists in the calendar, do not report the absence.
  2. Whole Day absent (1.0):
    1. The sum of all absent minutes the student is assigned in their periods, where the attendance code has Status = A and Excuse NOT = X, minus any Present Minutes must be >= ((Whole Day Absent Minutes)).
      1. If the student qualifies to report full day (1.0) absent:
        1. StudentDailyAttendance/AttendanceCodeInfoRefId must match the RefId for the Absent/Unknown AttendanceCodeInfo object with AbsenceValue = 1.0 in the calendar.
        2. When the calendar does not have an Absent attendance code with Excuse = Unknown, report the RefId for the attendance code in the calendar with Status = Absent and Excuse= Unexcused that has AbsenceValue = 1.0.
        3. When neither an Absent/Unknown nor Absent/Unexcused attendance code exists in the calendar, do not report the absence.
  3. Definitions:
    1. Half Day Absent Minutes:
      1. (System Admin>Calendar>Calendar>Grade Levels>Grade Level Detail>Half Day Absence (minutes)) for the grade the student is enrolled on this day.
        1. When Null, (System Admin>Calendar>Calendar>Half Day Absence (minutes))
          1. When Null, use 120.
    2. Whole Day Absent Minutes:
      1. (System Admin>Calendar>Calendar>Grade Levels>Grade Level Detail>Whole Day Absence (minutes)) for the grade the student is enrolled on this day.
        1. When Null, (System Admin>Calendar>Calendar>Whole Day Absence (minutes))
          1. When Null, use 240.
When the student is NOT either half or full day absent, a StudentDailyAttendance object must not be reported for this student and day.
Student does not have "State Exclude" = Checked on the enrollment unless the Zone Options allows these students to report.
Student does not have "No Show" = Checked on the enrollment unless the Zone Options allows these students to report.

Student is not exclusively enrolled in a non-Primary enrollment on this day unless "Exclude All Secondary Enrollments" = NOT Checked.

Send records for only  Primary enrolled students when "Exclude All Secondary Enrollments" = Checked.

The associated calendar does not have "Exclude from SIF Exchange" = Checked.
"Exclude from SIF reporting" on the enrollment State Grade Level is not checked.
The Attendance Code being referenced (AttendanceCodeInfoRefId) must be in the Attendance Code Allowed List:
  1. System Admin>Data Interchange>Zones>SIF Zone Options>Attendance Code Allowed List
  2. We will report all attendance codes when no attendance code is entered in the allowed list on the Zone Options tab.
Follow SIF Zone Options Rules for Zones:
Do Not Report when the Calendar > 'Exclude from SIF Exchange' is selected.
A Natural RefId is not created for this object, it is created by a compilation of IDs. Users can use other IDs within the object to run batch.


Object Data Elements

Data Element LabelDescriptionBusiness RulesData Source GUI PathDatabase
Field
M, C or O
@RefId A GUID that identifies an instance of this object. This RefId is new for 2.7M and MUST be supported like other objects that have a RefId (i.e. it is the key for the object). The alternate keys MUST continue to be supported.


M
@StudentPersonalRefIdThe ID (GUID) of the student for whom this attendance information is being reported. The RefId for the student.

attendance.personId



M
@SchoolInfoRefIdThe ID (GUID) of the school for which this attendance information is being reported.The RefId for the school.
calendar.schoolIdM
@DateThe calendar date to which this attendance information relates.The attendance date.Attendance > Dateattendance.dateM
@SchoolYearSchool year for which this enrollment is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007 for the 2006-07 school year).The school year.
Enrollment.endYearM
AttendanceCodeInfoRefIdThe ID (GUID) of the locally-defined daily attendance code information.
  1. Report the RefId based on the most common absent (Status = A and Excuse NOT = X) attendance code assigned across all of the student's periods in the day.
    1. When > 1 attendance code is considered most common (assigned during the same number of periods in the day), use the attendance code with the most absent minutes.
      1. Otherwise, use the last-entered absent attendance code.
  2. When the student is considered ((Half Day Absent)), report the AttendanceCodeInfo  version with an AbsenceValue = 0.5.
  3. When the student is considered ((Whole Day Absent)), report the AttendanceCodeInfo version with an AbsenceValue = 1.0.

The AttendanceCodeInfo RefId in the StudentDailyAttendance object provided for the student and day will always reference an existing, valid AttendanceCodeInfo.


attendance.status

attendance.excuse

M
TimeInThe time the student entered or returned to school.
  1. Attendance exists on a day
    1. Report the start time of the student's first attended non-absent and non-Early Release instructional period in the day, where:
      1. Status NOT = Absent or Early Release
    2. Do not report this element when:
      1. Student does not have any periods in the day in which:
        1. Status isn't = Absent or Early Release
    3. Format example: 08:52:00
      1. Do not change the time format.
  2. Attendance AND Positive Attendance exist on a given day
    1. Follow Attendance exists logic above
      1. Utilize the positive attendance TimeIn instead of the associated period startTime in the calculation for earliest time
        1. Format example: 08:52:00
          1. Do not change the time format.
    2. Positive attendance will be ignored if the time overlaps a period with an entered absence on the attendance table.

System Administration> Calendar> Calendar> Periods

Student Information > General > Attendance > Positive Attendance > positive attendance record



period.startTime    

AttendanceUnit.startTime

attendance

O
TimeOutThe time the student left school.
  1. Report the end time of the student's latest attended non-absent, non-early release instructional period in the day, where:
    1. Status NOT = Absent or Early Release
  2. Do not report this element when:
    1. Student does not have any periods in the day in which:
      1. Status isn't = Absent or Early Release
  3. Format example: 08:52:00
    1. Do not change the time format.
  4. Attendance AND Positive Attendance exist on a given day
    1. Follow Attendance exists logic above
      1. Utilize the positive attendance TimeOut instead of the associated period endTime in the calculation for lastest time
        1. Format example: 08:52:00
          1. Do not change the time format.
    2. Positive attendance will be ignored if the time overlaps a period with an entered absence on the attendance table.

System Administration> Calendar> Calendar> Periods

Student Information > General > Attendance > Positive Attendance > positive attendance record

period.endTime    

AttendanceUnit.endTime

attendance

O
AttendanceNoteNote related to this particular attendance.
  1. Report the non-null Comment (Student Info>General>Attendance>Comments) from across all periods in which the student had a qualified(Not excuse = 'X'), "most common" absent Attendance Code where:
    1. Status = Absent
    2. Excuse NOT = Exempt
      AND 
    3. The Comments field is NOT Null
  2. In the case of a tie, will select alphabetically by the code. (i.e: AE before AU)

*Positive Attendance recorded on the AttendanceUnit table will not be utilized.

Student Info>General>Attendance>Comments

Student Information > General > Attendance > Positive Attendance > positive attendance record

attendance.comments

AttendanceUnit.comments

O