This did not start as a product. It started as a count. Fifty-one recurring tasks inside a multifamily operating company — the Monday packet, the AMI rent-cap check, the ninety-day notice window, the turn nobody priced — written down one at a time, timed, and totalled. The tally came to about 1,100 hours a month. That is roughly six full-time people spent compiling, chasing, and remembering.
NOI Engine is what I built against that number. What follows is the note that goes with it, and it is ordered the way I would want it if I were on your side of the table: the method first, then the figures with a date on them, then the eleven views, the fifty-one automations, the exclusions in writing, and a tariff you can check against your own unit count without opening Excel. There is no form on this page. The last section is a phone number, and it is me on the other end.
— Michael Gaff, founder
01What we measured, and how we measured it
Before any of the claims below, here is the arithmetic behind them. If the method does not hold, nothing after it should be believed either.
Every automation in the platform was specified against a task a person is doing today. For each one we recorded who does it, how often it runs, and how long it takes when nothing goes wrong. Frequency times duration gives hours per month. Hours per month divided by a 173-hour work-month gives full-time equivalents.1 Full-time equivalents times a single loaded cost per person gives the annual figure.2
Nothing here is modelled off a customer’s books, because there is no customer to model. This is our own study of the fifty-one automations we actually ship, and the totals below are the sum of its rows. They are not a projection, not a case study, and not an average of anybody else’s results. The suite-level hour counts are published in full in §04, and they add up in public: seven suites, 1,080 hours a month.3
- Automations specified and shipped, across eight suites51
- Role-based analytics views, included with every plan11
- Hours per month returned, sum of suites 1–7~1,1003
- Full-time equivalents of capacity~61
- Annual labour value at the study’s loaded cost~$500K2
Source: 51-automation time study, Gaff, 2026. Figures as of 8 August 2026. Notes 1–6 resolve at the foot of this note.
Divide the annual figure by the FTE count and you get roughly $80,000 loaded per person — that is the whole of the assumption, and it is one number. Substitute your own and the figure moves. We will do that arithmetic in front of you rather than behind you.
02What the week looks like before any of this
Your best people spend their weeks compiling, chasing, and remembering. The Monday packet. The lease-up checklist. The contract renewal windows. The rent-cap checks. The stalled turns nobody priced. It all gets done by hand, until the week it doesn’t — and the week it doesn’t is never a cheap week.
Hours are the baseline, and hours are the least interesting part of this. The point is the four misses below. Any one of them, once, pays for the platform outright.
| No. | The miss | What happens today |
|---|---|---|
| 2.1 | One over-cap lease | On an attainable or HUD book, a single lease signed over the AMI cap costs more than a year of NOI Engine. Checked nightly, on every lease event. |
| 2.2 | One missed notice window | A vendor contract that silently auto-renews because the 90-day window slipped is a five-figure miss. Every window gets a countdown. |
| 2.3 | One bleeding unit | “This unit has cost you $3,400 so far.” Every stalled turn is priced per day and ranked every Monday. |
| 2.4 | One covenant surprise | DSCR headroom projected 60 to 90 days before the test date. See a breach coming while you can still act on it. |
03The seats the eleven views are cut for
Eleven role-based views ship with every plan, over one set of numbers. Everyone reads the same truth from their own altitude — the CFO’s covenant headroom and the community manager’s Monday list are the same data, cut for the person holding it. These are the seats:
| Seat | What they open it for |
|---|---|
| CFO | Portfolio P&L, covenant headroom, month-end variance with GL citations |
| COO | Every community on one grid, exceptions ranked before anything else |
| Regional VP | Their communities side by side, on the same definitions |
| Community manager | Their own week: turns, renewals, applications, what is late |
| Revenue | Pricing, concession audit trails, occupancy and exposure |
| Leasing | Funnel, speed-to-lead, application status by community |
| Maintenance | Work orders, SLA breaches, the lost-rent meter on stalled turns |
| Owner / JV | Reporting for the capital, on your branding and your domain |
All eleven views read one semantic layer, reconciled nightly against your PMS’s own reports and stamped “reconciled as of.” Analytics is included at the lower tariff line in §07.
04The fifty-one automations, as a schedule
Eight suites. Every recurring task, watched or written. The hour column is the study’s own output, not a rounded headline — you can add it up, and we have.
| No. | Suite | What runs | Hrs / mo |
|---|---|---|---|
| 01 | Lease-Up Command Center | Your full opening checklist live-tracked with owner digests; contracts abstracted by AI; collateral and eblasts drafted for approval. | 105 |
| 02 | Reporting & Alerting | The weekly ops packet auto-generated for every community. Exception alerts on your thresholds. Covenant projections before the test date. | 165 |
| 03 | Compliance Guard | AMI rent-cap checks on every lease event. Recert countdowns. COI and license expiry. Lease-file audit sampling before the auditor. | 145 |
| 04 | Maintenance & Turn Money | A lost-rent meter on every stalled turn. SLA breach escalations. AI triage that flags urgents up, never down. Utility recapture. | 170 |
| 05 | Money-Side Audits | Late-fee consistency. Concession audit trails. Tax and insurance exposure flagged before it hits the accrual. | 30 |
| 06 | Leasing Funnel & Renewals | Renewal and application watchdogs. Speed-to-lead reply drafts. Review responses in your voice. Every send human-approved. | 275 |
| 07 | Financial Narrative | Month-end variance commentary drafted with GL citations. Owner reports assembled. Deposit deadlines tracked to the statute. | 190 |
| 08 | Platform & Reliability | Heartbeat monitoring, nightly reconciliation against your PMS’s own reports, and a monthly reliability report. It watches the watchdogs. | nil4 |
| Total, suites 1–7 | 1,080 | ||
| Published as | ~1,1003 | ||
1,080 ÷ 173 hours = 6.24 FTE. That is where the “~6 people” comes from, and it is the only place it comes from.
05What this platform will never do, in writing
Most of what follows is the reason a general counsel signs. These are not positioning statements. They are contract terms, and they are set here the way they are set in the agreement.
- 5.1
No collections dunning, and no eviction documents. Ever, under any phase.
- 5.2
No handling of resident income files.
- 5.3
No unattended AI sends. A named human presses send on anything resident- or vendor-facing, and every send is logged immutably.
- 5.4
No writes to your PMS or your Microsoft environment without a separately signed phase, with its own sandbox testing. The standing connection is read-only, and that scope is in the contract.
If a vendor will not put its exclusions in the agreement, the exclusions do not exist. Ask the last three the same question.
06How it connects, and why it survives legal and IT
Entrata today, through a purpose-built connector. Yardi is next on the roadmap. If you run something else, ask — the semantic layer is PMS-agnostic by design. The connection itself is four steps and it is deliberately boring:
| Step | Stage | What happens |
|---|---|---|
| 1 | Connect, read-only | A dedicated read-only API user. NOI Engine never writes to your system of record. |
| 2 | Reconcile nightly | Every metric is checked against your PMS’s own reports and stamped “reconciled as of.” |
| 3 | Watch, write, draft | Reports generate. Watchdogs run. Drafts queue. All from one semantic layer your whole team shares. |
| 4 | Your people approve | One approval queue. A named human presses send on anything resident- or vendor-facing. Every send logged. |
Template governance. Resident-facing text is never free-written by AI. It merges facts into templates your counsel approved, with identical treatment at every stage of a process and a quarterly send-log report. Your legal team owns the template library.
Provable reliability. A heartbeat monitor alerts both sides if any check stops running. You get a monthly reliability report: what ran, what alerted, what didn’t. That is the whole of Suite 8, and it is why Suite 8 is scored at nil hours.
Continuity by contract. Source-code escrow, documented schemas, one-click data export, encryption in transit and at rest, and a Data Processing Addendum. Credentials are stored as encrypted secrets, never in code. No single point of failure, including me.
07Tariff
Pricing is published, so the multiplication is published too. Find your unit count on the left and read across. There is no highlighted plan and no badge; both lines are real products and one of them is cheaper.6
| Portfolio | Analytics $1.50 / unit / mo |
Analytics + Automation $4.00 / unit / mo |
|---|---|---|
| 1,000 units | $18,000 | $48,000 |
| 3,000 units | $54,000 | $144,000 |
| 5,000 units | $90,000 | $240,000 |
| 10,000 units | $180,000 | $480,000 |
| 15,000 units | $270,000 | $720,000 |
| Implementation, one-time5 | from $45,000 | from $45,000 |
Analytics, $1.50 per unit per month. Eleven role-based views from portfolio down to unit. Live PMS data reconciled nightly. Exception-managed heat grids with drill-down. Branded to your company, on your domain, with email-gated access for your team.
Analytics + Automation, $4.00 per unit per month. Everything above, plus all eight suites and all fifty-one automations, the approval queue and template governance, auto-generated weekly ops reports for every community, the AMI rent-cap guard and compliance calendars, and heartbeat monitoring with the monthly reliability report.
Implementation, from $45,000. One-time, scaled to portfolio size and phases, covering the PMS integration, template governance setup, and training. A limited number of founding partnerships are available at reduced rates for operators who join early and serve as references.
08The questions your legal and IT teams will ask
Is this safe under fair housing?
It is designed for it. AI never free-composes resident-facing text. It populates counsel-approved templates with whitelisted merge fields, applies identical treatment at every stage of a process, requires a named human approval on every send, and logs everything immutably. Your legal team owns the template library and gets a quarterly report of exactly what went out.
Does it write to our Entrata?
No. The connection is read-only and that scope is written into the contract — see §05, clause 5.4. Any future write capability would be a separately signed phase with its own sandbox testing, and most clients never need one.
What about our data security?
Credentials are stored as encrypted secrets, never in code. Data is encrypted in transit and at rest. Access to your dashboards is gated to named email addresses. You get a Data Processing Addendum, source-code escrow, and one-click export of everything, so you are never locked in or dependent on any single person.
Which property management systems do you support?
Entrata today, with a purpose-built connector. Yardi is next on the roadmap. If you run something else, ask; the platform’s semantic layer is PMS-agnostic by design.
Will this replace our staff?
No, and we won’t pitch it that way. NOI Engine returns capacity: the compiling, chasing, and remembering that eats your team’s week goes away, and the hours come back for leasing, residents, and the judgment calls only people can make.
Notes
- 1.FTE conversion uses a 173-hour work-month. 1,080 ÷ 173 = 6.24 FTE, published as “~6”. Return ↑
- 2.Annual labour value is FTE count × a single loaded cost per person. Dividing the published ~$500K by 6.24 FTE implies roughly $80,000 loaded. It is one assumption, it is disclosed, and it is yours to replace. Return ↑
- 3.Hours returned is the arithmetic sum of the stated hour counts for suites 1–7 in Table 04.1: 105 + 165 + 145 + 170 + 30 + 275 + 190 = 1,080 hrs/mo. “~1,100” is that sum rounded to the nearest hundred. It is not a projection and not an average of other operators. Return ↑
- 4.Suite 8 (Platform & Reliability) is scored at nil returned hours. It is included with the platform and exists to watch the other seven. Return ↑
- 5.Tariff arithmetic is unit count × published per-unit rate × 12 months. Implementation is quoted one-time from $45,000 depending on portfolio size and phases. Return ↑
- 6.Pricing, exclusions and reconciliation language quoted in this note are contract terms. The executed agreement governs. Return ↑