You run 40 properties across a dozen LLCs: garden-style communities with eight buildings each, a few single towers, one with retail on the ground floor. Your accounting team lives in NetSuite. The question that keeps coming up is where, exactly, a building or a unit is supposed to live in the system.
To manage multiple properties in NetSuite, model the legal entity as a subsidiary, the property as a GL-posting dimension, and buildings and units as non-posting records that carry charges, leases and occupancy. NetSuite has no property, building or unit object of its own; a property management layer such as RIOO, built on NetSuite, supplies those records and keeps them tied to the ledger.
This post explains each native NetSuite construct and its limits, gives a recommended mapping for every level of the hierarchy, works through the awkward cases (mixed-use, shared buildings, multi-state portfolios) and shows how occupancy, rent roll and allocations roll up and down the tree.
Key takeaways
- NetSuite ships with Subsidiary, Department, Class, Location and Custom Segments as GL dimensions, and custom record types for everything else; none of them is a property, building or unit out of the box.
- The property (or community) should be a posting dimension, so per-property P&L and NOI are native Financial Report Builder outputs rather than spreadsheet work.
- The unit must never be a GL dimension: a 5,000-unit portfolio would add 5,000 segment values to every transaction lookup and every financial report filter.
- Buildings and units belong in records that carry charge structures, occupancy status and links to leases, assets and work orders, with square footage held in statistical accounts for allocations.
- Get the hierarchy right once and rent roll by unit, occupancy by building, NOI by property and consolidated results by entity all come from the same database as the general ledger.
What NetSuite gives you natively for a real estate hierarchy
NetSuite's data model was designed for companies that sell products and services, not companies whose inventory is space. The tools you have fall into three groups.
-
GL-posting dimensions- Subsidiary (OneWorld only), Department, Class and Location are the standard classifications on every transaction line. Custom Segments extend this: NetSuite's documentation says you can "create as many custom segments as you need", with GL impact and financial-report filtering, and segment values can be parent-child.
-
Non-posting records- Custom record types hold structured data with custom fields, parent-child subtabs and saved-search support. They do not post to the ledger, which is exactly what you want for a unit.
-
Statistical accounts- These hold non-monetary quantities such as unit counts or square footage and drive allocation schedules.
What is missing is any object that knows what a lease is, what a unit is, or that a unit becomes vacant when a lease ends. As ERP Research puts it, "NetSuite itself does not have a dedicated property management module". The hierarchy has to be designed, and the design decisions below are the ones that determine whether the system still works at 400 properties.
Recommended mapping: level → NetSuite construct
Experienced NetSuite practitioners converge on the same shape. Prolecto's write-up of a real estate build describes custom segments for regions, custom records for Properties, Buildings and Floors, and statistical accounts for units. The table below is that shape, with what each level holds and what it lets you report.
| Level | NetSuite construct | What lives there | Reports it enables |
|---|---|---|---|
| Portfolio / fund | Parent subsidiary (OneWorld) or top-level segment value | Fund name, reporting currency | Consolidated P&L and balance sheet, fund NOI |
| Owning entity (LLC, JV, REIT sub) | Subsidiary | Legal name, tax ID, functional currency, bank accounts | Entity financials, intercompany eliminations, tax returns |
| Property / community | Location, or a posting custom segment "Property" | Address, manager, acquisition date, unit count and square footage (statistical) | Property P&L, NOI, budget vs actual, occupancy by property |
| Building | Custom record (child of Property); optionally a child value of the Property segment | Floors, rentable square footage, systems (roof, HVAC, elevators) | Occupancy by building, expense allocation, maintenance cost per building |
| Floor / unit | Custom record (child of Building) | Unit number and type, square feet, market rent, status, charge structure, current lease | Rent roll by unit, vacancy list, unit turn cost, rent per square foot |
| Room / amenity | Custom record (child of Unit or Property) | Bedrooms, parking bays, lockers, bookable amenities | Amenity utilization, parking and ancillary income |
Three decisions in this table deserve their reasoning.
-
The property should be a posting dimension: Every rent invoice, vendor bill and journal entry should carry the property. Per-property P&L then becomes a native Financial Report Builder output filtered by that dimension. Use a dedicated custom segment rather than Location if Location already means something else in your account, such as a warehouse or an office.
-
The unit must not be a GL dimension: In a 5,000-unit portfolio a Unit segment means 5,000 values in every transaction dropdown, 5,000 rows in every segment-filtered report, and a list that changes every time a unit is split, combined or renumbered. Reports become unreadable and transaction entry slows down. Unit-level financial detail is a rent-roll question, not a general-ledger question.
-
The unit is a record that carries things: It holds its charge structure, its current and future leases, its occupancy status, the assets inside it and the work orders raised against it. That is a record with relationships, not a dimension. Invoice lines reference the unit; the unit's property dimension is what posts.
How do I manage multiple properties in NetSuite?
To manage multiple properties in NetSuite, create one posting dimension value per property (a Location or a "Property" custom segment) and tag every income and expense transaction with it. Group properties under the subsidiary that owns them. Per-property P&L, NOI and budget comparisons then run natively, and the entity tree handles ownership.
-
Multiple properties in one LLC: One subsidiary owns six properties, each with its own dimension value. Entity financials are the subsidiary; property financials are the dimension filter.
-
One LLC per property: Common where lenders require it. Subsidiary and property map one-to-one, but still tag the property dimension, so you can report "all garden-style communities" across entities without a subsidiary filter that changes every acquisition.
-
Portfolios across states and countries: OneWorld provides multi-subsidiary, multi-currency consolidation with real-time roll-up. Each subsidiary carries its own functional currency and tax nexus; a Canadian and a US property company under one parent consolidate in the parent's reporting currency. Entity design is covered in the multi-entity real estate guide; this post stays on the physical hierarchy.
-
Shared services: A regional maintenance team or a central leasing office should be a Department, not a property, with its cost allocated to properties on a statistical driver such as unit count.
The one rule that saves the most pain later: the property record and its dimension value must be created together and kept in sync. The classic failure is a property added in operations but not in finance, with a month of postings landing in "unassigned".
How do I manage multiple buildings in NetSuite?
To manage multiple buildings in NetSuite, create a Building record as a child of each property, holding square footage, floors and building systems. Buildings are usually non-posting; their expenses post to the property and are allocated to units by square footage held in statistical accounts. Make a building a posting child value only when it needs its own P&L.
The right answer varies by portfolio. A garden-style community with 14 identical buildings needs occupancy and maintenance history by building, not building financials, so the building is a plain record. An office park with three towers on separate ground leases does need building-level P&L, so the building is also a child value of the Property segment: "Riverside Park > Tower B" posts to Tower B and rolls up to Riverside Park.
Mixed-use buildings are the sharpest case. Retail on the ground floor and residential above means two charge models (CAM recoveries versus flat rent) and two reporting audiences. The building stays one record; the units beneath it carry different unit types and charge structures, and a Use class (Residential / Retail / Office) on each unit splits the building P&L by use. The full treatment is in the mixed-use property management post.
Buildings shared across properties or entities (parking structures, clubhouses, central plants) sit under a "Common" property, post their costs there, and allocate to benefiting properties by statistical driver. Across entities the allocation is an intercompany charge, which OneWorld's Automated Intercompany Management eliminates at consolidation.
Building assets such as roofs, boilers, elevators and HVAC belong in NetSuite Fixed Assets Management, tagged to the building record, so preventive maintenance and work orders link to both the asset and the building. For office-specific operations, see office portfolio management across multiple buildings.
How do I manage multiple units in NetSuite?
To manage multiple units in NetSuite, create a Unit record under each building that stores unit type, rentable square feet, market rent, status and the charge lines the lease will bill. Do not make units a GL segment; invoice lines reference the unit while the property dimension posts. The unit is the object property management runs on, and the one NetSuite is furthest from having.
Four things need to be true of a unit record.
-
It carries a charge structure: Two units in one building can bill differently: a corner two-bedroom at market rent with parking and a pet fee; a one-bedroom on an affordable set-aside with a utility allowance. If the charges live on the unit, a new lease inherits them and a renewal does not re-key them.
-
It has a status set by events: Vacant, occupied, on notice, down, model. Status should come from move-in, move-out and lease events, not from someone typing it. When a move-out completes, the unit is vacant the same day, and the vacancy list is simply a saved search on unit records.
-
It links to leases, assets and work orders: The current and future lease, the appliances inside it and every service request raised from it are visible from the unit. That is what turns unit turn cost from a reconciliation into a report. See work order management in NetSuite.
-
It has rooms and amenities beneath it: Student housing rents by the bed, shared offices by the desk, and clubhouses, parking bays and lockers need a bookable object with its own charge and availability. Those sit under the unit or the property as child records.
How do occupancy, rent roll and allocations roll up the hierarchy?
Occupancy rolls up from unit status: each unit record is vacant or occupied, and buildings and properties report occupied divided by rentable units or square feet. The rent roll sums unit charges to the property dimension. Expenses run the other way, allocated from property to units by statistical accounts. All three come from one set of records when the hierarchy is designed as above.
Vacancy loss is the finance version of occupancy: market rent on vacant units, summed by property, reconciles gross potential rent to rent billed. That only works if market rent lives on the unit record and status is event-driven.
The rent roll ties the operating hierarchy to the ledger. Each row is a unit: tenant, lease dates, current rent, other charges, deposit, balance. Totals by property should equal rent revenue by property dimension in the general ledger, and when both come from the same database they cannot silently drift. That tie-out is the single best test of whether a NetSuite property setup is sound.
Expenses run the other way. Insurance, property tax and common-area utilities are incurred at the building or property and pushed down using a statistical account per driver (rentable square feet by unit, unit count by building) and an allocation schedule each period. The same square-footage basis produces each commercial tenant's pro-rata CAM share and the drivers for residential RUBS, so the driver is maintained once, on the unit record, and used everywhere.
Five hierarchy mistakes that surface at scale
| Mistake | What goes wrong |
|---|---|
| Unit as a custom segment | Thousands of segment values; slow transaction entry; unreadable financial reports |
| Property and dimension created separately | New property exists in operations but not in finance (or vice versa); postings land in "unassigned" |
| Occupancy typed by hand | The vacancy list is wrong within a month |
| Charges stored on the lease only | Every renewal re-keys rent, parking and utility lines |
| Mixed-use handled as two properties | Duplicate addresses, split building expenses, double-counted occupancy |
None of these are exotic. They are what happens when a hierarchy is designed for ten properties and then loaded with four hundred.
Loading a 40-property, 3,000-unit portfolio into NetSuite
Whichever application supplies the property layer, the load runs in this order.
- Confirm the entity tree. List every owning LLC, JV and fund with its currency and parent; create or verify the OneWorld subsidiaries and intercompany accounts.
- Decide the property dimension. Location or a dedicated "Property" custom segment, mandatory on income and expense lines.
- Load the property master. One row per property: legal name, address, subsidiary, manager, acquisition date, square footage, use type, and the dimension value it posts to.
- Load the building master. One row per building: parent property, floors, rentable square footage, major systems.
- Load the unit master. One row per unit: building, number, type, square feet, market rent, status, charge template. Validate that every unit resolves to a building and a property.
- Load rooms, amenities and parking that are billed or booked separately (beds, desks, bays, lockers).
- Load tenants and active leases. Tenants become NetSuite customers under the right subsidiary; leases attach to units, inherit their charges and set status to occupied. See NetSuite lease management: renewals, escalations and terminations.
- Load opening balances: tenant AR, security deposit liabilities and prepaid rent by property dimension, reconciled to the legacy rent roll.
- Load the asset register and open work orders, tagged to buildings and units, with preventive maintenance schedules on building systems.
- Reconcile and cut over. Compare rent roll by property, occupancy by building and trial balance by property dimension to legacy, then cut over on the first day of a billing period.
Ten thousand units follow the same ten steps; the master files are longer.
Where RIOO fits
Everything above can be built by hand in NetSuite, and some operators do. RIOO is the property management platform built on NetSuite that ships this hierarchy ready-made: Property/Community → Building → Unit → Rooms & Amenities as native NetSuite records, with unit-wise charge structures that flow to leases and invoices, occupancy driven by move-in and move-out events, and every unit linked to its leases, assets and work orders. Property records maintain their own NetSuite dimension values, so per-property P&L, NOI and consolidated results by entity are native reports rather than something you rebuild each month.
See property and community setup, units, rooms and amenities and dashboards and reports. RIOO manages 180k+ units across 650+ communities in the US and Canada on this structure; to see a multi-property hierarchy loaded and reporting inside NetSuite, book a demo.
Frequently asked questions
Q1. How do I manage multiple properties in NetSuite?
Create a posting dimension value per property (a Location or a Property custom segment), tag every income and expense transaction with it, and group properties under the subsidiary that owns them. Per-property P&L and NOI then run as native financial reports, and consolidation across owning entities is handled by OneWorld.
Q2. How do I manage multiple buildings in NetSuite?
Model each building as a custom record under its property, holding floors, square footage and building systems. Most buildings are non-posting; where building-level P&L is needed, add the building as a child value of the property segment so it posts on its own and rolls up to the property.
Q3. How do I manage multiple units in NetSuite?
Create a Unit record under each building with unit type, square feet, market rent, status and charge lines. Never make units a GL segment; invoice lines reference the unit while the property dimension posts. The unit record should link to its leases, assets and work orders so the rent roll and vacancy list come from it directly.
Q4. Should a unit be a custom segment in NetSuite?
No. In a 5,000-unit portfolio a Unit segment adds 5,000 values to every transaction dropdown and every financial report filter, slows entry and makes reports unreadable. Unit-level detail belongs in the rent roll, which comes from unit records, while the property dimension carries the GL posting.
Q5. Does NetSuite have property, building and unit records built in?
No. NetSuite provides subsidiaries, GL dimensions, custom record types and statistical accounts, but no object that represents a property, a building, a unit or a lease. Those are added either by building custom records yourself or by using a property management platform such as RIOO, which is built on NetSuite and includes the full hierarchy.
Q6. Can NetSuite handle properties in different states, countries and currencies? Yes. NetSuite OneWorld supports multiple subsidiaries, each with its own functional currency and tax settings, and consolidates in real time with automated intercompany eliminations. A portfolio spanning the US and Canada runs each owning entity as a subsidiary; RIOO runs property management on that OneWorld structure across both countries.
RIOO is a property management platform built natively on Oracle NetSuite, used by residential, commercial and manufactured housing operators to manage properties, units, tenants, leases, rent billing, maintenance and multi-entity accounting in one system.