Money fields don't move without a discrepancy report
Money fields were moving from a CRM into the company's own system. A parity check before the switch found 13k discrepancies and ~1.4M changes that would have quietly altered how the system behaves.
before
8 money fields in two systems, discrepancies unknown
after
a report before the switch, a decision for each group of discrepancies
Salesforce PostgreSQL GraphQL
Context. Commissions and payouts for platform members lived as a copy in the CRM. The company's own system was to become the source of truth. The usual route: switch the fields and fix complaints later.
What I did.
- Split the migration into two steps. First a read-only parity report. The fields switch only after the business owner approves it.
- The report counts not just different numbers but their effects: turning "empty" into "0" triggered automated flows and changed which program tiers people qualified for.
- Set clear semantics: "no data" and "zero" mean different things, and the system tells them apart.
- Raised separate decisions for 13k records with different commission rates, rows that exist only in the CRM, and ~1.4M history changes.
Result. Every discrepancy is visible before it reaches production. The business decides on them, not the migration script.