How to Run Student Growth Percentiles (SGP) Analyses in R

Student growth percentiles (SGP) measure students’ relative academic achievement gains by comparing their scores to the performance of academically-similar peers. SGPs are reported on a 1-99 scale and can be interpreted like percentile ranks: students with higher SGPs indicate more relative growth, while lower SGPs reflect less relative growth. SGPs are an effective tool for assessing student progress as well as identifying students that need to make additional growth in order to reach proficiency.

SGP analyses convert raw student scores into scaled scores for comparison with an average of scaled scores of all students in a particular grade and subject area. These analyses identify whether a student’s scaled score falls above, below or at the same level as this average, and also report what percentage of students in that grade/subject area have reached proficiency.

Educators use individual student SGP data to inform classroom instruction and student learning objectives. Administrators use these SGP data to track and monitor student performance at the district level, identifying high performers as well as those students that need more support to attain proficiency.

To perform SGP analyses, a program must have access to a copy of the state’s SGP data and the corresponding teacher-student lookup files (sgpData_LONG and sgpData_INSTRUCTOR) as well as the statistical software environment R. While a number of software packages are available for SGP analysis, our recommended solution is the open source software package RStudio. The RStudio software is free and has a wide range of online resources to assist new users with getting started.

A detailed description of how to run a SGP analysis using the RStudio software can be found on our GitHub page. This guide is based on the RStudio “bcSGP” function, but it can be customized to include a variety of different SGP analyses and features. The bcSGP function can be run either from the command line or as a Python script.

Note that the bcSGP functions are designed to be used with LONG formatted SGP data, which is more easily managed than the short formatted data required for STAR assessments. The bcSGP functions also assume that the state specific meta-data included in the sgpData_LONG and gpdata_INSTRUCTOR_NUMBER lookup files is available, as this simplifies many of the higher level functions associated with operational SGP analyses.

bcSGP calculates current SGPs for ELA and Math only in grades 4 through 8 and grade 10. To calculate the student growth percentiles, DESE uses the two most recent prior test scores of each student in the subject (with some exceptions, such as science), and a single prior year (as pictured below). This means that SGPs cannot be produced for grade 3 or for any other subjects tested in grades 2 through 9 outside of the MCAS testing system.