Belt ranks
Building a per-program belt ladder, the presets, why the order matters, and how a student gets their first rank.
A belt ladder is an ordered list of ranks belonging to one program. A student enrolled in two programs holds two ranks, independently, and a promotion in one never touches the other.
This article is about building the ladder. Promoting students up it is Belt testing and promotions.
Where it lives
Students then Ranks opens a screen with three tabs:
| Tab | What it is |
|---|---|
| Belt Configuration | The ladder itself, one program at a time. This article. |
| Student Ranks | Who currently holds what, with the Promote button. |
| Promotion History | An audit log of every promotion ever recorded. |
Start on Belt Configuration and pick a program from the dropdown at the top. Only active programs are listed, so create the program first — see Setting up your first program.
Load a preset, then edit it
The fastest start is the Load Preset dropdown, which has three ready-made ladders:
| Preset | Ranks |
|---|---|
| Karate | White, Yellow, Orange, Green, Blue, Purple, Brown, Black |
| BJJ | White, Blue, Purple, Brown, Black |
| Taekwondo | White, Yellow, Green, Blue, Red, Black |
A preset adds ranks; it never replaces what is there. Any rank whose name already exists in this program is skipped, so loading a preset twice is harmless, and loading one on top of a half-built ladder only fills in the gaps.
Nothing about the presets is special once loaded — rename them, recolour them, reorder them, add stripes and intermediate grades.
Adding a rank by hand
Add Rank asks for two things:
- Name — free text up to 50 characters. "Yellow Belt", "Green with Black Stripe", "1st Dan", whatever you actually call it.
- Color — a colour picker plus a hex box, e.g.
#FFD700. This is the swatch shown next to the student's name everywhere else in the app.
New ranks are added at the bottom of the ladder.
Order is the whole point
Each rank shows its position as #1, #2 and so on, and the arrow buttons move
it up or down. The order is saved as soon as you press an arrow.
Get this right, because the order is not cosmetic:
Order is what makes a promotion a promotion
When you promote a student, the app only offers ranks below the student's current one in the list — that is, further down the ladder. A rank in the wrong position simply will not be offered, and a student sitting at the bottom of the list has no higher ranks left and cannot be promoted at all.
If a promotion dialog says "No higher ranks available" for somebody who clearly has further to go, the ladder is in the wrong order.
Demotions are refused outright. There is no way to move a student down a ladder from the app.
Editing and deleting
The pencil icon edits a rank's name and colour in place. Renaming a rank changes it everywhere at once, including for students who already hold it — there is no version history on ranks, unlike waivers.
The bin icon asks for a confirmation, then removes the rank. It only works if no student currently holds it; otherwise you get "Cannot delete a belt rank that is assigned to students. Reassign students first."
Deleted ranks stay in the history
Removing a rank hides it from the ladder and from the promotion dialogs. Old promotion-history rows that reference it still read correctly — the audit log is never rewritten.
Giving a student their first rank
A student only appears on the Student Ranks tab once they hold a rank in a program. Right now, the only place a first rank is set is the Current belt rank field on the manual student forms:
- Students then Students → Add student
- Students then Students → Bulk add
Both let you pick a program and then a rank in that program's ladder.
Students who register through the public form start with no rank
A family who signs up through your registration link, and is then enrolled from the worklist, has no rank in any program — so they do not appear on the Student Ranks tab and there is no Promote button for them yet.
Build your ladders before you migrate your existing roster, so you can set everyone's current belt as you type them in. For a student who arrived through the registration form, the practical workaround today is to record their first grading outside the app until they can be given a rank.
This is also the reason to build the ladder early: the belt column on Students then Students, the family view's progress screen and the promotions report are all empty until ranks exist and students hold them.
Ladders are per program, always
There is no studio-wide ladder and no way to share one ladder between two programs. If Kids Karate and Adult Karate use the same belts, build the ladder twice — load the same preset into each. It takes a few seconds and it keeps the two programs' promotion histories genuinely separate.
Last reviewed