PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004001 co1 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004001 co2 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004001 co3 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004001 co4 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004001 co5 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004001 PO1 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004001 PO2 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004002 co1 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004002 co2 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004002 co3 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004002 co4 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004002 co5 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004002 PO1 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): 2004002 PO2 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): co1.nEvaluated PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): co1.pctPass PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): co3.nEvaluated PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): co3.pctPass PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): co5.nEvaluated PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): co5.pctPass PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): PO1.pctPass PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): PO1.attained PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): PO2.pctPass PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): PO2.attained PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): PO3.hasMapping PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): weight PO1 PASS: CE 207 parity with the original OBE Calculation Aid (Report CE 207.xlsx, students 2004001 and 2004002): weight PO2 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): A c1 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): A c2 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): A PO1 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): A PO2 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): B c1 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): B c2 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): B PO1 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): B PO2 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): C c1 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): C c2 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): C PO1 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): C PO2 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): D c1 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): D c2 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): D PO1 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): D PO2 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): c1.nEvaluated PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): c1.pctPass PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): c1.attained PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): c2.nEvaluated PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): c2.pctPass PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): c2.attained PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): PO1.nEvaluated PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): PO1.pctPass PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): PO2.nEvaluated PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): PO2.pctPass PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): weight PO1 PASS: Methodology worked example: mandatory blank = 0 (R2), engaged choice unit (R3), untouched choice excluded (R4): weight PO2 PASS: Choice scheme: answer 4 of 6, shortfall drafted as zeros (R5); absent from the assessment excluded: two k3 PASS: Choice scheme: answer 4 of 6, shortfall drafted as zeros (R5); absent from the assessment excluded: two PO3 PASS: Choice scheme: answer 4 of 6, shortfall drafted as zeros (R5); absent from the assessment excluded: absent k3 PASS: Choice scheme: answer 4 of 6, shortfall drafted as zeros (R5); absent from the assessment excluded: absent PO3 PASS: Choice scheme: answer 4 of 6, shortfall drafted as zeros (R5); absent from the assessment excluded: five k3 PASS: Choice scheme: answer 4 of 6, shortfall drafted as zeros (R5); absent from the assessment excluded: five PO3 PASS: Choice scheme: answer 4 of 6, shortfall drafted as zeros (R5); absent from the assessment excluded: over k3 PASS: Choice scheme: answer 4 of 6, shortfall drafted as zeros (R5); absent from the assessment excluded: over PO3 PASS: Choice scheme: answer 4 of 6, shortfall drafted as zeros (R5); absent from the assessment excluded: k3.nEvaluated PASS: Choice scheme: answer 4 of 6, shortfall drafted as zeros (R5); absent from the assessment excluded: k3.pctPass PASS: Choice scheme: answer 4 of 6, shortfall drafted as zeros (R5); absent from the assessment excluded: weight PO3 PASS: CO exit survey: indirect = ratings >= 4, combined 80/20 (methodology sections 5-6): c1.indirectPct PASS: CO exit survey: indirect = ratings >= 4, combined 80/20 (methodology sections 5-6): c1.combinedPct PASS: CO exit survey: indirect = ratings >= 4, combined 80/20 (methodology sections 5-6): c1.combinedAttained PASS: CO exit survey: indirect = ratings >= 4, combined 80/20 (methodology sections 5-6): c2.indirectPct PASS: CO exit survey: indirect = ratings >= 4, combined 80/20 (methodology sections 5-6): c2.combinedPct PASS: CO exit survey: indirect = ratings >= 4, combined 80/20 (methodology sections 5-6): c2.combinedAttained PASS: CO exit survey: indirect = ratings >= 4, combined 80/20 (methodology sections 5-6): PO1.indirectPct PASS: CO exit survey: indirect = ratings >= 4, combined 80/20 (methodology sections 5-6): PO1.combinedPct PASS: CO exit survey: indirect = ratings >= 4, combined 80/20 (methodology sections 5-6): PO2.indirectPct PASS: CO exit survey: indirect = ratings >= 4, combined 80/20 (methodology sections 5-6): PO2.combinedPct PASS: Survey with pass rating 5 and a 50/50 split; combined judged against Target KPI 70: c2.indirectPct PASS: Survey with pass rating 5 and a 50/50 split; combined judged against Target KPI 70: c2.combinedPct PASS: Survey with pass rating 5 and a 50/50 split; combined judged against Target KPI 70: c2.combinedAttained PASS: Survey with pass rating 5 and a 50/50 split; combined judged against Target KPI 70: c1.combinedPct PASS: Survey with pass rating 5 and a 50/50 split; combined judged against Target KPI 70: c1.combinedAttained PASS: Survey with pass rating 5 and a 50/50 split; combined judged against Target KPI 70: PO2.indirectPct PASS: Survey with pass rating 5 and a 50/50 split; combined judged against Target KPI 70: PO2.combinedPct PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: S1 co1 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: S1 co2 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: S1 PO1 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: S1 PO2 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: S1 PO3 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: S1 PO4 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: S2 co1 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: S2 co2 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: S2 PO1 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: S2 PO2 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: S2 PO3 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: S2 PO4 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: co1.nEvaluated PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: co1.pctPass PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: co1.avgScore PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: co1.attained PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: co2.pctPass PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: co2.pctKpi PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: co2.attained PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: PO1.pctPass PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: PO1.avgScore PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: PO1.attained PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: PO2.pctPass PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: weight PO1 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: weight PO2 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: weight PO3 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: weight PO4 PASS: Assessment-weighted CO basis (quiz 10 marks = 20%, final 200 marks = 80%) with CO-PO strength weighting: coBasisApplied PASS: Weighted basis requested but the quiz has no weight: falls back to raw marks; PO weighting unset stays normalised per CO: S1 co1 PASS: Weighted basis requested but the quiz has no weight: falls back to raw marks; PO weighting unset stays normalised per CO: S1 co2 PASS: Weighted basis requested but the quiz has no weight: falls back to raw marks; PO weighting unset stays normalised per CO: S1 PO1 PASS: Weighted basis requested but the quiz has no weight: falls back to raw marks; PO weighting unset stays normalised per CO: co1.pctPass PASS: Weighted basis requested but the quiz has no weight: falls back to raw marks; PO weighting unset stays normalised per CO: coBasisApplied PASS: Weighted basis with answer 2 of 3: final full marks = 20 mandatory + 2 x 20 = 60, not 80: T1 co1 PASS: Weighted basis with answer 2 of 3: final full marks = 20 mandatory + 2 x 20 = 60, not 80: T1 co2 PASS: Weighted basis with answer 2 of 3: final full marks = 20 mandatory + 2 x 20 = 60, not 80: T1 PO1 PASS: Weighted basis with answer 2 of 3: final full marks = 20 mandatory + 2 x 20 = 60, not 80: coBasisApplied PASS: PHP engine ran the same 120 fixture checks as the JavaScript engine PASS: migration 010 applied PASS: outcome tables exist PASS: students.read granted to all three roles PASS: courses.reopen granted to all three roles (migration 012) PASS: student ID trims tabs and spaces PASS: student ID drops Excel float suffix PASS: student ID drops ".0" text suffix PASS: January term sorts before July PASS: Fall 2023 sorts before Spring 2024 PASS: Level-term labels sort without a year PASS: validator stores "answer any" as a whole number PASS: validator keeps optional flag and trims group PASS: validator keeps engine meaning of odd values PASS: validator rejects a non-numeric "answer any" PASS: validator keeps five whole survey counts per valid CO PASS: marks above the question maximum are detected PASS: snapshot stores each student x mapped PO PASS: weight = credit x CO-PO strength PASS: snapshot is idempotent PASS: profile returns the student PASS: profile lists all three offerings PASS: PO1 = credit-weighted mean using the best CE 101 attempt PASS: retake counts as one course PASS: PO2 keeps the best retake score PASS: retake attempts are counted PASS: trajectory is ordered by term PASS: trajectory term 1 = first course only PASS: trajectory term 2 accumulates PASS: trajectory term 3 applies the retake PASS: cohort = same-offering averages, same weights PASS: cohort size counts distinct classmates PASS: threshold comes from institution pass marks PASS: unknown student has no profile PASS: unrestricted user can view PASS: teacher of CE 102 can view its student PASS: teacher of another course cannot view PASS: teacher without courses cannot view PASS: search matches by ID PASS: search matches by name PASS: search is empty without assigned courses PASS: search escapes LIKE wildcards PASS: overview counts students and offerings PASS: reopened course leaves the profile PASS: deleting a course removes its scores PASS: rebuild re-freezes every completed course PASS: backfill fills completed courses without scores, once PASS: a student with no marks at all is kept out of profiles PASS: xlsx reader lists sheets PASS: xlsx reader returns numeric cells PASS: dry run skips absent students and unmapped POs PASS: dry run stores nothing PASS: import stores the course PASS: re-import replaces instead of duplicating PASS: imported profile uses mapping weights PASS: imported offering is labelled Student outcome regression suite completed successfully.