1. A method of managing contact groups, performed at a server having one or more processors and memory, the method comprising: receiving email header information for a plurality of electronic messages that were sent during a designated period of time, wherein the email header information for an electronic message includes a unique identifier of the sender, and a unique identifier for each recipient of the electronic message; building a set of de facto groups using the received email header information, wherein each de facto group consists of a set containing the unique identifiers corresponding to the sender and recipients of an electronic message for which email header information was received; for each respective de facto group, computing a respective usage value based on the number of distinct electronic messages corresponding to the respective de facto group, wherein an electronic message corresponds to a de facto group when the set of unique identifiers corresponding to the sender and recipients of the electronic message is equal to the de facto group; storing each de facto group and corresponding usage value in the memory; identifying a set of saved groups, wherein each saved group consists of a set of unique identifiers of people, and wherein each saved group has a usage value, a respective usage value being 0 when the respective saved group does not equal any de facto group, and when the respective saved group equals a corresponding de facto group, the usage value of the saved group equals the usage value of the corresponding de facto group; comparing the de facto groups and associated usage values to the saved groups and their associated usage values; and providing a recommendation to modify the set of saved groups based on the comparisons.