A general guide to the fundamentals of throwing, mirrored on https://gardenofchaos.xyz/thoughts/throws
There are three types of throws: mixup, punish, and neither. You should only throw if it is a mixup or a punish, never otherwise.
Throw punishes:
A punish is certain to work, and will hit during the startup or recovery of an opponent’s move, so unless there’s some better option (such as a combo) that’s also certain to work then you should always throw.
Throw mixups:
A mixup isn’t certain to work, but if your opponent has clear patterns then you can utilise that to influence your decisions (for example, they might always throw after you crossup with an empty jump, giving you a free yomi opportunity - also, many players will always throw on wakeup vs lum’s whiffed crossup roll).
Advanced throw mixups:
The ideal pattern of throws vs not throws is based on two things: expected value, and the opponent’s habits. If an option is three times as good as a throw, then you should do it three times as often as a baseline, then adjust for how often your opponent expects it (if they expect it too often, then do it less, and vice versa). For instance, if your opponent always yomi counters then you should always go for a combo, and if your opponent always blocks then you should always go for a throw. If you throw too often then you get yomi countered too often, and if you don’t throw enough then your opponent will give you fewer openings to attack.
Fuzzy guarding:
If a throw is neither a punish nor a mixup, then it’s possible for them to “fuzzy guard” against it - this means that they wait before they start blocking, because you threw at a time when you couldn’t possibly hit them with anything else. The way to stop doing this is to delay such throws until they become a mixup, but this gives the opponent an opportunity to escape, so really you should avoid creating this situation in the first place. The short answer is that you shouldn’t do this, but it’s possible to adjust it so that it’s only risky instead of always a mistake, which I’ll explain shortly through by example.
Fuzzy guarding scenario:
By far the most common example of a fuzzyable throw is if you throw on your wakeup - this beats two uncommon options from your opponent: a whiffed meaty (if you know they often mess up timing), or blocking (if they expect and want to punish a reversal, otherwise they would safejump). In the case of a whiffed meaty, they already made a mistake and it’s their fault, but in the case of a reversal they can adapt: they know the earliest moment you can start the reversal (because it’s on wakeup), and how long the reversal’s startup takes!
So they can yomi counter until that point, thus defeating the throw option while still defeating the reversal option. This can easily be defeated by just delaying the throw until the reversal would hit, forcing them to actually guess, but leaves you vulnerable to being hit by a meaty before you do anything. You can also just run away if they’re fuzzy guarding.
Fuzzy guarding TLDR:
In short, a throw on wakeup is such a bad idea that you need to consider the nature of frame data to make it into a mixup, while leaving yourself vulnerable at the same time. It’s still worth including in your reportoire, but only if you play a reversal character (who doesn’t have a cutscene before the reversal!), and only rarely versus anyone who handles it correctly.