Answers.Body: <p>There are several approaches to handling this.  Custom fields are one approach.  Another is to use <a href="https://docs.civicrm.org/sysadmin/en/latest/setup/logging/" rel="nofollow noreferrer">Detailed Logging</a>, which will keep historical records, although they may not necessarily be in the format you most desire.  They also take up a lot of disk space, since you're keeping the history of every change in CiviCRM!</p>
  
  <p>If you try the detailed logging approach, also considering installing the Extended Reports extension, which has reports that pull data from the log tables.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-07-23T20:35:10.783Z
Answers.LastActivityDate: 2018-07-23T20:35:10.783Z
Answers.UserDisplayName: Jon G - Megaphone Tech
Answers.Body: <p>Jon mentions 'Custom Fields' - to expand on that - if you put the Custom Fields on the Contribution record then when someone changes it will not change the values in previous Contributions.</p>
  
  <p>You may be able to do this via an Extension or some js to copy the current value from the Contact record in to the custom field on the Contribution at the time of the Contribution record being created.</p>
  
  <p>May be more effort than you are wanting but does deliver the outcome.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-07-23T22:30:48.750Z
Answers.LastActivityDate: 2018-07-23T22:30:48.750Z
Answers.UserDisplayName: petednz - fuzion
Body: <p>So we have a unique use case.  The organization collects donations from employees of various departments with various roles at the organization.  Collecting employee information like title, department, etc seems pretty straight forward using custom fields and profiles.  However, lets say, 3 years down the road, a donor changes their department, the field would be updated when they renew their donation and would be accurately reflected in the system, but it would now impact historical information. Their donation records would stay the same, but their donations would be affiliated with the new department.</p>
  
  <p>Am I making sense? Is custom fields the right approach?  Alternatively, we may just download historical data and use that for reports comparing campaign years.</p>
  
Tags: <custom-fields><reports>
Title: Keeping historical demographic information, while updating donor information
ThreadText: # Keeping historical demographic information, while updating donor information
  
  (Asked by: username_0 on 2018-07-23)
  
  So we have a unique use case. The organization collects donations from employees of various departments with various roles at the organization. Collecting employee information like title, department, etc seems pretty straight forward using custom fields and profiles. However, lets say, 3 years down the road, a donor changes their department, the field would be updated when they renew their donation and would be accurately reflected in the system, but it would now impact historical information. Their donation records would stay the same, but their donations would be affiliated with the new department.
  
  Am I making sense? Is custom fields the right approach? Alternatively, we may just download historical data and use that for reports comparing campaign years.
  
  **Tags:** custom-fields, reports
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2018-07-23. Score: 1 | Accepted answer
  
  There are several approaches to handling this. Custom fields are one approach. Another is to use [Detailed Logging](https://docs.civicrm.org/sysadmin/en/latest/setup/logging/), which will keep historical records, although they may not necessarily be in the format you most desire. They also take up a lot of disk space, since you're keeping the history of every change in CiviCRM!
  
  If you try the detailed logging approach, also considering installing the Extended Reports extension, which has reports that pull data from the log tables.
  
  
  ---
  
  ### Answer by username_2 on 2018-07-23. Score: 1
  
  Jon mentions 'Custom Fields' - to expand on that - if you put the Custom Fields on the Contribution record then when someone changes it will not change the values in previous Contributions.
  
  You may be able to do this via an Extension or some js to copy the current value from the Contact record in to the custom field on the Contribution at the time of the Contribution record being created.
  
  May be more effort than you are wanting but does deliver the outcome.
  
  
  ---
  
  