I don't know how balloons work in SW. Like, I mean how exactly they figure out what text they're supposed to contain.
I do know that I've never been able to find any way to "get to" the same data that a balloon has, as far as always matching the BOM.
No matter what you do, subassemblies, whatever, as long as a view is linked to the BOM, balloon text matches the BOM.
Except for (as far as I have found) the "Part Number (BOM)".
Attach a balloon to a component of a subassembly, and mess with the balloon contents in the dropdown:
Assuming that the BOM is displaying the subassembly and not the parts (either "top level only" or "Parts only" where the subassembly is marked as "Hide child components in BOM), the Item Number and Quantity will show what's displayed in the BOM. However, if you choose "Part Number (BOM)" it will not show what's displayed in the BOM (which should be the part number of the subassembly). It will show the BOM part number of the part itself.
So I have 2 questions:
1. Does it work the same for you if you're running something other than 2018, and
2. Am I crazy to expect it to match the BOM? Or would you consider it an SPR (bug) or ER?
I am aware of the workarounds such as reattaching the balloon to the subassembly by clicking the Design Tree, or selecting "Selected component or drawing view" instead of "Component to which the annotation is attached". However, both of these require recognition by the user that the component is a subassembly or noticing that the note text doesn't match the BOM. It seems to me that the balloon should just "work" for the part number, just like it just "works" for the item number and quantity.