1. Home
  2. Knowledge Base
  3. Tin Canny Reporting for LearnDash
  4. Tin Can Lesson/Topic Completion Tracking

Tin Can Lesson/Topic Completion Tracking

Integration with LearnDash Mark Complete

The Tin Canny LearnDash Reporting plugin offers 5 options for integration with the LearnDash Mark Complete button that appears in Lessons and Topics:

  • Always Enabled: Mark Complete button is always enabled.  The learner can click the button to complete the lesson or topic at any time.
  • Disabled until complete: Mark Complete button is disabled until the completion condition has been satisfied.  The button is visible, but not clickable until the module has been completed.  Most themes will show the disabled button in a different color (typically grey), but on some themes, the disabled button will look exactly like the enabled button.  On these themes, CSS can be used to style the disabled button, or one of the other options can be used (e.g. hidden until complete).
  • Hidden until complete: Mark Complete button is hidden until the completion condition has been met.  Once the completion condition has been met, the button becomes visible.
  • Hidden and autocomplete: Mark Complete button is hidden and the lesson/topic is automatically marked complete when the completion condition has been met. With this option, you will need to provide a way for the user to progress to the next lesson or topic when the module has been completed, as there is no button for them to click.
  • Hidden and autoadvance: Mark Complete button is hidden, the lesson/topic is automatically marked complete and the learner is automatically advanced to the next lesson or topic when the completion condition has been met.  Notes: If LearnDash cannot identify a “next” lesson or topic, the current page will be reloaded.  If the lesson/topic is already complete, the user will not be autoadvanced.

The global setting that controls the Mark Complete button can be overridden at the lesson or topic level by changing the value of Restrict Mark Complete from “Use Global Setting” to a specific option.

If you use Toolkit Pro with the Single Page Courses module active, please note that these options are also available at the course level. See this article for more information.

Completion Condition

The default completion condition is “completed”, “passed”, or “answered”.  You can further control when the Mark Complete button is enabled by specifying a different completion condition on individual lesson or topic pages. For example, for a Tin Can module that contains a quiz at the end, you may want to limit the Completion Condition to just “passed”.

The Completion Condition field accepts 3 types of values:

  1. A verb, like “completed” or “passed”.
  2. A score, captured in this format: “result > 60”. In that example, the Mark Complete button/behaviour will be unlocked when a score of over 60 is recorded.
  3. A combination of target (a.k.a slide in your uploaded module) and verb, in this format: uotarget TARGET_NAME::VERB. If a slide name is “Slide 2” and the expected verb for that slide is “Experienced”, and you want the combination to satisfy the Completion Condition, enter “uotarget Slide 2::experienced”.

What’s most important is that the Completion Condition match whatever you see in the Tin Can report when you want completion to be available for the LearnDash lesson or topic. If you see a “Completed” verb in the Tin Can report and that’s the completion indicator, enter “Completed” in the Completion Condition field.

If there are multiple Tin Can modules on a lesson/topic page, the Mark Complete button condition is satisfied when any modules have been completed. For H5P modules, the Mark Complete button gets enabled when any module on the page has been completed (the H5P module must pass xAPI statements for this functionality to work; not all H5P content types do this).


  • The completion of a LearnDash lesson/topic and that of a Tin Can module are independent of each other. How completion should be triggered in an e-learning module published from Storyline, Captivate, and iSpring is configured in the Publish settings in those programs. (The following example is from Storyline.) Articulate Rise and H5P don’t give the user these tracking options.

Troubleshooting Mark Complete Issues

It’s unfortunately common for many of our users to experience issues with control over the Mark Complete button. Problems tend to occur in at least one of these areas:

  1. Access to the Tin Canny endpoint. H5P and uploaded modules must have unrestricted access to send anonymous communications to our the virtual endpoint that Tin Canny creates on your site. Maintenance plugins (and other plugins that redirect users across the site), security plugins, proxies (like Cloudflare) and similar tools can block the access that’s needed for your modules to pass data to Tin Canny.
  2. Stored verbs and other data are different than expected. Different authoring tools send different statements. If you set up a Mark Complete restriction on a “Completed” verb, but your module doesn’t send that verb, the Mark Complete button will never unlock.
  3. Javascript conflicts. These are less common, but in some cases other plugins may interfere and prevent the Mark Complete button from unlocking.

Here are some important steps to try when investigating Mark Complete unlock errors:

  1. Understand your data. Open 2 windows, one showing the Tin Can report and the other your module. As you go through the module, continually refresh the Tin Can report to see understand what statements are triggered when. Also make sure the completion condition you want to use is actually recorded properly.
  2. Start with simple conditions. Don’t jump right into something like “result>80”. Start with a single verb that you know is being passed.
  3. Make sure you test with a regular user, not an admin or someone that completed the module previously, and that the user is signed in and enrolled in the course.
  4. Clone to a Staging environment and disable other plugins (except LearnDash and Tin Canny). This can help to rule out a conflict. Try to see if things work as expected in that environment.
  5. Check the browser console on the module page by choosing View > Developer > Javascript Console in Chrome. Is anything in red? Are the warnings anything that can be resolved or things that might indicate a probably that would affect Tin Canny? Note here that if you see 403 errors it indicates a permissioning issue, and 500 errors often have associated entries in the web server error log that should be investigated.

If you continue experiencing issues that can’t be resolved, reach out to our support team for assistance.