In my school, our belt ranking is, as you said, based on the student's skill and proficency in technique, but we also use a point system. Each day a student comes, they get three points. And for each belt rank, we have a minimum number of points that is required to advance. This helps the students realize that they have time to work/practice/refine their techniques and it also keeps a good pace so students aren't being promoted too fast. But just because they may earn the minimum amount of required points, doesn't mean that they'll get advanced, it depends on their technique too. In my class we also have a stripe system as well. For each rank we have a list of required techniques within several categories such as form, kicks, breaks, knowledge and defense. And whenever a student demonstrates understanding of all the techniques in one category, they'll recieve a stripe. This gives them the sense of accomplishment that is essential in keeping kids motivated and interested. A possible idea for your "tots" class (6-9yrs) that we use in our school is that this is a seperate class just for young students untill they can join the youth class. In my school these kids work up in degree of white belt (I think we have like 8 degrees of white belt with the stripes running down the middle). They advance in rank by skill and good behavior. And then when they reach the age in which they can go to the youth class, then there next promotion gives them a yellow belt and they're now on the regular belt system. We also give them the choice to keep that stripe on all of their colored belts so they can display their achivements. Maybe some of these suggestions will be useful