Learnosity scoring is not quite instant, so you may need to consider this in your application design. This page explains two different modes of operation for handling the processing of scores, and displaying them to the user.
Figure 1: modes of operation for Learnosity scoring
How it works
In order to maintain a scalable assessment scoring service, Learnosity first captures submitted Question responses to avoid data loss, and then submits those responses to our asynchronous scoring queue. This means that, while session scores are almost always processed very quickly, there may occasionally be a scoring delay of a duration that is inconsistent with a customer’s application design, and it is the customer’s responsibility to account for these potential scoring delays. The following are some details about our scoring functionality and associated general best practices.
When designing the pieces of your application that intersect with Learnosity scoring, the first important step is to fully understand your requirements for scoring feedback and acceptable latencies from a user perspective. With these requirements in mind, you can establish the best scoring approach based on the recommendations below.
Instant local scoring
The first point to understand about Learnosity scoring is that, by default, Question validation data is sent to the browser at the beginning of an assessment. This means that if you require only to display correct/incorrect or distractor rationale feedback to the user instantly, this can be accomplished without submitting the session to Learnosity and waiting on our scoring queue:
- After the user completes the assessment, you can re-initialize the Items API with `state: review`, which will use the Question validation data already stored locally to render the assessment with this validation displayed to the user.
An exception to using this instant local scoring method is in the case where the customer may be, perhaps for security reasons, purposefully stripping this validation data from an assessment. In this case, the asynchronous scoring approach below will need to be used.
If your product requirements extend beyond the case detailed above, you will need to await the scoring results from Learnosity’s scoring queue.
- Generally, the best approach to receiving session scores is by polling for them via the Data API’s session endpoints, at increasing intervals up to your application design’s maximum latency threshold, e.g., at 500ms, 1s, 3s, 7s, etc. after session submission.
- In the case that a session has still not been scored at this latency threshold, you will need to handle this case by displaying a “Refresh” or “Try again later” message to the user, along with a redirect appropriate to your app flows.