A short track distance is a knockout. Skaters are drawn into heats of four to seven, the field halves at each stage, and after three or four rounds six people line up for the medals. What makes it harder to follow than a tennis draw is that you can also advance without finishing in a qualifying position — in two entirely different ways.
The usual summary — "top two go through" — is not the rule. Rule 295 §2.g says "Race winners in the races will qualify to move forward to the next round. Additional finish places will qualify to move directly forward to the next round as specified on the Qualification table for the Distance." How many places that is depends on the distance and the round, not on a fixed number. At ISU events the next round is scheduled for five skaters in the 500 m and 1000 m, and seven in the 1500 m semifinals and final.
The fastest losers come last, and only if there is room. The rule is explicit about the order: "In the case that the directly qualified Skaters and advanced Skaters, if any, do not fill up the scheduled number of Skaters in the next round, the fastest Skaters in the next finishing positions may be added." So a fastest-loser place is not a guaranteed second chance — it is whatever is left over.
Which is why an advancement in a different heat can end your race. Advanced skaters are added to the next round and count towards filling it. If two of them arrive, two fastest-loser places disappear, and a skater sitting third who was "probably through on time" now has to finish in a qualifying position. Nothing they did changed; the arithmetic did.
This is the part almost every explanation gets loose, and the rule is exact. Rule 295 §2.g: "Skaters who were impeded, for which another Skater received a penalty, a yellow card or a red card, and at the moment of the infringement were in first or second position, will be advanced to the next round."
Three conditions, all required: the skater was impeded, somebody else was sanctioned for it, and they were first or second when it happened. It is not a judgement call about who deserves another go. Who gets advanced, and who gets penalised.
The semifinals split the field in two. The top finishers go to the A final and race for the medals. The rest go to the B final — and this is the one broadcasters get wrong: the B final is not a consolation and it is not elimination. It is run first, and it decides the places below the podium.
The regulations treat it as a real race: the distance ranking is decided "on the results of the Final A", then "on the results of the Final B", and only then are the remaining skaters ranked following the qualification schedule. There is one wrinkle worth knowing — at ISU events, the Olympics and the Youth Olympics, a B final with only one skater or team is not skated, and that skater is simply given the corresponding rank and points.
Ties are broken by finish order in the previous qualifying rounds, then by the best time skated in any race over that distance. Beyond that, the regulations say plainly that further ties will not be broken.
Crossing the line first is not the same as winning. The referee reviews the race, and penalties are applied after the finish — sometimes a minute later, occasionally after the medal ceremony has been set up. A penalised skater is removed from the result of that race and everyone behind them moves up.
How often that happens depends heavily on the round, and we can measure it: semifinals is the most-called round at 33.8% of races, pre-prelims the least at 3.7%. The full breakdown, and what the calls actually are.
An ISU World Tour can run the same distance twice in one weekend, as two separate competitions with their own heats, their own finals and their own classification. A skater may enter one and not the other. So "he raced the 500 twice this weekend" is not a figure of speech, and any statistic that treats the two as one event will be wrong. Everything on this site keeps them apart.