I don't have hard-and-fast rules; rather, since deals come and go, I do what makes most sense at the time.
Examples:
I always shop immediately after Christmas for wrapping paper, lights and ornaments. Stores don't stock as heavily as they did in past years, and the good stuff disappears more quickly than in the past.
I almost always shop heavily in January and February for things that will be deeply discounted and will not go out of style. Examples: Yankee candles, towel sets, books, movies, toys, board games, jewelry, scarves, gloves. Before I buy a certain thing, I have a person in mind -- though occasionally the item ends up going to someone else instead. And sometimes I find myself behind at birthday time and I raid my Christmas stock.
I have no problem picking up clothes for when they are "clearanced" for spring things. However, I tend to choose fairly basic things. Even with teens, you can get basics throughout the year. For example, way back in the spring I bought a college hoodie sweatshirt for less than $10. I had my oldest daughter's boyfriend in mind, but -- given that they're only 18 -- I also was mindful that they might not still be dating in December (as things turned out, they are). I didn't see this as a big risk, however, because any number of other family members would've appreciated this college hoodie -- likewise, any number of family members could've used the size large that I bought. For another example, my husband wears only LL Bean dress shirts to work; I buy him two new ones every Christmas (and when he gets them, he discards his two most worn shirts -- we don't keep huge wardrobes), BUT I have literally never bought one at full price, and I've literally never bought one during the Christmas season.
Sometimes I have in mind a specific item that I want to get for a certain person; for example, this year I knew I wanted to get broomstick horses for my little niece and nephew. If it's not on sale, I postpone buying it -- there's no benefit in buying ahead of time at full price. The person might receive the item for a birthday, a better model might come out -- again, there's just no reason to buy ahead of time if you can't get a good price.
Other times I just look at what's marked down and ask myself, "Would this be good for someone on my list?" I tend to get most of my stocking stuffers from this category. For example, I might notice that tights, markers, or earrings are marked down super-cheap, and -- although I probably wouldn't be thinking about stocking stuffers -- seeing the good price might make me decide to buy the items for my girls.
For my own daughters, I do some last-minute shopping -- once I know what "the latest thing" is this year. For example, when I did the bulk of my Christmas shopping earlier in the year, leggings weren't yet "a thing", so I wouldn't have picked them up. And before she went away to college, I wouldn't have known that my oldest would develop a love for Hungry Howie's pizza (which we don't have here at home), so I wouldn't have thought about a gift card for her stocking. I wouldn't know ahead of time what big video game was going to come out. Things that I buy at the last minute are always more expensive than the things I buy ahead of time.
The way it usually works out for me: I just sort of buy stuff during the first half of the year, and I stuff it into boxes in the top of my closet. About mid-way through the summer, I pull the boxes down and take stock. Then I get serious for a week or two about filling in the gaps -- at this point, it becomes about "getting it done before the stressful season arrives", so I end up paying more.
Also, during the summer when I'm not working, I try to make homemade Christmas presents. For example, dry soup mix, canned jellies or salsa, or homemade laundry detergent we'd make in the summer -- not during the Christmas season.
By Thanksgiving every year, I tend to have about 90% of my shopping done. I'll pick up a few things for my immediate family, and as I search through my boxes I'll find that I still have nothing for 1-2 family members. This means that shopping isn't overwhelming financially, nor is it stressful. Also, no matter what I do, there are a few things that I just can't get 'til the last minute; for example, my husband LOVES gift certificates for the "sports barber shop" -- it's sports themed, and each patron has a TV right in front of him, but he won't pay $18 for a haircut. I get him 1-2 gift certificates for his stocking every year, and he enjoys them -- but since they expire in three months, it's not something I could buy super-early.
Buying ahead is definitely better than saving money all year and buying in December because 1) most everything you buy is on sale; thus, you spend less money overall. 2) You don't have to do the shopping during the busy months.
One warning: Never buy clearanced-priced accessories for an item you haven't yet bought. I had planned to buy Kindles for my daughters and older nieces this year, and when I saw covers for a very good price, I snapped up four. Suddenly, while I wasn't paying attention, the Kindle Touch was discontinued. Now I own four covers for a product I can't buy. At best, I might be able to break even by selling them on ebay. Not one of my better choices; however, my "wins" in buying ahead greatly outnumber my losses.
And one hint: We're in the planning stage of building a house, the one in which we'll live 'til they carry us out of it. I'm planning a small hall closet that'll lock with a key instead of having a doorknob. That's going to be my gift closet. Right now I hide things in a couple places, mainly my own closet, and it's uncomfortably full sometimes.
Having your shopping out of the way means that in the weeks between Thanksgiving and Christmas, you have time to enjoy parties, to bake goodies, to drive elderly relatives to their Christmas outings, to make fun memories with your children. I highly recommend separating the bulk of the Christmas shopping from the Christmas season. That it makes your finances better at the end of the year is just a bonus.