PowerQuery-based Truancy DATs (Recommended)
Note: Legacy Java-based attendance DATs still function but are no longer supported or recommended. Use the PowerQuery-based attendance DATs below.
PowerQuery formatting rules
Formatting PowerQueries can be confusing. Use this quick guide:
|
Topic |
Rule / Example |
|---|---|
|
Where to put arguments |
Append arguments at the end of the query as arg.<name>=<value> Example: arg.endDate=10/01/2025 |
|
Date format |
Use MM/DD/YYYY for date arguments |
|
Limit returned fields |
Immediately after the query name, add ;fields=field1,field2 (comma-separated) |
|
Examples |
;fields=presenthrs ;fields=student_number,presenthrs |
|
endDate behavior (current year vs today) |
Default endDate is end of current year. If today is earlier than that date, attendance totals only include data through today. |
Present Hours (PowerQuery)
Purpose: Get the total amount of hours present for a student inside a date range
PowerQuery name: com.powerschool.usa_oh.students.present_hours
Arguments:
|
Argument |
Required |
Default |
|---|---|---|
|
startDate |
No |
~(date.information;type=current_year_start;dateformat=yyyy-MM-dd) |
|
endDate |
No |
~(date.information;type=current_year_end;dateformat=yyyy-MM-dd) |
Returned data fields
|
Field |
Description / Format |
|---|---|
|
first_name |
Student first name |
|
middle_name |
Student middle name |
|
last_name |
Student last name |
|
student_number |
Student number |
|
presenthrs |
Total present hours (decimal) |
|
presenthrs_time |
Total present hours (hh:mm) |
|
Example |
Returns |
PowerQuery |
|---|---|---|
|
All fields |
All returned fields |
^(*powerquery;query=com.powerschool.usa_oh.students.present_hours;arg.startDate=09/01/2025;arg.endDate=10/01/2025) |
|
presenthrs_time only |
presenthrs_time (hh:mm) |
^(*powerquery;query=com.powerschool.usa_oh.students.present_hours;fields=presenthrs_time;arg.startDate=09/01/2025;arg.endDate=10/01/2025) |
Medical Hours (PowerQuery)
Medical Hours - Get the total amount of medical hours for a student inside a date range
Powerquery Name - com.powerschool.usa_oh.students.medical_hours
|
Argument |
Required |
Default |
|---|---|---|
|
startDate |
No |
~(date.information;type=current_year_start;dateformat=yyyy-MM-dd) |
|
endDate |
No |
~(date.information;type=current_year_end;dateformat=yyyy-MM-dd) |
Returned data fields
|
Field |
Description / Format |
|---|---|
|
first_name |
Student first name |
|
middle_name |
Student middle name |
|
last_name |
Student last name |
|
student_number |
Student number |
|
medicalhrs |
Total medical hours (decimal) |
|
medicalhrs_time |
Total medical hours (hh:mm) |
Examples
|
Example |
Returns |
PowerQuery |
|---|---|---|
|
All fields |
All returned fields |
^(*powerquery;query=com.powerschool.usa_oh.students.medical_hours;arg.startDate=09/01/2025;arg.endDate=10/01/2025) |
|
medicalhrs_time only |
medicalhrs_time (hh:mm) |
^(*powerquery;query=com.powerschool.usa_oh.students.medical_hours;fields=medicalhrs_time;arg.startDate=09/01/2025;arg.endDate=10/01/2025) |
Absenteeism Hours & Percentage (PowerQuery)
Absenteeism Hours Totals - Get the various abscence hours total for a student based on user input
Powerquery Name - com.powerschool.usa_oh.students.truancy_hours
Arguments:
|
Argument |
Required |
Default / Valid options |
|---|---|---|
|
startDate |
No |
~(date.information;type=current_year_start;dateformat=yyyy-MM-dd) |
|
endDate |
No |
~(date.information;type=current_year_end;dateformat=yyyy-MM-dd) |
|
type |
Yes |
excused_month, total_absence, unex_consecutive, unex_month, unex_year, total_hours, total_percentage |
|
HB410 |
Yes |
Y, N |
Type options explained
|
Type |
Description |
HB410 parameter impact (if applicable) |
|---|---|---|
|
excused_month |
Total excused absence hours between the supplied dates. |
If HB410=Y: excused + unexcused hours excluding medically-excused exempt hours for the current month. |
|
total_absence |
Total excused absence hours between the supplied dates. |
If HB410=Y: excused + unexcused hours excluding medically-excused exempt hours for the current year. |
|
unex_consecutive |
Unexcused absences that are consecutive by day (not hour) minus any hours exempt from Truancy. Validate there are no breaks due to partial-day absences. |
— |
|
unex_month |
Unexcused absence hours minus any hours exempt from Truancy for the current month. |
— |
|
unex_year |
Unexcused absence hours minus any hours exempt from Truancy for the current year. |
— |
|
total_hours |
Sums present, excused, and unexcused hours to return total possible hours for the provided dates. |
— |
|
total_percentage |
Percentage of hours absent compared to the total possible hours. |
— |
Returned data fields
|
Field |
Description / Format |
|---|---|
|
first_name |
Student first name |
|
middle_name |
Student middle name |
|
last_name |
Student last name |
|
student_number |
Student number |
|
totals |
Total hours (decimal) |
|
totals_time |
Total hours (hh:mm) |
|
Example |
Returns |
PowerQuery |
|---|---|---|
|
All fields |
All returned fields |
^(*powerquery;query=com.powerschool.usa_oh.students.truancy_hours;arg.startDate=09/01/2025;arg.endDate=10/01/2025;arg.totals=excused_month;arg.HB410=N) |
|
totals_time only |
totals_time (hh:mm) |
^(*powerquery;query=com.powerschool.usa_oh.students.truancy_hours;fields=totals_time;arg.startDate=09/01/2026;arg.endDate=10/01/2025;arg.type=total_absence;arg.HB410=N) |
|
total_percent only |
total_percentage |
^(*powerquery;query=com.powerschool.usa_oh.students.truancy_hours;fields=totals_percentage;arg.startDate=09/01/2025;arg.endDate=10/01/2025;arg.totals=excused_month;arg.HB410=N) |
HB410 Truancy and Chronic Absenteeism Data Access Tag
This functionality is only available to users with PowerSchool 12.0 (and above) installed. As of September 2025, PowerQueries are the supported method.
Medical Hours
Purpose: Get the total amount of medical hours for a student inside a date range
|
Use |
Base Code |
|---|---|
|
Object Reports |
^(*compliance;dat.name=DAT_usa_oh_studentTruancy) |
|
Custom Pages |
~(*compliance;dat.name=DAT_usa_oh_studentTruancy) |
|
Parameters |
Purpose |
Options |
Default |
|
dat.studentID |
Defines the student. |
student ID |
Currently selected student or group of students. For object reports, this parameter is required or results are not always valid. This is case sensitive. Verify you are using dat.studentId |
|
dat.term |
Defines a term to use as a date range. |
A valid term abbreviation for the given school in the current year i.e. Q3 Any full-year term that contains a dash (20-21) will cause the code to break. |
Not used by default. Will override supplied dat.start_date and dat.end_date if supplied. |
|
dat.school |
Defines which school to be used for the term lookup. |
A valid school IRN in your district i.e. 037945 |
Not used by default. Required if using dat.term |
|
dat.start_date |
Define the start date for data. |
Any date formatted string i.e. 07/01/2018 |
07/01 of the current school year |
|
dat.end_date |
Define the end date for data. |
Any date formatted string i.e. 06/30/2019 |
06/30 of the current school year |
|
dat.type |
Define what type of data to display. |
total or days (See dat.columns for a list of columns that display based on dat.type selection.) |
total |
|
dat.headers |
Define if headers should be included. |
on, off |
on |
|
dat.display_type |
Define how to display hours. |
decimal, hours |
hours |
|
dat.render_type |
Define the style of output to be text or HTML. |
text, html |
html |
|
dat.out_of |
Define if the out of value should be shown for approaching state limits; for example, 10 / 65. |
on, off |
on |
|
dat.columns |
Define what columns to show and their ordering. |
dat.type = total the default is "total_month,total_year,unex_consecutive,unex_month,unex_year" but any combination of those columns in any order and with any omitted is considered valid or dat.type = days the default is "att_date,school,att_code,excused_status,hours_absent,hours_exempt" but any combination of those columns in any order and with any omitted is considered valid The order in which the columns display can be changed. |
all columns display based on dat.type selection |
|
dat.calc_type |
Defines whether to use the standard HB410 calculations or the FS calculations for attendance |
FS, HB410 |
HB410 |
Sample code
|
Code |
Results |
|---|---|
|
^(*compliance;dat.name=DAT_usa_oh_studentTruancy; dat.studentId=^(id); dat.display_type=decimal; dat.type=days; dat.headers=off) |
Absences for each day of absence will display as decimals with no headers displayed. |
|
^(*compliance;dat.name=DAT_usa_oh_studentTruancy; dat.studentId=^(id); dat.start_date=10/01/2018; dat.end_date=10/31/2018; dat.display_type=hours) |
Absence totals from 10/1/2018 through 10/31/2018 will be displayed as hours and minutes in these columns: Total Month Total Year Total Unexcused Consecutive Total Unexcused Month Total Unexcused Year |
|
^(*compliance;dat.name=DAT_usa_oh_studentTruancy; dat.studentId=^(id); dat.start_date=10/01/2018; dat.end_date=10/31/2018; dat.display_type=hours; dat.type=days; dat.columns=att_date,excused_status,hours_absent) |
Absences for each day will display with date of absence, an excused or unexcused status and the number of hours absent. The school information will not display as it is omitted in the dat.columns list. |
|
^(*compliance;dat.name=DAT_usa_oh_studentTruancy; dat.studentId=^(id); dat.term=Q3; dat.school=037945; dat.out_of=off; dat.headers=off; dat.render_type=text; dat.columns=total_year) |
Absence total from the start of Quarter 3 to the end of Quarter 3 will be displayed as hours and minutes without the out of / and rendered as text for easy inclusion into form letters and object reports. |
Graduation Pathways Data Access Tag
The following describes the use of the Ohio-specific Graduation Pathways Data Access Tag (DAT) on custom pages and object reports. Values are calculated in real time when the DAT tag is used.
This reference has been validated against the current GradPathwaysDAT.java implementation and includes both the original legacy pathway output and the newer permanent pathway output.
Use
|
Use |
Base Code |
|---|---|
|
Object Reports |
^(*compliance;dat.name=DAT_usa_oh_gradPathways) |
|
Custom Pages |
~(*compliance;dat.name=DAT_usa_oh_gradPathways) |
Parameters
|
Parameters |
Purpose |
Options |
Default / Notes |
|---|---|---|---|
|
dat.studentId |
Defines the student. |
Student ID |
Defaults to the currently selected student (curStudentId). For object reports, this parameter should be supplied so the results are always valid. This parameter name is case-sensitive and must be dat.studentId. |
|
dat.headers |
Defines whether column headers should be included. |
on, off |
on |
|
dat.render_type |
Defines whether output is returned as text or HTML. |
text, html |
html |
|
dat.pathway_type |
Defines which Graduation Pathways model to use. |
legacy, permanent |
legacy |
|
dat.out_of |
Defines whether point columns should include the out-of value, for example 10 / 12. |
on, off |
on. Legacy mode only. This option affects only the legacy point columns listed in the Legacy pathway columns section. |
|
dat.columns |
Defines which columns are shown and the order in which they are displayed. |
See the section-specific column lists below. |
Defaults depend on dat.pathway_type and, for permanent mode, dat.pathway_section. |
|
dat.pathway_section |
Defines which permanent pathway section should be returned. Required when dat.pathway_type=permanent. |
core_credits, competency, readiness, core_econ_req, core_arts_req |
Not used in legacy mode. |
|
dat.categories |
Filters the categories returned for a permanent section. |
See section-specific category lists below. |
When omitted, all supported categories for the selected permanent section are returned. Applies only to core_credits, competency, and readiness. |
|
dat.pathway_list_type |
Filters permanent section rows to all rows, summary rows only, or detail rows only. |
all, totals_only, data_only |
all. Applies only to core_credits and competency. |
|
dat.pathway_readiness_type |
Filters readiness seals by seal type. |
all, state, local |
all. Applies only to readiness. |
|
dat.pathway_readiness_progress_type |
Filters readiness seals by progress state. |
all, earned, partial, planned |
all. Applies only to readiness. |
Legacy Pathway Columns
When dat.pathway_type is omitted or set to legacy, the DAT returns the original multi-column Graduation Pathways summary.
All of the following columns are available for dat.columns and display in the order provided:
|
Column token |
Description / Notes |
|---|---|
|
stu_dcid |
|
|
stu_id |
|
|
stu_student_number |
|
|
stu_lastfirst |
|
|
stu_gradyear |
|
|
stu_notesyes |
|
|
stu_notes |
|
|
ohio_m_ouf_of |
Intentionally spelled exactly as shown; this is the token accepted by the code. |
|
ohio_m_points |
Affected by dat.out_of (on/off). |
|
ohio_e_out_of |
|
|
ohio_e_points |
Affected by dat.out_of (on/off). |
|
ohio_sc_out_of |
|
|
ohio_sc_points |
Affected by dat.out_of (on/off). |
|
ohio_total_out_of |
|
|
ohio_total_points |
Affected by dat.out_of (on/off). |
|
ohio_progress |
|
|
transfer_req_out_of |
|
|
transfer_req_points |
Affected by dat.out_of (on/off). |
|
transfer_taken_out_of |
|
|
transfer_taken_points |
Affected by dat.out_of (on/off). |
|
transfer_total_out_of |
|
|
transfer_total_points |
Affected by dat.out_of (on/off). |
|
transfer_progress |
|
|
college_ac_eng_points |
|
|
college_ac_m_points |
|
|
college_ac_r_points |
|
|
college_sa_m_points |
|
|
college_sa_w_points |
|
|
college_sa_r_points |
|
|
college_progress |
|
|
industry_workkey_points |
Affected by dat.out_of (on/off). |
|
industry_workkey_out_of |
|
|
industry_num1_out_of |
|
|
industry_num1_points |
Affected by dat.out_of (on/off). |
|
industry_num1_category |
Category label (legacy mode). |
|
industry_num2_out_of |
|
|
industry_num2_points |
Affected by dat.out_of (on/off). |
|
industry_num2_category |
Category label (legacy mode). |
|
industry_num3_out_of |
|
|
industry_num3_points |
Affected by dat.out_of (on/off). |
|
industry_num3_category |
Category label (legacy mode). |
|
industry_progress |
|
|
override_progress |
|
|
total_progress |
|
Notes:
-
ohio_m_ouf_of is intentionally spelled exactly as shown above because that is the column token accepted by the code.
-
Columns that do not have an applicable value in legacy mode return N/A.
-
dat.out_of only affects the following legacy point columns:
ohio_m_points, ohio_e_points, ohio_sc_points, ohio_total_points, transfer_req_points, transfer_taken_points, transfer_total_points, industry_workkey_points, industry_num1_points, industry_num2_points, and industry_num3_points.
Permanent Pathway Sections
When dat.pathway_type=permanent, dat.pathway_section is required.
Core Credits
Use dat.pathway_section=core_credits to return permanent pathway core credit rows.
Supported dat.columns values:
|
Column token |
Included in default order? |
Default order (1–8) |
|---|---|---|
|
category |
Yes |
1 |
|
progress |
Yes |
2 |
|
course_number |
Yes |
3 |
|
course_name |
Yes |
4 |
|
core_area |
Yes |
5 |
|
earned |
Yes |
6 |
|
in_progress |
Yes |
7 |
|
required |
Yes |
8 |
Supported dat.categories values:
|
Category |
|---|
|
english |
|
health |
|
math |
|
pe |
|
science |
|
social_studies |
|
electives |
dat.pathway_list_type behavior:
|
Value |
Meaning |
Rows returned |
|---|---|---|
|
all |
Returns both summary and detail rows |
Summary + detail |
|
totals_only |
Returns summary rows only |
Summary only |
|
data_only |
Returns course detail rows only |
Detail only |
Permanent section null values render as blank output rather than N/A.
Competency
Use dat.pathway_section=competency to return permanent pathway competency rows.
Supported dat.columns values:
|
Column token |
Included in default order? |
Default order (1–5) |
|---|---|---|
|
category |
Yes |
1 |
|
section |
Yes |
2 |
|
attribute |
Yes |
3 |
|
score |
Yes |
4 |
|
progress |
Yes |
5 |
Supported dat.categories values:
|
Category |
|---|
|
ge |
|
alternative |
|
ccp |
|
military |
|
career |
dat.pathway_list_type behavior:
|
Value |
Meaning |
Rows returned |
|---|---|---|
|
all |
Returns both header and detail rows |
Header + detail |
|
totals_only |
Returns header rows only |
Header only |
|
data_only |
Returns non-header detail rows only |
Detail only |
Permanent section null values render as blank output rather than N/A.
Readiness
Use dat.pathway_section=readiness to return permanent pathway readiness seal rows.
Supported dat.columns values:
|
Column token |
Included in default order? |
Default order (1–3) |
|---|---|---|
|
name |
Yes |
1 |
|
type |
Yes |
2 |
|
progress |
Yes |
3 |
Supported dat.categories values:
|
Category |
|---|
|
military |
|
technology |
|
industry_credential |
|
citizenship |
|
ohio_means_jobs |
|
biliteracy |
|
college-ready |
|
science |
|
honors_diploma |
|
community_service |
|
student_engagement |
|
fine_and_performing_arts |
Additional readiness filters:
|
Filter |
Options / Value |
|---|---|
|
dat.pathway_readiness_type |
all, state, local |
|
dat.pathway_readiness_progress_type |
all, earned, partial, planned |
Permanent section null values render as blank output rather than N/A.
Core Economics and Financial Literacy Requirement
Use dat.pathway_section=core_econ_req to return a single value:
-
Met
-
Not Met
This section does not use dat.columns, dat.categories, dat.pathway_list_type, dat.pathway_readiness_type, or dat.pathway_readiness_progress_type.
Core Fine Arts Requirement
Use dat.pathway_section=core_arts_req to return a single value:
-
Met
-
Not Met
This section does not use dat.columns, dat.categories, dat.pathway_list_type, dat.pathway_readiness_type, or dat.pathway_readiness_progress_type.
Sample Code
|
Example |
Code |
Results |
|---|---|---|
|
Legacy default HTML table |
^(*compliance;dat.name=DAT_usa_oh_gradPathways; dat.studentId=^(id)) |
Returns all legacy Graduation Pathways columns as an HTML table with headers. |
|
Legacy text summary without headers |
^(*compliance;dat.name=DAT_usa_oh_gradPathways; dat.studentId=^(id); dat.headers=off; dat.render_type=text; dat.columns=ohio_total_points, ohio_progress, transfer_total_points, transfer_progress, college_progress, industry_num1_points, industry_progress, total_progress) |
Returns selected legacy progress and points columns as text without headers. |
|
Legacy text summary without out-of values |
^(*compliance;dat.name=DAT_usa_oh_gradPathways; dat.studentId=^(id); dat.out_of=off; dat.headers=off; dat.render_type=text; dat.columns=ohio_total_points, ohio_progress, transfer_total_points, transfer_progress, college_progress, industry_num1_points, industry_progress, total_progress) |
Returns selected legacy progress and points columns as text without headers and without the out-of values. |
|
Permanent core credits |
^(*compliance;dat.name=DAT_usa_oh_gradPathways; dat.studentId=^(id); dat.pathway_type=permanent; dat.pathway_section=core_credits) |
Returns permanent pathway core credit rows as an HTML table using the default core credit columns. |
|
Permanent core credits totals only |
^(*compliance;dat.name=DAT_usa_oh_gradPathways; dat.studentId=^(id); dat.pathway_type=permanent; dat.pathway_section=core_credits; dat.pathway_list_type=totals_only; dat.columns=category, progress, earned, in_progress, required; dat.categories=english, math, science) |
Returns permanent pathway core credit summary rows only for English, Math, and Science. |
|
Permanent competency data only |
^(*compliance;dat.name=DAT_usa_oh_gradPathways; dat.studentId=^(id); dat.pathway_type=permanent; dat.pathway_section=competency; dat.pathway_list_type=data_only; dat.columns=category, section, attribute, score, progress; dat.categories=ge, ccp, career) |
Returns permanent pathway competency detail rows only for the selected competency categories. |
|
Permanent readiness, state seals earned only |
^(*compliance;dat.name=DAT_usa_oh_gradPathways; dat.studentId=^(id); dat.pathway_type=permanent; dat.pathway_section=readiness; dat.pathway_readiness_type=state; dat.pathway_readiness_progress_type=earned; dat.columns=name, type, progress) |
Returns earned state readiness seals only. |
|
Permanent core economics and financial literacy requirement |
^(*compliance;dat.name=DAT_usa_oh_gradPathways; dat.studentId=^(id); dat.pathway_type=permanent; dat.pathway_section=core_econ_req; dat.render_type=text; dat.headers=off) |
Returns Met or Not Met for the CORE Economics and Financial Literacy Requirement. |
|
Permanent core fine arts requirement |
^(*compliance;dat.name=DAT_usa_oh_gradPathways; dat.studentId=^(id); dat.pathway_type=permanent; dat.pathway_section=core_arts_req; dat.render_type=text; dat.headers=off) |
Returns Met or Not Met for the CORE Fine Arts Requirement. |