Why Migration Usually Stalls
Migration rarely fails for technical reasons. It fails from trying to move everything at once, or moving data in the wrong order. A unit cannot exist before its property; a contract cannot link before its tenant exists.
The Correct Order: Five Stages
- Properties: Buildings first — name, location, deed number, unit count
- Units: Each linked to its property — number, type, area, expected rent
- Owners and tenants: Names, IDs, phones, owner bank accounts
- Active contracts only: Never migrate expired ones
- Opening balances: Paid and outstanding per contract as of the cutover date
Key Rule: Do Not Migrate Full History
Move opening balances only as of a chosen cutover date, and keep the old Excel as a reference archive. Any question about the past is answered from the archive.
Clean Data Before Migrating
- Dates: Unify the format — mixed formats are the top import failure cause
- Phone numbers: Unify country codes, or alerts will never arrive
- Amounts: Strip commas and currency symbols
- Duplicate names: One tenant written two ways creates two records
- Empty cells: Decide whether blank means zero or missing
Post-Migration Verification
- Total unit count
- Active contract count
- Total expected monthly rent
- Total outstanding arrears
If all four match, migration is sound.
How Long Does It Take?
Under fifty units with clean data: one session. Medium portfolios: two days, mostly cleaning. Large portfolios: staged, property by property, running both systems in parallel for a week.