GPA Calculations

On this page:

Before running a grade-related report, such as a report card, set up the correct parameters to calculate your school's grade point average. Some schools also choose to factor into the GPA calculation the number of times a student takes a course. Since GPAs are calculated on the fly, any changes take effect immediately and affect all schools on the server.

GPA Calculation Methods

Create GPA calculation methods to define the formula and criteria for GPA calculations. PowerSchool includes four standard calculation methods: Simple, Simple Percent, Weighted, and Weighted Percent. You can modify the standard methods to meet your needs or create an unlimited number of additional calculation methods.

Any changes or additions to the list of calculation methods affect all schools on your server. To share a method with schools on other servers, export the method as a template. If you have the proper permissions, you can remove a calculation method using DDA/DDE

Once GPA is calculated, the GPA code is used to present GPA information on reports, exports, and student pages. This code always starts with *gpa and is followed by optional parameters that include pairs of names and values.
Examples of the GPA code include:

  • ~(*gpa) returns the cumulative weighted GPA for a student for all years at the school
  • ~(*gpa method=weighted type=cumulative grade=12 credittypeCORE) returns a weighted GPA for core classes for the student's senior year

The following table lists the parameters and values. All parameters except for "method" are overridden by any settings in the calculation method. Parameters and values can be included in the code in any sequence.

Parameter

Description

Example

method

Specifies the name of the specific calculation method that should be used when performing this calculation. If omitted, a method called "weighted" will be used.

method=weighted method=simple method=honors

type

Specifies the type of the calculation. Valid options are:

  • Cumulative: Uses values from historical grades only.
  • Current: Uses the current (not stored) grades sent by the PowerSchool SIS Teacher. If "current" is specified, the term, grade, and year attributes, if specified, are ignored; only grades from the in-session school year using the store code specified on the Current Grade Display settings page in District Setup will be used.
  • Projected: Uses the historical grades, plus those projected grades as defined in the calculation method.

If omitted, "cumulative" is used.

type=cumulative
type=current type=projected

term

One or more term abbreviations. Only grades whose store codes match the specified abbreviations will be used in the calculation. Separate multiple terms with commas. If omitted, any store code is permitted. If one or more term abbreviations are specified but no grade or year, only grades from the current school year are used.

term=S1
term=Q1,Q2,Q3

grade

One or more grade levels. Only grades stored at the specified grade levels will be used in the calculation. Separate multiple grade levels with commas. If omitted, the historical grade range for the school is used.

grade=12 grade=7,8,9

year

One or more four-digit school years. Only grades stored during the specified school years will be used in the calculation. Specify the start year of a school year that spans multiple calendar years. For example, use 2003 for the 2003-2004 school year. Separate multiple years with commas. If omitted, all school years are used.

year=1999 year=1998,1999,2000

credittype

One or more credit types. Only grades that match one or more of the specified credit types will be used in the calculation. Separate multiple credit types with commas. If omitted, grades with any credit type, including no credit type, are used.

credittype=English
credittype=ENG,SCI,MATH
credittype=Core,Electives

scale

The name of the grade scale to use for this calculation. If a particular letter grade is not present in the specified grade scale, that grade will not be included in the calculation. If the name of the grade scale specified is unrecognized, a scale called Default is used. If omitted, the GPA points from the grade itself are used.

scale=Default scale=Standard scale=Honors

Add GPA Calculation Methods

Note: As an example of how to set up a GPA Calculation Method, consider a school that is currently in the middle of Quarter 4. It is the school's policy to not store grades until after class has ended, but this year's seniors need a projection of their cumulative GPAs to get an early start on their college applications. To accomplish this, you would set Projected Grades are to Current final grades, Do not add grade if to A grade for the course exist in this term and enter Q4, and Stored Credit Hours to Get potential credit from course.

  1. On the start page, choose District under Setup in the main menu. 
  2. Under Grading, click GPA Calculations
  3. Click Calculation Methods.
  4. Click New
  5. Enter the name of the calculation method. This is the name that will be referred to in GPA codes on other pages in PowerSchool.
  6. Enter a description of the calculation method. This description appears on the GPA Calculation Methods page.
  7. Enter the formula for the method used to determine the result of the calculation. Formulas can include functions, such as average, round, and sum. Use standard operators, such as + (addition) and * (multiplication), or use logical operators such as = (equal to) and > (greater than).
  8. Choose a Calculation Type.
    • Cumulative: Uses historical grades in the calculation that match the query options specified.
    • Current: Uses current final grades in the calculation, as determined in the School Setup area. A current calculation type uses the current final grades from the PowerSchool SIS Teacher. Terms, grade levels, and school years are ignored with this calculation type.
    • Projected: Uses historical grades and additional grades as defined in the Projected GPA Options area of the GPA Calculation Method page. A projected calculation type uses historical grades that match the query options specified, plus additional grades determined by any Projected GPA Options.
  9. To override the GPA points used in the calculation with a single grade scale, choose a grade scale. If a grade scale is specified, the scale parameter of the GPA code is ignored.
  10. Specify one or more term abbreviations, such as Q1 or S2, to use in the calculation. If the calculation type is Current, terms are ignored. If terms are specified, the term parameter of the GPA code is ignored.
  11. Specify one or more grade levels to use in the calculation. Use the numeric grade level, such as 11 for the eleventh grade or 0 for kindergarten. If the calculation type is Current, grade levels are ignored. If grade levels are specified, the grade parameter of the GPA code is ignored.
  12. Specify one or more four-digit school years to use in the calculation. For example, enter 2003 for the 2003-2004 school year. Separate multiple values with commas. Only grades recorded during the specified school years will be included in the calculation. If the calculation type is Current, school years are ignored. If school years are specified, the year parameter of the GPA code is ignored.
  13. Specify one or more credit types to use in the calculation. Separate multiple values with commas. Only grades whose credit type matches one of the types specified will be included in the calculation. If a historical grade does not have a credit type or if the calculation type is Current, the course's credit type is used. If credit types are specified, the credittype parameter of the GPA code is ignored.
  14. Select an option for Only include grades if needed:
    • That count in GPA: Includes only historical grades that are specified to be included in the GPA. If the calculation type is Current, only grades from courses and sections that have been flagged to be included in GPA will be included in the calculation.
    • That count in class rank: Includes only historical grades that are specified to be included in the class rank. If the calculation type is Current, only grades from courses and sections that have been flagged to be included in class rank will be included in the calculation.
    • That count in honor roll: Includes only historical grades that are specified to be included in the honor roll. If the calculation type is Current, only grades from courses and sections that have been flagged to be included in honor roll will be included in the calculation.
    • With potential credit: Includes only historical grades that have a potential credit that is not zero. If the calculation type is Current, the potential credit is determined by referring to the corresponding course record.
  15. If the calculation type is Projected, choose the type of grades used for projected GPA calculations.
  16. If the calculation type is Projected, choose the term for the grade to use in projected GPA calculations. A grade will not be added to the calculation if there already exists a historical grade for the current school year with the same course number for any store code or for the specified store code.
  17. If the calculation type is Projected, choose the credit hours option used in projected GPA calculations. If projected grades are historical grades, specify whether to use the actual potential and earned credit stored with the grade or to use the potential credit hours from the corresponding course.
  18. Click Submit

Edit GPA Calculation Methods

  1. On the start page, choose District under Setup in the main menu. 
  2. Under Grading, click GPA Calculations.
  3. Click Calculation Methods
  4. Click the name of the calculation method you want to edit. 
  5. Edit the information as needed.
  6. Click Submit.

Export GPA Calculation Methods

After you create and save a calculation method, you can export the calculation method for use on another PowerSchool server. The option to export the calculation method is available only for saved methods.

  1. On the start page, choose District under Setup in the main menu. 
  2. Under Grading, click GPA Calculations
  3. Click Calculation Methods
  4. Click the name of the calculation method to be exported. 
  5. Click Export as template. Save the file as a PowerSchool Template file (*.pst). 

Formulas for Calculation Methods

Like a formula in a spreadsheet, create formulas for calculation methods in PowerSchool. Formulas consist of functions and arguments, in most cases. Functions are used to perform operations on values, such as calculating a sum or an average, including a grade point average.

There are five categories of functions:

  • Numeric: Such as rounded, truncated by specified number of places
  • Logical: Such as "if," "and," "or"
  • Statistical: Such as average, max, min, median, product, sum
  • Text: Such as ASCII characters, uppercase, repeat text by specified number of times
  • GPA functions: Such as number of grades counted in GPA, course numbers, GPA calculation

Results of GPA functions may be arrays of values, which are in braces and separated by commas. For example, the function gpa_percent() may return the result {95.5,83.2,67.8,92} for a student. When you combine the gpa_percent() function with the statistical function average, the formula average(gpa_percent()) returns the result of 84.625 for those four grades.

Embed functions within each other to return the exact result you want. When appending the Round function to the example above to create the formula round(average(gpa_percent()),2), the result is 84.63. The value 2 in the formula indicates the number of digits to round from the decimal point.

You can also use any standard numeric or text operators in a formula, such as + (addition), - (subtraction), *** (multiplication), / (division), * (integer division), *^ (exponentiation), % (modulo), and & (concatenation). The following comparison operators may be used in logical functions: < (less than), <= (less than or equal to), > (greater than), >= (greater than or equal to), = (equal to), and <> (not equal to). For example, use the formula if((average(gpa_percent()))>90,Outstanding Academic Achievement,) to return the phrase Outstanding Academic Achievement if a student's average percentage for the grades exceeds 90 percent. If not, the formula returns nothing.

GPA Attempt Types

When calculating a student's GPA, you may want to consider the number of times he or she attempts to take a course. An attempt is a numerical expression to determine the length of the term. The name of the attempt type is the first letter of the term abbreviation, such as Y for year or S for semester. The corresponding number is the numeric expression, using decimals for fragments of the term.

Attempt types are used by the gpa_attempts() function. Attempts for a grade are determined by looking up the first character of the store code or term abbreviation, which is listed with the attempt type. If a match is found, the value specified for the attempt type is returned. If a match is not found, zero is returned as a result of that function. 

Add GPA Attempt Types

If you are using the gpa_attempts() function, set up GPA attempt types to factor the number of times a student takes a course in GPA calculations. Otherwise, it is not necessary to create attempt types.

  1. On the start page, choose District under Setup in the main menu. 
  2. Under Grading, click GPA Calculations
  3. Click Attempt Types
  4. Click New.
  5. Enter the name of the attempt type, which is the first letter of the term abbreviation.
  6. Enter the value of the attempt type.
  7. Enter a description for the attempt.

  8. Click Submit

Edit GPA Attempt Types

  1. On the start page, choose District under Setup in the main menu.
  2. Under Grading, click GPA Calculations
  3. Click Attempt Types
  4. Click the name of the attempt type you want to edit.
  5. Click Submit

Delete GPA Attempt Types

  1. On the start page, choose District under Setup in the main menu. 
  2. Under Grading, click GPA Calculations.
  3. Click Attempt Types
  4. Click the name of the attempt type you want to delete. 
  5. Click Delete.
  6. Click Confirm Delete

Set Other GPA Settings

Modify other global settings related to GPA calculations, including the number of decimal places used in credit hours and the ability to prevent modifications of grade scales.

  1. On the start page, choose District under Setup in the main menu. 
  2. Under Grading, click GPA Calculations
  3. Click Miscellaneous
  4. Enter the number of places from the decimal point to display for the credit hours.Use the following table to enter information in the fields.
  5. Click Submit

Functions

Formulas consist of functions and arguments, in most cases. Functions are used to perform operations on values, such as calculating a sum or an average, including a grade point average (GPA).

There are five categories of functions:

Functions must always include the parentheses, even if no arguments are specified. When specifying arguments to functions, be sure to enclose text values in quotation marks.

GPA Samples

Sample GPA formulas are listed below to illustrate the options available.

PowerSchool's traditional cumulative weighted GPA, rounded to 3 decimal places:

round((gpa_sum(gpa_gpapoints()*gpa_potentialcredit()/sum(gpa_potentialcredit()),3)

PowerSchool's traditional cumulative simple GPA, truncated to 2 decimal places:

trunc((average(gpa_gpapoints()),2)

A value added GPA:

average(gpa_gpapoints())+sum(gpa_addedvalue())

The number of A grades received:

countof(A,gpa_grade())+countof(A+,gpa_grade())+countof(A-,gpa_grade())

Total of all earned credit:

sum(gpa_earnedcredit())

The text "You are a star student!" if the student received more than 3 A+ grades:

if(countof(A+,gpa_grade())>=3,You are a star student!,)

The list of all letter grades, GPA points, and potential credit values used by the calculation:

gpa_grade()&&gpa_gpapoints()&&gpa_potentialcredit()

The result of one GPA calculation if the student has any grades with added value, or the result of another if not:

if(sum(gpa_addedvalue())>0,gpa_calculation(honors),gpa_calculation(standard))

Numerical Functions

Functions are used to perform operations on values, such as rounding numbers to a specified number of digits. The functions in this category are listed alphabetically.

Most functions have at least one required argument, though some do not accept any arguments. Optional arguments are surrounded by braces { }. A brief description and one or more examples follow each function.

Function name or alternate function

Function

Description

Examples

Abs (Absolute Value)

abs(number)

Returns the absolute value of the number. The result is either a positive number or zero.

abs(-4) returns 4

abs(78) returns 78

abs(0) returns 0

Dec (Decimal) or Frac (Fraction)

dec(number)

Returns the decimal (fractional) part of a real number. The result is always positive.

dec(22.575) returns 0.575

dec(-4.12) returns 0.12

Exp (Exponent)

exp(number)

Returns e raised to the power of the number. The constant e equals 2.718281828459, the base of the natural logarithm.

exp(1) returns 2.71828...

exp(0.707) returns 2.02811...

Fact (Factorial)

fact(number)

Returns the factorial of the number, equal to 1*2*3*...*number. If the number is negative, returns the #NUM! error value.

fact(5) returns 120

fact(7) returns 5040

Int (Integer)

int(number)

Rounds the number down to the nearest integer. If the number is positive, returns the integer equal to or less than the number. If the number is negative, rounds down to the next lowest whole number.

int(5.76) returns 5

int(-42.123) returns -43

Ln (Natural Log)

ln(number)

Returns the natural logarithm of the number. If the number is negative, returns the #NUM! error value.

round(ln(2.71828),3) returns 1

ln(4) returns 1.3863...

Log2 (Log to Base 2)

log2(number)

Returns the logarithm of the number to base 2. If the number is negative, returns the #NUM! error value.

log2(43) returns 5.4263...

Log10 (Log to Base 10)

log10(number)

Returns the logarithm of the number to base 10. This is the inverse of the number E in scientific notation. If the number is negative, returns the #NUM! error value.

log10(100000) returns 5

Log

log(number{,base})

Returns the logarithm of the number to a base. If the base is omitted, uses 10. If the number or base is negative, returns the #NUM! error value.

log(10000) returns 4

log(10000,6) returns 5.1404...

Mod (Modulo)

mod(number,divisor)

Returns the remainder when the number is divided by the divisor. The result has the same sign as the value of the number being divided. If the number or divisor is a real number, it will be rounded before calculating the modulo.

mod(5,-2) returns 1

mod(23,7) returns 2

Pi

pi()

Returns pi, the ratio of a circle's circumference to its diameter.

pi() returns 3.141592653589793116

Power

power(number,power)

Returns the result of the number raised to a power.

power(2,8) returns 256

power(14,0.5) returns 3.7417...

Rand (Random)

rand({number})

Returns a random number between 0 and the number. If the number is omitted, the returned value is between 0 and 1.

rand() returns 0.8462...

rand(50) returns 31.4896...

Round

round(number,digits)

Returns a number rounded to the specified number of digits from the decimal point. If digits is positive, it specifies the number of digits to the right of the decimal point. If negative, it specifies the number of digits to the left of the decimal point.

round(59.72893,3) returns 59.729

round(115925.45,-3) returns 116000

Sign

sign(number)

Returns 1 when the number is positive, -1 when it is negative, and 0 when it is zero.

sign(42) returns 1

sign(-827.32) returns -1

sign(0) returns 0

Sqrt (Square Root)

sqrt(number)

Returns the positive square root of the number. If the number is negative, returns the #NUM! error value.

sqrt(25) returns 5

sqrt(86) returns 9.2736...

Trunc (Truncate)

trunc(number{,digits})

Truncates the number by removing the decimal (fractional) part of the number. If digits is specified, it specifies the precision (number of decimal places) to truncate.

trunc(548.14687) returns 548

trunc(3.4583,2) returns 3.45

Logical Functions

Functions are used to perform operations on values, such as returning a specified number if certain conditions are met. The functions in this category are listed alphabetically.

Most functions have at least one required argument, though some do not accept any arguments. Optional arguments are surrounded by braces { }. A brief description and one or more examples follow each function.

Function name or alternate function

Function

Description

Examples

And

and(logical1{,logical2,...})

Returns 1 if all of the arguments are true (not zero), or 0 if any argument is false (zero).

and(1,0,1,43) returns 0 and((5=5),1) returns 1

If

if(logical,true_value,false_value)

Returns the true_value if the logical argument is true (not zero), or the false_value if the logical argument is false (zero).

if(1,100,0) returns 100 if(gpa_count()>20,Lots,Few) returns Few

IsBlank

isblank(text)

Returns 1 if the text is blank or 0 if it is a number or contains text.

isblank(83.2) returns 0 isblank(test) returns 0 isblank() returns 1

IsEven

iseven(number)

Returns 1 if the number is zero or evenly divisible by 2, or 0 if it is not.

iseven(42) returns 1 iseven(-17) returns 0

IsLogical

islogical(value)

Returns 1 if the argument can be interpreted as a logical value (0 or 1), or 0 if it cannot.

islogical(0) returns 1 islogical(gpa) returns 0

IsNumber

isnumber(value)

Returns 1 if the argument is a number, or 0 if it is text.

isnumber(3.412) returns 1 isnumber(A+) returns 0

IsOdd

isodd(number)

Returns 1 if the number is not zero or evenly divisible by 2, or 0 if it is.

isodd(42) returns 0 isodd(-17) returns 1

IsText

istext(value)

Returns 1 if the argument is text, or 0 if it is a number.

istext(0) returns 0 istext(gpa) returns 1

Not

not(logical)

Reverses the logic of the logical value: Returns 1 if logical is false (zero), or 0 if logical is true (not zero).

not(1) returns 0 not(5=4) returns 1

Or

or(logical1{,logical2,...})

Returns 1 if any of the arguments are true (not zero), or 0 if all are false (zero).

or(0,0,1,0) returns 1 or((5=4),0) returns 0

Statistical Functions

Functions are used to perform operations on values, such as calculating a sum or an average. The functions in this category are listed alphabetically.

Most functions have at least one required argument, though some do not accept any arguments. Optional arguments are surrounded by braces { }. A brief description and one or more examples follow each function.

Function name or alternate function

Function

Description

Examples

Average or Avg or Mean

average(number1{,number2,...})

Returns the average (arithmetic mean) of the numeric arguments. The arguments may be individual numbers or results of functions that return arrays of numbers.

average(12,18,25,15) returns 17.5

average(gpa_percent()) returns 80.5

Count

count(value1{,value2,...})

Returns the number of arguments given. The arguments may be individual values or results of functions that return arrays of values.

count(12,18,25,15) returns 4

count(gpa_percent()) returns 5

CountOf

countof(search_value,value1
{,value2,...})

Returns the number of occurrences of search_value in the remaining arguments. The arguments may be individual values or results of functions that return arrays of values.

countof(3.5,4,3.75,3.5,3,3, 4,3,2,3.5,2.5,3) returns 2

countof(A,gpa_grade()) returns 1

Distinct

distinct(value1{,value2,...})

Returns an array of the unique values found in the arguments. The arguments may be individual values or results of functions that return arrays of values.

distinct(4,3.75,3.5,3,3, 4,3,2,3.5,2.5,3) returns {4,3.75,3.5,3,2,2.5}

distinct(gpa_grade()) returns {A,B+,B,C+,F}

Geomean (Geometric Mean)

geomean(number1
{,number2,...})

Returns the geometric mean of the positive numeric arguments. The arguments may be individual numbers or results of functions that return arrays of numbers. If any argument is negative, returns the #NUM! error value.

geomean(12,18,25,15) returns 16.8702...

geomean(gpa_percent()) returns 79.0972...

Harmean (Harmonic Mean)

harmean(number1
{,number2,...})

Returns the harmonic mean of the positive numeric arguments, the reciprocal of the arithmetic mean of reciprocals. The arguments may be individual numbers or results of functions that return arrays of numbers. If any argument is negative, returns the #NUM! error value.

harmean(12,18,25,15) returns 16.2896...

harmean(gpa_percent()) returns 77.5126...

Max (Maximum)

max(number1
{,number2,...})

Returns the largest number in the list of arguments. The arguments may be individual numbers or results of functions that return arrays of numbers.

max(12,18,25,15) returns 25

max(gpa_percent()) returns 96.2

Maxa (Maximum Alphabetic)

maxa(value1
{,value2,...})

Sorts the arguments alphabetically, then returns the last value. The arguments may be individual values or results of functions that return arrays of values.

maxa(red,white,blue,green) returns white

Median

median(number1
{,number1,...})

Returns the median of the numeric arguments. The median is the number in the middle; half of the numbers are greater than the median, half are less. If there is an even number of arguments, returns the average of the two numbers in the middle.

median(1,2,3,4,5) returns 3

median(1,2,3,4,5,6) returns 3.5

median(gpa_gpapoints()) returns 3.333

Min (Minimum)

min(number1
{,number2,...})

Returns the smallest number in the list of arguments. The arguments may be individual numbers or results of functions that return arrays of numbers.

min(12,18,25,15) returns 12

min(gpa_percent()) returns 54.8

Min (Minimum Alphabetic)

mina(value1
{,value2,...})

Sorts the arguments alphabetically, then returns the first value. The arguments may be individual values or results of functions that return arrays of values.

mina(red,white,blue,green) returns blue

Mode

mode(value1
{,value2,...})

Returns the mode of the arguments. The mode is the most frequently occurring, or repetitive, value. If no value repeats, returns #N/A. In the case of a uniform distribution, or multiple modes, returns only one value. The arguments may be individual values or results of functions that return arrays of values.

mode(12,18,25,15)
returns #N/A

mode(12,18,25,15,19, 14,18,9,16,20) returns 18

mode(gpa_gpagrade()) returns B

Product

product(number1
{,number2,...})

Multiplies all the numeric arguments and returns the result. The arguments may be individual numbers or results of functions that return arrays of numbers.

product(12,18,25,15) returns 8100

Range

range(number1
{,number2,...})

Returns the difference between the largest and smallest numeric arguments. The arguments may be individual numbers or results of functions that return arrays of numbers.

range(12,18,25,15) returns 13

range(gpa_gpapoints()) returns 4

Stdev (Standard Deviation)

stdev(number1,number2
{,number3,...})

Calculates the standard deviation of a population based on a sample given as a list of arguments using the nonbiased or n-1 method. A standard deviation is a measure of how widely values are dispersed from the average value (arithmetic mean). The arguments may be individual numbers or results of functions that return arrays of numbers. If your data represents the entire population, use Stdevp.

stdev(12,18,25,15) returns 5.56778...

stdev(gpa_percent()) returns 15.6962...

Stdevp (Standard Deviation Population)

stdev(number1,number2
{,number3,...})

Calculates the standard deviation of an entire population given as a list of arguments using the biased or n method. A standard deviation is a measure of how widely values are dispersed from the average value (arithmetic mean). The arguments may be individual numbers or results of functions that return arrays of numbers. If your data represents a sample of the population, use Stdev.

stdev(12,18,25,15) returns 4.8218...

stdev(gpa_percent()) returns 14.0391...

Sum

sum(number1
{,number2,...})

Adds all the numeric arguments and returns the result. The arguments may be individual numbers or results of functions that return arrays of numbers.

sum(12,18,25,15) returns 70

sum(gpa_potentialcredit()) returns 4

Var (Variance)

var(number1,number2
[,number3,...})

Returns the variance of a population based on a sample given as a list of arguments. The arguments may be individual numbers or results of functions that return arrays of numbers. If your data represents the entire population, use Varp.

var(12,18,25,15) returns 31

var(gpa_gpapoints()) returns 2.5138...

Varp (Variance Population)

var(number1,number2
{,number3,...})

Returns the variance of an entire population given as a list of arguments. The arguments may be individual numbers or results of functions that return arrays of numbers. If your data represents a sample of the population, use Var.

varp(12,18,25,15) returns 23.25

varp(gpa_gpapoints()) returns 2.0110...

Text Functions

Functions are used to perform operations on values, such as joining two strings of text together. The functions in this category are listed alphabetically.

Most functions have at least one required argument, though some do not accept any arguments. Optional arguments are surrounded by braces { }. A brief description and one or more examples follow each function.

Function name or alternate function

Function

Description

Examples

Char (Character)

char(number)

Returns the ASCII character corresponding to the number. The ASCII set used is the Macintosh extended ASCII set.

char(65) returns A

char(92) returns \

Code (ASCII Code)

code(text)

Returns the numeric ASCII code of the first character in the text. The ASCII set used is the Macintosh extended ASCII set.

code(A) returns 65

code(gpa is fun) returns 103

Concatenate or Concat

concatenate(text1{,text2,...})

Joins several strings of text into one string of text.

concatenate(gpa,is,fun) returns gpaisfun

concatenate(gpa_count(),,grades) returns 29 grades

Exact

exact(text1,text2)

Returns 1 if both arguments are identical in case and characters, or 0 if different.

exact(GPA,gpa) returns 0

exact(Mr. Smith,Mr. Smith) returns 1

Left

left(text{,num_characters})

Returns the first (leftmost) character or characters in the text. If num_characters is omitted, returns 1 character.

left(GPA) returns G

left(Mr. Smith,3) returns Mr.

Len (Length)

len(text)

Returns the number of characters in the text, including spaces, numbers, and special characters.

len(GPA) returns 3

len(Mr. Smith) returns 8

Lower

lower(text)

Converts any uppercase characters in the text to lowercase.

lower(GPA) returns gpa

lower(Mr. Smith) returns mr. smith

Mid (Middle)

mid(text,start_position,
num_characters)

Returns a specific number of characters from the text starting at the position you specify.

mid(GPA,1,1) returns P

mid(Mr. Smith,3,4) returns . Smi

Proper

proper(text)

Capitalizes the first letter and any letter following a non-letter in the text.

proper(GPA) returns Gpa

proper(2-cent's worth) returns 2-Cent'S Worth

Replace

replace(text,start_position,
num_characters,new_text)

Replaces num_characters characters of text with the new_text starting at the position you specify.

replace(gpa codes,4,5,is fun) returns gpa is fun

replace(Mr. Smith,1,3,Mrs.) returns Mrs. Smith

Rept (Repeat)

rept(text,number_times)

Repeats the text the specified number of times.

rept(gpa is fun ,5) returns gpa is fun gpa is fun gpa is fun gpa is fun gpa is fun

rept(-,average(gpa_gpapoints())*4) returns -----------

Right

right(text{,num_characters})

Returns the last (rightmost) characters in the text. If num_characters is omitted, returns 1 character.

right(GPA) returns A

right(Mr. Smith,4) returns mith

Trim

trim(text)

Removes leading, trailing, and extra spaces from the text.

trim( gpa is fun ) returns gpa is fun

Upper

upper(text)

Converts any lowercase characters in the text to uppercase.

upper(gpa is fun) returns GPA IS FUN

upper(Mr. Smith) returns MR. SMITH

GPA Functions

Functions are used to perform operations on values, such as returning the number of grades used to determine a student's GPA. The functions in this category are listed alphabetically. For more information about GPA functions, see the PowerSchool Community.

Most functions have at least one required argument, though some do not accept any arguments. Optional arguments are surrounded by braces { }. A brief description and one or more examples follow each function.

Function name or alternate function

Function

Description

Examples

GPA_AddedValue

gpa_addedvalue()

Returns a numeric array listing the added value for each grade used in the GPA calculation. If used within gpa_concat() or gpa_sum(), returns a single value. See the note in gpa_sum().

gpa_addedvalue()
returns {0,0.02,0,0,0}

GPA_Attempts

gpa_attempts()

Returns a numeric array listing the attempts for each grade used in the GPA calculation. The attempts are determined by comparing the first character of the store code to a lookup table defined in District Setup. If the character is not found in the lookup table, a zero is used. If used within gpa_concat() or gpa_sum(), returns a single value. See the note in gpa_sum().

gpa_attempts()
returns {1,1,2,2,2}

GPA_Calculation

gpa_calculation(text)

Returns the result of the GPA calculation method whose name is specified.

gpa_calculation(weighted)
returns 3.254

GPA_Concat

gpa_concat(formula)

Evaluates the formula once for every grade used in the GPA calculation and returns a concatenated string of the results.

When used inside gpa_concat(), the following functions return an individual value instead of an array:

  • gpa_addedvalue()
  • gpa_attempts()
  • gpa_coursenumber()
  • gpa_earnedcredit()
  • gpa_gpapoints()
  • gpa_grade()
  • gpa_gradelevel()
  • gpa_percent()
  • gpa_potentialcredit()
  • gpa_storecode()
  • gpa_termid()

Note: A gpa_concat() or gpa_sum() function cannot be used within the formula.

gpa_concat(if(left
(gpa_grade())
=B,*,)) returns **

GPA_Count

gpa_count()

Returns the number of grades used in the GPA calculation. Functionally equivalent to count(gpa_grade()), but faster.

gpa_count() returns 8

GPA_CountSchoolYears

gpa_countschoolyears()

Returns the number of unique school years (not grade levels) for the grades used in the GPA calculation.

gpa_countschoolyears()
returns 2

GPA_CountUniqueCourses

gpa_countuniquecourses()

Returns the number of unique courses (based on course number) for the grades used in the GPA calculation.

gpa_countuniquecourses() returns 6

GPA_CountYearTerms

gpa_countyearterms()

Counts the number of unique store codes in each school year, then returns a grand total.

gpa_countyearterms()
returns 4

GPA_CourseNumber

gpa_coursenumber()

Returns a text array listing the course numbers for each grade used in the GPA calculation. If used within gpa_concat() or gpa_sum(), returns a single value. See the note in gpa_sum().

gpa_coursenumber()
returns
{MA1001,SC2001,
FA540,LS105,
PE200}

GPA_EarnedCredit

gpa_earnedcredit()

Returns a numeric array listing the earned credit hours for each grade used in the GPA calculation. If used within gpa_concat() or gpa_sum(), returns a single value. See the note in gpa_sum().

gpa_earnedcredit()
returns {0,0.5,0.5,1,0}

GPA_GPAPoints

gpa_gpapoints()

Returns a numeric array listing the gpa points for each grade used in the GPA calculation. If used within gpa_concat() or gpa_sum(), returns a single value. See the note in gpa_sum().

gpa_gpapoints()
returns
{4,3.5,3.333,2.5,0}

GPA_Grade

gpa_grade()

Returns a text array listing the letter grade for each grade used in the GPA calculation. If used within gpa_concat() or gpa_sum(), returns a single value. See the note in gpa_sum().

gpa_grade()
returns {A,B+,B,C+,F}

GPA_GradeLevel

gpa_gradelevel()

Returns a numeric array listing the grade level for each grade used in the GPA calculation. If used within gpa_concat() or gpa_sum(), returns a single value. See the note in gpa_sum().

gpa_gradelevel()
returns {9,9,9,10,10}

GPA_Percent

gpa_percent()

Returns a numeric array listing the percentage for each grade used in the GPA calculation. If used within gpa_concat() or gpa_sum(), returns a single value. See the note in gpa_sum().

gpa_percent()
returns {96.2,88.5,84,79,54.8}

GPA_PotentialCredit

gpa_potentialcredit()

Returns a numeric array listing the potential credit hours for each grade used in the GPA calculation. If used within gpa_concat() or gpa_sum(), returns a single value. See the note in gpa_sum().

gpa_potentialcredit()
returns {0,0.5,0.5,1,1}

GPA_StoreCode

gpa_storecode()

Returns a text array listing the store code for each grade used in the GPA calculation. If used within gpa_concat() or gpa_sum(), returns a single value. See the note in gpa_sum().

gpa_storecode() returns {Q1,Q2,S1,S1,S2}

GPA_Sum

gpa_sum(formula)

Evaluates the formula once for every grade used in the GPA calculation and returns the numeric total of the results.

When used inside gpa_concat(), the following functions return an individual value instead of an array:

  • gpa_addedvalue()
  • gpa_attempts()
  • gpa_coursenumber()
  • gpa_earnedcredit()
  • gpa_gpapoints()
  • gpa_grade()
  • gpa_gradelevel()
  • gpa_percent()
  • gpa_potentialcredit()
  • gpa_storecode()
  • gpa_termid()

Note: A gpa_concat() or gpa_sum() function cannot be used within the formula.

gpa_sum(gpa_gpapoints()
*gpa_potentialcredit())
returns 5.9165

GPA_TermID

gpa_termid()

Returns a numeric array listing the term ID for each grade used in the GPA calculation. If used within gpa_concat() or gpa_sum(), returns a single value. See the note in gpa_sum().

gpa_termid() returns
{1004,1005,1001,
1101,1102}