We modeled our group contribution approach on the widely-used model for water-octanol partition coefficient (LogP) of Wildman and Crippen. We define functional groups for each non-hydrogen atom in a molecule by first assigning a type based on the element of that atom, whether it is in an aromatic cycle, and its degree. We then complete the description of the atom by computing the types of the neighboring atoms using the same procedure and recording the type of bonding. Our procedure lacks the hand-tuned groups of Wildman and Crippen but distinguishes atomic sites more fully. For example, our method describes primary and secondary aliphatic carbons differently; these are treated as identical by Wildman and Crippen. We believe this further granularity is needed for a dataset as diverse as QM9.