Switching · 16 September 2026
Moving a rent roll and a stack of leases into new software
Importing a rent roll from a spreadsheet is table stakes — Buildium, AppFolio, DoorLoop, Yardi and Rent Manager all do it. The differences that matter are whether you have to reformat your export into the vendor’s template first, and whether a person owns the migration or you do.
Reading terms out of signed lease PDFs is the newer and harder half, and it is where portfolios bought from another owner get stuck, because a purchase gives you PDFs rather than a tidy export.
One thing never transfers, at any vendor: full ledger history. Every past payment, waiver and NSF event carries dependencies a single spreadsheet cannot express, so most migrations carry a closing balance and start clean.
A rent roll from a spreadsheet
Proppely’s importer is one dropzone that takes spreadsheets (.xlsx, .xls, .csv, .tsv, .ods, .numbers), PDFs, images and pasted text, up to 10 MB a file — 10 MB for images too. It reads the column names your export already uses and maps them onto the schema, rather than asking you to rearrange your file into a template. It detects which system the export came from — Buildium, AppFolio, Yardi, Rent Manager, or unknown — and maps accordingly.
Before anything is written it shows you the mapping it inferred and preview rows of the first records after mapping. Columns it is unsure about come back as questions to work through with the assistant, not a form to fill in. Nothing is created until you approve it.
You can drop a folder, and a mixed drop is split by kind: data files go to the importer and photos route to the bulk photo uploader, which matches folders to properties by name.
Tenant balances, without the history
A ledger export has to be scoped before it can be imported. A tenant, unit or property ledger is tied to the property or unit it belongs to, and an unscoped ledger sheet is refused rather than guessed at — a sheet of charges with no owner is how balances land on the wrong tenant.
If what you actually need is where each tenant stands today rather than three years of transactions, the running balance is carried across as a single opening charge described as "Balance carried from <source> as of <date>", or as a credit if they are ahead. That is the honest shape of almost every migration.
Terms out of signed lease PDFs
Lease PDFs run preview, then verify, then commit. The preview shows every extracted value — start and end dates, rent, deposits, parties, and the year-by-year rent schedule — next to the sentence in the document it came from. It also tells you whether it will attach to a property and unit you already have, ask you to choose between candidates, or create them. It writes nothing.
The commit is bound to that preview by a signed token. If the terms it is about to write are not the terms you approved, or the document now resolves to a different property or space, the import is refused and you get the diff instead of a silent write. That mechanism is the reason the review is worth doing, and it is the specific thing worth asking any vendor about.
A born-digital lease is read from its text layer; a scan goes to the model as page images. A read that comes back with no start date, no end date and no rent is reported as a failed read rather than saved as a lease with no terms, and low-confidence reads come back flagged for a person.
What sixty lease PDFs actually looks like
In the web app it is one lease at a time: sixty short reviews instead of sixty blank forms. That is a real difference from typing them in, and it is not the same as a bulk import.
The desktop app, on Mac and Windows, can be pointed at a folder on your own computer. It lists the files, works through them one at a time — preview then commit on each — and is instructed to look up each property and lease first so it attaches to a building you already have rather than creating a second copy, and to note a lease already covered in the system instead of importing it again. It ends with a per-file table of what was imported, skipped and failed. Every lease is still previewed and confirmed; nothing runs unattended.
Reading documents draws on the workspace’s AI allowance — $5 of usage a month, included on every workspace including free ones — so a sixty-lease weekend will likely run into prepaid credits. Worth saying plainly rather than implying the reading is free.
What never transfers
- Full ledger history. Past payments, fee waivers and NSF events carry dependency chains a flat export cannot express. Carry a closing balance and keep the old system read-only for reference.
- Your accounting history as books. Proppely imports balances and records, not a general ledger from another system.
- Anything in your head. Which tenant always pays late, which unit floods, which owner wants a phone call — none of that is in the export.
The other option
When someone else should do it
AppFolio and DoorLoop build paid onboarding into the deal — AppFolio quotes with a minimum spend and a 50-unit minimum on its Core plan, and DoorLoop charges an onboarding fee based on portfolio size without publishing the amount. For a large or messy portfolio, a staffed migration is genuinely the better product, and that is worth paying for.
One caveat worth knowing before you assume it solves your problem: a staffed migration works from a rent roll spreadsheet, which is exactly what you do not have when someone handed you a folder of signed PDFs.
Take these to a demo
What to ask any vendor about migration
Vendor-neutral. Ask them of us too.
- Do I have to reformat my export into your template, or do you read my column names?
- Who does the migration — your staff, or me?
- What happens to tenant balances, and do you carry history or just a closing figure?
- Can you read terms out of signed lease PDFs, and do I get to check each one before it saves?
- If the extraction is wrong, do I find out before or after it is written?
Questions
Common questions
Can I import my rent roll from a spreadsheet?
Yes, and every major platform supports it. In Proppely you drop the export you already have — .xlsx, .csv, .ods, .numbers and others up to 10 MB — and it maps your existing column names onto the schema rather than asking you to reformat into a template. It shows you the inferred mapping and preview rows before anything is written.
Do I have to reformat my export into the vendor’s import template?
In Proppely, no — it reads the column names your export already uses and detects whether the file came from Buildium, AppFolio, Yardi or Rent Manager. Several other platforms do publish a required template. It is a fair thing to ask in a demo, because reformatting a large export by hand is where migrations stall.
I have 60 signed lease PDFs from a portfolio I just bought. Can software read them?
Yes, with a person confirming each one. Proppely previews every extracted value next to the sentence in the PDF it came from, and the commit is bound to that preview by a signed token — if the terms changed, the import is refused with a diff rather than written silently. In the web app that is one lease at a time; the desktop app can be pointed at a folder and works through it file by file, still previewing and confirming each. Document reading draws on the workspace’s $5/month AI allowance, so a batch that size will likely use prepaid credits.
Does my ledger history come across?
No, and be sceptical of anyone who says it does. Past payments, waivers and NSF events carry dependency chains a flat export cannot express. The practical approach is to carry each tenant’s current balance across as a single opening charge and keep the old system read-only for history.
How do I move tenants, leases and balances off Buildium or AppFolio?
Export the rent roll and the tenant ledgers from the old system, import the rent roll first so properties, units and tenants exist, then bring balances in scoped to the property or unit they belong to. Leases either come from the export or are read from the signed PDFs. Keep the old account open and read-only until you have reconciled at least one full month.
Can I try the import before paying?
Yes. A Proppely workspace is free with no unit limit, so you can run the import against your real rent roll before spending anything. Online payments are the part that costs: $9.99 a month per payments account, once you set that up.
Run it against your real rent roll
A workspace is free with no unit limit, so the import can go against your actual export before you spend anything — which is also the only honest way to find out whether it reads your file.