Skip to main content

Tested at 2,000 units

Before a large operator trusts PMFriend with a portfolio, a fair question is "have you ever run it at our size?" On 17 September 2026 we did: a test operator with four towers and 2,000 apartments, loaded on the live production system exactly the way a customer is onboarded — six CSV files per tower — and then given six months of maintenance history.

What was loaded

Towers4 (500 apartments each), each with its own building record
Units2,000 apartments + 4 building records
Tenants and leases1,812 (about 92 % occupancy)
Owners332 — one holding company per tower plus individual investors
Equipment445 items: chillers, lifts, pumps, fire panels, AC units
Contractors12
Maintenance history600 requests, 562 work orders, in every stage, in English, Arabic and Hindi

The results

Onboarding

StepRows per towerTime per tower
Properties with owners50114–21 s
Tenantsabout 4505–6 s
Leasesabout 45026–32 s
Equipmentabout 1103 s
Certificate register4under 1 s
  • All four towers — 2,000 units — were live in 3 minutes 36 seconds of upload time, with no failed rows.
  • Uploading every file a second time created nothing new (24 seconds to confirm about 6,000 rows were already there). Fixing three rows and re-uploading a whole file is safe.

Everyday use at that size

ScreenRowsResponse
Properties2,0040.2 s
Tenants1,8120.2 s
Maintenance requests6000.2 s
Work orders5620.2 s
Compliance register1,540 obligations0.2 s
Contractor scorecard12 contractors, 485 completed jobs0.2 s
Attention Inbox (the home screen)whole portfolio0.3–0.4 s

The server ran on its normal single instance throughout; the database peaked at 10 % CPU.

What the test found — and we fixed

Running at real size is how you find what a demo hides. Two things changed the same day:

  1. Existing leases arrived as alarms. Importing 1,812 running leases produced 718 "lease registration overdue" items — for leases registered long ago. The leases file now takes a registered_on date, and an older lease without one raises nothing. See Importing your portfolio.
  2. A tenant's card didn't say where they live. It now shows the unit and the lease — or says clearly that there is no lease on file.

See it yourself

The test operator stays in place. Ask us for a walkthrough — the Attention Inbox, the contractor scorecard and "where do our jobs get stuck?" in ChatGPT are all more convincing at 2,000 units than at eight.

Going deeper