Conditional/skippable units without affecting course progress

Hi everyone,

We need to build a course flow with two separate graded steps: a first assessment and a second, different assessment that acts as a retry path. The second assessment should only be reachable if a learner attempted the first and scored below a threshold. A learner who passes the first assessment should skip the second one entirely, and a learner who hasn’t attempted the first assessment yet shouldn’t be able to reach the second one at all. We’ve tried two approaches and hit a real limitation with each.

  1. Built-in prerequisite subsections. We looked at prerequisite course subsections. This only supports the positive direction: unlocking content when a learner scores above a threshold. There’s no equivalent for unlocking (or skipping to) content when a learner scores below a threshold, or hasn’t attempted the prerequisite at all. Since our use case needs that negative condition, prerequisites alone don’t cover it.
  2. Flow Control XBlock. We tried the Flow Control XBlock, which lets us evaluate a condition on another block’s score and redirect the learner accordingly, so the skip logic itself works. The problem is on the progress side: the second assessment’s unit is still counted in the learner’s overall course progress calculation, even though it was correctly and intentionally skipped. A learner who passes the first assessment and is routed straight past the second one ends up with progress reported below 100 percent, purely because a unit they were never supposed to see is still in the completion denominator.

Is there a way to achieve this while keeping course progress at 100 percent for a learner who correctly skips the second assessment? That could mean extending prerequisites to support a “less than” or “not attempted” condition, or a way to use Flow Control XBlock (or similar redirect logic) without the skipped unit affecting course progress. Pointers to existing work, workarounds, or planned changes in this area would help.