Tom yum is the closest thing to a free meal on a Thai menu, as long as you order it clear. The broth is water, herbs and lime, maybe 20 calories in the whole bowl. The prawns are 100 calories per 100g and nearly all protein. Mushrooms are 15. The only thing with real calories is the nam prik pao, the roasted chilli paste, which is fried in oil and runs 45 calories per tablespoon. One bowl at 180 fills you the way a 600 calorie plate of fried rice does.
Nam khon changes the maths. A ladle of evaporated milk adds 60 to 80 calories and most cooks double the chilli paste when they make it creamy, so a bowl lands at 280 to 300. Still a good deal for the size, but not the near zero people assume. The instant noodle version, Mama tom yum goong with a real prawn dropped in, is a different animal at about 500 because the fried noodle block alone is 350.
The trap is what tom yum comes with. It is a shared dish at a Thai table, so the bowl sits next to a plate of rice at 250, a fried omelette at 350 and a plate of pad kra pao. The soup is not the problem. The 3 plates around it are. If you make tom yum the main and eat it with one plate of rice, dinner is about 430 and you will be full.