As I’ve mentioned in earlier posts, expiration policy based on Content Type or location works to a limited extent, but customized expiration policies based on metadata properties is a far more useful solution. This is particularly true when setting up event-based retention schedules.
An alert reader sent me this link:
This is a terrific source of information on how to setup the code to configure SharePoint to base expiration on metadata. Check it out.