Teaching win: a successful failure to revise!
In my introductory computer science class, students can come to reattempt audits1 without penalty by trying a new, related problem. My goal with this policy is to force students to engage in the feedback loop. Students only progress in the course if they have mastered the concepts, not if they've met an arbitrary points threshold.
In this course, nested for loops2 are a perennially challenging topic. Today, a student of mine came in, attempted a nested for loop problem, struggled, and finally succeeded. On completion and without prompting, she said, "Hm, I'm not sure I really got this. I'd like to try again tomorrow." This was great, and achieved everything I wanted! The student was able to tell she hadn't mastered the concept yet and voluntarily re-entered the feedback loop once more.