The Yardi chart of accounts (COA) is the master list of general ledger accounts that classifies every financial transaction in Voyager, from rent collections and vendor invoices to journal entries and intercompany transfers. Custom account trees let you reorganize how those accounts roll up into financial statements without altering the underlying GL data. For property management companies running complex portfolios, this combination of a well-designed COA and flexible account trees is what separates clean, stakeholder-ready reporting from hours of manual spreadsheet reformatting.
If you're evaluating how to structure your accounts during a Yardi Voyager implementation, or looking to improve reporting on an existing setup, understanding the relationship between your chart of accounts and account trees is the first step.
Key Takeaways
- Yardi's COA is shared across all properties; use account trees to customize reporting views per entity or ownership group
- Custom account trees reshape report presentation without changing GL coding or transaction data
- Design trees around your most common report outputs: owner statements, management packages, lender reports
- The five most common COA mistakes: bloated accounts, inconsistent naming, misclassified deposits, mixed capex/repairs, and broken tree hierarchy
- Run the Calypso Report monthly to catch structural errors before they reach financial deliverables
What Is a Yardi Chart of Accounts?
Every Yardi Voyager database uses a single, shared chart of accounts. This master list defines how you categorize income, expenses, assets, liabilities, and equity across your entire portfolio. Each account carries a type classification that controls its behavior: normal balance direction (debit or credit), whether it accepts direct postings, and where it appears on financial statements.
In Voyager, the COA is organized into a hierarchical tree structure. Individual accounts roll up into categories, categories into sections, and sections into statement totals. Every financial report the system generates follows this hierarchy, from property-level income statements to consolidated balance sheets across your full portfolio.
Because all properties share the same chart, a single GL account number (for example, 4000 for Rental Income) applies universally. The transactions posted to that account differ by property, but the structure stays consistent. This simplifies cross-property reporting and benchmarking, but it also means the initial COA design needs to work for every property type in your portfolio.
For most portfolios, Yardi recommends at least 4-digit account numbers to leave room for future expansion. A standard block structure typically looks like this:
| Account Range | Category | Examples |
|---|---|---|
| 1000 - 1999 | Assets | Cash, AR, fixed assets, prepaid expenses |
| 2000 - 2999 | Liabilities | AP, security deposits, accrued expenses, mortgages |
| 3000 - 3999 | Equity | Owner's equity, retained earnings, distributions |
| 4000 - 4999 | Income | Rental income, CAM recoveries, late fees, parking |
| 5000 - 6999 | Expenses | Payroll, utilities, R&M, insurance, management fees |
For a deeper look at how COA structure affects your property management system, we've published a companion guide focused on the foundational design decisions.
How Custom Account Trees Reshape Your Yardi Reporting
Your chart of accounts is the raw data structure. Account trees are reporting lenses layered on top of it. Each tree defines an alternative grouping of your GL accounts for financial statement presentation, without touching the underlying transactions.
You can maintain multiple account trees simultaneously. One tree might format accounts for owner reporting with simplified income and expense categories. Another could break out detailed operating expense subtotals for asset managers. A third might align categories with lender covenant requirements for debt service coverage calculations.
This matters because different stakeholders need different views of the same data:
- Ownership groups often want simplified income/expense categories with specific subtotals that match their investment models
- Asset managers need detailed operating expense breakdowns with budget variance columns
- Lenders require presentation aligned with loan covenants, often with NOI calculated differently than your management reports
- Tax preparers need categories that map cleanly to IRS schedules
- Affordable housing operators need account structures that produce HUD-format or LIHTC-compliant reports
Without custom account trees, you'd either maintain multiple charts of accounts (which Voyager supports through its MCA feature, but Yardi discourages) or manually reformat reports in Excel. Both approaches introduce reconciliation risk and consume hours every reporting cycle. Account trees eliminate that work by producing different formatted outputs from the same GL data. For more on how this connects to Yardi's broader reporting capabilities, see our custom reporting overview.
Setting Up a Custom Account Tree in Yardi Voyager
Building a custom account tree follows a clear methodology. Here's the five-step approach we use with clients:
Step 1: Define your reporting requirements
Before opening Voyager, document what each stakeholder needs to see. What subtotals do your owner statements require? Which expense categories should roll up together? What presentation does your lender expect? These answers drive the tree design. Bring your controller, asset managers, and ownership representatives into this conversation early.
Step 2: Export a default tree as your base
Yardi provides default account trees that map to standard financial statement formats. In Voyager, navigate to Setup > Chart of Accounts > Account Trees, select an existing tree, and export it as a spreadsheet. This gives you a working template with the correct structure and all your current GL accounts already placed.
Step 3: Redesign the hierarchy
In your exported spreadsheet, reorganize the heading and total accounts to create the groupings your reports need. Key rules to follow:
- Every total account (except NOI and Total of All) needs a heading account above it
- Account numbering within the tree should follow a logical, sequential order
- Leave gaps in your numbering for future additions
- Design with your most common reports in mind: if owner statements need specific subtotals, include tree nodes that produce them
Step 4: Upload and validate
Import your redesigned tree back into Voyager as a new account tree. Run a test report (a trial balance or income statement works well) using the new tree to verify that every GL account is captured and totals balance correctly. Missing accounts will show as unassigned, which causes balances to not tie.
Step 5: Test across property types
Run the tree against multiple properties in your portfolio. A tree that works for a multifamily residential asset may miss accounts used exclusively by commercial properties (CAM recovery accounts, tenant improvement amortization, percentage rent). Test across every asset class you manage before rolling the tree out to your reporting team.
5 Common Yardi Chart of Accounts Mistakes
After years of COA audits and cleanup projects, these are the patterns we see most often:
1. Bloated account lists without a clear purpose. Adding accounts for every conceivable expense line creates a COA that's hard to navigate and harder to report from. If you have 800 accounts but only use 200 regularly, the other 600 create noise in dropdowns, slow data entry, and increase the chance of mispostings. Start lean and add accounts only when reporting requirements genuinely demand a new category.
2. Inconsistent naming conventions. In Voyager's shared COA, all properties use the same account list, so naming inconsistency shouldn't happen at the GL level. But it creeps in through charge codes, vendor categories, and how staff select accounts during data entry. "Repairs & Maintenance" might get posted to three different accounts because staff can't tell which one applies. Clear, descriptive account names and written posting guidelines prevent this.
3. Misclassifying security deposits as income. Security deposits are liabilities on your balance sheet until they're forfeited or applied to damages. Posting them to a revenue account inflates income, understates liabilities, and creates audit findings. In Voyager, security deposits should post to a liability account (typically in the 2xxx range) with a corresponding escrow bank account.
4. Mixing capital improvements with operating repairs. A roof replacement is a capital expenditure that gets depreciated over its useful life. A roof leak repair is an operating expense recognized immediately. Your account structure needs distinct GL accounts for each, and your team needs documented guidelines on the capitalization threshold. This mistake affects both your financial statements and your tax filings.
5. Broken tree hierarchy. When heading and total accounts are misconfigured in your account trees, financial statements show incorrect subtotals. The most common symptom: a balance sheet that doesn't balance, or an income statement where operating expenses don't tie to the NOI line. Running Yardi's Calypso Report monthly catches these structural errors before they appear in deliverables. Schedule a GL rebuild after any structural changes, including new account additions, segment edits, or tree modifications.
When to Restructure Your COA vs. Build an Account Tree
This is the question we field most often. The answer depends on what problem you're solving.
| Restructure your COA when... | Build a custom account tree when... |
|---|---|
| You're implementing Yardi for the first time | Your underlying COA is sound but you need different report views |
| Your numbering scheme has no room for growth | Multiple ownership groups need different financial statement formats |
| Account types are fundamentally wrong (expenses as assets) | You're consolidating across asset classes with different rollup needs |
| You're migrating from another system | Lender or investor requirements differ from management reporting |
| Transaction history is too polluted to report from | You need HUD-format and GAAP reports from the same data |
In most cases, the right answer is both: clean up the COA first, then layer custom trees on top for reporting flexibility. This is why we tie COA design into every Voyager implementation we manage. Your choice of cash vs. accrual accounting also affects which accounts you need and how your trees should present them.
How Account Trees Affect Budgeting and Compliance
Custom account trees integrate directly with Yardi's budgeting module, allowing budget templates to follow the same tree structure as your financial statements. Budget-to-actual variance reports align naturally when the budget and the output use the same tree, eliminating the manual mapping that creates reconciliation headaches during budget season. Pairing these structured trees with financial analytics practices that explain variances in context gives stakeholders both the numbers and the narrative in a single deliverable.
For compliance-driven portfolios, account trees solve a persistent pain point. Affordable housing operators subject to HUD or LIHTC requirements can map GL accounts to regulatory reporting categories through a dedicated tree. This lets you produce standard GAAP financials and HUD-format reports from the same underlying data, eliminating the dual-entry or manual reformatting that many affordable housing teams rely on.
For investor and syndicator reporting, trees enable distribution and waterfall calculations that follow partnership agreement structures. The GL stays clean with standard accounting categories while the tree restructures outputs for each investor class. If you're reporting to multiple investor groups with different preferred formats, account trees are far more sustainable than maintaining parallel spreadsheet packages. For more on how reporting tools layer on top of this foundation, see our YSR vs. SSRS vs. Power BI comparison.
Frequently Asked Questions
What are the 5 basic chart of accounts categories?
The five basic categories are assets (what you own), liabilities (what you owe), equity (owner's interest), income (revenue earned), and expenses (costs incurred). In Yardi Voyager, each GL account is assigned one of these types, which determines its normal balance direction and where it appears on financial statements. Each category uses a distinct number range, typically in blocks of 1,000.
Does Yardi have accounting?
Yes. Yardi Voyager is a full-featured property management and accounting platform. It handles general ledger, accounts payable, accounts receivable, bank reconciliation, 1099 processing, budgeting, and financial reporting out of the box. Yardi Breeze and Breeze Premier offer streamlined accounting for smaller portfolios, with the same core GL functionality in a simpler interface.
How do I set up a chart of accounts in Yardi?
Navigate to Setup > Chart of Accounts in Voyager. Define your account types (asset, liability, equity, income, expense), assign numbering using at least 4-digit codes with room for expansion, configure heading and total accounts for your reporting hierarchy, and validate using the Calypso Report. We recommend designing your full structure on paper or in a spreadsheet first, then implementing in Voyager once the hierarchy and numbering are finalized.
What is the difference between a chart of accounts and an account tree in Yardi?
Your chart of accounts is the master list of GL accounts that stores every transaction. An account tree is a reporting layer that reorganizes how those accounts are grouped and displayed on financial statements. You can maintain multiple account trees pointing to the same underlying chart, giving different stakeholders different report views without changing any GL data or reposting transactions.