I am building a form-based application and plan to implement a history mechanism. It will operate similar to how the history feature works in Google Docs. The current and historical records will have reports run on them. Their accuracy is important.
My hope was that simply having a history would be enough for my customer, but they brought up a concern I didn't think about: How can we distinguish between a change made because the user was correcting an error and a change made because the user was updating information.
Now, to me, I don't see the value in this feature. It feels to me like there's no simple way to track a user's intent without cluttering their workflow.
But the customer insists that it's needed. So, I am wondering how to implement this in a graceful way. The form will be updated frequently, so I am wondering if there's a way to do this without prompting the user to explain why they're making a change every time they edit a field. That to me just seems insane and would grind their workflow to a halt.
Has any research been done on this subject? Has anyone else been faced with this problem and discovered a clever solution?