Consumer confidential: Cracking the customer code