Resources
Grade Passback

Grade Passback

How TutorFlow test scores are written back to the LMS gradebook with LTI Assignment and Grade Services, including open-ended (manual) grading.

When a student takes a TutorFlow test that was launched from the LMS, TutorFlow writes the score back to the LMS gradebook using LTI Assignment and Grade Services (AGS). No spreadsheet exports, no manual copying.

Grade passback applies to tests only — courses, modules, and slides are not graded activities.

How it works

  1. When a teacher deep links a test, the LMS creates a gradebook column (a "line item") whose maximum equals the test's total points.
  2. A student launches the test from the LMS and completes it.
  3. TutorFlow computes the score and posts it to that line item. The student's grade appears in the LMS gradebook.

The launch, the attempt, and the gradebook column are correlated automatically — the student never has to be matched by hand.

Auto-graded vs. open-ended tests

Test items that TutorFlow can grade automatically (multiple choice, true/false, fill-in-the-blank) are scored the moment the student submits.

Open-ended items need a human. For a test that mixes both, the flow is:

  1. On submit — TutorFlow posts the auto-graded portion immediately and marks the grade Pending (manual review) in the LMS, so the teacher knows more is coming.
  2. After the teacher grades the open-ended answers in TutorFlow, TutorFlow re-posts the final total and marks it Fully graded. The LMS gradebook updates to the final score.

You do not need to trigger the re-sync — grading the attempt in TutorFlow does it.

What the score looks like

TutorFlow sends an AGS score in the standard format:

{
  "userId": "<the student's LMS id>",
  "scoreGiven": 8,
  "scoreMaximum": 10,
  "activityProgress": "Completed",
  "gradingProgress": "FullyGraded",
  "timestamp": "2026-07-18T04:05:00.000Z"
}
  • gradingProgress is PendingManual while open-ended answers await grading, then FullyGraded.
  • timestamp is captured at the moment the attempt is finalized. The LMS uses it to ignore out-of-order updates, so a later re-grade always wins over an earlier partial score.

Timing and reliability

  • Passback runs as a background job. It normally lands within seconds.
  • If the LMS is briefly unreachable, TutorFlow retries with backoff before giving up. A retried post never overwrites a newer grade because scores carry their finalization time.

Requirements

  • The test must be launched from the LMS through the deep link. A student who opens the same test through a direct TutorFlow link (not via the LMS) has no LMS line item to write to, so no score is sent.
  • Assignment and Grade Services must be enabled on the tool in your LMS (see setup).

Troubleshooting

  • No grade appears — confirm the student launched from the LMS link (not a bookmark), and that the LMS activity has a gradebook column. Re-check that AGS scopes are enabled on the developer key / tool.
  • Grade is stuck at a partial score — the test has open-ended items still awaiting review. Grade the attempt in TutorFlow and the final score re-syncs.
  • Grade did not update after re-grading — allow a moment for the background job; the LMS shows the latest finalized score.