mod-perl/students/academic_history/academic_history.cgi has quite a few rules. Here is a summary. Credit Column * should have parentheses if: FROM PS_WES_ACAD_HIST A WHERE A.WES_TRAN_GRADE_INP IN ('BLANK','##','AB','AU','IA','IA-',IA+','IB','IB-','IB+','IC','IC-','IC+','ICR','ID','ID-','ID+',IE','IE-','IE+','IF','IN','IU','MA','MA-','MA+','MB','MB-','MB+','MC','MC-','MC+','MCR','MD','MD-','MD+','ME','ME-',ME-','ME+','MF','MU','PHB','PWD','PWS','X') * should display zero if: PS_WES_ACAD_HIST A WHERE A.WES_TRAN_GRADE_INP IN ('E','E-','E+','F','U','W') Grade Column * should display grade if: FROM PS_WES_ACAD_HIST A WHERE A.CRSE_GRADE_OFF = 'NOT BLANK' * should be left empty if: FROM PS_WES_ACAD_HIST A WHERE A.CRSE_GRADE_OFF = 'BLANK' Cumulative Credits * should sum credits if: FROM PS_WES_ACAD_HIST A WHERE A.WES_TRAN_GRADE_INP NOT IN ('BLANK','##','AB','AU','IA','IA-',IA+','IB','IB-','IB+','IC','IC-','IC+','ICR','ID','ID-','ID+',IE','IE-','IE+','IF','IN','IU','MA','MA-','MA+','MB','MB-','MB+','MC','MC-','MC+','MCR','MD','MD-','MD+','ME','ME-',ME-','ME+','MF','MU','PHB','PWD','PWS','X') Wes GPA and Alt GPA * should display when: the respective term has all CRSE_GRADE_INPUT entered for that term. (assuming that it will recalculate and include that term's grade(s)). It is also worth noting that the infamous floating point rounding 'bug' was encountered on GPAs ending in .475, and required some finagling to get those to round up. (For the curious, this is because the binary floating point representation of .475 comes out to .47499999999999999... so sprintf("%.2f", .475) == .47, not the expected .48!)