Overriding the Status of SCORM Activities
Problem
The learning environment overrides the changes cmi.core.lesson_status from "completed" or "passed" to "failed" for SCORM activities.
Solution
Many SCORM authorware suites generate a masteryscore node in the imsmanifest.xml by default. This node is not necessary to the XML file but when it is there, the SCORM standard designates specific behaviour with regard to the value set there.
This can also be controlled in the learning environment by using the setting "Mastery score overrides status". If this setting is enabled and a mastery score is provided within your package, when LMSFinish is called and a raw score has been set, if the raw score is lower than the mastery score, the lesson status will be overridden and set to "failed".
Here's what is in the scorm standard, on page 35 of 155 in SCORM_1.2_ConformanceReq.pdf, numbered page 2-19 (SCORM Version 1.2 Conformance Requirements Version 1.2):
If the value for this element is not set to “incomplete” by the SCO, then the LMS shall re-evaluate and change the value based on the following:
• If there is no mastery score in the Manifest, and the SCO sets a score (cmi.core.score.raw) and the lesson_status (cmi.core.lesson_status) then the LMS shall not override the SCO determined status.
• If there is a mastery score in the Manifest, the LMS can change the status to either passed or failed depending on the student's score (cmi.core.score.raw) compared to the mastery score.
• If the student is taking the SCO for no-credit, (cmi.core.credit = “no-credit”) there is no change to the lesson_status, with one exception. If the lesson_mode (cmi.core.lesson_mode) is "browse", the lesson_status may change to "browsed" even if the cmi.core.credit is set to no-credit.
This can result in some functionality you don't intend. You can fix the problem by removing the mastery score node from your imsmanifest.xml file or by adjusting the SCORM activity setting "Mastery score overrides status". You may also want to find out what options you have, within your authorware suite, for the writing of that node into the manifest file, and change your authoring process accordingly.