Are you teaching your horse shoulder-in or is the horse already trained in this movement?
The horse should be trained to move the forehand away from the outside rein, with the inside rein merely flexing him to the inside.
The horse must bend from behind the shoulder, not just at the base of the neck, and be displacing the whole forehand to the inside, crossing the front legs, whilst the hind legs remain going in a straight line. When teaching the horse the shoulder-in, start it inwalk, and don't forget that it takes longer for a horse to cross it's legs when it is unsure of the movement, so take your time.Be satisfied with a few steps at a time.
Also, when asking for shoulder-in, turn your shoulders slightly to the inside. Your outside hip will then be pointing up the track in line with the horse's outside shoulder. Use your insie leg in conjunction with the swing of the horse's belly- on theright rein for instance, as the belly swings to the left, squeeze with your calf, the release as the belly swings to the right . Do this at each stride. The hindleg is coming off the ground as the belly swings away, and this is the only time that you can then further engage it. If you use solid pressure of the leg, the horse will react by boarding up his ribcage and leaning into the pressure.
Hope this helps-
My horses will do shoulder-in just merely by turning your shoulders to the inside.