I am looking for a way to be able to pull a report that shows me a list of all students in my building that have a D or F.
Thank you!
You'll likely need custom reports. Start here:
I use the PSCB grades search report. To use it, you select all your students in the school. Next, click on the PSCB grades search report (I find it by typing grades search in the search bar but it also lives in the PSCB screens). It allows you to filter by term or course. To find just the Ds and Fs, multiselect those from the grades drop down.
If you have SQL Reports, you can build one there. We have one called Current Grades Report. Here is the Query:
SELECT s.dcid, s.student_number, s.LastFirst, s.grade_level,
pgf.Grade, pgf.Percent, cc.CurrentAbsences,
(SELECT COUNT(distinct(att.att_date))
FROM attendance att
INNER JOIN attendance_code ac ON att.attendance_codeid = ac.ID
INNER JOIN students s1 on att.studentid = s1.id
INNER JOIN cc cc1 on att.ccid = cc1.id
WHERE att.att_mode_code = 'ATT_ModeMeeting'
AND ac.presence_status_cd = 'Absent'
AND s.id = att.studentid
and s.id = cc1.studentid
and cc.id = att.ccid),
cc.CurrentTardies,
(SELECT COUNT(distinct(att.att_date))
FROM attendance att
INNER JOIN attendance_code ac ON att.attendance_codeid = ac.ID
INNER JOIN att_code_code_entity acc on acc.Attendance_CodeID = ac.ID
INNER JOIN Code_Entity ce on ce.id = acc.Code_EntityID
INNER JOIN students s1 on att.studentid = s1.id
INNER JOIN cc cc1 on att.ccid = cc1.id
WHERE att.att_mode_code = 'ATT_ModeMeeting'
AND ce.external_name = 'Tardy'
AND s.id = att.studentid
and s.id = cc1.studentid
and cc.id = att.ccid),
sec.external_expression, cc.course_number, cc.section_number, c.Course_Name, c.CreditType, s2.student_academy, u.LastFirst, to_char(pgf.LastGradeUpdate,'MM/DD/YYYY'), case ilx.IEP when 1 then 'Y'
when 0 then 'N' else 'N' end, (select count(l.studentid) from log l where l.studentid = s.id
and l.LOGTYPEID = -100000
and l.SUBJECT = 'Discipline'
and l.entry_date >= (select trm.FIRSTDAY from terms trm where trm.SCHOOLID = l.schoolid and trm.yearid = ~(curyearid) and trm.ISYEARREC = 1))
,
(select sum(sg.earnedcrhrs) from storedgrades sg where sg.studentid = s.id)
FROM
(SELECT pgf.studentid id, count(*)
FROM PGFinalGrades pgf
INNER JOIN Students s ON pgf.StudentID = s.ID
~[if#cursel.%param2%=Yes]
INNER JOIN ~[temp.table.current.selection:students] stusel ON stusel.dcid=s.dcid
[/if#cursel]
INNER JOIN CC cc ON pgf.SectionID = cc.SectionID AND pgf.StudentID = cc.StudentID
WHERE s.enroll_status = 0
and s.schoolid = ~(curschoolid)
and pgf.FinalGradeName = '%param1%'
and cc.Termid like '~(curyearid)%%'
and cc.schoolid = ~(curschoolid)
and pgf.Grade IN (%param3%)
GROUP BY pgf.studentid
HAVING count(*) >= %param4%) curgrades
INNER JOIN Students s ON curgrades.id = s.id
INNER JOIN S_IL_STU_X ilx on ilx.studentsdcid = s.dcid
INNER JOIN U_STU_REGISTRATION s2 on s2.studentsdcid = s.dcid
INNER JOIN PGFinalGrades pgf ON s.ID = pgf.StudentID
INNER JOIN Sections sec ON pgf.SectionID = sec.ID
INNER JOIN Courses c ON upper(sec.Course_Number) = upper(c.Course_Number)
INNER JOIN SchoolStaff ss on ss.id = sec.Teacher
INNER JOIN Users u on u.dcid = ss.users_dcid
INNER JOIN CC cc ON pgf.SectionID = cc.SectionID AND pgf.StudentID = cc.StudentID
JOIN U_STU_REGISTRATION S2 ON S2.STUDENTSDCID = S.DCID
WHERE pgf.FinalGradeName = '%param1%'
and cc.Termid like '~(curyearid)%%'
and pgf.Grade IN (%param3%)
and cc.schoolid = ~(curschoolid)
ORDER BY s.lastfirst
If you have PSCB Custom reports, like @baileysutton22 suggested, they have great reports in there as well 😊
Jackie Sonsiadek
Student Information System Specialist
Rich Township District
There's a baked-in, native Enterprise Report called Current Grades Report. Start with it. Choose the current year (like 2025-2026, for example). Click Actions, then click Filter. Choose the Grade column, with the Operator "in," and then punch in: D,F. If your grade scale uses D- or D+, include those, as well.
