Balancing is one of those areas where the ONLY way to do it well is to both have plenty of experience playing games and designing them yourself, and involve other players of varying skill levels during testing of your script or game.
One rule of thumb is that no matter how you design your script, you will 'know' how to dodge an attack since you are the one who made it. Any 'this is obvious' techniques will rarely be obvious to the player, and sometimes, players will find new ways to dodge your pattern that you never expected. Personally, the latter has happened to an embarrassing extent two times to me - in the more notable one, VichyCatalan found a way to cheese one of my spell cards in my LOCAA4 entry in a way I had never tested or expected.
Difficulty is not just about bullet count or bullet speed. Pattern structure, the angles at which players are expected to dodge, the area of focus for the player, etc. all play a role. It will almost never be possible to calibrate difficulty in such a way that it feels like 'Normal' or 'Hard' for a given player.
My best recommendation is to balance against an existing game. If your game has a different style (e.g. CAVE, Seihou, Len'en), it may be more difficult to do so, but you will have to consider your target audience in that case. A lot of it comes down to tweaking numbers until they feel 'right' or the density falls above or below a threshold, resulting in a significant shift in the difficulty of a pattern. Internally, within a script, playing it from start to finish (and having others do the same and provide feedback) will allow you to better calibrate a script such that the patterns within are balanced against each other.
I hope this helps, even if a little.