How does the software determine if a member is valid?

The easiest way to describe this is with a flowchart: