Property management, built natively on Oracle NetSuite

Request a demo

Resources · Guides

Property management data migration guide

Property management data migration moves units, leases, tenants, balances, deposits and open work from your old system into a new one without losing accuracy. Done well, it is invisible to residents and tidy for auditors. This guide covers what to migrate, how to clean and map it, how to prove it is right, and how to cut over.

What data should you migrate?

Migrate what you need to operate and account from day one, and archive the rest: the property hierarchy, active tenants and leases, recurring charges and rent steps, open balances, deposits, open work orders, vendors and owner data. Many teams add 12 to 24 months of history.

Legacy systemTenant ledgerRent rollGL detailLease abstractsVendor listledger.csvrentroll.csvgl_detail.csvleases.zipArchived before cutover

How it works

What is the migration sequence?

The migration sequence is extract, clean, map, load, validate and cut over: pull exports from the old system, fix duplicates and gaps, map fields to new records, run trial loads in a sandbox, reconcile control totals, then run the final load at the cut-off date.

EExtractMMapTTransformTTrial load
  1. 01

    Extract

    Pull reports and exports from the old system for every data set.

  2. 02

    Map

    Match old fields and codes to new records, accounts and segments.

  3. 03

    Transform

    Apply cleaning rules and format files for import.

  4. 04

    Trial load

    Load into a sandbox and run tie-outs.

  5. 05

    Fix and repeat

    Correct issues at the source and reload until totals match.

  6. 06

    Final load

    At cut-off, extract and load final balances.

  7. 07

    Verify

    Run tie-outs again and sample-check individual tenants against the old system.

Capabilities

How do you clean data before migrating?

You clean data before migrating by removing duplicate tenants and vendors, filling missing lease dates and unit identifiers, standardising charge codes and addresses, correcting balances against signed leases, closing stale open items, and archiving records you no longer need to operate.

Bank feedNetSuite ledgerLockbox$5,200DEP-80190$5,200ACH batch$14,100DEP-45176$14,100Card payout$25,900DEP-32128$25,900?Cheque dep.$3,000DEP-86693$3,00070 of 71 matched automaticallyReview

Remove duplicates

Merge duplicate tenants and vendors; one person, one record.

Close what is closed

Leases that ended but are still marked active distort rent rolls.

Resolve unapplied cash

Apply or refund unapplied payments before the final extract.

Rationalise charge codes

Reduce dozens of near-duplicate codes to a clean set mapped to GL accounts.

Fix addresses and contacts

Residents will receive portal invitations at the email you migrate.

Confirm deposits

Reconcile deposits held to the bank and, in the UK, to protection scheme records.

How should opening balances be loaded?

Load open balances at the charge level where possible, with original dates, so ageing and payment application work correctly. Load one consolidated "opening balance" line only where detail is unavailable. Deposits load to the deposit liability account, not as income. Every load is compared to the old system's reports at the cut-off date, and finance signs off before go-live.

Charge code map · Legacy → NetSuiteLegacy codeNetSuite itemGLRENTRent income4000CAMCAM recovery4100LATELate fees4200UTILUtility recharge4300DEPDeposit liability2400

Compare

How much history should you migrate?

Most property teams migrate open balances, active leases and recent history rather than every transaction since inception. A common pattern is full detail for open items, summarised balances by period for one or two prior years for comparisons, and archived exports of older data for audit and reference.

System notes · Lease L-1042DRent amountD. Kim · TodayUpdatedNEscalation dateN. Singh · YesterdayUpdatedAApprovalA. Patel · This weekApprovedJJournalJ. Moreno · Last weekPostedLInvoiceL. Chen · TodayCreated
DataMigrateKeep in archive
Active leases and termsYes, in fullNo
Open tenant balancesYes, by invoiceNo
Deposits heldYes, by leaseNo
Paid transaction historyOptional summaryYes
Closed leasesOptional, for recent yearsYes
Work order historyRecent open ordersYes
General ledger historyPeriod balancesYes

How it works

How do you validate a migration?

You validate a migration by reconciling record counts for properties, units, leases and tenants, tying the rent roll, aged receivables and deposits to the old system at cut-off, sampling individual tenant ledgers, and having finance and operations sign off before go-live.

Parallel runLegacyRIOOBank recsTenant balancesTrial balanceOwner statementsRent rollBoth systems tie before cutover
  1. 01

    Reconcile record counts for properties, units, leases and tenants against the source.

  2. 02

    Tie total tenant balances and deposits to the old system's reports and the general ledger.

  3. 03

    Spot-check a sample of leases field by field against signed documents.

  4. 04

    Bill a test month and compare with the old system's charges.

  5. 05

    Have property managers review their own properties and sign off.

How many test loads should you plan?

Plan at least two full trial loads before the final cutover load. The first finds mapping and quality problems, the second proves the fixes, and the final load runs on the cutover date with the same scripts. More complex portfolios often add a third trial.

NetSuite environmentsDevelopmentBuild and configureSandboxTest with real dataProductionLive operationsChanges promoted with sign-off

How should charge codes be mapped?

List every charge code in the old system with its income account, tax treatment and how often it is used. Retire codes that are no longer used, merge duplicates and map each remaining code to a RIOO charge type and NetSuite item. A clean charge code list is the foundation for accurate billing and reporting after go-live.

Legacy systemRIOO · NetSuitePropertiesProperty recordUnitsUnit recordTenantsCustomerLeasesLease agreementCharge codesItem / GL accountOpen balancesOpen invoiceMapped and reconciled

How should tenants with payment plans be migrated?

Load the open invoices that make up the balance, then record the payment plan schedule against them so instalments and reminders continue without a break. Check that any late fees suspended under the plan stay suspended after cutover and that residents see the same balance in the new portal as in their last statement.

Residentportal / appBankand GL postedCheque scanCardAutopayACH$160M+ monthly rent through RIOOApplied to ledger instantly

Compare

What should each data set contain?

Each data set should contain the key fields the new system needs and a total to tie out against. Leases need dates, rent and charges; balances need amounts by charge and age; deposits need amounts by lease. The table lists each data set's fields and tie-out.

Brochure setData setKey fieldsTie-outProperties and unitsPDF
Data setKey fieldsTie-out
Properties and unitsProperty, building, unit, type, area, entityUnit count by property
Tenants and contactsNames, emails, phones, household, guarantorsCount of active tenants
LeasesStart, end, rent, escalations, deposits, chargesRent roll total
Open balancesTenant, charge type, date, amountAged receivables by property
Prepayments and creditsTenant, amount, dateCredit balance report
DepositsTenant, amount, date received, interestDeposit liability balance
Open workRequests, work orders, POsCounts by status
VendorsName, tax ID, payment details, insuranceVendor count, open payables

Use cases

Which fields are most often missing?

The fields most often missing are lease end and notice dates, future rent steps, unit identifiers that match across reports, tenant contact details, deposit amounts by lease, vendor tax details and charge codes. Missing values break renewals, billing and compliance, so check them early.

Lease L-6487 · Elm Commons3-year term · ResidentialCommencementStartRent-free endsMonth 6EscalationYear 2Break optionYear 3Renewal noticeLease endToday38 months remaining
01

Lease end and notice dates

Needed for renewals and move-out deadlines.

02

Escalation schedules

Often held in lease PDFs rather than the old system.

03

Deposit detail

Amounts by type, interest owed and where held.

04

Recovery terms

Caps, base years and exclusions for commercial leases.

05

Contact details

Emails and phone numbers for portal invitations.

06

Unit attributes

Area, bedrooms and amenities used for pricing and reporting.

Compare

Which mistakes cause the most trouble?

The mistakes that cause the most trouble are cleaning data too late, migrating too much history, skipping trial loads, not reconciling balances and deposits at cut-off, and forgetting autopay re-enrolment for residents. The table shows each mistake's consequence and how to prevent it before go-live.

Tenant ledger · Unit 7CLinden RowRefDescriptionAmountL-01Mistake$130.00L-02Consequence$140.00L-03Prevention$20.00L-04No control totals$90.00L-05Load by charge$25.00Payment posted
MistakeConsequencePrevention
Loading a single net balance per tenantWrong ageing and late feesLoad by charge with dates
Migrating closed leases as activeInflated rent roll, wrong billingClean statuses first
Forgetting future rent stepsMissed escalationsInclude rent schedules
Ignoring payment tokensAutopay stopsPlan re-enrolment communications
No control totalsErrors found by tenantsTie out every data set

How does migrating to RIOO on NetSuite work?

Migrating to RIOO on NetSuite turns tenants into NetSuite customers, leases and units into RIOO records, and open balances into NetSuite transactions against those customers. Vendors are matched to existing NetSuite vendors to avoid duplicates, and loads run in a sandbox first.

Switching guides: from Yardi, from AppFolio and from MRI. Further reading: how to migrate to NetSuite for real estate and Rent Manager to NetSuite migration.

AppFolio CSVNetSuiteRIOO recordssourceVendorsTenantsLeasesUnitsValidated & reconciled

Who should own data migration?

Data migration needs an owner on your side who knows the old system and the portfolio, working with the implementation team who load and validate. Property managers should own the accuracy of their leases; finance should own balances and deposits.

Who does whatYour teamRIOOPartnerProject kickoffACRData extractRCIConfigurationCRIUser testingRCIGo-live sign-offARCRResponsibleAAccountableCConsultedIInformed

Checklist

Cutover weekend checklist

From Legacy system to RIOODiscoverConfigureData freezeGo-liveHypercareCutover window
  • Freeze changes in the old system at the agreed time.
  • Run final extracts and reconcile totals.
  • Load data and run validation reports.
  • Post opening balances and confirm the trial balance.
  • Switch payment gateways and portals to the new system.
  • Communicate the change to residents and vendors.

Talk to a specialist

See data migration guide on your own portfolio.

This guide covers what to migrate, how to clean and map it, how to prove it is right, and how to cut over.

FAQ

Data migration guide FAQs

Still curious? Ask the team.

How much history should we migrate?

Migrate enough history to operate and answer questions, typically 12 to 24 months of transactions, plus all open items such as balances, deposits and open work orders. Older history can be archived as read-only exports or kept in a data warehouse for audits, disputes and lookups, without slowing the new system.

Can payment details and autopay settings be migrated?

Usually not. Stored card and bank tokens belong to the old payment processor and rarely transfer to a new one. Plan clear communications so residents re-enrol in autopay on the new portal before the first rent date, with reminders and help for anyone who struggles to set it up.

How do we prove the migration is correct?

Prove the migration by comparing control totals for every data set, such as unit counts, rent roll, aged receivables and deposits held, between the old and new systems at the cut-off date, then sampling individual tenants line by line. Finance signs off the reconciliation before go-live.

Who should clean the data?

Your own team should clean the data, because it knows which tenants, leases and balances are right. The implementation team provides templates, validation rules and reports of issues found in each trial load, so cleansing effort goes where errors actually are rather than across every record.

What if our old system's data is poor?

If your old system's data is poor, clean what matters for operations and accounting first: active leases, open balances and deposits. Use trial loads to surface problems early, fix them at the source before the final extract, and archive messy history rather than migrating it.

Can we migrate from spreadsheets?

Yes. Spreadsheet data follows the same mapping, trial load and validation steps as data from another property system. Extra cleansing time is usually needed, because spreadsheets often lack consistent unit identifiers, lease dates and charge codes, and balances must be tied out to the general ledger.

What happens to documents such as lease PDFs?

Documents such as signed lease PDFs, addenda and move-in inspections can be attached to the matching lease or tenant records during migration, so staff find them in context after cutover. Name files with a consistent lease or unit identifier to make bulk attachment reliable.

How do we migrate deposits?

Deposits are loaded by lease as liabilities, with the amount held, date received and any interest owed. The total is reconciled to the deposit liability on the balance sheet before go-live, so every deposit can be refunded or applied correctly when that resident moves out.

How do we handle prepaid rent at cutover?

Prepaid rent is loaded at cutover as a customer credit on each tenant's balance, so it applies automatically to the next invoices billed from the lease schedule. The total of credits is tied out to prepaid rent on the old system's balance sheet before go-live.

Can we migrate open work orders?

Yes. Open work orders can be loaded with their status, priority, assigned vendor or technician and notes, so maintenance continues after cutover without residents re-reporting issues. Closed work orders are usually archived rather than migrated, unless you need the history for assets or warranties.

What if source data conflicts with signed leases?

When source data conflicts with signed leases, the signed lease wins. Correct the record during cleansing, and note the correction and its reason so the audit trail explains why migrated balances or rent amounts differ from the old system. Review recurring conflicts for a systemic cause.

Send us a rent roll export. We'll show you how it maps to RIOO.