OK, I'm sitting waiting for a plane, so a little longer explanation.
I build everything in OpenRocket first, including reasonable weight estimates if necessary for electronics, hardware, paint, recovery, etc. Once I have a reasonably close model in OR, if there isn't already a "ballast" mass object in the nose cone, I add one. With the motor I care about most (or a "worst case") loaded, I look at stability.
Everyone needs to stop thinking about and talking about "calibers" of stability. With calibers, a short, fat rocket is perfectly stable with considerably less than one caliber, while a long, skinny rocket is liable to be unstable with more than one caliber of stability. Percentage of airframe length automatically accounts for those differences. An accepted rule attributed to historic sounding rocket use is between 8 and 15 percent of airframe length. I've done a lot of searching and can't find an original source, but it seems to be well accepted in the hobby rocketry community. I normally target 10-12 percent.
So, back to my OR sim model. I start clicking the up arrow next to the mass in the edit dialogue for the ballast mass object.
If the apogee goes down when I add mass, the rocket is over optimum mass, and I will generally want it to be lighter. If stability is acceptable, I look at ways to take mass out of it, possibly including redistributing mass to get the stability closer to the center of the target range. This can include lighter or thinner fins, lighter recovery components, OCDing on centering rings, MMT length, etc., lighter electronics (smaller battery). If stability is inadequate, I can make changes to fin size or shape, try to move weight (like electronics and/or recovery gear) forward (into the nose cone, if necessary.
If the apogee goes up when I add mass, the rocket is under optimum mass, and depending on what my goals are for the rocket, I may want it to be heavier or leave it alone. If it's basically a fun rocket and stability is good, that's fine. If it's meant for maximum apogee, I'll look at adding ballast to find optimum mass, the range where adding or subtracting a little bit of mass makes little to no difference in apogee. This is where judgement comes into it, and it becomes an iterative process. You also need to pay attention to rail exit speed, speed at deployment (if using motor eject), and descent speed with your intended parachute size. You might end up having some of that additional mass take the form of heavier recovery gear, such as anchor hardware, shock cord, parachute size, etc., or overall heavier construction like bulkheads, fins, motor retention, etc.
If optimum mass is reached with a lot of nose weight and stability factor is thus excessive, you can look at moving mass back into the airframe or ebay. You can also look at reducing the fin size, or maybe reducing the rear overhang so they are less vulnerable to impacts on landing. You can also look at going from three fins to four. Straight scaling of the fins to 75% and adding one will shift the CP aft, further improving stability, while also making them less vulnerable to landing damage and less likely to flutter.
I could type more, but if you go explore everything I discussed above, you'll figure out other stuff that applies on your own rocket and you can try whatever you can think of.
Just remember that the "optimum" design will be different for different motors. Very long motors may actually extend forward of the c.g., so as you go to the longest motors, you actually improve stability. Thus, assuming that the largest motor is the worst case for stability may not be correct. Also, some propellants are much denser than others, so not all reloads in the same case will give the same stability results. If you plan to fly a rocket on a range of motors, account for the lower thrust of some motors. Optimum mass with a bigger motor may not get off the rail safely with a smaller motor.