The CRM data model seems to persist some apparently redundant data elements, and I'm not sure why. For example, on ActivityPointerBase we have a ScheduledStart, a ScheduledEnd, and a ScheduledDurationMinutes column. Prima facie only two of those values need to be persisted. The same can be said of ActualStart, ActualEnd and ActualDurationMinutes.
Is there some coherent reason why all three values are persisted?
The reason why I ask is that this is creating some kind of issue for the CRM development team at my company (of which I am not a member). Specifically, they are writing custom javascript to make sure that users who are working with phone calls see changes to the scheduled end when they change the duration in the form, and vice versa. I don't know why this is an issue for the team, but it does seem odd that the system would allow users to put in three values for these three data elements that violate the consistency of the data.
Perhaps it is the case that our CRM development team is not meant to be exposing at least one of these fields on the customized form, or there's some other explanation like that. But I can't find any information of that sort via google to pass on to them, by which to say "stop trying to do that in the first place", or anything like that.