PowerSchool Customizations... SIS-yphean

Originally released in 2003! This is the original auto-refreshing report queue (...use to be a big deal).
I keep it going because I like an automatic 10 second count down. As apposed to the built in button that you can set to refresh every 30 seconds (and forgets that you set it that way).
Other features:

  • Includes new versions of the PowerTeacher and ReportWorks report queues.
  • Each report row will display a refresh icon which when clicked will re-submit the job.  This is just an easier way to re-run a report without having to click the report name, check the re-run check box, and click submit. Saves a bunch of clicks when testing new object reports.
  • Adds the target="_blank" attribute to every completed link so the reports open in a new tab. Might as well seeing everyone's browser is previewing PDFs these days.
  • Adds a column to the admin report queue showing which school the report was run under.

Version History:

2.7 - Added a column for school abbreviation to the old school admin report queue.
2.6 - Made it so all complete report links open in a new tab. Thanks Eric for the idea and code!
2.5 - Added the admin/teacher ReportWorks queue pages. They will auto-refresh like the original report queue
2.4 - Fixed a situation that would cause an report to endlessly load
2.3 - Fixed a cross-site scripting error introduced in PS version 11.0.4.
2.2 - Updated this venerable little guy to be a plugin. And took out the independent refresh icon and started using a built in image.
2.0 - Updated for PowerSchool version 7. Formatted for upload to CPM.
1.0 - Initial release.

Screen shot:

Package icon AwesomeReportQ_2_7.zip8.53 KB

The class roster feature in powerschool is a great way to get class information out of the system in a nice printable format.  However... try explaining to your office staff that after they took the time figuring out all the parameters, field names, and column widths, to create the roster, they cannot save it for future use!
This custom class roster page allows a powerschool admin to pre load all the parameters into a javascript allowing the office staff to simply pick which roster they would like to run through a drop down box.  After selecting a roster to load, they could then go and alter the parameters, or just click submit as is.
The page also includes another handy little javascript which will calculate the width of the fields you have specified, and display the total underneath the field input box.  The first sum being just the column widths specified, and the second sum takes into account the page margins or padding that has been applied.  This was included to get around the annoying task of running a report to see if your column widths where okay.
Now updated to blend with PowerSchool version 7.
For those updating from the old version, you only need to replace the classrosters.html page. Your previous roster setups will work just the way they where.

I realize that this customization is very tricky.  If you are not familiar at all with javascript writing the code for pre-defined rosters can be daunting.  Often I find people want to use this customization to facilitate running grade verification rosters.  So I have put together two class roster packages which already has the code setup for for these grade verification reports.


Version History:

2.1 - Fixed an issue with page orientation, and width not updating when selecting rosters. Thanks Leslie! Made the zip download CPM friendly.
2.0 - Updated for PowerSchool version 7.
1.0 - Initial release.

*** If you previously installed the PARCCtatic or IARrific plugin YOU MUST DELETE THAT PLUGIN BEFORE INSTALLING IARrific + ACCESS ***

If you are in Illinois and participate in IAR testing... You most likely also participate in ACCESS 2.0 testing.
So why not track accommodations for both tests on a single student screen.
This plugin includes all the bells and whistles of IARrific PLUS has a section at the bottom of the student screen to track ACCESS 2.0 accommodations.
The ACCESS section is only made available if a student is marked both LEP (S_IL_STU_X.LEP) and either IEP (S_IL_STU_X.IEP) or 504 (S_IL_STU_Plan504_X.Participant).
IAR accommodations are state fields uploaded to SIS. ACCESS accommodations however are not state fields. So the plugin will create the fields as database extensions under the table U_ACCESS_ACCOM.
If you have the SQLreports plugin installed (www.sqlreports.net) I also have a SQLreport below you can import and use to generate the .csv file needed to mass update accommodations in WIDA/AMS (www.drcedirect.com).


  1. Go to System - System Settings - Plugin Management Configuration.
  2. If you are updating from a previous version, first delete the current plugin version. Then Install the new zip file.
  4. Set page permissions on the new IAR/ACCESS student screen so only those groups editing/viewing IAR/ACCESS test info can access it (optional but encouraged).

Version History:

1.3 - Minor option changes to coincide with the state reporting 19.12.1 release. Minor changes to field validation to match the Spring 2020 PNP document. Now the Dual Language state field is taken into account for validation on Math Transadaptation into Spanish and Math Text-to-Speech accommodations.
1.2 - The accommodation "Spanish Transadaptation of the Mathematics Assessment" no longer requires the student to be marked LEP.
1.1 - Corrected a form validation that would prevent you submitting ACCESS accommodations if mode of administration was paper, Alt ACCESS was checked, and no tier level was set. Found out that Alt ACCESS has no tiers.
1.0 - Initial Release


*** If you previously installed the PARCCtatic plugin YOU MUST DELETE THAT PLUGIN BEFORE INSTALLING IARrific ***

IARrific is a souped-up version of the IAR Pre-ID state tab. It does not replace the state screen, but instead creates a new student page called "IAR/DLM" linked off the student navigation (more2.html) on the admin side.
The accommodations for ELA and Math are hidden until the ela_accommodations or math_accommodations checkboxes are checked. This way it is super-easy to search for students who have any accommodations marked.
This page will also check if you have accommodations already entered in the built in state page and blink a warning next to the "parent" ela_accommodations or math_accommodations checkboxes that they have automatically been checked and the page needs to be submitted. Best solution I could come up with.
This page uses the IL state fields, so no trouble running the "IL IAR Report" or "IL DLM-AA Pre-ID Report". However, their are 3 new custom fields that are created when the plugin is installed (using the database extension group U_PARCC).

A huge amount of form validation has been added to only allow marking accommodations if all of PAN's requirements are met. These requirements are mapped out in the Spring 2020 Student Registration/Personal Needs Profile Field Definitions.


  1. Go to System - System Settings - Plugin Management Configuration.
  2. If you are updating from a previous version, first delete the current plugin version. Then Install the new zip file.
  4. Set page permissions on the new IAR/DLM student screen so only those groups editing/viewing test info can access it (optional but encouraged).

Version History:

1.2 - Minor option changes to coincide with the state reporting 19.12.1 release. Minor changes to field validation to match the Spring 2020 PNP document. Now the Dual Language state field is taken into account for validation on Math Transadaptation into Spanish and Math Text-to-Speech accommodations.
1.1 - The accommodation "Spanish Transadaptation of the Mathematics Assessment" no longer requires the student to be marked LEP.
1.0 (IARrific) - Changed plugin name to IARrific. Cosmetic changes from PARCC to IAR. Removed the ESOL Participation Code field for DLM-AA.
4.1 - Fixed users with read-only access to the page not able to view accommodations.
4.0 - Replaced the custom DLM checkbox with the new state field. If DLM is checked all PARCC fields are hidden and the user is presented with the other new DLM state field (ESOL Participation Code). Changed the student link to PARCC/DLM.
3.4 - Added missing breadcrumb navigation to the student page (seriously, how did I miss that).
3.3 - Altered the script that checks if accommodations are already entered and checks the top level checkbox. Now the screen will only alert you if "positive" values are selected (excluding "no" and "none"). 
Changed the Spanish Transadaptation of the Math field to a Yes/No radio. And added a handy notes field.
3.2 - Changed the Braille with Tactile Graphics and Calculation Device and Mathematics Tools fields to coincide with the changed made by the IL state reporting team in the Dec. 22, 2016 update.
3.1 - Correction to the validation on Math Text-To-Speech.
3. 0 - Big redesign to coincide with the IWAS PARCC pre-id data elements for 16-17. Added validations for each accommodation field.
2.11 - Fixed Human Reader/Human Signer accommodation values where reversed
2.10 - Took out the validation for Monitor Test Response/paper format, and added Word to Word Dictionary validation. Corrected values for Assistive Technology Screen Reader/Non-Screen Reader accommodations.
2.9 - Fixed a glitch in the javascript that is suppose to clear all "child" accommodations for ELA and/or math if the "parent" checkbox is unchecked. Altered the Human Reader or Human Signer accommodation values to coincide with the new ISBE data elements.
2.8 - Added the read-only fields included in the state report update to the PARCC tab. Altered the input values on the text-to-speech fields to coincide with the latest data elements from IWAS.
2.7 - Fixed the field names/labels on the Test Format fields. They where swapped.
2.6 - Fixed a bug causing the javascript validation to malfunction.
2.5 - Updated accommodations to match changes made to the SIS data elements.
2.4 - Added a few lines of CSS so the radio buttons would be inline in PS v9 like they where in PS v8.
2.3 - Added a script to the page that checks if accommodations where input in the built in state page and warns the user they need to submit the page to save the enclosing "parent" checkboxes.
2.2 - Converted to a plugin.
2.1 - Changed the name to PARCCtastic. Added a handful of validations PAN imposes. Like if Large Print is checked, test format must be paper, etc, etc.
2.0 - Converted all fields to the Illinois state PARCC fields. Added additional fields needed to run the PARCC IL state report.
1.0 - Initial release.


Package icon IARrific_1_2.zip10.45 KB

One of my favorite t-sirts exclaims "Go away or I will replace you with a very small shell script". This is how I feel about the family_rep field in PowerSchool. Does anyone really keep it up to date properly? And if you don't, aren't families at risk of missing that important mailing?
This plugin eliminates the need to manually maintain family reps.

How Does it work?
When in the DISTRICT OFFICE a link "Select District Family Reps" appears after Stored Selections on the admin homepage. This links to a familyreps.html page that picks the youngest student at each household for the entire district BASED ON HOME PHONE NUMBER. The family reps become the current selection and you are redirected to the group functions screen.
When your in a SCHOOL the link changes to "Select [school abbreviation] Family Reps" and finds the family reps at each household just within the school.
NEW in version 4.1: The option to select family reps from within your current selection of students!
The SQL query does take into account students who are checkmarked as a family_rep on the Modify Info screen. Those checked always get included in the student selection. This is to account for those rare instances where two or more students have the same home phone but still need individual copies of all school mailings.
Twins and triplets are taken into account when selecting family reps. Students with blank home phone numbers are also included automatically.

- Your school may have different way of determining student family representatives. This will only be a replacement for schools that group households by home phone.
- The home_phone field will have to be uniformly formatted for every student or this will not work. We use data validation to prevent the home_phone from being submitted if it is malformed.
- This customization assumes that you have run the student core fields migration to database extensions. If you have not migrated, you can go to the admin/familyreps.html and admin/familyrepscur.html pages in CPM and change the way the SQL is pulling family_rep.
- If you plan on using this customization in production you should clear the family_rep field for every student EXCEPT for students who are not the youngest of the household but still need a copy of mailers (as noted earlier).

Version History:

4.3 - Removed a problematic [if] tag on the admin home page fragment.
4.2 - Refined the SQL query because once again sometimes oldest sibling was selected rather than youngest! Gees Nick get it together!
4.1 - Added the option to select family reps from within your current student selection. Fixed a problem where the oldest student was selected family rep instead of the youngest. Converted to a plugin for installation. SQL query now pulls family_rep field from "studentcorefields" table.
4.0 - Converted home page link to page fragment and therefore PS version 8 ready.
3.3 - Minor update to accommodate changes in PS version 7.8.2.
3.2 - Fixed a screw up that broke the district family rep function.
3.1 - Minor update to accommodate changed in PS version 7.8.
3.0 - Moved the sql onto it's own page to avoid the admin home page having to run the script on load. Altered the selection proccess to take twins/triplets into account. Family reps now include any student with a blank home_phone field.
2.2 - Updated for PowerSchool version 7.2.x.
2.1 - Updated for PowerSchool version 7.1 admin homepage changes.  Corrected a CSS glitch. Corrected a SQL glitch that would not select the correct school. Corrected the zip file structure to work properly when imported via CPM.
1.0 - Initial release

Package icon instant_family_rep_v4_3.zip4.76 KB

I created this page to accommodate my secretaries who use the List Students function all the time, but can't stand typing in the list values over and over.  Through the use of a little javascript, the commonly used list values are stored as sets and can be loaded at any time using a drop down menu on the page.  You will notice the the page is longer to accommodate more fields.
Included in the download is another custom page that can reformat the results for better printing.

Using List Sets:

There are four pages that make up the List Students Auto-Loader.
studentlist1.html -- is the source page in PowerSchool that will call the other two pages. There is no need to alter this page.
studentlist2.html -- is another customization I created that adds a formatting button to the list results page. There is no need to alter this page.
lists_menu.html -- is the code which makes up the drop-down menu at the top of the list students screen. It must be altered to include an option for each list-set you create or remove from the lists.html page.
lists.html -- contains all the settings which make up your list-sets. On this page you will see a three example list-sets that you cn alter for your own purposes. To make new sets simply copy all the code starting with "if" and ending with the close bracket, and paste this after the last set.
The first line of each set starts with if( reportType == "list name " ). On this line you must alter the list name to match what you called the list on lists_menu.html.
All the lines beginning with document.forms['aForm'].elements[1].value contain values which will be inserted into the fields on the list students page when the list-set is selected. The values are listed according to their position on the list students page starting at the top with the report title field, and ending at the bottom with the three optional sort fields.
IF YOUR INCLUDING DECODES in your list-set take special care. Due to the way javascript works they will have to be formatted like the following example:
document.forms['aForm'].elements[2].value = "decode;~" + "(gender);m;Boy;f;Girl;---";

Version History:

3.6 - PS version 19.11 changed the school dropdown which added a couple more form elements to every page. Thus every list set you have defined needed the element numbers changed. I updated the example list sets to match the order in 19.11+. Stay tuned for a major update to this customization which will let you save list sets without editing code.
3.4 - Fix for the "Show Data in New Window" button never appearing on the list students results page.
3.3 - Updated for Powerschool version 7.1.2. Includes fix for the endless load bar error when exporting.
3.2 - Added instructions at the top of the lists.html page for using decodes in list-sets.
3.1 - Corrected a field ordering issue that would cause list sets to be applied wrong. IF YOU HAVE BEEN USING THIS CUSTOMIZATION YOU WILL HAVE TO REWORK YOUR LIST-SETS FOLLOWING THE INCLUDED EXAMPLES. Rewrote the comments at the top of each page to better instruct how they should be altered. Rewrote the three example list-sets so it is clear which lines coincide with which fields on the list students screen. Corrected the zip file structure to work properly when imported via CPM.
3.0 - Updated for PowerSchool version 7. Had to reduce number of list columns to 20 because of limits in PS 7.
2.0 - Updated for PowerSchool Premier version 6.
1.0 - Initial release.

Package icon list_students_autoloader_v3_6.zip5.99 KB

This customization is a small enhancement to the List Students group function. Once installed, a button named "Show Data in New Window" will appear on the list students result page. The button will reformat your results in a new browser window minus blank space and navigation frame. Perfect for printing.
If this page is of interest, you may also want to have a look at my List Students Auto-Loader.

Version History:

3.2 - Fix for the "Show Data in New Window" button never appearing on the list students results page.
3.1 - Altered the page style slightly. Formatted the zip file to import properly with CPM.
3.0 - Updated for PowerSchool version 7.
2.0 - Updated for PowerSchool Premier version 6.
1.0 - Initial Release

Package icon list_in_new_window_v3_2.zip2.28 KB

"The email links on Powerschool are not working for me. When I click one it tells me I need to setup Outlook Express?!"
This is why my middle school asked to have all the Mailto links disabled on the parent portal. If your school feels the same way install these custom pages and kiss the idea that everyone uses an email client goodbye.
These pages are formatted for PS version 8.

Technical details:

  • Added a jQuery script to home.html that finds every Mailto link on the page after the quicklookup stuff is rendered and takes out the href attribute.
  • Removed the Mailto links entirely from the teachercomments.html page and added a column that displays the teacher's email address as plain text.
  • Removed the Mailto link in teacherinfo.html and left the email address as plain text.

Version History:

1.5 - Updated for PS version 8. Now uses a page fragment to insert the script on home.html. This means it will not interfere with other customizations and/or PowerSchool updates. See the Database Extensions Advanced User Guide for future explanation.
1.4 - Minor update to accommodate changes in PS version 7.11.
1.3 - Minor update to accommodate changes in PS version 7.8.2.
1.2 - Minor update to accommodate changes in PS version 7.8.
1.1 - Slighlty altered for string changes in PowerSchool version 7.1. Corrected the zip file structure to work properly when imported via CPM.
1.0 - Initial release.

Package icon no_more_mailto_v1_5.zip2.78 KB

This customization of the student log page was created to facilitate the printing of a student's log entries for permanent record keeping. The school office also wanted the ability to have signatures print at the bottom. Hence in the upper-right of the page is a drop-down to select a signature, and a button which will reformat the student log entries in a new window with selected signature minus header, footer, and left frame.  It is also worth noting that you could use any image you want in the signatures drop-down. As an example, one could make a image which said "confidential" in big bold letters
The zip file contains three signature examples for you to experiment with.

Setup Instructions:

1. Download and unzip the pages.
2. Scan the signatures you will be using to picture files named appropriately. Try to keep them around 100x250 pixels, although there is no restriction. Put the files into the signatures folder.
3. Alter the signatures.html file so that each option listed corresponds to your signature pictures such as: <option value="John_Doe.jpg">John Doe</option>
4. Copy both the log.html page and the signatures folder to web_root/admin/student/ or re-zip and upload through Custom Page Management (download Pearson's guide to CPM).

Screen shot:

Version History:

2.0 - Updated for PowerSchool version 7.1. Signature drop-down code moved to it's own file (signatures.html). Example signatures now provided. Zip file formatted for import into CPM. Name changed from "Printable Nurse Log" to "Printable Student Log".
1.0 - Initial release.

Package icon printable_student_log_v2.zip11.81 KB

This screen is meant to be a one-stop-shop for all common data collected for a student when they register.  Some of the fields are custom. But most are built in. The screen has evolved over time to suit the needs of my district. Even though this is one old old customization (about 15 years now) I still keep it alive as people continue asking about it. And I'm a people person.
I highly recommend that you install the plugin and then alter the /admin/students/registration.html page. I'm sure your district collects different info than mine.

***NOTE*** The unlimited contacts introduced in PS version 12 are NOT supported.


  • Two versions of the page for download. One with a few Illinois specific fields. The other is not state specific and all the Illinois fields have been stripped out.
  • Hovering your mouse over a fields name will show the internal field name (search term) in a tool-tip.
  • Links at the top will "jump to" specific sections to save on scrolling.  In addition each section header has up/down arrows which will jump to the top/bottom of the page. An additional submit button has been added to the top of the page.
  • The Enrollment Notes link, also at the top, will open a dialog window containing guidance on filling out the registration screen. You enable and edit the enrollment notes at: District -> Enrollment Notes
  • "Copy to mailing" button copies all the home address fields to the mailing address fields.  "Copy to Mom/Dad" button copies the home_phone to mother_home_phone and father_home_phone.  "Map" links next to each address field opens the address on Google maps.


  • I've included a Page Fragment that will add the "Registration" link to the student left-hand navigation.
  • If you would like to include some "enrollment notes" for your staff you can enable and edit them at: District -> Enrollment Notes.
  • This page does not incorporate PowerSchool's address validation.
  • You will have to use "page permissions" to specify which users can view and/or edit the page. Article 55267 on PowerSource explains page permissions.

Version History:

5.2 - Just for the Illinois version. Updated the code that pulls in the IL home language codes.
5.1 - Added a page fragment that makes it possible to set the Registration page as a user's Initial Student Screen under Personalize.
5.0 - Overhauled the page a bit. It needed some TLC after years of neglect. Made it so you can enable/edit the enrollment notes in the PS user interface. And made the whole thing a plugin.
4.4 - Replaced the included more2.html page with a page fragment so as not to interfere with all the other stuff people add to the left navigation. Replaced the Enrollment Notes html page with a page fragment. CSS styling for PS version 8.
4.3 - Small update to accomidate the changes in PS 7.8.
4.2 - Had to update the IL state javascripts to work with the 12/12/12 state reporting update. Fixed a minor javascript error related to built in data validation.
4.1 - Updated more2.html page for PS 7.2. Took out javascript field validation and made the page compatible with PS 7.2 built in data validation system. Fixed the federal "default ethnicity". Improved the look of read-only access. Added area/neighborhood, Date of Entry into USA, and two more IL state fields. Added a submit button to the top of the page.
4.0 - Updated for Powerschool version 7


Turns out in most of my elementary schools each classroom sends a student down to the office with bus notes each and every morning.
"Susie will be walking today", "Johnny will be dropped off at such and such the rest of the week", etc.
The office then compiles these slips of paper and hands out "Today's Bus Notes" to staff on bus duty and the drivers.
One of my front office friends explained this process to me and asked "Can you streamline this awful thing!"
This may not apply to your district. However, I still think this would serve as a good example for PS admins looking to build something similar with database extensions and the ~[DirectTable.Select...] tag.

Today's Bus Notes plugin adds a new bus icon to the PowerTeacher home page for each section listing. This new Bus Notes page allows you to add/edit/delete one or more bus notes for each student in the class. Notes default to being for "today", but you can change their duration and start date.
On the admin side of PS these notes can be added/edited/deleted from the student Transportation screen.
A page fragment is used to add a link to the admin start page left navigation called "Bus Notes" (only when in a school). This is the report that lists out all the notes for the current date. And this can be printed by the office as much as it likes.
Simple and effective.


  1. Go to System - System Settings - Plugin Management Configuration
  2. Upload the Zip file

Version History:

1.3 - Corrected a small code error in the more2 page fragment
1.2 - Removed the /admin/student/transportation.html page and added a page fragment in it's place. Added home_room to the "today's bus notes" report.
1.1 - Removed the teachers/home.html page and added a page fragment to create the bus icon for teachers
1.0 - Initial release.



Package icon BUS_NOTESv1_3.zip13.13 KB