Oregon Cumulative ADM Student File Technical Reference
Overview
This section provides technical information about how the Oregon Cumulative ADM Student File processes data and generates output records. Most districts can validate report results using the information provided in the main report guide; however, this section may be useful when researching complex reporting questions or working with PowerSchool Support.
Topics covered include:
-
Record selection and row generation
-
Enrollment segmentation
-
Attendance calculations
-
Session day calculations
-
Instructional hours processing
-
Full Academic Year calculations
-
Temporary processing tables
-
Source tables and business rules
Report Processing Overview
The Oregon Cumulative ADM Student File is not generated directly from student tables. Instead, the report creates several intermediate work tables and calculated data sets that are used to build the final output.
The report performs the following major processing stages:
-
Create school session-day totals.
-
Build reportable enrollment segments.
-
Generate ESL and PNP supplemental records.
-
Generate instructional-hour records.
-
Calculate attendance values.
-
Calculate Full Academic Year indicators.
-
Merge with Oregon First-55 student data.
-
Generate final output rows.
Because records are generated in stages, a student may appear in multiple report rows and some fields are calculated rather than reported directly from stored database values.
Record Selection Processing
Current Enrollment Records
The report evaluates records from the STUDENTS table.
A student record is considered reportable when:
-
Entry Date is on or before the Report End Date.
-
Exit Date is after the Report Start Date.
-
State Exclude from Reporting is not enabled.
-
State Exclude Enrollment is not enabled.
-
The enrollment belongs to the selected school.
The report then limits the enrollment record to the reporting period.
Example
Student Enrollment:
|
Field |
Value |
|---|---|
|
Entry Date |
08/15/2025 |
|
Exit Date |
07/01/2026 |
Report Parameters:
|
Field |
Value |
|---|---|
|
Start Date |
09/01/2025 |
|
End Date |
06/30/2026 |
Result:
|
Output Field |
Value |
|---|---|
|
ADMEnrlDtTxt |
09/01/2025 |
|
ADMEndDtTxt |
06/30/2026 |
Reenrollment Records
The report independently evaluates records from REENROLLMENTS.
Each reportable reenrollment segment may produce a separate row in the output file.
A student who transfers between schools within the same district may therefore generate multiple ADM records.
Enrollment Overlap and Final Record Selection
The report initially evaluates current and historical enrollment records to determine whether they potentially overlap the reporting period.
A current or historical enrollment passes the initial date evaluation when:
-
The enrollment Exit Date is after the Report Start Date.
-
The enrollment Entry Date is on or before the Report End Date.
After identifying a potentially eligible enrollment, the report limits the enrollment segment to the selected reporting period.
The adjusted ADM Enrollment Date is the later of:
-
The enrollment Entry Date
-
The Report Start Date
The adjusted ADM End Date is the earlier of:
-
The enrollment Exit Date
-
The Report End Date
Before creating the final output, the report removes any enrollment segment whose adjusted ADM Enrollment Date is equal to its adjusted ADM End Date. This prevents a zero-day enrollment segment from being reported. This behavior is defined in OR_CUMADM.xml. [powerschoo...epoint.com]
Practical Effect
Although an enrollment with an Entry Date equal to the Report End Date passes the initial date evaluation, it does not appear in the final output. After the report limits the enrollment to the reporting period, the adjusted ADM Enrollment Date and ADM End Date are the same, so the record is removed.
From a district user’s perspective, the functional inclusion rule is:
-
The enrollment Entry Date must be before the Report End Date.
-
The enrollment Exit Date must be after the Report Start Date.
-
The student must have at least one reportable day within the reporting period.
Example
|
Student Entry Date |
Report End Date |
Adjusted ADM Enrollment Date |
Adjusted ADM End Date |
Final Result |
|---|---|---|---|---|
|
10/01/2025 |
10/02/2025 |
10/01/2025 |
10/02/2025 |
Included |
|
10/02/2025 |
10/02/2025 |
10/02/2025 |
10/02/2025 |
Not included |
|
10/03/2025 |
10/02/2025 |
Not created |
Not created |
Not included |
Support Note
The initial enrollment-selection logic permits an Entry Date that is equal to the Report End Date. However, the final output requires the adjusted enrollment dates to be different. The combined processing produces the functional behavior documented on Page 1: the Entry Date must be before the Report End Date for the student to appear in the final report.
Technical Logic Summary
For Support reference, the internal conditions can be documented in plain text as follows:
Initial enrollment evaluation:
Exit Date is greater than Report Start Date.
Entry Date is less than or equal to Report End Date.
Adjusted reporting segment:
Adjusted Entry Date equals the later of the enrollment Entry Date and Report Start Date.
Adjusted End Date equals the earlier of the enrollment Exit Date and Report End Date.
Final output validation:
Adjusted Entry Date must not equal Adjusted End Date.
Session Day Processing
Purpose
Session Days determine the ADMSessDays value reported for ADM records.
Source Tables
|
Table |
Purpose |
|---|---|
|
CALENDAR_DAY |
Calendar configuration |
|
TERMS |
School term boundaries |
Processing Logic
The report creates a temporary session-day table containing:
|
Generated Value |
Description |
|---|---|
|
SESSION_DAYS |
Total instructional days |
|
A |
Track A session days |
|
B |
Track B session days |
|
C |
Track C session days |
|
D |
Track D session days |
|
E |
Track E session days |
|
F |
Track F session days |
Only days that:
-
Fall within valid school terms
-
Fall within the reporting period
-
Are marked In Session
are counted.
Multi-Track Calendars
When a student is assigned to a track schedule, the report uses track-specific session-day values rather than total session days.
Example:
|
Track |
Session Days Used |
|---|---|
|
A |
Track A total |
|
B |
Track B total |
|
C |
Track C total |
|
D |
Track D total |
|
E |
Track E total |
|
F |
Track F total |
Attendance Processing
Attendance Conversion Methods
The report supports two attendance calculation methods.
Method 1: ADA/ADM Attendance
Source Table:
-
PS_ADAADM_DEFAULTS_ALL
This method uses stored attendance conversion values.
Generated values:
-
ADMPrsntDays
-
ADMAbsntDays
Method 2: Day-Part Attendance
Source Tables:
-
ATT_DAYPART_CURYEAR
-
ATT_DAYPART_PREVYEAR
-
ATTENDANCE_CONVERSION_ITEMS
The report converts:
-
Minutes
-
Periods
-
Day-parts
into attendance values using district attendance conversion rules.
Generated values:
-
ADMPrsntDays
-
ADMAbsntDays
Attendance Date Boundaries
Attendance is only included when:
-
Attendance Date is greater than or equal to the enrollment start date.
-
Attendance Date is less than the enrollment end date.
-
Attendance Date falls within the report date range.
This prevents attendance from being counted outside the reportable enrollment segment.
Program Record Generation
Primary ADM Records
All reportable students generate a primary ADM record.
Program Type:
01
unless modified by additional processing.
ESL Records
Source:
SPENROLLMENTS
Generated Program Type:
02
A supplemental ESL record is generated when a qualifying ESL enrollment overlaps a reportable enrollment segment.
PNP Records
Source:
SPENROLLMENTS
Generated Program Type:
03
A supplemental PNP record is generated when a qualifying PNP enrollment overlaps a reportable enrollment segment.
Instructional Hour Processing
Purpose
Instructional-hour values may generate additional report rows beyond the student's primary ADM record.
Source Fields
|
Field |
|---|
|
InstrctHrs_LargeGroup |
|
InstrctHrs_CaseMngmnt |
|
InstrctHrs_InterGroup |
|
InstrctHrs_SmallGroup |
|
InstrctHrs_EmpMinors |
|
InstrctHrs_SharedTime |
|
InstrctHrs_Tutorial |
|
InstrctHrs_Expanded |
|
InstrctHrs_NotExpanded |
Generated Program Types
|
Program Type |
Description |
|---|---|
|
04 |
Large Group |
|
05 |
Case Management |
|
06 |
Intergroup |
|
07 |
Small Group |
|
08 |
Employed Minors |
|
09 |
Shared Time |
|
10 |
Tutorial |
|
11 |
Expanded |
|
12 |
Not Expanded |
Each instructional-hour category may generate an additional output row.
Instructional Hour Record Behavior
Instructional-hour records differ from standard ADM records.
The report intentionally suppresses:
-
Session Days
-
Present Days
-
Absent Days
FTE is reported as:
0
for instructional-hour rows.
Full Academic Year Processing
Purpose
The report generates two Full Academic Year indicators:
-
FullAcdmYrSchlFg
-
FullAcdmYrDistFg
Calculation Logic
The report compares:
-
Student membership dates
-
Available instructional days
-
Enrollment duration
A student who attends for at least half of the eligible instructional period reports:
Y
Students who do not meet that threshold report:
N
These values are calculated during report execution and are not stored in PowerSchool.
Row Generation Logic
Why a Student May Have Multiple Rows
A student can generate multiple rows when:
-
Multiple enrollment segments exist.
-
ESL participation exists.
-
PNP participation exists.
-
Instructional-hour values exist.
Example
|
Record Type |
Program Type |
|---|---|
|
Primary ADM Record |
01 |
|
ESL Record |
02 |
|
PNP Record |
03 |
|
Tutorial Record |
10 |
In this example, four report rows are expected.
Temporary Processing Tables
School Session Days Table
Purpose:
Stores instructional-day totals used for ADMSessDays calculations.
Enrollment Work Table
Purpose:
Stores reportable enrollment segments after date filtering and exclusion processing.
Attendance Work Table
Purpose:
Stores calculated attendance totals.
Used for:
-
ADMPrsntDays
-
ADMAbsntDays
Instructional Hours Table
Purpose:
Stores generated instructional-hour records.
Used for:
-
ADMProgTypCd
-
ADMInstrctHrs
Full Academic Year Table
Purpose:
Stores calculated Full Academic Year indicators.
Used for:
-
FullAcdmYrSchlFg
-
FullAcdmYrDistFg
Special Business Rules
ADM End Date Code
When a student's Exit Date is on or after the Report End Date, the report always returns:
ADMEndDtCd = 1A
This behavior aligns with Oregon ADM reporting requirements.
Tuition Type
When no Tuition Type is entered, the report returns:
S
FTE Reporting
Purpose
FTE (Full-Time Equivalency) is derived from the student's Membership Share value and is reported on enrollment-based ADM records.
Reporting Rules
|
Program Type |
FTE Reported |
|---|---|
|
01 - Standard ADM |
Membership Share |
|
02 - ESL |
Membership Share |
|
03 - PNP |
Membership Share |
|
15 - Half-Day Kindergarten |
Membership Share |
|
04-12 - Instructional Hour Records |
0 |
Processing Logic
The report stores the student's Membership Share value from the reportable enrollment segment and uses that value when generating standard ADM and supplemental program records.
As a result, ESL (Program Type 02) and PNP (Program Type 03) records typically report the same FTE value as the student's primary ADM record.
Instructional-hour records (Program Types 04-12) are generated separately and always report an FTE value of 0. This behavior is consistent with the report's instructional-hour processing design. [OR_CumADM_...port_Guide | Word], [OREGON CUM...ENT FILE 2 | Word]
Example
|
Program Type |
Description |
FTE |
|---|---|---|
|
01 |
Standard ADM |
1.0 |
|
02 |
ESL |
1.0 |
|
03 |
PNP |
1.0 |
|
10 |
Tutorial |
0 |
In this example, the student generates four report rows. The Standard ADM, ESL, and PNP records report the student's Membership Share value, while the Tutorial instructional-hour record reports 0.
Troubleshooting
If FTE appears incorrect:
-
Verify the student's Membership Share value.
-
Verify the ADM Program Type being reported.
-
Determine whether the row is an enrollment-based record (01, 02, 03, or 15) or an instructional-hour record (04-12).
-
Review the student's enrollment dates and any generated supplemental program records.
Support Note
The report does not limit FTE reporting to Program Type 01. Supplemental program records, including ESL (02), PNP (03), and Half-Day Kindergarten (15), may also report the student's Membership Share value because they are generated from reportable enrollment segments rather than instructional-hour processing. Instructional-hour records (Program Types 04-12) always report an FTE value of 0.
Military Connected
Military Connected status is sourced from the current enrollment Oregon Cumulative ADM record.
Historical reenrollment records do not source a Military Connected value.
Half-Day Kindergarten
When:
-
Grade Level = Kindergarten
-
Half-Day Kindergarten Flag = Enabled
the report generates:
Program Type 15
instead of Program Type 01.
Primary Source Tables
|
Table |
Purpose |
|---|---|
|
STUDENTS |
Current enrollment data |
|
REENROLLMENTS |
Historical enrollment data |
|
S_OR_STU_CumADM_X |
Current CumADM extension data |
|
S_OR_REN_CumADM_X |
Historical CumADM extension data |
|
S_OR_STU_X |
Current Oregon extension data |
|
S_OR_REN_X |
Historical Oregon extension data |
|
SPENROLLMENTS |
ESL and PNP participation |
|
CALENDAR_DAY |
Session day calculations |
|
TERMS |
School term boundaries |
|
PS_ADAADM_DEFAULTS_ALL |
ADA/ADM attendance calculations |
|
ATT_DAYPART_CURYEAR |
Current-year day-part attendance |
|
ATT_DAYPART_PREVYEAR |
Prior-year day-part attendance |
|
ATTENDANCE_CONVERSION_ITEMS |
Attendance conversion mappings |
Recent Enhancements
PSSR-434022
ADM End Date Code processing was updated so that students whose Exit Date is on or after the Report End Date report 1A (Continuing Enrollment) rather than graduation or withdrawal codes. This change aligns report output with Oregon ADM reporting requirements. [OREGON CUM...ENT FILE 2 | Word], [OR_CumADM_...port_Guide | Word]
Troubleshooting Tip
When a student is expected to report a graduation code but reports 1A, compare the student's Exit Date to the Report End Date. If the Exit Date is on or after the Report End Date, the reported value is expected behavior.