Applies to: Partners with the TalkingPoints Attendance product | TPC partners only — attendance requires TPC rostering
PowerSchool partners: this article does not apply to you. If your district uses PowerSchool, both attendance events and calendar data are managed through the TalkingPoints PowerSchool Plugin — no CSV files required. If you have questions about your attendance setup, reach out to your implementation contact.
Overview
TalkingPoints Attendance automates absence and tardy notifications to families. When a student is marked absent or late, TalkingPoints sends a message to their guardian automatically.
To make this work, TalkingPoints needs three data inputs:
Rostering — student and guardian data, already handled by your TPC connector
A calendar file — tells the system which days school is in session, so messages are suppressed on holidays and weekends
An attendance file — the daily absence or period-level events that trigger notifications
This article covers the calendar file and both types of attendance file. Your implementation contact will tell you which attendance type applies to your district.
Important: Attendance is only compatible with TPC rostering. If your site uses Clever, ClassLink, or CSV upload for rostering, attendance notifications are not currently supported.
Before you start: attendance code classification
Before configuring either type of attendance file, you'll need to work with your implementation team to classify every absence code your SIS uses. TalkingPoints maps codes into four categories:
Category | What it means | Used for |
Unexcused without a reason | Unexcused absences with no documented explanation from families | Automated daily messaging — this is the most common trigger for family notifications |
Unexcused | All other unexcused absences | Included in "All Unexcused Absences" in the dashboard |
Excused | Approved absences with a documented reason | Included in "All Absences" in the dashboard |
Filter out | Not true absences (e.g., Present, School Activity, In-School Suspension) | Excluded from your file entirely to keep processing fast |
Your implementation team may provide a template to help you complete this mapping. Have your full absence code list ready — this is a required step before your attendance sync can be fully configured.
Part 1: Calendar file
What it does
The calendar file defines every date in your school year and whether school is in session on that date. TalkingPoints uses it to know when to send notifications and when to suppress them. It does not need to be sent daily — only when your calendar changes.
File format
File must be named exactly: calendar.csv
Field | What to put here |
| Unique ID for the school. Must exactly match the |
| The date. Format: |
| Session status for that date. Use exactly: |
| Unique ID for the school year. Must match |
Multi-school districts
If your district has multiple schools with different calendars, include one row per school per date. The same calendar_date may appear multiple times in the file — once for each school — with the appropriate calendar_events value for each.
Synergy API note: The Synergy OneRoster API does not include the year-level academicSessions.sourcedId in its data model. Calendar file dates must instead be mapped to the active term-level academicSessions.sourcedId (e.g., quarter, trimester, or semester). Your implementation team can confirm the correct value to use if you are unsure.
When to send the calendar file
Unlike the attendance file, the calendar file does not need to be sent on a daily schedule. Send it when you initially set up attendance, and again any time your school calendar changes — at the start of a new term, when a the school year dates shift due to cancellations, or when summer school dates are confirmed.
Part 2: Daily attendance file
What it does
The daily attendance file delivers one absence record per student per day. TalkingPoints processes it and sends family notifications based on your configured absence codes and messaging rules.
Use this file type if: your SIS records attendance using a single daily code per student (one code marks a student absent for the whole day). Common in elementary and middle schools.
File format
File must be named exactly: attendance.csv
Field | What to put here |
| Unique ID for the school. Must match your rostering |
| Unique student ID. Must match |
| Date of the attendance entry. Format: |
| Type of attendance event. Use consistent casing across all records. Examples: |
| Decimal (0–1) indicating the portion of the school day missed. A full-day absence = |
| Short reason for the absence. Examples: |
| Optional. Internal notes or raw SIS codes. |
What to include — and what to leave out
Include all excused and unexcused absence events for the entire school year to date. The attendance dashboard and trends charts rely on full historical data to generate accurate visualizations.
Exclude any codes your team has classified as "Filter Out" — specifically, Present records and any event type that doesn't represent a true absence. Keeping the file lean directly reduces processing time, which matters more as the file grows through the year.
Part 3: Period/section attendance file
What it does
The period/section attendance file delivers one record per student per class period per day. It enables period-level trend reporting in the attendance dashboard and supports targeted period-specific notifications.
Use this file type if: your SIS tracks attendance at the class period level rather than as a single daily code OR you want to be able to see historical trends on which periods in your school schedule are most frequently attended/missed. Common in high schools.
File format
File must be named exactly: periodattendance.csv
Field | What to put here |
| Unique ID for the school. Must match your rostering |
| Unique student ID. Must match |
| Not required but can speed up troubleshooting if records need to be traced. |
| Date of the attendance entry. Format: |
| The class/section ID. Must match the section as it appears in your rostering data. This is how TalkingPoints connects an absence event to the correct class. |
| Period number or label. Examples: |
| Type of attendance event. Use consistent casing. Examples: |
| Decimal (0–1) representing the portion of the school day missed — not the individual period. If a student misses one period out of eight, this value represents the full-day proportion, not 1. Your implementation contact will help confirm the correct calculation for your school's schedule. |
| Short reason for the absence. Examples: |
| Optional. Raw SIS codes or internal notes. |
What to include — and what to leave out
Same rules apply as the daily file: include all excused and unexcused absence events for the school year to date, and exclude any codes classified as "Filter Out."
Optimizing the file is especially important for period-level data, since high schools generate significantly more records per day than daily-code schools.
File delivery and timing
How files get to TalkingPoints
Your IT team will configure an automated export from your SIS that deposits the attendance file on TalkingPoints' SFTP server each school day. The calendar file can be delivered the same way or manually when updates are needed. Your implementation contact will provide SFTP server credentials separately to your technical contact via a secure email.
How processing works
When your file lands on the SFTP server, it moves through a processing pipeline before data becomes visible in TalkingPoints and automated messages can send. Understanding this chain is important for scheduling your file delivery correctly:
File pickup — TalkingPoints checks for newly processed files on our server approximately every 10 minutes.
Processing — Once picked up, the file is ingested and validated. For most partners this takes 7–20 minutes. For larger districts or later in the school year when files are bigger, this can extend to 20–45 minutes.
Dashboard and message refresh — The attendance dashboard and automated messaging queue refresh every 10 minutes once processing completes.
Attendance Trends refresh — The historical charts in the Trends tab update on a separate, less frequent cycle (approximately every hour). A temporary mismatch between your dashboard data and your Trends charts is expected and normal — it is not a sign that data is missing.
Scheduling your file delivery
The goal is to have your file fully processed and your data updated on your attendance dashboard before your automated messages are scheduled to send. Build in a minimum 30-minute buffer between your file send time and your message send time. For larger districts, 45 minutes is safer, particularly later in the school year when files are largest.
Practical examples from live partners:
A large district sending files at 8:30 AM can reliably schedule automated messages for 9:10–9:15 AM
A small district sending files at 8:50 AM targets messages for 9:15 AM
A district with two daily sends (mid-morning and afternoon) staggers file delivery and message timing accordingly
Key rule: If your file arrives just after the top of the hour and processing hasn't completed by the time your message is scheduled, the message will skip or be delayed. Build your schedule so files arrive with enough runway — arriving at :15 or :45 past the hour typically provides a reliable buffer.
Keep your file lean — it directly affects timing
Your attendance file grows throughout the school year because it must include cumulative year-to-date data. By spring, large districts can see processing times that are two to three times longer than at the start of the year. The single most effective thing you can do to keep processing fast is exclude records that don't drive messaging or reporting.
Specifically:
Exclude "Present" records. These add significant file volume with no functional benefit to TalkingPoints. Filtering to absences and tardies only can reduce file size substantially.
Exclude any absence codes classified as "Filter Out" in your attendance code mapping. These should not appear in your file at all.
Do not include unnecessary partial-day events if they won't trigger a notification or appear meaningfully in your dashboard.
If you find your processing times degrading noticeably as the year progresses, contact your implementation team — there may be additional optimizations available depending on your SIS and file structure.
Sending multiple files per day
Some partners send their attendance file more than once daily — for example, a mid-morning send after attendance is finalized and an afternoon send to capture updates. Schools within the same district may have different plans to send messages - be sure that your file sends align with each school's expectations for scheduling their automated message.
This is supported, with two requirements:
Use the exact same filename every time.
attendance.csvmust beattendance.csvon every delivery —Attendance.csvorATTENDANCE.CSVwill fail to process.Stagger your sends. Sending a daily file and a period file simultaneously can cause processing conflicts. We recommend spacing them at least 10–15 minutes apart.
Disable partial exports
Ensure that partial export settings are turned off in your SIS export manager and SFTP client. A partial file that arrives intact but incomplete will process without error and produce incorrect data. Full file delivery, every time, is required for reliable results.
Infinite Campus users: courtesy SQL scripts
If your district uses Infinite Campus, TalkingPoints provides courtesy SQL scripts that queries your IC database and exports attendance events in the correct format for this file. The script pulls the fields TalkingPoints needs to populate the dashboard and trigger automated notifications.
You'll need database read access or the support of your district's IT team to run it. Before running, confirm with your implementation contact which absence and tardy codes should be included.
Common questions
How do I know which file type to use — daily or period? Your implementation contact will confirm this based on how your SIS tracks attendance. In most cases: if a student's absence is recorded once per day with a single code, use the daily file. If attendance is taken separately in each class period, use the period file.
What if my SIS has both a daily code and period codes? Some SIS setups record both — a clerk enters a full-day code when a parent calls in, and teachers enter period-level codes throughout the day. Your implementation contact will help you determine which data is more reliable and which file to use for automated messaging.
Can attendance notifications run during summer school? Yes, as long as your calendar file includes the summer session dates and you continue sending the attendance file during that period.
What if a file doesn't get sent one day? Because the file is cumulative, the next send will include all prior events. Your dashboard may show a gap for that day, but no events are permanently lost.
What happens to attendance data if a student changes schools? If a student moves to a different school within the district, there may be impacts to their historical attendance data in the dashboard. Your implementation contact can advise on what to expect during transitions.
How to submit your first file
Complete the attendance code classification with your implementation team before configuring your file export.
Confirm your school calendar dates (first day, last day, any non-standard breaks) and prepare your calendar file first.
Send both the calendar file and a sample attendance file(s) to the TalkingPoints server via the secure link provided by the Implementation team.
Your implementation team will confirm the files are processing correctly and that notifications are sending as expected before full launch.
