Data migrations in Canopy typically follow one of two patterns.
Pattern A - Retroactive events to maintain full history of state
Ideally, we have the full history of events that have occurred on each of the accounts. (IE loan origination data, historical changes to interest rates, etc, and payment history). Then,
- We handle the input format to something Canopy can consume
- We input them into our system with the effective dates at which they occurred. (for instance, account originated on x date, payment occurred on x date, etc)
If these events are applied retroactively in Canopy, Canopy is intelligent enough to generate the appropriate current state from those events
Pattern B - Starting from current state
However, if your current data structure doesn't maintain the history of events for a loan, we’d need to write functions to instantiate the current state itself in Canopy and apply the general product constraints, payment methods, interest calc, etc from that-point-on.