Outliner - what determines which Collection an object appears under?

Hi, can anyone help me understand the location of items in the “tree” structure of the outliner, when you have objects parented, rigged & in collections? I’m finding the relationship between these 3 things very hard to puzzle out.
Objects are sometimes greyed out when you see them in a collection (sometimes with the visibility toggles missing, sometimes not), but they will appear “non-greyed-out” elsewhere (with the toggles present & clickable). I can’t understand what determines where the clickable version lives.
I have a model with lots of parts, an armature & multiple collections. Some objects in Collection A which are parented to the armature show up under the armature’s drop down (in Collection A), while other objects parented to the exact same armature do not show up there, only under the Collection A “top-level”.
Is there some other property I’m not considering?
I am pretty new to rigging/animation so it may be that I’ve set things up in a way that’s wrong. The animation works though, I’m just having lots of trouble finding objects in the outliner!

If an object does not belong to a collection, but its parent does belong to that collection, then the object will be shown in that collection greyed out.

Ahh ok thanks. That does explain a lot of it.
I still had some objects that did belong to the same collection as the parent but were not appearing when I expanded the parent in the tree, however saving & reopening the file seems to have sorted it out somehow!
¯\_(ツ)_/¯