A control your merchants route around does not exist
Compliance that costs a contractor an afternoon will be worked around by lunchtime.
A curriculum with a 30% completion rate is a compliance artifact, not a control.
Requiring merchant training before origination is a standard remedy in consumer lending enforcement, and it is one of the easiest to satisfy on paper and hardest to satisfy in substance. A course exists. Attendance is recorded. Completion rates are quietly poor, and nobody is confident the people originating loans are the people who took it.
The mechanism that works is a funding gate: an uncertified contractor cannot be funded on programs that require certification. It is blunt, and it works precisely because it is unambiguous.
Two things make it fair rather than arbitrary. Warn before the certificate expires rather than after a draw is refused — the first a contractor hears about a lapse should not be a rejected payment. And make the gate a per-program switch the lender controls, so it is a deliberate policy decision rather than a platform-wide surprise.
The first a contractor hears about an expired certificate should not be a refused draw.
An assessment scored on the server, against answers the browser never receives, with every attempt retained including the failures. Retained failures matter twice: a pattern of retakes is a risk signal in itself, and discarding them would make the pass rate meaningless.
A cooling-off period before a retake is worth the friction. It makes a retake mean going back over the material rather than guessing again.
Ask for completion rates by contractor rather than course enrollment counts. The gap between them is the size of your problem.
Pick a closed project. We will show you the document you would hand a regulator. If it does not answer the question, nothing else matters.