Her first season DD competed Xcel bronze, and that was fine for her. Then we decided to try JO and switched gyms. She was place in a group training for L3, with a plan to compete L3 in the fall. However, the rest of the girls in her group competed old L3 that previous season, so DD was behind them at least on bars. At the end of August she was still missing some bars skills, so the HC decided to place her at L2, until she gets all L3 skills, and then possibly move up. She competing L2 for 3 meets and did awesome! Placing on all events, 1st or 2nd AA. But she still wanted to be a L3, so we insisted on moving her up in December when she got all her skills. The rest of the season she competed as L3, and it wasn't that great. She usually placed on 1 or 2 events, but at States she was the only one on her team to not place at all, this was devastating for her.
So... did they move her up too soon? Probably. She would have had a great season as level 2, and then a great next season as level 3. Did she regret moving up? Not at all. Yes, she was sad not placing at the meets, but the rest of the time she got to work harder skills, and be more challenged. Because she moved up to 3, she was able to up-train to 4 after the season was over, and moved up to L4 next season. If she stayed at 2, she would just be finishing L3 now.
So, it's really hard to tell what's best. Yes, it's great for them to become proficient in their skills before competing them. But for some kids it's also important to be challenged and work on harder skills, instead of just drilling something they already know. At least that's what seems to be more important for my DD. She didn't have such a great season as L4 either, but if I mention to her possibly repeating L4 next season, she gets upset, she really wants to move up to 5, even if it means not placing that well again.