What Makes a Gold-Medal Program?
Actually, there is no magic answer to putting together a winning program. (Sorry!) There are just too many different ways to put together a program full of jumps, spins, and moves. No one formula guarantees success.
But there are some general principles that are pretty-much guaranteed to be a part of most gold-medal programs. The things I mention below are ideas based on my observations only, and may not be the best for you. Trust your pro's judgement on this - he or she knows you & your abilities. And also knows what other skaters in your area are doing.
Almost all good programs honor the following 4 principles:
Good Skating
First and foremost! Good posture, good flow, good (non-toe) pushes, good extension. Clean, quiet, edges without a lot of scratching. Consistently solid one-footed landings with no touches, cheats, 3-turns, dips, hooks. Good flowthrough on jumps. This stuff sounds "boring" and not as important as packing in lots of stuff -- don't believe it!
Legal Elements
There are many different kids of program - "Well Balanced", "Test Track", "Short Program", "Compulsory Moves". Each type has very specific rules regarding the elements that are required, and the elements that are "legal". Your program MUST comply with the rules, or deductions will be taken. While you won't be disqualified for doing elements above the level allowed for your program, its guaranteed that doing so will hurt your score more than it will help it. The competition announcement will always either LIST the appropriate elements or refer you to the appropriate US Figure Skating standard document that lists the appropriate elements.
Balance
A well-balanced program is essential. You should have a good mix of spins, "moves", and jumps. Don't repeat one element over and over just because it's hard and you happen to do it well. It's better to show that you can do a wide variety of elements, and connect them nicely. In Test Track programs no jump may be executed more than twice, and at higher levels in "Well Balanced" programs there are limits on repeats for doubles or triples. In all cases there are limits to the total number of jump elements, jump combos, and spins.
The right "difficulty"
Try to demonstrate command of all the elements specified for your test level. Show off a couple from higher levels if you can do them well and they are "legal" for your competition level. It's probably better to not try the hard ones if they're not consistent - you don't get much credit for a poorly performed element (in 6.0 judging), and the stress you'll be putting on yourself worrying about it might cause the rest of the program to suffer.
In a program judged under the IJS scoring system, each element (jump, spin, etc) receives a specific point value based upon its difficulty as predetermined by the ISU. The judge's assessment of the quality of performance for any element will cause small adjustments to the "base value" for that element but in general a jump with more (completed) rotations will achieve a higher point score than a similar jump with fewer rotations, regardless of the level of quality with which it is performed.
Presentation
Use your arms, your face, and body positioning to help you present your program. Good skating with no expression is boring skating. Try to "hear", feel, and "present" your music. Too often we see programs that use the music only to fill in that nasty silence that exists if it's not playing. Let the judges & the audience "see" the music in your presentation. Try to "connect" with your audience - look at them, make eye contact. Look like you're enjoying yourself.