DojoMaster

Grading Event Setup and Execution

Create belt tests, manage participants, and record grading results

For InstructorsAdvanced Features
Back to Documentation

1. Overview

Grading events (also called belt tests or examinations) are formal assessments where students demonstrate their skills and knowledge to advance to the next belt rank. DojoMaster provides a comprehensive system for creating, managing, and executing grading events with automatic eligibility checking and result tracking.

Key Features

  • Automatic Eligibility Checking: System validates students meet all requirements before enrollment
  • Flexible Requirements: Set minimum training days, required stripes, skills, and age requirements
  • Four Grading Statuses: SCHEDULED, IN_PROGRESS, COMPLETED, CANCELLED
  • Pass/Fail Recording: Record results with scores, feedback, and assessor notes
  • Automatic Belt Promotion: Student belts are automatically updated when they pass
  • Historical Tracking: Complete audit trail of all grading attempts and results

2. Prerequisites

Before creating a grading event, ensure you have:

3. Understanding Grading Events

Grading events are formal assessments where students demonstrate proficiency to advance to the next belt rank.

When to Create a Grading Event

  • Regular Schedule: Quarterly or bi-annual belt tests for all eligible students
  • Individual Assessments: When a student has completed all requirements and is ready to test
  • Special Events: Black belt examinations or advanced rank testing
  • Historical Recording: Document past grading events for record-keeping

Grading Event Statuses

📅 SCHEDULED

Grading event is planned but hasn't started yet. Students can be enrolled, and requirements can be modified.

⏳ IN_PROGRESS

Grading event is currently happening. Results can be recorded, but new students cannot be enrolled.

✅ COMPLETED

Grading event is finished. All results are finalized, and belt promotions have been processed. Results can still be viewed and updated if needed.

❌ CANCELLED

Grading event was cancelled and did not take place. No results are recorded.

4. Creating a Grading Event

Follow these steps to create a new grading event:

  1. 1.
    Navigate to Grading Events

    Go to Grading → Events in the main navigation

  2. 2.
    Click "Create Grading Event"

    Opens the grading event creation form

  3. 3.
    Fill in Basic Information
    • Name: Descriptive name (e.g., "Q1 2025 Belt Test", "Black Belt Examination") - 3-100 characters
    • Date: When the grading will take place (past dates allowed for historical records)
    • Location: Where the grading will be held (optional) - 3-200 characters
    • Status: SCHEDULED (default), IN_PROGRESS, COMPLETED, or CANCELLED
    • Notes: Additional information about the grading (optional) - up to 2000 characters
  4. 4.
    Configure Belt System (Optional)

    Select a specific belt system if you want to limit the grading to students from that system (e.g., "Traditional Karate" vs "Junior Karate"). Leave blank to allow students from any belt system.

  5. 5.
    Set Minimum Rank (Optional)

    Specify the minimum belt rank required to participate (0-20). For example, set to 5 for an advanced grading that only allows students at rank 5 or higher. Leave blank to allow all ranks.

  6. 6.
    Save the Grading Event

    Click "Create Grading Event" to save. The event is created with SCHEDULED status by default.

💡

Tip: Historical Gradings

You can create grading events with past dates to record historical belt tests. This is useful for migrating existing records into DojoMaster or documenting gradings that occurred before you started using the system.

5. Setting Grading Requirements

Grading requirements are configured at the belt rank level, not at the grading event level. This ensures consistency across all grading events.

Types of Requirements

1. Minimum Training Days

Configured in: Belt System → Belt Rank → "Minimum Training Days" field

How it works: System calculates days since student enrollment. If the student hasn't trained for the minimum number of days, they receive a warning (but can still be enrolled if instructor approves).

Example: Yellow Belt requires 90 training days. A student enrolled 60 days ago will see a warning: "Student has trained for 60 days. Recommended minimum is 90 days (30 days remaining)."

2. Required Stripes

Configured in: Belt System → Belt Rank → Stripe Requirements (see Stripe/Theme System Guide)

How it works: System checks if student has earned all required stripes for their current belt. Students missing required stripes are automatically excluded from eligibility.

Example: White Belt requires 4 stripes (Basic Stance, Basic Blocks, Basic Kicks, Basic Punches). A student with only 3 stripes cannot be enrolled in a grading to Yellow Belt.

3. Required Skills

Configured in: Belt System → Belt Rank → "Required Skills" field (JSON array)

How it works: List of skills or techniques the student must demonstrate during the grading. This is informational and used for instructor reference.

Example: ["Front Kick", "Roundhouse Kick", "Side Kick", "Kata 1", "Kata 2"]

4. Minimum Age

Configured in: Belt System → Belt Rank → "Minimum Age" field

How it works: System calculates student's age on the grading date. Students below the minimum age are automatically excluded from eligibility.

Example: Black Belt requires minimum age 16. A 15-year-old student cannot be enrolled in a Black Belt grading.

⚠️

Important: Requirements are Belt-Specific

Requirements are configured on the target belt (the belt the student is attempting to achieve), not their current belt. For example, if a White Belt student is testing for Yellow Belt, the system checks the requirements configured on the Yellow Belt rank.

6. Determining Student Eligibility

DojoMaster automatically validates student eligibility when enrolling students in a grading event. The system performs comprehensive checks to ensure students meet all requirements.

Automatic Eligibility Checks

When you attempt to enroll a student, the system validates:

  1. 1.Student is Active: Inactive or archived students cannot be enrolled
  2. 2.Student Has Current Belt: Students without a belt assignment must be assigned a starting belt first
  3. 3.Belt System Match: If grading specifies a belt system, student's current belt must be from that system
  4. 4.Sequential Progression: Student must attempt the next belt in sequence (rank + 1). Cannot skip belts or attempt lower ranks
  5. 5.Minimum Age: Student must meet the minimum age requirement for the target belt (if configured)
  6. 6.Required Stripes: Student must have earned all required stripes for their current belt (if configured)
  7. 7.Minimum Training Days: Student receives a warning if they haven't met the recommended training days (but can still be enrolled)

Eligibility vs Warnings

❌ Hard Requirements (Blocks Enrollment)

These requirements MUST be met. Students failing these checks cannot be enrolled:

  • • Student is inactive
  • • Student has no current belt
  • • Belt system mismatch
  • • Non-sequential belt progression
  • • Below minimum age
  • • Missing required stripes

⚠️ Soft Requirements (Warnings Only)

These requirements are recommended but not enforced. Students receive warnings but can still be enrolled:

  • • Minimum training days not met

Instructor discretion: You can choose to enroll students with warnings if you believe they're ready.

7. Managing Grading Participants

After creating a grading event, you need to enroll students who will participate in the belt test.

Enrolling Students

  1. 1.
    Open the Grading Event

    Navigate to Grading → Events and click on the grading event

  2. 2.
    Click "Enroll Students"

    Opens the student enrollment modal

  3. 3.
    Select Students and Target Belt

    Choose which students to enroll and specify which belt they're attempting. The system automatically filters to show only eligible students.

  4. 4.
    Review Eligibility Status

    Each student shows their eligibility status with any warnings or blocking issues

  5. 5.
    Confirm Enrollment

    Click "Enroll Students" to add them to the grading event

Viewing Enrolled Students

The grading event detail page shows all enrolled students with:

  • Student name and student number
  • Current belt rank
  • Belt they're attempting
  • Result status (pending, passed, or failed)
  • Actions to record or view results
⚠️

Important: Enrollment Restrictions

Students can only be enrolled when the grading status is SCHEDULED. Once the grading is IN_PROGRESS or COMPLETED, no new students can be added. If you need to add students after starting the grading, change the status back to SCHEDULED first.

8. Conducting the Grading Event

On the day of the grading event, follow this workflow to manage the assessment process.

Grading Day Workflow

  1. 1.
    Start the Grading

    Change the grading status from SCHEDULED to IN_PROGRESS. This locks student enrollment and signals that the grading is underway.

  2. 2.
    Conduct the Assessment

    Have students demonstrate the required skills and techniques for their target belt rank. Refer to the "Required Skills" field on the belt rank for the assessment criteria.

  3. 3.
    Record Results During or After

    You can record results as students complete their assessment, or wait until the end of the grading to record all results at once.

  4. 4.
    Complete the Grading

    Once all students have been assessed and results recorded, change the status to COMPLETED. This triggers automatic belt promotions for students who passed.

💡

Tip: Flexible Recording

You don't have to record all results before completing the grading. Results can be recorded or updated even after the grading is marked as COMPLETED. This allows you to finalize scores and feedback after the event if needed.

9. Recording Grading Results

After assessing each student, record their grading result with pass/fail status, optional scores, and feedback.

Recording a Result

  1. 1.
    Click "Record Result" for a Student

    Opens the result recording form for that student

  2. 2.
    Select Pass or Fail

    Choose whether the student passed or failed the grading

  3. 3.
    Specify Achieved Belt (Required for Pass)

    If the student passed, you must specify which belt they achieved. Typically this is the belt they attempted, but you can select a different belt if needed (e.g., conditional pass to an intermediate rank).

  4. 4.
    Add Scores (Optional)

    Record scores for different categories (e.g., Kata: 8/10, Kumite: 9/10, Basics: 7/10). This is optional but useful for detailed feedback.

  5. 5.
    Provide Feedback (Optional)

    Add feedback for the student (up to 2000 characters). This is visible to the student and parents.

  6. 6.
    Add Assessor Notes (Optional)

    Add private notes for instructors (up to 2000 characters). These are NOT visible to students or parents.

  7. 7.
    Save the Result

    Click "Save Result" to record the grading outcome

Understanding Pass/Fail Outcomes

✅ PASS

What happens: Student's current belt is automatically updated to the achieved belt when the grading is completed. Their stripe progress resets for the new belt.

Required field: Achieved Belt ID must be specified

Example: White Belt student passes grading → Current belt updated to Yellow Belt → Stripe progress resets to 0% for Yellow Belt requirements

❌ FAIL

What happens: Student's current belt remains unchanged. They can be enrolled in a future grading event when ready.

Required field: None (achieved belt is not specified for failures)

Best practice: Provide constructive feedback explaining what the student needs to improve before their next attempt

💡

Tip: Conditional Passes

If a student demonstrates most skills but needs improvement in certain areas, you can mark them as PASS but provide detailed feedback on what to work on. Alternatively, you can award a different belt than attempted (e.g., student attempts Yellow Belt but achieves Yellow-White Belt intermediate rank).

10. Belt Promotion Process

When a student passes a grading, DojoMaster automatically handles the belt promotion process to ensure data consistency and proper record-keeping.

Automatic Belt Promotion

Belt promotion happens automatically when:

  1. 1.A grading result is recorded with passed = true
  2. 2.An achieved belt is specified
  3. 3.The result is saved (either during or after the grading)

What Happens During Promotion

1. Student Belt Updated

The student's currentBeltId field is updated to the achieved belt ID. This change is immediate and reflected throughout the system.

2. Stripe Progress Resets

The student's stripe progress resets for the new belt. Previous stripes remain in the database (associated with the old belt rank) for historical tracking, but don't count toward the new belt's requirements.

3. Grading Readiness Recalculated

The student's grading readiness percentage resets to 0% for the new belt (since they haven't earned any stripes for the new belt yet).

4. Historical Record Created

The grading result is permanently stored in the database, creating a complete audit trail of the student's progression through belt ranks.

⚠️

Important: Promotion is Immediate

Belt promotion happens as soon as you save a passing result, even if the grading status is still IN_PROGRESS. You don't need to wait until the grading is marked as COMPLETED. This allows students to see their new belt immediately after passing.

11. Common Pitfalls and Troubleshooting

❌ Problem: Can't enroll students in grading event

Possible Causes:

  • • Grading status is IN_PROGRESS or COMPLETED (enrollment only allowed when SCHEDULED)
  • • Students don't have current belt assigned
  • • Students are missing required stripes for their current belt
  • • Students don't meet minimum age requirement for target belt
  • • Students are attempting to skip belt ranks (non-sequential progression)
  • • Belt system mismatch (student's belt is from different system than grading)

✓ Solution: Check grading status and change to SCHEDULED if needed. Verify students have current belts assigned. Review stripe requirements and ensure students have earned all required stripes. Check minimum age requirements. Ensure students are attempting the next belt in sequence (rank + 1).

❌ Problem: Student not showing in eligible students list

Possible Causes:

  • • Student is inactive or archived
  • • Student has no current belt assigned
  • • Student is missing required stripes
  • • Student is below minimum age for target belt
  • • Student's current belt is from a different belt system than the grading
  • • Student is already enrolled in the grading

✓ Solution: Verify student is active. Assign a current belt if missing. Check stripe requirements and award missing stripes. Verify student meets age requirements. If grading specifies a belt system, ensure student's belt is from that system. Check if student is already enrolled.

❌ Problem: Can't save grading result without achieved belt

Possible Causes:

  • • Student marked as PASS but no achieved belt specified
  • • This is a validation requirement to ensure data integrity

✓ Solution: When marking a student as PASS, you MUST specify which belt they achieved. Typically this is the belt they attempted, but you can select a different belt if needed (e.g., for conditional passes). If the student failed, mark them as FAIL and leave achieved belt empty.

❌ Problem: Student's belt didn't update after passing grading

Possible Causes:

  • • Result was saved with passed = false (failed)
  • • No achieved belt was specified in the result
  • • Database transaction failed (rare)

✓ Solution: Check the grading result to verify passed = true and achieved belt is specified. If both are correct, try editing the result and saving again. If the issue persists, contact support.

❌ Problem: Student's stripe progress disappeared after grading

This is expected behavior:

  • • Stripes are belt-specific
  • • When a student advances to a new belt, their stripe progress resets
  • • Previous stripes remain in the database for historical tracking
  • • Student must earn new stripes for the new belt's requirements

✓ Solution: This is normal behavior. The student's previous stripes are still recorded in the system (associated with their previous belt rank) but don't count toward their new belt's requirements. They start fresh with 0% grading readiness for the new belt.

❌ Problem: Can't change grading status to COMPLETED

Possible Causes:

  • • You don't have OWNER or SENSEI role
  • • Grading is already COMPLETED or CANCELLED

✓ Solution: Verify you have OWNER or SENSEI role. Check current grading status. Note that you don't need to record all results before marking as COMPLETED - results can be added or updated even after completion.

12. Related Features

Grading events work together with other DojoMaster features:

13. Next Steps

Now that you understand grading events:

  1. 1.Configure belt requirements: Set minimum training days, required stripes, skills, and age requirements for each belt rank
  2. 2.Create your first grading event: Set up a belt test with name, date, and location
  3. 3.Enroll eligible students: Use the automatic eligibility checking to identify ready students
  4. 4.Conduct the grading: Change status to IN_PROGRESS and assess students
  5. 5.Record results: Document pass/fail outcomes with feedback and scores
  6. 6.Complete the grading: Mark as COMPLETED to finalize belt promotions