PSCB - Custom Reports (Enrollment)

View PSCB Plugin Directory

Version 1.6


This bundle includes 16 school/district enrollment reports.

Enrollment Summary Reports

    Enrollment - Current Date
    Enrollment - Homeroom
    Enrollment - Monthly
    Enrollment - Next Year Projection
    Enrollment - Selected Date
    Enrollment - Selected Date (FTE)
    Enrollment - Student Historical Summary
    Enrollment - Team

Enrollment Search Reports

    Enrollment Search - Entry/Exit Code Totals
    Enrollment Search - Entry Codes
    Enrollment Search - Exit Codes
    Enrollment Search - Retained Students
    Enrollment Search - Student Entry/Exit Summary
    Enrollment Search - Student Years Enrolled
    School Transfers - Current Year
    Special Program Enrollments - Current Year


PSCB Development Team
Rob Staats
Manjit Basra
Michael Moore

PowerData Solutions Contributors
Jason Treadwell
Brent Johnson
Brian Andle
Tim Scoff
Matt Freund
Roger Sprik
Dean Dahlvang

Version Info

1.2 (2018-05-23)
- Initial Release

1.3 (2018-07-20)
- The following reports are now available to run at the District Level.
Entry Enrollment Report
Exit Enrollment Report

1.4 (2020-05-21)
- Updated sql queries in all reports.
- Added auto generated drop-down menu options to the column filters in all reports.
- Numerous data elements were added to many reports.
- Added 10+ enhancement requests submitted by PDS/PSCB users.

1.5 (2021-03-29)
- Added a section to the Enrollment - Next Year Projection report that displays students with Next Year Setup Errors.

1.6 (2021-12-20)
- Updated SQL for the Enrollment Search - Student Entry/Exit Summary report.
- New report: Enrollment - Student Historical Summary
Student historical enrollment record summary.

Powerschool Compatible Versions

20.x, 21.x

Additional Plugin Requirement

The following PSCB plugins should be installed prior to the installation of this reports bundle.

PSCB - Base Resources
PSCB - Custom Reports (_Home Page)


Install in System > System Settings > Plugin Management Configuration

Do not unzip the plugin. Install the entire zip file. Be sure to enable the plugin once it's installed.

If you are updating, you can now click on the Plugin name and then use the Update button, and then browse to the new file and click Submit and it will then load the update and then ask you to enable it.


Select a school and go to the Powerschool start page.
Click on the PSCB Custom Reports link on the left navigation menu.
Click on the Enrollment link to access the Enrollment Reports menu.

Report Type: 
Web Based Report
Compatible PS Versions: 
20.x, 21.x
CPM Import Friendly: 


How can i support this site ?

That you for your inquiry. People can support the site by simply downloading and using the PSCB plugins. If you find the plugins useful we would ask you to share your comments with others in PowerSchool Community.

The plugins are freely posted and we encourage users to modify the customizations to meet the needs of their school district. Comments and suggestions are always appreciated.

Rob Staats
PSCB Development

Rob Staats
PSCB Development

When running the Entry/Exit Code Summary Report and pulling exit codes. When I click on the number with that code, it pulls to a report w/ student name, school, grade, etc. When I click it there arent any students listed.

Alison Blazey
Data and Systems Manager
KIPP NYC College Prep

This is a great site! Just sharing something in case it might help someone else. On the Special Program Report, the report filter was not showing a particular special program. I had enrolled several students in that special program using today's date as their entry dates. By trial and error I discovered when I changed one of their special program entry dates to equal the first day of school (8/9/18) then that special program showed up in the drop down option. Thanks so much for making these reports available to us.

Confused...I see that CRB is compatible with versions 10.x, 11.x, 12.x.
Yet, at bottom of screen the 11.x has an "N".... what does this "N" refer to?

9.x: N

The PSCB - Custom Reports (Enrollment) bundle is compatible with PowerSchool versions 10.x, 11.x and 12.x. The screen display error has been corrected.

Rob Staats
PSCB Development

It seems like this report is not pulling the correct number of years enrolled for a lot of our students. Is there something I should check with transfer info to make sure this pulls correctly? Thanks!

Alison Blazey
Data and Systems Manager
KIPP NYC College Prep

It looks like the Enrollment Search-Entry/Exit doesn't work for students using the Functions>Re-Enroll in School when a student moves from School A to School B in the district.

If you run the report at the school level, you will only see entry/exit enrollment data for time the student attended that particular school.

If you run the report at the district level, you will see the entry/exit enrollment data for both schools the child attended.

Rob Staats
PSCB Development

Is it possible to disable the Enrollment - District Wide reports for school level users? Thank you!

In the next release of the plugin, that portion of menu will be only be visible at the District level.

Rob Staats
PSCB Development

The field count summary looks like it is for New Jersey, any recommendation on how to get this coded for CT ELL and SPED fields? I have tried with no luck

You will need to identify and replace the NJ field names and extensions with the corresponding CT ones in the following files.


Rob Staats
PSCB Development

Is there a way to add a grade to the Enrollment Summary? We have ECSE buildings that use Grade 14, but it doesn't appear that the summary pulls the grade 14 students.

PSCB does not do individual customizations for a school district. We do encourage users to modify our reports to meet their specifics needs.

The enrollment reports are hard coded to use the grade range of PK3 thru 12. If you need to add additional grades you can use CPM to view the report and make the necessary changes.

Thank you for inquiry.

Rob Staats

Rob Staats
PSCB Development

For Special Programs Enrollment - Current Year, is it possible to get the 'special program comments' added to the report? Thanks!

Special program comments will be included in the next release of the report.

Rob Staats
PSCB Development

Are there any plans to add an additional row of data to the Next Year Projection report to track "Students With No Next School"? This row of data existed on the "old" Projected Enrollment Summary report.

Thanks in advance!

The Students With No Next School totals will be included in the next release of the report.

Rob Staats
PSCB Development

Hello, We have an issue with the total count for each grade level at the District level. But if you click on the total number it will display all the students but with an accurate count.
For example, the total number for Kinder is 205. Once I click on the hyperlink "205" total for K, it displays 495 listed students, which is accurate

Do you have a list of the elements that were added? And enhancement requests?

Gloria Ormsby

We are noticing that pre-registered students are in those totals. For example, I student who is pre-registered for kindergarten (next year) is showing up on the first grade list since his next grade is 1.

Which enrollment report are you referencing?

Rob Staats
PSCB Development

I love these reports however I'm finding that the "Enrollment Search - Entry/Exit Code Totals" are not reporting correctly.

I have a student that passed away and has exit code 130 BUT the report is NOT showing any students with exit code 130.

Confirm that the student's exit date is within the date range used for the report.

Rob Staats
PSCB Development

Hi Rob,

Yes, I have confirmed the date is within the date range. For the Report Filters, I'm running it at district level, selecting Exit Code, All Students, 8/11/2020 to 05/28/2021. Student has an exit date of 5/21/21. I'm also noticing that there are some students listed under Exit code 230 but I haven't exited anybody with that code. When I click on the number, for 1 school it says 3 students, when I click on 3, the next screen comes up with no students listed and on the right it says Total Records: 1.

It not just the 130 exit code. For Exit Code 165-Expelled, it shows 30 students but we haven't expelled any students.

We are on PowerSchool version 20.11.2
PSCB Base 3.3
PSCB-Custom Reports (Enrollment) 1.5

I updated our system to The Enrollment - Next Year Projection worked fine prior to this. I ran it tonight and it is not displaying anything in the Summary secton at the top. I have not rolled to the new year yet. I am attaching the html file as I have customized it some to add grade levels less than PK and I added the parameter Sched_Scheduled = 1 to take out those that we know are not returning next year. Can someone look to see why this might not be working now - is it that I passed a particular date in the term setup or it is something to do with mvoing to 21,4,2? We really use this report a lot during the spring and summer. Any help would be much appreciated.

<!DOCTYPE html>
<!-- non framed -->
<title>Enrollment Summary - Next Year Projection</title>
<link href="/images/css/screen.css" rel="stylesheet" media="screen">
<link href="/images/css/print.css" rel="stylesheet" media="print">
~[wc:admin_header_frame_css]<!-- breadcrumb start --><a href="/admin/home.html" target="_blank">Start Page</a> &gt; <a href="/admin/reports_pscb/pscb_home.html" target="_blank">PSCB Custom Reports</a> &gt; <a href="/admin/reports_pscb/pscb_enrollment.html" target="_blank">Enrollment</a></a> &gt; Enrollment Summary - Next Year Projection<!-- breadcrumb end -->~[wc:admin_navigation_frame_css]

<!-- Start of Results -->
<h1>Enrollment Summary - Next Year Projection</h1>
<div class="box-round">
<h2>Next Year Enrollment Projection as of ~[eaodate]</h2>
<table border="0" cellspacing="0" cellpadding="4" class="tablesorter grid" id="results">
<p>&nbsp;The report displays the enrollment projection for the next school year.</p>
<p>&nbsp;The report pulls data from the "Next Year Grade" and the "Next School Indicator" fields on the Scheduling Setup screen.
<th class="left">School</th>
    <th class="right">LL</th>
<th class="right">ECSE</th>
<th class="right">PK3</th>
<th class="right">PK</th>
<th class="right">K</th>
<th class="right">1</th>
<th class="right">2</th>
<th class="right">3</th>
<th class="right">4</th>
<th class="right">5</th>
<th class="right">6</th>
<th class="right">7</th>
<th class="right">8</th>
<th class="right">9</th>
<th class="right">10</th>
<th class="right">11</th>
<th class="right">12</th>
<th class="right">Total</th>
~[] SELECT Schools.Name [else] SELECT DECODE(GROUPING(Schools.Name), 1, 'Total', Schools.Name) [/] AS School,
Schools.School_Number AS School_Number,
SUM ( CASE WHEN Students.Sched_NextYearGrade = -4 THEN 1 ELSE NULL END ) AS Minus_Four,
                    SUM ( CASE WHEN Students.Sched_NextYearGrade = -3 THEN 1 ELSE NULL END ) AS Minus_Three,
                    SUM ( CASE WHEN Students.Sched_NextYearGrade = -2 THEN 1 ELSE NULL END ) AS Minus_Two,
                    SUM ( CASE WHEN Students.Sched_NextYearGrade = -1 THEN 1 ELSE NULL END ) AS Minus_One,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 0 THEN 1 ELSE NULL END ) AS K,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 1 THEN 1 ELSE NULL END ) AS One,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 2 THEN 1 ELSE NULL END ) AS Two,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 3 THEN 1 ELSE NULL END ) AS Three,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 4 THEN 1 ELSE NULL END ) AS Four,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 5 THEN 1 ELSE NULL END ) AS Five,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 6 THEN 1 ELSE NULL END ) AS Six,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 7 THEN 1 ELSE NULL END ) AS Seven,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 8 THEN 1 ELSE NULL END ) AS Eight,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 9 THEN 1 ELSE NULL END ) AS Nine,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 10 THEN 1 ELSE NULL END ) AS Ten,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 11 THEN 1 ELSE NULL END ) AS Eleven,
SUM ( CASE WHEN Students.Sched_NextYearGrade = 12 THEN 1 ELSE NULL END ) AS Twelve,
SUM ( CASE WHEN Students.Sched_NextYearGrade < 13 THEN 1 ELSE NULL END ) AS Total,
FROM Students
INNER JOIN Schools ON Schools.School_Number = Students.Next_School
WHERE ( Students.Enroll_Status = 0 OR Students.EntryDate > TO_DATE('~[eaodate]','MM-DD-YY') )
AND Students.Sched_NextYearGrade <= 12 AND Students.Sched_Scheduled =1
~[] AND Students.Next_School = ~(curschoolid) GROUP BY Schools.SortOrder, Schools.Name, Schools.School_Number
[else] GROUP BY ROLLUP ((Schools.SortOrder, Schools.Name, Schools.School_Number)) [/]
ORDER BY Schools.SortOrder;alternatecolor]
<td class="nowrap">~(School)</td>
    <td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=-4" target ="_blank">~(Minus_Four)</a>
    <td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=-3" target ="_blank">~(Minus_Three)</a>
    <td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=-2" target ="_blank">~(Minus_Two)</a>
    <td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=-1" target ="_blank">~(Minus_one)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=0" target ="_blank">~(K)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=1" target ="_blank">~(One)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=2" target ="_blank">~(Two)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=3" target ="_blank">~(Three)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=4" target ="_blank">~(Four)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=5" target ="_blank">~(Five)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=6" target ="_blank">~(Six)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=7" target ="_blank">~(Seven)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=8" target ="_blank">~(Eight)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=9" target ="_blank">~(Nine)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=10" target ="_blank">~(Ten)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=11" target ="_blank">~(Eleven)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=12" target ="_blank">~(Twelve)</a>
<td class="right"><a href="enrollmentlist_next_year.html?nsch=~(School_Number)&amp;ngrade=" target ="_blank">~(Total)</a>
<div class="box-round">
<h2>Next Year Setup Errors</h2>
<table border="0" cellspacing="0" cellpadding="4" align="center" class="tablesorter grid" id="results">
<th class="left">Name</th>
<th class="left">Current Status</th>
<th class="left">School</th>
<th class="left">Enrollment School</th>
<th class="left">Next School</th>
<th class="left">Current Grade</th>
<th class="left">Next Grade</th>
<th class="left">Errors</th>
s.DCID, s.LastFirst std,
CASE s.enroll_Status WHEN 0 THEN 'Active' WHEN -1 THEN 'Pre-Enrolled' WHEN 3 THEN 'Graduated' ELSE 'Inactive' END status,
csch.abbreviation || ' (' || s.SchoolID || ')' school, esch.abbreviation || ' (' || s.Enrollment_SchoolID || ')' eSchool,
nsch.abbreviation || ' (' || s.Next_School || ')' nschool, s.Grade_Level gr, s.Sched_NextYearGrade nextGr,
CASE WHEN (s.Enroll_Status = 0 AND s.Grade_Level != -1 AND s.Sched_NextYearGrade = 0) THEN 1 END nyg,
CASE WHEN (s.Enroll_Status = -1 AND s.Sched_NextYearGrade != s.Grade_Level) THEN 1 END nyg2,
CASE WHEN (s.Enroll_Status IN (0,-1) AND s.Next_School = 0) THEN 1 END nys,
CASE WHEN (s.Enroll_Status = 0 AND s.Sched_NextYearGrade = 99 AND s.Next_School != 999999) THEN 1 END nGradSch,
CASE WHEN (s.Enroll_Status = 0 AND s.Sched_NextYearGrade != 99 AND s.Next_School = 999999) THEN 1 END nGradGr,
CASE WHEN (s.Enroll_Status = 0 AND s.Next_School != 0 AND s.Sched_NextYearGrade NOT BETWEEN nsch.Low_Grade AND nsch.High_Grade) THEN 1 END NGOutOfRange,
CASE WHEN (s.Enroll_Status IN (0,-1) AND s.SchoolID != s.Enrollment_SchoolID) THEN 1 END schMatch
Students s
LEFT OUTER JOIN Schools nsch ON (s.Next_School = nsch.School_Number)
LEFT OUTER JOIN Schools csch ON (s.schoolid = csch.School_Number)
LEFT OUTER JOIN Schools esch ON (s.Enrollment_SchoolID = esch.School_Number)
WHERE ((s.Enroll_Status = 0 AND s.Grade_Level != -1 AND s.Sched_NextYearGrade = 0)
OR (s.Enroll_Status = -1 AND s.Sched_NextYearGrade != s.Grade_Level)
OR (s.Enroll_Status IN (0,-1) AND s.Next_School = 0)
OR (s.Enroll_Status IN (0,-1) AND s.SchoolID != s.Enrollment_SchoolID)
OR (s.Enroll_Status = 0 AND s.Sched_NextYearGrade = 99 AND s.Next_School != 999999)
OR (s.Enroll_Status = 0 AND s.Sched_NextYearGrade != 99 AND s.Next_School = 999999)
OR (s.Enroll_Status = 0 AND s.Next_School NOT IN (0,999999) AND s.Sched_NextYearGrade NOT BETWEEN nsch.Low_Grade AND nsch.High_Grade))
~[] AND s.schoolid = ~(curschoolid) [/]
ORDER BY s.enroll_Status, std, gr
<tr><td colspan="100%">No errors found.</td></tr>]
<tr class="Record" data-StudentID=~(dcid;t)>
<td class="nowrap" style="hide"><a href="/admin/students/home.html?frn=001~(dcid;t)" target="_blank"></a>~(std;t)</td>
<td class="nowrap">~(school;t)</td>
<td class="nowrap">~(eschool;t)</td>
<td class="nowrap">~(nschool;t)</td>
<td class="nowrap">
~(nyg;t;if.test=1;then=Next Year Grade = 0<br />)
~(nyg2;t;if.test=1;then=Pre-Enrolled, Next Year Grade should match current grade<br />)
~(nys;t;if.test=1;then=Next Year School = Blank<br />)
~(nGradSch;t;if.test=1;then=Next Year Grade suggests Graduating but Next year school does not<br />)
~(nGradGr;t;if.test=1;then=Next Year School suggests Graduating but Next year grade does not<br />)
~(NGOutOfRange;t;if.test=1;then=Next Year Grade not in grade range for school<br />)
~(schMatch;t;if.test=1;then=SchoolID and Enrollment SchoolID should match for Active/Pre-enrolled students<br />)
<!-- End of results -->
<div style="clear: both;">
<p><center>Report generated at ~[time] on ~[date]</center></p>

Nancy Lessner

When I compare the PCSB enrollment Current Date Summary Report, they are different than the PowerSchool Enrollment Summary Report. Prior to us upgrading to PS 20.11, they were always the same. We have discovered that the difference is the fact that students enrolled for a future date are appearing as enroll_status=0 (active) not pre-registered. Many of us have raised this issue with PS support about new enrollments that should be pre-registered prior to their start date but have hit a brick wall. In any case, I believe that is why the numbers are off. Have you seen or heard anything.

Kim Albright
Egan School

I love all of these reports, but I'm trying to get a report showing the students that transferred out this year. No data appears when I run this report. What am I doing wrong?

That report lists students that transferred between schools in your district during the current year.

Download and enable the PSCB Custom Reports - Enrollment plugin and run the Enrollment Search - Student Entry/Exit Summary report.

Rob Staats
PSCB Development

Thank you so much! That worked!

Hi PSCB folks... I find that the Special Programs reports works great most of the time. We have special program enrollments that do show up on student list at the bottom of this screen, but, the drop-down box does not work accurately to filter on some of these Program Codes that we see down below. Any ideas? Please and thank you.

Confirm that each special program entry has a start and exit date that is the range of the current year start/end dates.

Rob Staats
PSCB Development

Hi, Would it be possible to have the Enrollment - Homeroom have a way to select a certain date?


Hi, Would it be possible to have the Enrollment - Homeroom have a way to select a certain date?


The report is a summary of the current values entered in the student field: Home_room. There is no entry date attached to Home_room entry, as a result selecting an entry date is not possible.

Rob Staats
PSCB Development

When I generate this report, I just get head count numbers, not FTE. Anyone else have this problem?

Nancy Taggart

Please a screenshot of the report results to

Rob Staats
PSCB Development

Subscribe to Comments for "PSCB - Custom Reports (Enrollment)"