Skip to content

How Tracking Works in SCORM 1.2? – Part 2

As discussed in my earlier blog, besides having an LMS and courses compatible to SCORM, the developer has to define some specific variables to make sure that the information sent to, and recalled from the LMS is stored.

I have also discussed in detail how tracking actually works in SCORM 1.2 and shared 3 tracking variables that are supported by all kinds of LMS’s which include:

  • “cmi.core.lesson_location” for bookmarking/storing location
  • “cmi.core.lesson_status” to track and store the status.
  • “cmi.core.score.raw” to track and enable storing of Scores

Let us now see some more of such variables.



Training managers also expect the LMS to track the time spent by the learner on the courses. And this data can be tracked if the developer defines the time variable cmi.core.session_time. Using the SCORM variable, the LMS tracks the time that the learner accesses a particular eLearning course and even the first and last accessed dates.


The developer can also ask the LMS to store the total time using cmi.core.total_time. The LMS takes in the core session value and adds it to the previous timings to calculate and display the total time that the learner has accessed a particular eLearning course.

Knowledge Check:

The developer can also make sure that the knowledge check scores are tracked and stored in the LMS. This is called interaction cmi.interactions._count. Using this interactivity variable, the details of the knowledge check and scores are stored in the LMS. The LMS can also store the correct and user response.

Additional Variables:


As per the SCORM standards, only the variable “suspend data” is a large string. It can store up to 4000 characters. Using this variable, the developer can ask the LMS to track the state of the eLearning course, so that it can be can be reorganized when the learner returns to the course.

However there are some kinds of restrictions on using certain characters and has a limit, even though it’s a large string. The only way to store such kind of information is to use a combination of key/value that is divided by a delimiting character.

For example:

var suspend = “cmi.suspend_data:”+visitedslides+”^”+currentSlide+”^”+ noofattempts;

For some clients, where there is a lot of data to be stored and retrieved, the developer can find it easy to use XML changed to a string. He/she can effortlessly retrieve the string, change it into XML, and then use the data functions to retrieve the required information of the eLearning courses.

So, these are some tracking variables that demand the LMS to track the data and information within the course. Hope you got some idea on how actually tracking works in SCORM. Please do share if you have any comments.

The State of Learning: 2023 and Beyond