I wrote the standard for making websites AI-operable. Learn More

Migration · Yardi to AppFolio

You're not worried about AppFolio. You're worried about the ledgers.

The demo went well. The pricing works. Then someone asks what happens to eleven years of tenant ledgers, prepaid balances, and security deposit history — and the room goes quiet. That question is the whole migration.

Yardi holds more than most people realize, and it does not hand it over in one clean file. Getting out intact is an extraction problem before it is an import problem.

— extraction How the data comes out of Yardi

Yardi does not offer a single "export everything" button. Depending on whether you're on Voyager or Breeze, data comes out through some combination of report exports, the Yardi Interface / YSI data feeds, custom SQL views against your database, and — for anything the reports don't reach — screen-level extraction. Part of the assessment is determining which of those channels you actually have access to under your contract, because that decides both what's recoverable and what the migration costs.

— what moves Object by object

What transfers to AppFolio.

Each of these gets its own record count in the assessment and its own line in the reconciliation report. Depth of history is a scope decision made with real numbers in front of you, not an assumption baked into a quote.

Properties, units, and unit configuration

Property records, unit numbers, unit types, square footage, amenity flags, and market rents. The structural layer everything else hangs off — it gets built and validated first.

Residents and lease history

Current residents, past residents, lease terms, renewal chains, move-in and move-out dates, and the occupancy history that determines whether your reporting still makes sense after cutover.

Tenant ledgers and balances

Open charges, credits, prepaid rent, and current balances — reconciled to the dollar against a Yardi-side control report before anything is loaded. Depth of transaction history is a scope decision, not an assumption.

Security deposits

Held amounts, deposit type, and the interest-bearing designation where applicable. Deposits are the single most-audited number in a property migration; they get their own reconciliation.

Owners, vendors, and 1099 data

Owner records, ownership splits, vendor master with W-9 / 1099 flags, and the payable history needed to close the year cleanly.

Work orders and maintenance history

Open work orders always. Closed history to whatever depth is worth paying to carry — for most operators that is two to three years.

Documents and attachments

Signed leases, addenda, inspection reports, and correspondence, remapped to the right resident and property record on the AppFolio side rather than dumped into a shared folder.

— the honest part What does not survive this migration

Written down before you spend anything, because the alternative is finding out in week six. This list is specific to Yardi to AppFolio; the assessment turns it into your list, with record counts attached.

— Yardi's general ledger detail does not survive as a like-for-like transaction history in AppFolio. In practice you carry balances forward and keep Yardi in read-only archive mode for prior-period GL reporting. Anyone who tells you otherwise has not tried to close a year on the far side of it.

— Custom Yardi reports do not migrate. They have to be rebuilt against AppFolio's reporting, and that is a separate piece of work.

— Anything living in a Yardi module you don't have export rights to under your contract — that's a licensing wall, not a technical one, and it gets identified in the assessment rather than discovered at cutover.

— Screen-level formatting of free-text notes. The text moves; the formatting usually doesn't.

— Yardi's internal record IDs. AppFolio issues its own. Any external system keyed to a Yardi ID needs a mapping table, which I produce as part of the migration and hand to you.

— quirks The parts that decide whether this goes well

What actually goes wrong on this pair.

None of this is in either vendor's documentation. It is the category of thing that looks fine in a test load and produces a wrong number in month two, which is why the process puts a full sandbox load and a reconciliation you sign in front of any production cutover.

01

Recurring charges are not the same object in both systems

Yardi's recurring charge setup and AppFolio's are structured differently enough that a naive one-to-one map produces the right first month and the wrong second month. This gets tested against a full billing cycle in the sandbox before it goes anywhere near production.

02

Prepaid rent posts against the wrong period if you migrate mid-month

The cutover date and the billing date interact. Migrating on the wrong day of the month means either double-charging residents or missing a cycle. The cutover schedule is set around your billing calendar, not around whichever weekend is convenient.

03

Deposit interest

If you operate in a state that requires interest-bearing deposit accounts, accrued interest is a separate figure from the held deposit and has to be carried explicitly. It is routinely lost in DIY migrations and it is a compliance problem, not a data problem.

04

Duplicate residents across properties

The same person renting at two properties frequently exists as two unrelated Yardi records. Deciding whether to merge or preserve them is a business decision that has to be made before the mapping is signed off, not after the load.

— process Same six steps, every pair

Nothing touches production until you've signed off.

01 — 02

Assessment, then mapping

A read-only audit of your Yardi instance produces record counts, a risk register, and a fixed quote. Then a field-by-field mapping document you sign before any code runs.

03 — 04

Test load, then validation

The complete migration runs into a AppFolio sandbox — not a sample. You spot-check records you choose, and sign a written reconciliation. If the counts don't tie, we don't cut over.

05 — 06

Cutover, then warranty

Scheduled around your calendar with the rollback plan written in advance, followed by 30 days of included corrections for the things that only surface in real use.

The full six-step process, written out →

— pricing Where this pair usually lands

What a Yardi to AppFolio migration costs.

Single-property or small-portfolio moves usually land in Standard Migration. Multi-property portfolios, multiple Yardi databases, or anything with more than three years of ledger history to carry generally land in Complex. The assessment is what makes a fixed migration price possible, and its fee is credited toward the migration if you proceed.

Tier

Scope

Price

Migration Assessment

A read-only audit of your source system.

$1,500 – $2,500

Standard Migration

One source system to one destination.

$6,500 – $15,000

Complex / Multi-Entity Migration

Multiple locations, systems, or long history.

$18,000 – $40,000

— FAQ Yardi to AppFolio

Questions specific to this pair.

Can you get data out if we are already off contract with Yardi?

Sometimes, and it depends entirely on what access remains. If you still have database access or an active export path, yes. If your instance has been fully decommissioned and all you hold is PDF reports, the honest answer is that recovery is partial and expensive — and I will tell you that in the assessment rather than after you have paid for a full migration. Start the assessment before you cancel Yardi, not after.

Does AppFolio not do this for us during onboarding?

AppFolio's onboarding team will import data you give them in their templates, and they do that part well. What they do not do is get the data out of Yardi, decide what a Yardi field means, clean fifteen years of inconsistent entry, or reconcile the result. That gap is the work. The two efforts are complementary — I hand their onboarding team clean, validated files in their format.

How long are we running both systems?

For a Standard migration, you are not — cutover is a scheduled weekend, with Yardi kept in read-only for archive reporting. For Complex engagements a parallel-run period of one to two billing cycles is normal and is priced into the engagement.

What happens to our owner statements?

Historical owner statements stay where they were generated. Going forward they come out of AppFolio. What migrates is the ownership structure and the balances the statements are built from — which is what makes the first AppFolio statement correct.

— start here Step 1 of the process

Request a Yardi to AppFolio assessment.

The assessment is the read-only audit — what data exists, what is extractable, what will be lost, and a fixed-price quote for the migration itself. It is priced at $1,500 – $2,500 depending on scope, fixed before anything starts, and the report is yours whether or not you go further.

Tell me what you're moving. I read every one of these personally and reply within one business day, usually with a couple of specific questions about your source system — the answers change the price, so it's worth asking early.

Nothing is committed by this form. No payment, no contract, no scheduling sequence. It starts a conversation.

If your destination vendor can handle it, I'll say so. Some conversions genuinely don't need an independent migration.

I respond personally within 1 business day. Your details are used to answer you and nothing else — no list, no sequence.

— other pairs Same process, same industry

Other property management migrations written up.

Standard

Buildium → AppFolio

Easy extraction, so scope is the risk.

Complex

RealPage → Entrata

Enterprise scale and module sprawl.

Every pair

A different system

Twenty-odd pairs are written up across seven industries — and the written ones are not the limit of the work. Search the full list, or just ask.

Yardi and AppFolio are trademarks of their respective owners. This page describes independent data migration work involving those systems and does not imply any affiliation with, partnership with, or endorsement by either vendor.

Before you give notice on Yardi

Find out what's actually recoverable.

The most expensive mistake in this category is losing source-system access before the extraction is done. The assessment is read-only, fixed-price, and yours to keep either way.

I respond personally within 1 business day. No pitch — just a real conversation.