Are you asking how to detect downstream NATs that are using multiple clients? Normally this is done by looking at the TTL of the traffic coming from the hosts.. Since any nat routers, even pfsense normally removes 1 from the TTL value.
So windows for example normally sends packets with TTL of 128, if your seeing packets at pfsense with TTL of 127, then that packet went through a router(hop) that did or did not do nat.. You could do this automatically with switch before pfsense sending sflow to some sort of analyzer that was looking for this and logging/alerting on it.
You could also use some form of OS fingerprinting on the traffic and looking at other details in the traffic look for something that points to different OSes being used from the same IP at the same time. Since it is possible to configure your router not to decrement the TTL if your trying to hide your NAT… Have done this back in the day when some ISPs where saying you could only have 1 device connected, etc..
Do a simple google for nat discovery/detection