I've thought for many years that it's very odd how we make kids advance one year at a time in all subjects regardless of how they're doing on any individual one. And then, if worse comes to worse, we keep them back a whole grade, or move them forward even though they haven't mastered the material. In real life, we don't couple all kinds of tasks and rewards that aren't logically linked. The over-broad nature of year-long grades forces teachers to; a) move kids forward who aren't ready, b) make kids bored with material they've mastered, or, c) keep kids back when they have problems with, possibly, just one subject.
My idea is to replace this system with a much more granular series of units for every subject in school. Instead of having grades 1-12 of all subjects together, we'd have something like 70 units of reading, math, science, etc. etc. When you've passed a particular unit's requirements, you move on. If you get stuck on a unit, you repeat it. When you've finished all 70, you're done and can start on college prep or equivalency work.
Kids who need help could get help on a much more specific set of materials. Kids who are doing well could move forward more rapidly and not have to repeat core concepts they already grasp. School systems would get a much better idea of what specific topics need more attention. Families that move would be able to have their kids get into classes/units that better match their previous location.
I know this would take a lot of work. But I honestly think that "chunking" our kids' education in these really long, arbitrary grades is very unhelpful.